[FFmpeg-devel] [PATCH] avcodec: add properties for lossless to AVCodecParameters

Michael Niedermayer michael at niedermayer.cc
Wed May 18 16:33:13 CEST 2016


On Mon, May 09, 2016 at 02:29:50PM +0200, Michael Niedermayer wrote:
> On Sun, May 08, 2016 at 05:42:13PM +0200, Hendrik Leppkes wrote:
> > On Sun, May 8, 2016 at 5:33 PM, Michael Niedermayer
> > <michael at niedermayer.cc> wrote:
> > > On Sun, May 08, 2016 at 04:10:01PM +0200, wm4 wrote:
> > >> On Sun,  8 May 2016 12:10:07 +0200
> > >> Michael Niedermayer <michael at niedermayer.cc> wrote:
> > >>
> > >> > Fixes Ticket5467
> > >> >
> > >> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > >> > ---
> > >> >  libavcodec/avcodec.h |    4 ++++
> > >> >  libavcodec/utils.c   |    2 ++
> > >> >  2 files changed, 6 insertions(+)
> > >> >
> > >> > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> > >> > index 3813a0a..1db2e0f 100644
> > >> > --- a/libavcodec/avcodec.h
> > >> > +++ b/libavcodec/avcodec.h
> > >> > @@ -4050,6 +4050,10 @@ typedef struct AVCodecParameters {
> > >> >       * Audio only. Number of samples to skip after a discontinuity.
> > >> >       */
> > >> >      int seek_preroll;
> > >> > +
> > >> > +    /** Properties, like FF_CODEC_PROPERTY_LOSSLESS.
> > >> > +     */
> > >> > +    int properties;
> > >> >  } AVCodecParameters;
> > >> >
> > >> >  /**
> > >> > diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> > >> > index e6609ef..8638bc2 100644
> > >> > --- a/libavcodec/utils.c
> > >> > +++ b/libavcodec/utils.c
> > >> > @@ -4076,6 +4076,7 @@ int avcodec_parameters_from_context(AVCodecParameters *par,
> > >> >      par->bits_per_raw_sample   = codec->bits_per_raw_sample;
> > >> >      par->profile               = codec->profile;
> > >> >      par->level                 = codec->level;
> > >> > +    par->properties            = codec->properties;
> > >> >
> > >> >      switch (par->codec_type) {
> > >> >      case AVMEDIA_TYPE_VIDEO:
> > >> > @@ -4130,6 +4131,7 @@ int avcodec_parameters_to_context(AVCodecContext *codec,
> > >> >      codec->bits_per_raw_sample   = par->bits_per_raw_sample;
> > >> >      codec->profile               = par->profile;
> > >> >      codec->level                 = par->level;
> > >> > +    codec->properties            = par->properties;
> > >> >
> > >> >      switch (par->codec_type) {
> > >> >      case AVMEDIA_TYPE_VIDEO:
> > >>
> > >> Can you explain what exactly this is needed for?
> > >
> > > User apps can with this identify which streams are lossless without
> > > them needing to open decoders for each stream and explicitly decode
> > > some frames for each stream.
> > >
> > > it fixes a regression where this information is incorrectly printed
> > > by av_dump_format()
> > >
> > > it fixes a regression where the existing lossless flag as documented by
> > > the current documentation is set incorrectly
> > >
> > 

> > We can copy it to the deprecated st->codec to keep the existing things
> > working, but it still remains not a container flag, and the purpose of
> > this structure is not to export every single piece of information a
> > decoder might output.
> 
> this can be done but then dump_stream_format() would also need to move
> back to using the deprecated struct (for that field at least) instead
> of just codec par, not sure thats the only function thats affected ...

question to all:
should i work on / implement above ?


[...]


-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Opposition brings concord. Out of discord comes the fairest harmony.
-- Heraclitus
-------------- 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/20160518/b8e29cdd/attachment.sig>


More information about the ffmpeg-devel mailing list