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 611501 - [regression] matroskademux fails to output anything on some seeks
[regression] matroskademux fails to output anything on some seeks
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal blocker
: 0.10.19
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-03-01 17:20 UTC by Edward Hervey
Modified: 2010-03-02 20:21 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
matroskademux: Mark streams as being EOS at the right time. (3.40 KB, patch)
2010-03-02 15:45 UTC, Edward Hervey
none Details | Review
matroskademux: Mark streams as being EOS at the right time. (3.19 KB, patch)
2010-03-02 17:46 UTC, Edward Hervey
committed Details | Review
matrodemux: Make sure we don't send invalid newsegments (1.27 KB, patch)
2010-03-02 17:46 UTC, Edward Hervey
none Details | Review
matroskademux: Make sure we don't send invalid newsegments (1020 bytes, patch)
2010-03-02 18:16 UTC, Edward Hervey
committed Details | Review

Description Edward Hervey 2010-03-01 17:20:48 UTC
Example file : http://matroska.free.fr/samples/mewmew/downloads/mewmew-vorbis-ssa.mkv

How to reproduce this:
gst-launch-0.10 gnlurisource uri=file:///data/medias/bugs/mewmew-vorbis-ssa.mkv caps=video/x-raw-yuv duration=1000000000 media-start=5000000000 ! xvimagesink

Expected behaviour:
buffers from 5s to 6s should come out of gnlurisources

Behaviour seen:
matroskademux pushes out the proper newsegment,doesn't output any buffers and then pushes out EOS.
Comment 1 Edward Hervey 2010-03-02 15:45:53 UTC
Created attachment 155049 [details] [review]
matroskademux: Mark streams as being EOS at the right time.

This allows us to stop streaming only when all streams have gone past the
segment.stop and not before.
Comment 2 Mark Nauwelaerts 2010-03-02 15:59:05 UTC
Review of attachment 155049 [details] [review]:

[disclaimer for overlooking stuff]

If a non-flushing seek is done (after the previous segment has played to completion), then how/where is eos cleared on the streams?
Comment 3 Edward Hervey 2010-03-02 17:46:18 UTC
Created attachment 155055 [details] [review]
matroskademux: Mark streams as being EOS at the right time.

This allows us to stop streaming only when all streams have gone past the
segment.stop and not before.
Comment 4 Edward Hervey 2010-03-02 17:46:24 UTC
Created attachment 155056 [details] [review]
matrodemux: Make sure we don't send invalid newsegments
Comment 5 Edward Hervey 2010-03-02 17:47:34 UTC
Updated the initial patch to handle non-flushing seeks.

The second patch is needed since we now end up making sure we've pushed out data on all streams before the end of the segment.
Comment 6 Mark Nauwelaerts 2010-03-02 18:06:03 UTC
Review of attachment 155056 [details] [review]:

Minor typo in 'matrodemux' :)

More seriously, would it make sense here to sprinkle a new_start = MIN (new_start, segment.stop) so that segment would at least advance up to segment.stop?
Comment 7 Edward Hervey 2010-03-02 18:16:46 UTC
Created attachment 155057 [details] [review]
matroskademux: Make sure we don't send invalid newsegments
Comment 8 Edward Hervey 2010-03-02 20:21:35 UTC
commit 869ff4263f1bdee9e41cd69875f9a64535213e22
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Tue Mar 2 18:29:41 2010 +0100

    matroskademux: Make sure we don't send invalid newsegments
    
    Fixes #611501

commit be186bd08979f55e5eed8128377871bae1fab526
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Tue Mar 2 14:09:14 2010 +0100

    matroskademux: Mark streams as being EOS at the right time.
    
    This allows us to stop streaming only when all streams have gone past the
    segment.stop and not before.
    
    Fixes #611501