GNOME Bugzilla – Bug 777738
flacparse: fix FLAC streaming for non-0 start sample
Last modified: 2017-03-17 16:30:00 UTC
The stream https://chiru.no:8081/stream.flac does not work with GStreamer, but works with VLC or MPV. 1) gst-play-1.0 https://chiru.no:8081/stream.flac 2) Buffers to 100% Expected: starts playing Actual: nothing happens Using 1.10.2
Confirmed, also with master and when playing locally the stream
Problem here is that the first PTS is many hours in the future and not starting at 0
Created attachment 348086 [details] [review] flacparse: fix playback if sample number does not start at 0
Comment on attachment 348086 [details] [review] flacparse: fix playback if sample number does not start at 0 Looks good to me but an even nicer solution would of course be to adjust the segment but keep timestamps as-is.
Yes, though none of the audio parsers there made any segment event, so I did not go there. I'm guessing there's no particular reason they don't then ?
commit 0747b56f8e7f4731d67f8d13a4bdc453dde0fdf7 Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Thu Mar 16 13:54:54 2017 +0000 flacparse: fix playback if sample number does not start at 0 https://bugzilla.gnome.org/show_bug.cgi?id=777738
(In reply to Vincent Penquerc'h from comment #5) > Yes, though none of the audio parsers there made any segment event, so I did > not go there. I'm guessing there's no particular reason they don't then ? It's tricky because of the base class managing the segment
This breaks various validate tests, e.g. https://ci.gstreamer.net/job/GStreamer-master-validate/4670/testReport/junit/validate.file.playback/seek_with_stop/samples_multimedia_cx_flac_Yesterday_flac/
The flac file used in that command is a (broken) symlink in the current gst-integration-testsuites repo. How do I get/pull the actual file ?
nvm, I found how.
Works here though, repeatedly: $ cat ./run-flac-validate.sh /home/v/src/gst-devtools/validate/tools/gst-validate-1.0-debug playbin uri=file:///home/v/src/gst-integration-testsuites/medias/defaults/flac/samples.multimedia.cx_flac_Yesterday.flac audio-sink=fakesink sync=true video-sink=fakesink sync=true --set-media-info /home/v/src/gst-integration-testsuites/medias/defaults/flac/samples.multimedia.cx_flac_Yesterday.flac.media_info $ ./run-flac-validate.sh Starting pipeline Pipeline started issue : EOS events that are part of the same pipeline 'operation' should have the same seqnum Detected on <flacparse0:src> Detected on <flacdec0:sink> Detected on <flacdec0:src> Detected on <inputselector0:sink_0> Detected on <inputselector0:src> Detected on <audiotee:sink> Detected on <audiotee:src_0> Detected on <streamsynchronizer0:sink_0> Detected on <streamsynchronizer0:src_0> Detected on <aqueue:sink> Detected on <aqueue:src> Detected on <conv:sink> Detected on <conv:src> Detected on <resample:sink> Detected on <resample:src> Detected on <volume:sink> Detected on <volume:src> Detected on <fakesink0:sink> Description : when events/messages are created from another event/message, they should have their seqnums set to the original event/message seqnum warning : received the same caps twice Detected on <flacdec0:sink> Issues found: 2 =======> Test PASSED (Return value: 0)
Does it break for you (locally) ?
It also breaks a unit test: https://ci.gstreamer.net/job/GStreamer-master/lastBuild/testReport/junit/(root)/flacdec/test_decode_seek_partial/ And gst-validate consistently fails.
I can't run unit tests, I'm getting a hang in gst_poll when loading the registry. I've reverted the FLAC patch for now.
I can see the unit test failure now. Will fix.
Created attachment 348177 [details] [review] fix overeager selection of first sample number This (plus reverting the previous revert) fixes the unit test without breaking the file playback.
Comment on attachment 348177 [details] [review] fix overeager selection of first sample number Makes sense. Now does it also fix gst-validate? :) When merging, please squash this with the original patch... instead of reverting the revert. Less noise
The gst-validate test passes here with this. But it also did before, so that doesn't tell much.
Created attachment 348180 [details] [review] flacparse: fix playback if sample number does not start at 0
I don't think one can get the gst-validate on the build server to try a patch, right ? I'd have to push it first ?
Yes
I think the gst-validate test passed: https://ci.gstreamer.net/job/GStreamer-master-validate/lastStableBuild/
Yes, thanks!