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 540194 - [mpegdemux] Doesn't handle files with a non-zero start timestamp properly
[mpegdemux] Doesn't handle files with a non-zero start timestamp properly
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
git master
Other Linux
: Normal normal
: 0.10.9
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-06-25 18:09 UTC by Sebastian Dröge (slomo)
Modified: 2008-07-02 09:13 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Enhance synchronization (1.93 KB, patch)
2008-07-01 07:50 UTC, Mark Nauwelaerts
committed Details | Review

Description Sebastian Dröge (slomo) 2008-06-25 18:09:31 UTC
Hi,
mpegdemux doesn't handle files with a non-zero start timestamp properly. It sends a NEWSEGMENT starting at 0 but pushes buffers with timestamps much after 0 for:

http://samples.mplayerhq.hu/MPEG-VOB/interlaced/tv2-1_25.mpg

This results in a stalled pipeline
Comment 1 Edward Hervey 2008-06-26 09:41:41 UTC
with the fluendo mpeg demuxer it crashes like a hippo on an ice ring.

  • #0 gst_flups_demux_chain
    at gstmpegdemux.c line 1098
  • #0 gst_flups_demux_chain
    at gstmpegdemux.c line 1098
  • #1 gst_pad_chain_unchecked
    at gstpad.c line 3576
  • #2 gst_pad_push
    at gstpad.c line 3744
  • #3 gst_type_find_element_chain
    at gsttypefindelement.c line 622
  • #4 gst_pad_chain_unchecked
    at gstpad.c line 3576
  • #5 gst_pad_push
    at gstpad.c line 3744
  • #6 gst_pad_chain_unchecked
    at gstpad.c line 3576
  • #7 gst_pad_push
    at gstpad.c line 3744
  • #8 gst_base_src_loop
    at gstbasesrc.c line 2193
  • #9 gst_task_func
    at gsttask.c line 192
  • #10 g_thread_pool_thread_proxy
    at gthreadpool.c line 265
  • #11 g_thread_create_proxy
    at gthread.c line 635
  • #12 start_thread
    at pthread_create.c line 297
  • #13 clone
    from /lib/libc.so.6
  • #14 ??

Comment 2 Mark Nauwelaerts 2008-07-01 07:50:55 UTC
Created attachment 113758 [details] [review]
Enhance synchronization

The file referred to originally has all 0 SCR, and only some PTS, and mpegdemux relies in part on the former.  Fortunately, however, not all the way, and so this patch takes care of this file (and similar).

* Bridge (timestamp) gaps by some NEWSEGMENT sending.
Comment 3 Sebastian Dröge (slomo) 2008-07-01 08:23:52 UTC
Looks good and works fine for me :) Good work
Comment 4 Mark Nauwelaerts 2008-07-02 09:13:20 UTC
2008-07-02  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer),
	(gst_mpeg_demux_sync_stream_to_time):
	Bridge gaps in stream by NEWSEGMENT sending.  Fixes #540194.