[FFmpeg-devel] [PATCH] vp9: add superframe merging bitstream filter.

Michael Niedermayer michael at niedermayer.cc
Sat Feb 20 00:47:00 CET 2016


On Fri, Feb 19, 2016 at 04:28:44PM -0500, Ronald S. Bultje wrote:
> Hi,
> 
> On Fri, Feb 19, 2016 at 3:48 PM, Michael Niedermayer <michael at niedermayer.cc
> > wrote:
> 
> > On Fri, Feb 19, 2016 at 02:43:48PM -0500, Ronald S. Bultje wrote:
> > > Fixes ticket 4313.
> > > ---
> > >  ffmpeg.c                        |   3 +
> > >  libavcodec/Makefile             |   1 +
> > >  libavcodec/allcodecs.c          |   1 +
> > >  libavcodec/vp9_superframe_bsf.c | 189
> > ++++++++++++++++++++++++++++++++++++++++
> > >  libavformat/ivfenc.c            |  13 +++
> > >  libavformat/matroskaenc.c       |   5 +-
> > >  libavformat/mux.c               |  24 ++---
> > >  libavformat/utils.c             |   5 ++
> > >  8 files changed, 229 insertions(+), 12 deletions(-)
> > >  create mode 100644 libavcodec/vp9_superframe_bsf.c
> >
> > breaks fate
> >
> >     acodec-flac-exact-rice
> > TEST    acodec-g723_1
> > TEST    acodec-ra144
> > --- ./tests/ref/acodec/flac     2016-02-17 05:18:12.137817721 +0100
> > +++ tests/data/fate/acodec-flac 2016-02-19 21:47:18.898708417 +0100
> > @@ -1,4 +1,4 @@
> > -151eef9097f944726968bec48649f00a *tests/data/fate/acodec-flac.flac
> > +451ae98137ad04bf6c16c9fc6a862012 *tests/data/fate/acodec-flac.flac
> >  361582 tests/data/fate/acodec-flac.flac
> >  95e54b261530a1bcf6de6fe3b21dc5f6 *tests/data/fate/acodec-flac.out.wav
> >  stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  1058400/  1058400
> > Test acodec-flac failed. Look at tests/data/fate/acodec-flac.err for
> > details.
> > make: *** [fate-acodec-flac] Error 1
> > make: *** Waiting for unfinished jobs....
> > --- ./tests/ref/acodec/flac-exact-rice  2016-02-19 02:07:54.745217610 +0100
> > +++ tests/data/fate/acodec-flac-exact-rice      2016-02-19
> > 21:47:18.934708417 +0100
> > @@ -1,4 +1,4 @@
> > -aab144de213ae684ca008a3e0afe5e28
> > *tests/data/fate/acodec-flac-exact-rice.flac
> > +14f0ff901a80f1c27989187f981277f4
> > *tests/data/fate/acodec-flac-exact-rice.flac
> >  360454 tests/data/fate/acodec-flac-exact-rice.flac
> >  95e54b261530a1bcf6de6fe3b21dc5f6
> > *tests/data/fate/acodec-flac-exact-rice.out.wav
> >  stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  1058400/  1058400
> 
> 
> Hm, OK, so flac abuses empty packets for extradata updates in raw flac as
> container. So I guess I need some novel way to signal "skip this packet" in
> bsfs. Any suggestions? I can come up with something else that's random and
> probably slightly hackish but if you have nicer ideas I can work towards
> that also.

Using the return code could work

checking size and side_data to be 0 could still skip packets which
arent intended to be skiped, this may or may not be a problem in
practice, it fixes the flac issue though

using AVPacket.flags should work but its not directly accessible
from the filter itself without some extension/changes

other hacks like data==NULL && return indicating realllocation
...
could be tried too 


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No great genius has ever existed without some touch of madness. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160220/d8e85b46/attachment.sig>


More information about the ffmpeg-devel mailing list