Anton Khirnov <[email protected]> writes:
> From: Stefano Sabatini <[email protected]>
>
> The sample aspect ratio is a per-frame property, so it makes sense to
> define it in AVFrame rather than in the codec/stream context.
> Simplify application-level sample aspect ratio information extraction,
> and allow further simplifications.
> ---
> avplay.c | 2 +-
> cmdutils.c | 1 +
> libavcodec/avcodec.h | 7 +++++++
> libavcodec/utils.c | 3 +++
> libavfilter/vsrc_movie.c | 4 ++--
> 5 files changed, 14 insertions(+), 3 deletions(-)
[...]
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 5d39b98..108e8b0 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -1258,6 +1258,13 @@ typedef struct AVFrame {
> * decoding: set by AVCodecContext.get_buffer()
> */
> uint8_t **extended_data;
> +
> + /**
> + * reordered sample aspect ratio for the video frame, 0/1 if
> unknown\unspecified
> + * - encoding: unused
> + * - decoding: Read by user.
> + */
> + AVRational sample_aspect_ratio;
> } AVFrame;
Drop "reordered". It is confusing.
> @@ -858,6 +859,8 @@ int attribute_align_arg
> avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi
> ret = avctx->codec->decode(avctx, picture, got_picture_ptr,
> avpkt);
> picture->pkt_dts= avpkt->dts;
> + if (!picture->sample_aspect_ratio.num)
> + picture->sample_aspect_ratio = avctx->sample_aspect_ratio;
> }
What is the rationale for this condition? When would it be set to a
valid value different from what this would write?
--
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel