1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-28 20:53:54 +02:00

avcodec/libx265: switch to get_supported_config()

This commit is contained in:
Niklas Haas 2024-04-05 19:58:07 +02:00
parent 088108fc7a
commit de421cac8b

View File

@ -949,14 +949,28 @@ static const enum AVPixelFormat x265_csp_twelve[] = {
AV_PIX_FMT_NONE AV_PIX_FMT_NONE
}; };
static av_cold void libx265_encode_init_csp(FFCodec *codec) static int libx265_get_supported_config(const AVCodecContext *avctx,
const AVCodec *codec,
enum AVCodecConfig config,
unsigned flags, const void **out,
int *out_num)
{ {
if (x265_api_get(12)) if (config == AV_CODEC_CONFIG_PIX_FORMAT) {
codec->p.pix_fmts = x265_csp_twelve; if (x265_api_get(12)) {
else if (x265_api_get(10)) *out = x265_csp_twelve;
codec->p.pix_fmts = x265_csp_ten; *out_num = FF_ARRAY_ELEMS(x265_csp_twelve) - 1;
else if (x265_api_get(8)) } else if (x265_api_get(10)) {
codec->p.pix_fmts = x265_csp_eight; *out = x265_csp_ten;
*out_num = FF_ARRAY_ELEMS(x265_csp_ten) - 1;
} else if (x265_api_get(8)) {
*out = x265_csp_eight;
*out_num = FF_ARRAY_ELEMS(x265_csp_eight) - 1;
} else
return AVERROR_EXTERNAL;
return 0;
}
return ff_default_get_supported_config(avctx, codec, config, flags, out, out_num);
} }
#define OFFSET(x) offsetof(libx265Context, x) #define OFFSET(x) offsetof(libx265Context, x)
@ -1013,7 +1027,7 @@ FFCodec ff_libx265_encoder = {
.p.priv_class = &class, .p.priv_class = &class,
.p.wrapper_name = "libx265", .p.wrapper_name = "libx265",
.init = libx265_encode_init, .init = libx265_encode_init,
.init_static_data = libx265_encode_init_csp, .get_supported_config = libx265_get_supported_config,
FF_CODEC_ENCODE_CB(libx265_encode_frame), FF_CODEC_ENCODE_CB(libx265_encode_frame),
.close = libx265_encode_close, .close = libx265_encode_close,
.priv_data_size = sizeof(libx265Context), .priv_data_size = sizeof(libx265Context),