mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-08 06:09:50 +00:00
vaapi_encode: Refactor slightly to allow easier setting of global options
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
18019f8cb9
commit
f6b8552369
5 changed files with 73 additions and 42 deletions
|
|
@ -333,17 +333,18 @@ static int vaapi_encode_mjpeg_init_slice_params(AVCodecContext *avctx,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static VAConfigAttrib vaapi_encode_mjpeg_config_attributes[] = {
|
||||
{ .type = VAConfigAttribRTFormat,
|
||||
.value = VA_RT_FORMAT_YUV420 },
|
||||
{ .type = VAConfigAttribEncPackedHeaders,
|
||||
.value = VA_ENC_PACKED_HEADER_SEQUENCE },
|
||||
};
|
||||
|
||||
static av_cold int vaapi_encode_mjpeg_init_internal(AVCodecContext *avctx)
|
||||
{
|
||||
static const VAConfigAttrib default_config_attributes[] = {
|
||||
{ .type = VAConfigAttribRTFormat,
|
||||
.value = VA_RT_FORMAT_YUV420 },
|
||||
{ .type = VAConfigAttribEncPackedHeaders,
|
||||
.value = VA_ENC_PACKED_HEADER_SEQUENCE },
|
||||
};
|
||||
|
||||
VAAPIEncodeContext *ctx = avctx->priv_data;
|
||||
VAAPIEncodeMJPEGContext *priv = ctx->priv_data;
|
||||
int i;
|
||||
|
||||
ctx->va_profile = VAProfileJPEGBaseline;
|
||||
ctx->va_entrypoint = VAEntrypointEncPicture;
|
||||
|
|
@ -353,9 +354,10 @@ static av_cold int vaapi_encode_mjpeg_init_internal(AVCodecContext *avctx)
|
|||
ctx->aligned_width = FFALIGN(ctx->input_width, 8);
|
||||
ctx->aligned_height = FFALIGN(ctx->input_height, 8);
|
||||
|
||||
ctx->config_attributes = vaapi_encode_mjpeg_config_attributes;
|
||||
ctx->nb_config_attributes =
|
||||
FF_ARRAY_ELEMS(vaapi_encode_mjpeg_config_attributes);
|
||||
for (i = 0; i < FF_ARRAY_ELEMS(default_config_attributes); i++) {
|
||||
ctx->config_attributes[ctx->nb_config_attributes++] =
|
||||
default_config_attributes[i];
|
||||
}
|
||||
|
||||
priv->quality = avctx->global_quality;
|
||||
if (priv->quality < 1 || priv->quality > 100) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue