GNOME Bugzilla – Bug 776610
asfdemux: audio stops playing for a few seconds in Wildlife.wmv
Last modified: 2018-05-12 06:33:33 UTC
All since quite a while there are problems with wmv media. That media did played well with gst-0.1 and the early gst-1.0 versions . Dunno since when it's broken. I think (not sure anymore) the media did played ok up to gst-1.4.5 then broken since then. What happens I added I link to media sample here : https://www.dropbox.com/s/97niik9rg3je052/Wildlife.wmv?dl=1 That is a original microsoft specially good made test sample. Info off sample : video/x-ms-asf Windows media Video 9 screen video/x-wmv, wmvversion=(int)3, format=(string)WVC1, width=(int)1280, height=(int)720, framerate=(fraction)5000000/166833; Windows media 8 audio audio/x-wma, wmaversion=(int)2, bitrate=(int)192040, depth=(int)16, rate=(int)44100, channels=(int)2, block_align=(int)4459; The movie starts well and audio starts well after acouple of seconds audio stops and after a couple of seconds later audio continus. Think that the bugs one new: https://bugzilla.gnome.org/show_bug.cgi?id=690130 and one Resolved Incomplete are related to same problem Pc ubuntu 16.04 . Problem there with ubuntu gstreamer distro version 1.8.x and totem. gst-play-1.0 or gstlaunch-1.0 Also there whait last gst-1.11.0.1 git own build on ubuntu 16.04 git clone of 29-12-2016
additional info media plays perfect when using vlc (which is using ffmpeg). On a stb where sinks(stb gstreamer-dvbmediasink) are running async and for video bmcv codecs are used (internal) audio gstreamer is used with gst-libav(for the wma convertion to audio pcm raw) the media plays ok but with a audio glitch at the same point of sample that the audio stops when playing on ubuntu.
Thanks for the sample file. I can reproduce this with gst-libav decoders. Moving to asfdemux until we know more.
As extra info on a stb the same media when : running with a stb which has the wma and wmv codecs on board like gigablue, the sink's are running synchronized (works so what perfect for all media on a gigablue quadplus stb(base stb type gb7356 mipsel32) and on a mutant51 (hd51 arm) 4K box) This media runs even worse. then audio stops then video stops .then video restarts audio restarts. With sink running async it runs but has a short glitch. On audio after +- 3seconds . Looks indeed like a asfdemux isue on pts.
Setting larger buffering limits on decodebin makes the problem go away. My first impression is that it is an interleaving/buffering problem.
It has a preroll of 8s, and the video is inteleaved 3-4s ahead of the audio. Pads are only added and buffers pushed once it has read 8s of all streams, at this point, the video is already around 12s and audio is at 8s. My guess is that when pushing video data it will block at a queue and it will cause the audio to starve.
So actually if I increase the decodebin limits just for media with that codec , is that possible from out videosink or is that a option that can be set when using playbin ?
Works fine with playbin3 for me fwiw (which handles interleaving better).
I just give it a try on a gb7356 stb with standard playbin but I set the buffer to 10 seconds or 10 MB . Then it works perfect. (the sinks working syncronized) And I used internal stb wmv/wma codecs.
Hi thank's to this issue I dug a bit deeper into the buffer. more actually the buffersize. Long before there was a default value off 2 mb 2 sec . That was it. But now I saw that there is a parameter auto which is 0 . Gues then the buffersize is adapted in function of media type ? or is it a fix value of always 2 which will show up there ?
Works fine in decodebin3/playbin3. Most likely a massive interleave issue.
Closing since it works fine in decodebin3/playbin3.