err = 0;
fail:
- ff_cbs_fragment_uninit(priv->cbc, frag);
+ ff_cbs_fragment_reset(priv->cbc, frag);
return err;
}
JPEGRawScanHeader *sh = &priv->scan.header;
VAEncPictureParameterBufferJPEG *vpic = pic->codec_picture_params;
const AVPixFmtDescriptor *desc;
+ const uint8_t components_rgb[3] = { 'R', 'G', 'B' };
+ const uint8_t components_yuv[3] = { 1, 2, 3 };
const uint8_t *components;
int t, i, quant_scale, len;
desc = av_pix_fmt_desc_get(priv->common.input_frames->sw_format);
av_assert0(desc);
if (desc->flags & AV_PIX_FMT_FLAG_RGB)
- components = (uint8_t[3]) { 'R', 'G', 'B' };
+ components = components_rgb;
else
- components = (uint8_t[3]) { 1, 2, 3 };
+ components = components_yuv;
// Frame header.
VAAPIEncodeMJPEGContext *priv = avctx->priv_data;
int err;
- priv->quality = avctx->global_quality;
+ priv->quality = ctx->rc_quality;
if (priv->quality < 1 || priv->quality > 100) {
av_log(avctx, AV_LOG_ERROR, "Invalid quality value %d "
"(must be 1-100).\n", priv->quality);
.configure = &vaapi_encode_mjpeg_configure,
+ .default_quality = 80,
+
.picture_params_size = sizeof(VAEncPictureParameterBufferJPEG),
.init_picture_params = &vaapi_encode_mjpeg_init_picture_params,
{
VAAPIEncodeMJPEGContext *priv = avctx->priv_data;
+ ff_cbs_fragment_free(priv->cbc, &priv->current_fragment);
ff_cbs_close(&priv->cbc);
return ff_vaapi_encode_close(avctx);
};
static const AVCodecDefault vaapi_encode_mjpeg_defaults[] = {
- { "global_quality", "80" },
{ "b", "0" },
{ NULL },
};