Missing data with vp8dec/avdec_vp8 and filesink

Jeppe Ledet-Pedersen jlp at steinwurf.com
Mon Aug 25 23:38:19 PDT 2014


Hi,

We're trying to use gstreamer 1.4.0 to multicast a VP8 RTP stream to 
multiple receivers. One of our unit tests consists of transmitting a 
file over the loopback interface and comparing the decoded output to a 
local decode. Basically, our pipelines look like:

Local decode:
   gst-launch-1.0 filesrc location=small.webm ! matroskademux ! vp8dec ! 
filesink location=output-local

Remote client:
   gst-launch-1.0 udpsrc multicast-group=224.3.0.42 auto-multicast=true 
! 'application/x-rtp,payload=96' ! rtpvp8depay ! vp8dec ! filesink 
location=output-remote

Remote server:
   gst-launch-1.0 filesrc location=small.webm ! matroskademux ! 
rtpvp8pay pt=96 ! udpsink host=224.3.0.42 auto-multicast=true

We're testing with this file:

   http://techslides.com/demos/sample-videos/small.webm

The test works as expected if we use the vp8dec element (output-local 
and output-remote are identical):

test % ls -l output*
-rw-r--r-- 1 jlp jlp 44620800 Aug 25 16:55 output-local
-rw-r--r-- 1 jlp jlp 44620800 Aug 25 16:56 output-remote
test % md5sum output*
6c07a9ef488d5ca6150e762ec5c8c6d0  output-local
6c07a9ef488d5ca6150e762ec5c8c6d0  output-remote

We recently switched to the avdec_vp8 decoder because it seems to run 
better on our test devices. However, with the libav decoder, the 
output-local file is always missing the last data, so the test fails:

test % ls -l output*
-rw-r--r-- 1 jlp jlp 42739200 Aug 25 17:02 output-local
-rw-r--r-- 1 jlp jlp 44620800 Aug 25 17:01 output-remote
test % md5sum output* 

e947e40881ff9ea47b3c341c69bab0aa  output-local
6c07a9ef488d5ca6150e762ec5c8c6d0  output-remote

The remote transfer outputs the same data as before. Shouldn't the 
pipeline output all the data on EOS or isn't this guaranteed? Am I 
missing something obvious?

Thanks,

-Jeppe


More information about the gstreamer-devel mailing list