diff options
author | Linjie Fu <linjie.fu@intel.com> | 2020-03-08 16:28:46 +0800 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2020-03-09 23:44:04 +0000 |
commit | 2847c5c6f93b00c0ec9fb82dba7c382faf7335cc (patch) | |
tree | 52a12b4639b74dd662ee4f872b839f2438a38f78 /libavcodec | |
parent | e6c5329a4302e3085855e7e6e7f147ec28c7f02b (diff) | |
download | ffmpeg-2847c5c6f93b00c0ec9fb82dba7c382faf7335cc.tar.gz |
lavc/vaapi_encode_h265: fix conf_win_xxx_offset for 4:2:2/4:4:4 encoding
Use desc->log2_chroma_w/h to calculate the sps->conf_win_right/bottom_offset.
Based on Table 6-1, SubWidthC and SubHeightC depend on chroma format(log2_chroma_w/h).
Based on D-28 and D-29, set the correct cropped width/height.
croppedWidth = pic_width_in_luma_samples −
SubWidthC * ( conf_win_right_offset + conf_win_left_offset );
croppedHeight = pic_height_in_luma_samples −
SubHeightC * ( conf_win_bottom_offset + conf_win_top_offset );
Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/vaapi_encode_h265.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c index 538862a9d5..97dc5a7e75 100644 --- a/libavcodec/vaapi_encode_h265.c +++ b/libavcodec/vaapi_encode_h265.c @@ -410,10 +410,10 @@ static int vaapi_encode_h265_init_sequence_params(AVCodecContext *avctx) sps->conformance_window_flag = 1; sps->conf_win_left_offset = 0; sps->conf_win_right_offset = - (ctx->surface_width - avctx->width) / 2; + (ctx->surface_width - avctx->width) >> desc->log2_chroma_w; sps->conf_win_top_offset = 0; sps->conf_win_bottom_offset = - (ctx->surface_height - avctx->height) / 2; + (ctx->surface_height - avctx->height) >> desc->log2_chroma_h; } else { sps->conformance_window_flag = 0; } |