Message ID | 20160907021023.GA13510@brak.lan |
---|---|
State | Accepted |
Headers | show |
Hi Matthew, On Tue, Sep 6, 2016 at 10:10 PM, Matthew Gregan <kinetik@flim.org> wrote: > Hi, > > The attached patch fixes playback of MP4/VP9 media containing superframes > when using the built-in VP9 decoder. > > As an example, > https://github.com/Netflix/vp9-dash/raw/master/DASH-Samples/Fountain_2997_ > 0560kbps_640x480_4x3PAR.ivf_DashUnencrypted.ismv > plays with corrupted frames using ffplay without this patch and works fine > with the patch applied (or with libvpx built with --enable-vp9-highbitdepth > forced via -vcodec libvpx). I think the patch is fine, but I wonder if it should set it to _FULL (the parser ignores the option, but it is semantically more correct). Ronald
From 561c7e9ad45384437124d2d7293c15bfa3712ebb Mon Sep 17 00:00:00 2001 From: Matthew Gregan <kinetik@flim.org> Date: Wed, 7 Sep 2016 13:58:30 +1200 Subject: avformat/mov: Enable header parsing for VP9. MP4 media containing VP9 using superframes (such as https://github.com/Netflix/vp9-dash/raw/master/DASH-Samples/Fountain_2997_0560kbps_640x480_4x3PAR.ivf_DashUnencrypted.ismv) does not decode correctly with the built-in VP9 decoder because superframes are passed to the decoder whole rather than split into individual frames. Signed-off-by: Matthew Gregan <kinetik@flim.org> diff --git a/libavformat/mov.c b/libavformat/mov.c index f499906..faa682a 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2163,6 +2163,9 @@ static int mov_finalize_stsd_codec(MOVContext *c, AVIOContext *pb, case AV_CODEC_ID_VC1: st->need_parsing = AVSTREAM_PARSE_FULL; break; + case AV_CODEC_ID_VP9: + st->need_parsing = AVSTREAM_PARSE_HEADERS; + break; default: break; } -- 2.9.3