From 93da0869e60b58330dc5514e13eda10973b75444 Mon Sep 17 00:00:00 2001 From: Limin Wang Date: Tue, 22 Jun 2021 18:40:03 +0800 Subject: avcodec/libx264: Add support for Sony XAVC Class 300 and 480 Reviewed-by: James Almer Signed-off-by: Limin Wang --- libavcodec/libx264.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'libavcodec') diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 36fdb567ff..d0608e7c55 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -749,6 +749,18 @@ static av_cold int X264_init(AVCodecContext *avctx) av_log(avctx, AV_LOG_ERROR, "x264 too old for AVC Intra, at least version 142 needed\n"); #endif + + if (x4->avcintra_class > 200) { +#if X264_BUILD < 164 + av_log(avctx, AV_LOG_ERROR, + "x264 too old for AVC Intra 300/480, at least version 164 needed\n"); + return AVERROR(EINVAL); +#else + /* AVC-Intra 300/480 only supported by Sony XAVC flavor */ + x4->params.i_avcintra_flavor = X264_AVCINTRA_FLAVOR_SONY; +#endif + } + if (x4->b_bias != INT_MIN) x4->params.i_bframe_bias = x4->b_bias; if (x4->b_pyramid >= 0) @@ -1082,7 +1094,7 @@ static const AVOption options[] = { { "none", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = X264_NAL_HRD_NONE}, INT_MIN, INT_MAX, VE, "nal-hrd" }, { "vbr", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = X264_NAL_HRD_VBR}, INT_MIN, INT_MAX, VE, "nal-hrd" }, { "cbr", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = X264_NAL_HRD_CBR}, INT_MIN, INT_MAX, VE, "nal-hrd" }, - { "avcintra-class","AVC-Intra class 50/100/200", OFFSET(avcintra_class),AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 200 , VE}, + { "avcintra-class","AVC-Intra class 50/100/200/300/480", OFFSET(avcintra_class),AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 480 , VE}, { "me_method", "Set motion estimation method", OFFSET(motion_est), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, X264_ME_TESA, VE, "motion-est"}, { "motion-est", "Set motion estimation method", OFFSET(motion_est), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, X264_ME_TESA, VE, "motion-est"}, { "dia", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = X264_ME_DIA }, INT_MIN, INT_MAX, VE, "motion-est" }, -- cgit v1.2.3