summaryrefslogtreecommitdiff
path: root/libavcodec/hevc_ps.c
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2016-03-13 13:15:17 +0100
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2016-03-13 13:15:17 +0100
commit4405ff2cae5066b68552bb529a7b49efc1413899 (patch)
treec830b1a0f5ab65ff667f6bd110c198da484004fc /libavcodec/hevc_ps.c
parented5d295a6983c162bd136a33a17e40e92dca4284 (diff)
lavc/hevc_ps: Fix default display window offsets for yuv422 and yuv444.
Diffstat (limited to 'libavcodec/hevc_ps.c')
-rw-r--r--libavcodec/hevc_ps.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index a36c6ee149..ce3f3dfa8e 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -596,11 +596,12 @@ static void decode_vui(GetBitContext *gb, AVCodecContext *avctx,
memcpy(&backup, gb, sizeof(backup));
if (vui->default_display_window_flag) {
- //TODO: * 2 is only valid for 420
- vui->def_disp_win.left_offset = get_ue_golomb_long(gb) * 2;
- vui->def_disp_win.right_offset = get_ue_golomb_long(gb) * 2;
- vui->def_disp_win.top_offset = get_ue_golomb_long(gb) * 2;
- vui->def_disp_win.bottom_offset = get_ue_golomb_long(gb) * 2;
+ int vert_mult = 1 + (sps->chroma_format_idc < 2);
+ int horiz_mult = 1 + (sps->chroma_format_idc < 3);
+ vui->def_disp_win.left_offset = get_ue_golomb_long(gb) * horiz_mult;
+ vui->def_disp_win.right_offset = get_ue_golomb_long(gb) * horiz_mult;
+ vui->def_disp_win.top_offset = get_ue_golomb_long(gb) * vert_mult;
+ vui->def_disp_win.bottom_offset = get_ue_golomb_long(gb) * vert_mult;
if (apply_defdispwin &&
avctx->flags2 & AV_CODEC_FLAG2_IGNORE_CROP) {