Merge commit '7e2561fa8313982aa21f7657953eedeeb33b210d'
[ffmpeg.git] / libavfilter / vf_scale_vaapi.c
index 8221849..c4334c7 100644 (file)
@@ -32,6 +32,7 @@
 #include "formats.h"
 #include "internal.h"
 #include "scale.h"
+#include "video.h"
 
 typedef struct ScaleVAAPIContext {
     const AVClass *class;
@@ -288,19 +289,13 @@ static int scale_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
     av_log(ctx, AV_LOG_DEBUG, "Using surface %#x for scale input.\n",
            input_surface);
 
-    output_frame = av_frame_alloc();
+    output_frame = ff_get_video_buffer(outlink, ctx->output_width,
+                                       ctx->output_height);
     if (!output_frame) {
-        av_log(ctx, AV_LOG_ERROR, "Failed to allocate output frame.");
         err = AVERROR(ENOMEM);
         goto fail;
     }
 
-    err = av_hwframe_get_buffer(ctx->output_frames_ref, output_frame, 0);
-    if (err < 0) {
-        av_log(ctx, AV_LOG_ERROR, "Failed to get surface for "
-               "output: %d\n.", err);
-    }
-
     output_surface = (VASurfaceID)(uintptr_t)output_frame->data[3];
     av_log(ctx, AV_LOG_DEBUG, "Using surface %#x for scale output.\n",
            output_surface);