Gapless Playback
Digits
info at digits.tv
Mon Jul 25 00:32:17 UTC 2016
Hi Tim,
Thanks for the link to playback.c - I have now tried this but it only
seems to play multiple mp4 files. Other containers result in demuxer
non-negotiated errors (I tried qtdemux, matroskademux and mpegpsdemux),
the playback then stalls on the last frame. The only modification I
made to the code is to make it print the filenames. However, it
validates the direction I was heading by queuing a complete pipeline and
blocking until required.
DEBUG level2:
dave at OpenGL-Test-2:~/Dropbox/R+D/Digits/Decklink/gstreamer$ ./playout
'/Storage/Tests/matroska/tasA1.mkv' '/Storage/Tests/matroska/tasA2.mkv'
'/Storage/Tests/matroska/tasA3.mkv'
filename: /Storage/Tests/matroska/tasA1.mkv
filename: /Storage/Tests/matroska/tasA2.mkv
filename: /Storage/Tests/matroska/tasA3.mkv
0:00:00.023151845 3326 0x9f14c0 WARN basesrc
gstbasesrc.c:3481:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.023609446 3326 0x9f14c0 WARN basesrc
gstbasesrc.c:3481:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.035824577 3326 0x7f7a100142d0 WARN libav
gstavcodecmap.c:3089:gst_ffmpeg_caps_with_codecid: No specified format
0:00:00.035874890 3326 0x7f7a100142d0 WARN libav
gstavcodecmap.c:2413:gst_ffmpeg_caps_to_pixfmt: ignoring insane
framerate 1/0
0:00:00.151779451 3326 0x7f7a100142d0 WARN alsa
conf.c:4705:snd_config_expand: alsalib error: Unknown parameters {AES0
0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:00.151836019 3326 0x7f7a100142d0 WARN alsa
pcm.c:2239:snd_pcm_open_noupdate: alsalib error: Unknown PCM
default:{AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:00.153569495 3326 0x7f7a100142d0 WARN basesrc
gstbasesrc.c:3481:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.153932424 3326 0x7f7a100142d0 WARN basesrc
gstbasesrc.c:3481:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.159456785 3326 0x7f7a100142d0 WARN libav
gstavviddec.c:1326:gst_ffmpegviddec_video_frame: Change in interlacing !
picture:1, recorded:0
0:00:00.170395006 3326 0x89b590 WARN libav
gstavcodecmap.c:3089:gst_ffmpeg_caps_with_codecid: No specified format
0:00:00.170490941 3326 0x89b590 WARN libav
gstavcodecmap.c:2413:gst_ffmpeg_caps_to_pixfmt: ignoring insane
framerate 1/0
0:00:00.208710409 3326 0x89b590 WARN libav
gstavviddec.c:1326:gst_ffmpegviddec_video_frame: Change in interlacing !
picture:1, recorded:0
0:01:46.734048970 3326 0x7f7a04003e30 WARN basesrc
gstbasesrc.c:3481:gst_base_src_start_complete:<source> pad not activated yet
0:01:46.734437850 3326 0x8a7f20 WARN matroskademux
matroska-demux.c:4639:gst_matroska_demux_loop:<matroskademux1> error:
stream stopped, reason not-negotiated
0:01:46.734602076 3326 0x7f7a04003e30 WARN basesrc
gstbasesrc.c:3481:gst_base_src_start_complete:<source> pad not activated yet
0:01:46.734727856 3326 0x7f7a04003e30 WARN playout
playout.c:454:playout_item_pad_probe_event:
/Storage/Tests/matroska/tasA1.mkv: video pad went EOS before audio pad!
There will be audio/video glitches while switching.
0:01:46.738367932 3326 0x7f79c0004140 WARN libav
gstavcodecmap.c:3089:gst_ffmpeg_caps_with_codecid: No specified format
0:01:46.738407250 3326 0x7f79c0004140 WARN libav
gstavcodecmap.c:2413:gst_ffmpeg_caps_to_pixfmt: ignoring insane
framerate 1/0
0:01:46.755357066 3326 0x7f79c0004140 WARN libav
gstavviddec.c:1326:gst_ffmpegviddec_video_frame: Change in interlacing !
picture:1, recorded:0
0:02:06.600578151 3326 0x9c2d90 WARN xvimagesink
xvimagesink.c:555:gst_xv_image_sink_handle_xevents:<autovideosink0-actual-sink-xvimage>
error: Output window was closed
^C
On 14/07/2016 6:04 PM, Tim Müller wrote:
> On Thu, 2016-07-14 at 16:43 +0930, Digits wrote:
>
> Hi Dave,
>
>> Is gapless playback only possible with playbin? I have a fairly
>> complicated pipeline using a uridecodebin, two video sink bins and an
>> audio sink (plus video and audio converters) which works but I can't
>> load a new uri for gapless playback. I can't persuade playbin to use
>> a similar custom sinkbin which does offer the uri queuing. I am
>> currently trying the approach of using the uridecodebin drained
>> signal to trigger the creation of a new pipeline - it this the
>> correct approach?
> It is of course possible to do gapless playback also with a custom
> pipeline, but it's quite involved and not easy to get right.
>
> There are many ways to achieve the same thing though. If you're looking
> to do some kind of playout application, perhaps this will do the job:
>
> https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/tests/examp
> les/playout.c
>
> Cheers
> -Tim
>
> --
> Tim Müller, Centricular Ltd - http://www.centricular.com
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160725/061f5bdc/attachment-0001.html>
More information about the gstreamer-devel
mailing list