[FFmpeg-devel] [PATCH v3 1/2] avcodec/libx264: Add support for Sony XAVC Class 300 and 480
James Almer
jamrial at gmail.com
Tue Jun 22 04:37:38 EEST 2021
On 6/21/2021 10:36 PM, lance.lmwang at gmail.com wrote:
> From: Limin Wang <lance.lmwang at gmail.com>
>
> Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> ---
> libavcodec/libx264.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
> index 36fdb56..d580f5a 100644
> --- a/libavcodec/libx264.c
> +++ b/libavcodec/libx264.c
> @@ -749,6 +749,19 @@ 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 X264_BUILD >= 142
> + 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);
> +#endif
> + /* AVC-Intra 300/480 only supported by Sony XAVC flavor */
> + x4->params.i_avcintra_flavor = X264_AVCINTRA_FLAVOR_SONY;
This field and define were added in X264_BUILD 157. Anything from 142 to
156 will fail to compile.
You should also merge this with the x4->avcintra_class >= 0 check above.
> + }
> +#endif
> +
> if (x4->b_bias != INT_MIN)
> x4->params.i_bframe_bias = x4->b_bias;
> if (x4->b_pyramid >= 0)
> @@ -1082,7 +1095,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" },
>
More information about the ffmpeg-devel
mailing list