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 690632 - rtsp reception pipeline gets an assertion when handling and parsing / decoding H264 packets
rtsp reception pipeline gets an assertion when handling and parsing / decodin...
Status: RESOLVED DUPLICATE of bug 688382
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.0.4
Other Linux
: Normal critical
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-12-22 00:21 UTC by Getcho
Modified: 2013-02-06 12:28 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Getcho 2012-12-22 00:21:45 UTC
Overview: 
At Gstreamer 1.0.4

The pipeline:
rtspsrc -- capsfilter -- rtph264depay -- h264parse -- capsfilter -- avdec_h264 -- appsink 
Causes GStreamer-CRITICAL **: gst_segment_to_running_time: assertion `segment->format == format' failed and stops working.

Steps to Reproduce: 

1. clone https://github.com/ggetchev/gst_test and build the gsttest application (use make). 
2. Bunzip2 the file 1.movie.bz2 to let say file.movie.
3. Execute in a shell: ./gsttest ./file.movie --no-reception
4. launch the pipeline:

gst-launch-1.0 rtspsrc location=rtsp://bbs.darktech.org:1935/live/iphone.sdp ! capsfilter name=c1 caps=application/x-rtp,media=video,payload=96,clock-rate=90000,encoding-name=H264 ! rtph264depay ! h264parse ! capsfilter name=c2 caps=video/x-h264,alignment=au ! avdec_h264 ! capsfilter name=c3 caps=video/x-raw,format=I420 ! avenc_tiff ! multifilesink location=./file_%05d.tiff

Actual Results: There are tiff files, but none of them is a real tiff file. A lot of criticals is printed on the output: GStreamer-CRITICAL **: gst_segment_to_running_time: assertion `segment->format == format' failed

If the last three elements (capsfilter name=c3, avenc_tiff, multifilesink) are substituted by appsink element - the sample delivery is broken by forced EOS signal / callback. 

Expected Results: 
1. No criticals in the output.
2. The tiff files produced should be valid images.
3. If the last three elements are substituted by an appsink element the sample delivery should not be interrupted.


That happens on Gstreamer 1.0.4, taken from git repository (tag = 1.0.4)
OS: Ubuntu 12.04 LTS, 32-bit.

Additional Information: The callstack when setting GST_DEBUG="fatal-criticals" is:


Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 3056597824 (LWP 7402)

  • #0 g_logv
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #1 g_log
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 g_return_if_fail_warning
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #3 gst_segment_to_running_time
    at gstsegment.c line 476
  • #4 gst_rtp_base_depayload_chain
    at gstrtpbasedepayload.c line 270
  • #5 gst_pad_chain_data_unchecked
    at gstpad.c line 3654
  • #6 gst_pad_push_data
    at gstpad.c line 3871
  • #7 gst_base_transform_chain
    at gstbasetransform.c line 2203
  • #8 gst_pad_chain_data_unchecked
    at gstpad.c line 3654
  • #9 gst_pad_push_data
    at gstpad.c line 3871
  • #10 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #11 gst_pad_chain_data_unchecked
    at gstpad.c line 3654
  • #12 gst_pad_push_data
    at gstpad.c line 3871
  • #13 gst_rtp_dec_chain_rtp
    at gstrtpdec.c line 532
  • #14 gst_pad_chain_data_unchecked
    at gstpad.c line 3654
  • #15 gst_pad_push_data
    at gstpad.c line 3871
  • #16 gst_base_src_loop
    at gstbasesrc.c line 2710
  • #17 gst_task_func
    at gsttask.c line 316
  • #18 default_func
    at gsttaskpool.c line 70
  • #19 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #20 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #21 start_thread
    at pthread_create.c line 308
  • #22 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 130

The media sent to the server is processed by the following pipeline (look at the file gsttest2.c from the git repository mentioned above):

appsrc -- x264enc -- capsfilter -- rtph264depay -- udpsink

Settings:
appsrc properties:
caps = video/x-raw; format=I420; framerate=20; width=480; height=640
format = GST_FORMAT_TIME,
max-latency = min-latency = 0
size = -1
max-bytes = 5 * 480 * 640 * 3 / 2;

x264enc:
bitrate = 3 * 512
tune = 4
speed-preset = 3
threads = 1
bframes = 0
b-adapt = 0
cabac = 0
dct8x8 = 0
aud = 0
byte-stream=1
key-int-max = 10
quantizer = 50
vbv-buf-capacity = 0

capsfilter:
caps = "video/x-h264;stream-format=byte-stream; alignment=au"

udpsink:
host = bbs.darktech.org
port = 1938
force-ipv4 = 1
sync = FALSE
Comment 1 Wim Taymans 2013-02-06 12:28:07 UTC

*** This bug has been marked as a duplicate of bug 688382 ***