diff options
author | James Almer <jamrial@gmail.com> | 2017-10-17 22:05:09 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2017-10-18 11:01:17 -0300 |
commit | d2917501c252d999e5478c4b804e326ac77cf37b (patch) | |
tree | 4dd22f6cfe4edcabf238e1bd1819de1f8653b737 /libavcodec | |
parent | df45ea45df18d909d545cf12769caf85310bebd9 (diff) | |
download | ffmpeg-d2917501c252d999e5478c4b804e326ac77cf37b.tar.gz |
avcodec/cfhd: support cropped height tag
Ported from libav. Authored by one of the following:
Anton Khirnov <anton@khirnov.net>
Diego Biurrun <diego@biurrun.de>
Vittorio Giovara <vittorio.giovara@gmail.com>
Reviewed-by: kierank
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/cfhd.c | 6 | ||||
-rw-r--r-- | libavcodec/cfhd.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c index 5646ee8271..fd5555834b 100644 --- a/libavcodec/cfhd.c +++ b/libavcodec/cfhd.c @@ -73,6 +73,7 @@ static void init_frame_defaults(CFHDContext *s) { s->coded_width = 0; s->coded_height = 0; + s->cropped_height = 0; s->bpc = 10; s->channel_cnt = 4; s->subband_cnt = SUBBAND_COUNT; @@ -455,6 +456,9 @@ static int cfhd_decode(AVCodecContext *avctx, void *data, int *got_frame, break; } planes = av_pix_fmt_count_planes(s->coded_format); + } else if (tag == -85) { + av_log(avctx, AV_LOG_DEBUG, "Cropped height %"PRIu16"\n", data); + s->cropped_height = data; } else av_log(avctx, AV_LOG_DEBUG, "Unknown tag %i data %x\n", tag, data); @@ -472,6 +476,8 @@ static int cfhd_decode(AVCodecContext *avctx, void *data, int *got_frame, ret = ff_set_dimensions(avctx, s->coded_width, s->coded_height); if (ret < 0) return ret; + if (s->cropped_height) + avctx->height = s->cropped_height; frame.f->width = frame.f->height = 0; diff --git a/libavcodec/cfhd.h b/libavcodec/cfhd.h index b0a52088aa..2573e750a6 100644 --- a/libavcodec/cfhd.h +++ b/libavcodec/cfhd.h @@ -81,6 +81,7 @@ typedef struct CFHDContext { int coded_width; int coded_height; + int cropped_height; enum AVPixelFormat coded_format; int a_width; |