]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_misc_vaapi.c
avfilter: Constify all AVFilters
[ffmpeg] / libavfilter / vf_misc_vaapi.c
index e227c9ff6b9a3fc30625a98f5cba5aca113fe92a..08a0917258f246cad4b438d7ade70d9a94b56104 100644 (file)
@@ -84,10 +84,9 @@ static int denoise_vaapi_build_filter_params(AVFilterContext *avctx)
     denoise.value =  map(ctx->denoise, DENOISE_MIN, DENOISE_MAX,
                          caps.range.min_value,
                          caps.range.max_value);
-    ff_vaapi_vpp_make_param_buffers(avctx, VAProcFilterParameterBufferType,
-                                    &denoise, sizeof(denoise), 1);
-
-    return 0;
+    return ff_vaapi_vpp_make_param_buffers(avctx,
+                                           VAProcFilterParameterBufferType,
+                                           &denoise, sizeof(denoise), 1);
 }
 
 static int sharpness_vaapi_build_filter_params(AVFilterContext *avctx)
@@ -116,11 +115,9 @@ static int sharpness_vaapi_build_filter_params(AVFilterContext *avctx)
                           SHARPNESS_MIN, SHARPNESS_MAX,
                           caps.range.min_value,
                           caps.range.max_value);
-    ff_vaapi_vpp_make_param_buffers(avctx,
-                                    VAProcFilterParameterBufferType,
-                                    &sharpness, sizeof(sharpness), 1);
-
-    return 0;
+    return ff_vaapi_vpp_make_param_buffers(avctx,
+                                           VAProcFilterParameterBufferType,
+                                           &sharpness, sizeof(sharpness), 1);
 }
 
 static int misc_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
@@ -129,9 +126,6 @@ static int misc_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
     AVFilterLink *outlink    = avctx->outputs[0];
     VAAPIVPPContext *vpp_ctx = avctx->priv;
     AVFrame *output_frame    = NULL;
-    VASurfaceID input_surface, output_surface;
-    VARectangle input_region;
-
     VAProcPipelineParameterBuffer params;
     int err;
 
@@ -142,10 +136,6 @@ static int misc_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
     if (vpp_ctx->va_context == VA_INVALID_ID)
         return AVERROR(EINVAL);
 
-    input_surface = (VASurfaceID)(uintptr_t)input_frame->data[3];
-    av_log(avctx, AV_LOG_DEBUG, "Using surface %#x for misc vpp input.\n",
-           input_surface);
-
     output_frame = ff_get_video_buffer(outlink, vpp_ctx->output_width,
                                        vpp_ctx->output_height);
     if (!output_frame) {
@@ -153,40 +143,24 @@ static int misc_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
         goto fail;
     }
 
-    output_surface = (VASurfaceID)(uintptr_t)output_frame->data[3];
-    av_log(avctx, AV_LOG_DEBUG, "Using surface %#x for misc vpp output.\n",
-           output_surface);
-    memset(&params, 0, sizeof(params));
-    input_region = (VARectangle) {
-        .x      = 0,
-        .y      = 0,
-        .width  = input_frame->width,
-        .height = input_frame->height,
-    };
+    err = av_frame_copy_props(output_frame, input_frame);
+    if (err < 0)
+        goto fail;
+
+    err = ff_vaapi_vpp_init_params(avctx, &params,
+                                   input_frame, output_frame);
+    if (err < 0)
+        goto fail;
 
     if (vpp_ctx->nb_filter_buffers) {
         params.filters     = &vpp_ctx->filter_buffers[0];
         params.num_filters = vpp_ctx->nb_filter_buffers;
     }
-    params.surface = input_surface;
-    params.surface_region = &input_region;
-    params.surface_color_standard =
-        ff_vaapi_vpp_colour_standard(input_frame->colorspace);
-
-    params.output_region = NULL;
-    params.output_background_color = VAAPI_VPP_BACKGROUND_BLACK;
-    params.output_color_standard = params.surface_color_standard;
 
-    params.pipeline_flags = 0;
-    params.filter_flags = VA_FRAME_PICTURE;
-
-    err = ff_vaapi_vpp_render_picture(avctx, &params, output_surface);
+    err = ff_vaapi_vpp_render_picture(avctx, &params, output_frame);
     if (err < 0)
         goto fail;
 
-    err = av_frame_copy_props(output_frame, input_frame);
-    if (err < 0)
-        goto fail;
     av_frame_free(&input_frame);
 
     av_log(avctx, AV_LOG_DEBUG, "Filter output: %s, %ux%u (%"PRId64").\n",
@@ -262,7 +236,7 @@ static const AVFilterPad misc_vaapi_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_denoise_vaapi = {
+const AVFilter ff_vf_denoise_vaapi = {
     .name          = "denoise_vaapi",
     .description   = NULL_IF_CONFIG_SMALL("VAAPI VPP for de-noise"),
     .priv_size     = sizeof(DenoiseVAAPIContext),
@@ -275,7 +249,7 @@ AVFilter ff_vf_denoise_vaapi = {
     .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
 };
 
-AVFilter ff_vf_sharpness_vaapi = {
+const AVFilter ff_vf_sharpness_vaapi = {
     .name          = "sharpness_vaapi",
     .description   = NULL_IF_CONFIG_SMALL("VAAPI VPP for sharpness"),
     .priv_size     = sizeof(SharpnessVAAPIContext),