On Sun, May 8, 2016 at 5:33 PM, Michael Niedermayer <michael@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@niedermayer.cc> wrote:
Fixes Ticket5467
Signed-off-by: Michael Niedermayer <michael@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. - Hendrik