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