GNOME Bugzilla – Bug 342592
dvdemux doesn't post segment-done right
Last modified: 2006-06-14 15:08:19 UTC
The dvdemux in 0.10.3 (good) doesn't post segment-done messages. Things used to work fine in 0.10.2 though. That's against: gstreamer 0.10.6 gst-plugins-base 0.10.7 gst-plugins-good 0.10.3
It happens only when the demuxer is operating in pull mode. When forced to push mode, it works fine.
Created attachment 66112 [details] [review] patch to implement eos correctly
seems correct to me. MDK can you test it and confirm ?
* ext/dv/gstdvdemux.c: (gst_dvdemux_loop): Implement EOS correctly by either posting SEGMENT_DONE or pushing an EOS message depending on the seek type. Fixes #342592
I think it's still not right. Now it posts the segment-done with a huge delay. It looks like if the file is still "streaming" in the background somewhere (after the segment has been completed), and it posts the segment-done when the EOS has been reached. In other words -- the shorter the segment is, the longer the delay will be. For example, a 10s DV file: Seeking 0s-9s segment will post the segment-done almost instantly. Seeking 0s-1s will cause a long "wait" for the segment-done, when the actual streaming has been long stopped. In any case, the behaviour is very much different from the push-mode.
it actually just ignores the stop position and continues to demux/decode stuff till EOS, at which point is posts the segment done. It just needs to go EOS when the configured stop position is reached... fixing...
This should fix it. There is something else wrong with the first timestamp produced after a seek in READY which I'm fixing next. * ext/dv/gstdvdemux.c: (gst_dvdemux_demux_frame): Respect segment.stop. Fixes #342592.