On Sun, May 08, 2016 at 05:42:13PM +0200, Hendrik Leppkes wrote: > On Sun, May 8, 2016 at 5:33 PM, Michael Niedermayer > <mich...@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 <mich...@niedermayer.cc> wrote: > >> > >> > Fixes Ticket5467 > >> > > >> > Signed-off-by: Michael Niedermayer <mich...@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 ... Also theres a deeper problem, User want, benefit from and sometimes need, "every single piece of information a decoder might output.", well not "every" of course but its hard to draw lines what may be needed and what not. Having an API that provides this information without user apps needing to implement full data collection using low level APIs dealing with errors and unseekable protocols, ... should be quite useful [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB I know you won't believe me, but the highest form of Human Excellence is to question oneself and others. -- Socrates
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel