matanbs / webm

Automatically exported from code.google.com/p/webm
0 stars 0 forks source link

libvpx fragments input decoder is broken #882

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Since commit 7050074756c0642ab2742a2a5db85d9ac5f4e5e0 , the vp8 decoder cannot 
decode a fragmented input. 
VP9 is probably impacted as well, since the commit changes both 
vp[8-9]_decode() functions in the same manner.

The usual way to manage fragmented input is to push data to the decoder with 
`vpx_decode( packet data )`, then call `vpx_decode( NULL )` to tell it that it 
now has a full frame packet. 

The solution is to revert the commit, after which a call to vpx_decode() with 
NULL/0 data will correctly manage the fragments to reconstruct a full frame.

This has failed to trigger your tests failures because they do not include 
fragmented tests, from what I see grepping the VPX code.

The full story is that we (Linphone) have upgraded libvpx to a fairly recent 
version for the arm64 transition on iOS. Our usage pattern (VoIP) needs 
fragmentation to work reliably over tricky network conditions, so we 
immediately saw that the fragmented mode didn't work.

Original issue reported on code.google.com by gbi.linp...@gmail.com on 20 Nov 2014 at 2:55

GoogleCodeExporter commented 9 years ago

Original comment by hku...@google.com on 20 Nov 2014 at 4:09

GoogleCodeExporter commented 9 years ago
Thanks for the report. I will fix it.

Original comment by hku...@google.com on 20 Nov 2014 at 4:09

GoogleCodeExporter commented 9 years ago

Original comment by renganat...@google.com on 20 Nov 2014 at 11:16

GoogleCodeExporter commented 9 years ago
Hi, a patch is uploaded here:
https://gerrit.chromium.org/gerrit/#/c/72224/1

I did not revert the code in vp9 as vp9 does not support fragment decode/encode 
and vp9 needs that flag in frame parallel decode.

Original comment by hku...@google.com on 21 Nov 2014 at 12:00