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 522203 - [playbin] streamselector forwards NEWSEGMENT twice
[playbin] streamselector forwards NEWSEGMENT twice
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal major
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-03-13 10:35 UTC by Sebastian Dröge (slomo)
Modified: 2008-10-30 11:52 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2008-03-13 10:35:17 UTC
Hi,
since [0] streamselector will send a NEWSEGMENT event on the srcpad whenever it receives a NEWSEGMENT event from any sinkpad. This causes multiple NEWSEGMENTS in some cases, breaking playback completely (sinks accumulate segments, timestamps are wrong or better far too early, pipeline stops).

I have a testcase locally (can't share it unfortunately) where it breaks playback reproducible. Reverting [0] fixes it for me, Wim will investigate how to fix this properly ;)

[0] http://webcvs.freedesktop.org/gstreamer/gst-plugins-base/gst/playback/gststreamselector.c?r1=1.29&r2=1.30
Comment 1 Wim Taymans 2008-03-13 11:22:02 UTC
The current stream selector fails here (case 1):

 - sink0 receives segment, it's not active -> event dropped and pending = TRUE
 - sink0 receives data, it becomes active -> segment and data pushed
 - sink1 receives segment, it's not active -> event dropped and pending = TRUE
 - data on sink0 will push a new segment again

The current stream selector works here (case 2)

 - sink0 receives segment, it's not active -> event dropped and pending = TRUE
 - sink1 receives segment, it's not active -> event dropped and pending = TRUE
 - data on sink0 or sink1 is pushed after sending a segment

Reverting the patch makes case 1 work again but makes case 2 fail. I was testing a file that requires case 2 to work.


Comment 2 Wim Taymans 2008-03-13 11:30:57 UTC
It's too late to cook up a complete fix, I vote for reverting it and make case 2 fail, like it did before (this impacts matroska with multiple streams).
Comment 3 Sebastian Dröge (slomo) 2008-03-13 13:51:44 UTC
Ok, so let's revert and keep this bug as blocker for 0.10.19?
Comment 4 Wim Taymans 2008-03-13 16:03:35 UTC
yes
Comment 5 Jan Schmidt 2008-03-13 20:07:01 UTC
OK - make it so
Comment 6 Sebastian Dröge (slomo) 2008-03-14 08:28:14 UTC
My case is btw an AVI file with one video stream and two mp3 audio streams...
Comment 7 Wim Taymans 2008-03-14 09:54:51 UTC
Reverted:

        * gst/playback/gststreamselector.c: (gst_selector_pad_event),
        (gst_selector_pad_chain):
        * gst/playback/gststreamselector.h:
        Revert change that caused regression until a real fix is found.
        Fixes #522203.

Leaving this bug open to track progress.
Comment 8 Wim Taymans 2008-05-27 16:55:18 UTC
input-selector should not have this problem.
Comment 9 Wim Taymans 2008-10-30 11:52:41 UTC
closing, we should use input-selector.