aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-10-17 22:05:09 -0300
committerJames Almer <jamrial@gmail.com>2017-10-18 11:01:17 -0300
commitd2917501c252d999e5478c4b804e326ac77cf37b (patch)
tree4dd22f6cfe4edcabf238e1bd1819de1f8653b737 /libavcodec
parentdf45ea45df18d909d545cf12769caf85310bebd9 (diff)
downloadffmpeg-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.c6
-rw-r--r--libavcodec/cfhd.h1
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;