ret = config_enc_params(&svt_enc->enc_params, avctx);
if (ret < 0) {
- svt_av1_enc_deinit_handle(svt_enc->svt_handle);
- svt_enc->svt_handle = NULL;
av_log(avctx, AV_LOG_ERROR, "Error configuring encoder parameters\n");
return ret;
}
svt_ret = svt_av1_enc_set_parameter(svt_enc->svt_handle, &svt_enc->enc_params);
if (svt_ret != EB_ErrorNone) {
- svt_av1_enc_deinit_handle(svt_enc->svt_handle);
- svt_enc->svt_handle = NULL;
return svt_print_error(avctx, svt_ret, "Error setting encoder parameters");
}
svt_ret = svt_av1_enc_init(svt_enc->svt_handle);
if (svt_ret != EB_ErrorNone) {
- svt_av1_enc_deinit_handle(svt_enc->svt_handle);
- svt_enc->svt_handle = NULL;
return svt_print_error(avctx, svt_ret, "Error initializing encoder");
}
{ NULL },
};
-AVCodec ff_libsvtav1_encoder = {
+const AVCodec ff_libsvtav1_encoder = {
.name = "libsvtav1",
.long_name = NULL_IF_CONFIG_SMALL("SVT-AV1(Scalable Video Technology for AV1) encoder"),
.priv_data_size = sizeof(SvtContext),
.init = eb_enc_init,
.receive_packet = eb_receive_packet,
.close = eb_enc_close,
- .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_AUTO_THREADS,
+ .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS,
+ .caps_internal = FF_CODEC_CAP_AUTO_THREADS,
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV420P10,
AV_PIX_FMT_NONE },