[FFmpeg-cvslog] vaapi_encode_h265: Explicitly set and correct some flags
Mark Thompson
git at videolan.org
Mon Apr 11 06:50:00 EEST 2022
ffmpeg | branch: master | Mark Thompson <sw at jkqxz.net> | Thu Mar 17 14:41:51 2022 +0800| [77fd2f9c7c5c82e5991225a005f4f724ea5a207b] | committer: Haihao Xiang
vaapi_encode_h265: Explicitly set and correct some flags
max_14bit_constraint_flag should be set if the bit depth is not greater than
14 (currently always true).
one_picture_only_flag should not be set because we don't support the still
picture profiles.
general_profile_compatibility_flag should be set according to general_profile_idc
instead of bit depth.
Signed-off-by: Fei Wang <fei.w.wang at intel.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=77fd2f9c7c5c82e5991225a005f4f724ea5a207b
---
libavcodec/vaapi_encode_h265.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c
index 3fa1336bb0..5b19381c5a 100644
--- a/libavcodec/vaapi_encode_h265.c
+++ b/libavcodec/vaapi_encode_h265.c
@@ -303,17 +303,21 @@ static int vaapi_encode_h265_init_sequence_params(AVCodecContext *avctx)
ptl->general_profile_idc = avctx->profile;
ptl->general_tier_flag = priv->tier;
- if (chroma_format == 1) {
- ptl->general_profile_compatibility_flag[1] = bit_depth == 8;
- ptl->general_profile_compatibility_flag[2] = bit_depth <= 10;
+ ptl->general_profile_compatibility_flag[ptl->general_profile_idc] = 1;
+
+ if (ptl->general_profile_compatibility_flag[1])
+ ptl->general_profile_compatibility_flag[2] = 1;
+ if (ptl->general_profile_compatibility_flag[3]) {
+ ptl->general_profile_compatibility_flag[1] = 1;
+ ptl->general_profile_compatibility_flag[2] = 1;
}
- ptl->general_profile_compatibility_flag[4] = 1;
ptl->general_progressive_source_flag = 1;
ptl->general_interlaced_source_flag = 0;
ptl->general_non_packed_constraint_flag = 1;
ptl->general_frame_only_constraint_flag = 1;
+ ptl->general_max_14bit_constraint_flag = bit_depth <= 14;
ptl->general_max_12bit_constraint_flag = bit_depth <= 12;
ptl->general_max_10bit_constraint_flag = bit_depth <= 10;
ptl->general_max_8bit_constraint_flag = bit_depth == 8;
@@ -323,6 +327,7 @@ static int vaapi_encode_h265_init_sequence_params(AVCodecContext *avctx)
ptl->general_max_monochrome_constraint_flag = chroma_format == 0;
ptl->general_intra_constraint_flag = ctx->gop_size == 1;
+ ptl->general_one_picture_only_constraint_flag = 0;
ptl->general_lower_bit_rate_constraint_flag = 1;
More information about the ffmpeg-cvslog
mailing list