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 755471 - qtdemux: Segment seeks broken again
qtdemux: Segment seeks broken again
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal blocker
: 1.6.0
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-09-23 14:53 UTC by Vivia Nikolaidou
Modified: 2015-09-24 07:34 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
qtdemux: Only accumulate edts segments manually, not segments created from seeks (1.66 KB, patch)
2015-09-23 17:12 UTC, Sebastian Dröge (slomo)
none Details | Review
qtdemux: Accumulate segments for edit lists before activating the next segment (1.82 KB, patch)
2015-09-23 19:01 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Vivia Nikolaidou 2015-09-23 14:53:42 UTC
(in gst-plugins-good/tests/icles)

./test_segment_seeks /path/to/cats_video.mov
This will play for one second, freeze for one second, and then continue playing.

./test_segment_seeks /path/to/cats_video.asf
This will play for one second and immediately spit out on the console the messages that correspond to the remaining segment seeks - and video disappears after the one second.
Comment 1 Sebastian Dröge (slomo) 2015-09-23 14:55:07 UTC
With asf it's failing also because of bug #755469
Comment 2 Vivia Nikolaidou 2015-09-23 14:56:53 UTC
Oh, forgot to mention - with ASF, the behavior I reported is after I apply the patch in bug #755469
Comment 3 Sebastian Dröge (slomo) 2015-09-23 16:19:05 UTC
With ogg it works fine, with mp4 I can confirm that it freezes during the second one but then plays fine.
Comment 4 Vivia Nikolaidou 2015-09-23 16:34:10 UTC
Test files:
http://ahiru.eu/~vivia/cats_video.asf
http://ahiru.eu/~vivia/claudia.mov

(PS: yes I lied, the .mov file wasn't a cats video!)
Comment 5 Sebastian Dröge (slomo) 2015-09-23 17:03:16 UTC
qtdemux regression caused by: https://bugzilla.gnome.org/show_bug.cgi?id=751361#c6

Let's keep the asfdemux problem in the other bug.
Comment 6 Sebastian Dröge (slomo) 2015-09-23 17:12:26 UTC
Created attachment 311963 [details] [review]
qtdemux: Only accumulate edts segments manually, not segments created from seeks

eceb2ccc739092d964d78945e19c2ecedbd214e2 broke segment seeks by always
accumulating segments. However when we get here because of a seek,
gst_segment_do_seek() already did this work for us and we should not do
anything at all.
Comment 7 Vivia Nikolaidou 2015-09-23 17:18:06 UTC
Thanks, this fixes it here too!
Comment 8 Sebastian Dröge (slomo) 2015-09-23 19:01:05 UTC
Created attachment 311977 [details] [review]
qtdemux: Accumulate segments for edit lists before activating the next segment

eceb2ccc739092d964d78945e19c2ecedbd214e2 broke segment seeks by always
accumulating segments manually when activating a segment. This is only
needed when handling edit lists, not when activating a segment because of a
seek. Do the accumulation when switching edit list segments instead.
Comment 9 Sebastian Dröge (slomo) 2015-09-23 19:02:33 UTC
This also works for me, and the file from bug #345830 works the same as without patches.
Comment 10 Thiago Sousa Santos 2015-09-23 23:12:15 UTC
The patches seem to fix it, yes.

The file from #345830 is very unique and exposes some bugs but none of them are regressions. We can tackle those after the release.
Comment 11 Sebastian Dröge (slomo) 2015-09-24 07:34:19 UTC
commit d7a0fd82c0330404553ee7e4885ade0af68c03ad
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Sep 23 20:59:00 2015 +0200

    qtdemux: Accumulate segments for edit lists before activating the next segment
    
    eceb2ccc739092d964d78945e19c2ecedbd214e2 broke segment seeks by always
    accumulating segments manually when activating a segment. This is only
    needed when handling edit lists, not when activating a segment because of a
    seek. Do the accumulation when switching edit list segments instead.
    
    This fixes segment seeks again, while keeping edit lists playback working.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755471