After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 631681 - bayer2rgb crash on bad 0.10.20
bayer2rgb crash on bad 0.10.20
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.21
Other Linux
: Normal critical
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-10-08 14:06 UTC by Ivan Zoli
Modified: 2011-01-03 00:05 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ivan Zoli 2010-10-08 14:06:30 UTC
I've found a crash in bayer2rgb plugins from gst-plugins-bad-0.20 that was not present in previous release.

I'm capturing a bayer stream from an embedded device HD size (1280 x 720). I can save the stream in a file or stream it using tcp plugins. In both conditions bayer2rgb plugin from bad-0.20 crashes while for example bad-0.19 is working flawlessly.

This is a cut of the output with GST_DEBUG=3

--------------------------------------------------------------------
0:00:00.282103829 31512  0x9fe7050 INFO                 filesrc gstfilesrc.c:984:gst_file_src_start:<filesrc0> opening file /dev/urandom
0:00:00.282209229 31512  0x9fe7050 INFO               GST_EVENT gstevent.c:605:gst_event_new_new_segment_full: creating newsegment update 0, rate 1,000000, format bytes, start 0, stop -1, position 0
0:00:00.282424828 31512  0x9fe7050 INFO              GST_STATES gstelement.c:2236:gst_element_continue_state:<filesrc0> completed state change to PAUSED
0:00:00.282475028 31512  0x9fe7050 INFO              GST_STATES gstelement.c:2249:gst_element_continue_state:<filesrc0> posting state-changed READY to PAUSED
0:00:00.282518428 31512  0x9fe7050 INFO              GST_STATES gstbin.c:2443:gst_bin_change_state_func:<pipeline0> child 'filesrc0' changed state to 3(PAUSED) successfully
La pipeline è in PREROLLING ...
0:00:00.508963840 31512  0xa172b40 INFO                GST_PADS gstpad.c:3471:gst_pad_event_default_dispatch:<ivantest0:sink> Sending event 0xa1661b8 (newsegment) to all internally linked pads
Caught SIGSEGV accessing address (nil)
Killed


Example pipelines:
On the embedded device:
gst-launch \
  v4l2src \
  ! video/x-raw-bayer,width=1280,height=720,framerate=\(fraction\)1/1 \
  ! queue \
  ! tcpserversink host=192.168.101.37 protocol=1 port=5432

On PC
gst-launch \
  tcpclientsrc host=192.168.101.37 port=5432 protocol=1 \
  ! queue \
  ! bayer2rgb \
  ! ffmpegcolorspace \
  ! ximagesink sync=false

Or
gst-launch \
  filesrc location=mytest.yuv \
  ! video/x-raw-bayer,width=1280,height=720,framerate=\(fraction\)1/1 \
  ! queue \
  ! bayer2rgb \
  ! ffmpegcolorspace \
  ! ximagesink sync=false

mytest.yuv is a file saved by embedded device or it is possible to use /dev/urandom instead of it.

I'm using UBUNTU 10.04 fully update. 
The workaround is to remove the gst-plugins-bad-0.20 and replace it with gst-plugins-bad-0.19 using the same pipeline.

Ivan
Comment 1 Ivan Zoli 2010-10-08 14:19:11 UTC
In the cut of the output you may read 

gstpad.c:3471:gst_pad_event_default_dispatch:<ivantest0:sink> Sending event
0xa1661b8 (newsegment) to all internally linked pads

ivantest is mine plugin that is derived from identity plugin that I use for debug my streams, by printing some custom information on the screen. Of course the problem persist even without it...

Ivan
Comment 2 David Schleef 2010-10-08 19:07:54 UTC
This is not reproducible with gst-plugins-bad in git.

Part of your problem is that the buffers received by bayer2rgb are not the correct size.  To get the correct buffer sizes from filesrc, use the blocksize property on filesrc, or use a videoparse element after it.  For tcpclientsrc, use a videoparse element, or use some kind of payloading (like gdppay) on both the client and server to indicate what the buffer size is.