[FFmpeg-devel] [PATCH]lavc/exr: Move setting SAR down
Carl Eugen Hoyos
cehoyos at ag.or.at
Wed Jan 27 10:41:12 CET 2016
Hi!
Calling ff_set_sar() before a resolution is set leads to no
aspect ratio being set. I did not find anything in the exr
specification that requires an order of attributes, so move
the call down to ensure it is never called before resolution
was set.
Please comment, Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index c8c758e..9ec99d6 100644
--- a/libavcodec/exr.c
+++ b/libavcodec/exr.c
@@ -1030,7 +1030,7 @@ static int check_header_variable(EXRContext *s,
static int decode_header(EXRContext *s)
{
int current_channel_offset = 0;
- int magic_number, version, flags, i;
+ int magic_number, version, flags, i, sar = 0;
s->xmin = ~0;
s->xmax = ~0;
@@ -1227,8 +1227,7 @@ static int decode_header(EXRContext *s)
if (!var_size)
return AVERROR_INVALIDDATA;
- ff_set_sar(s->avctx,
- av_d2q(av_int2float(bytestream2_get_le32(&s->gb)), 255));
+ sar = bytestream2_get_le32(&s->gb);
continue;
} else if ((var_size = check_header_variable(s, "compression",
@@ -1259,6 +1258,8 @@ static int decode_header(EXRContext *s)
bytestream2_skip(&s->gb, bytestream2_get_le32(&s->gb));
}
+ ff_set_sar(s->avctx, av_d2q(av_int2float(sar), 255));
+
if (s->compression == EXR_UNKN) {
av_log(s->avctx, AV_LOG_ERROR, "Missing compression attribute.\n");
return AVERROR_INVALIDDATA;
More information about the ffmpeg-devel
mailing list