[FFmpeg-cvslog] Merge commit '7e2561fa8313982aa21f7657953eedeeb33b210d'

Matthieu Bouron git at videolan.org
Thu Mar 30 00:36:38 EEST 2017


ffmpeg | branch: master | Matthieu Bouron <matthieu.bouron at gmail.com> | Wed Mar 29 23:31:20 2017 +0200| [78e871ebbcc6f3c877e7292c4dda0c9979f8ede4] | committer: Matthieu Bouron

Merge commit '7e2561fa8313982aa21f7657953eedeeb33b210d'

* commit '7e2561fa8313982aa21f7657953eedeeb33b210d':
  lavfi: Use ff_get_video_buffer in all filters using hwframes
  vf_hwupload_cuda: Fix build error

Merged-by: Matthieu Bouron <matthieu.bouron at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=78e871ebbcc6f3c877e7292c4dda0c9979f8ede4
---

 libavfilter/vf_deinterlace_qsv.c | 10 ++++------
 libavfilter/vf_hwupload.c        |  9 ++-------
 libavfilter/vf_hwupload_cuda.c   |  8 ++------
 libavfilter/vf_scale_qsv.c       |  6 +-----
 libavfilter/vf_scale_vaapi.c     | 11 +++--------
 5 files changed, 12 insertions(+), 32 deletions(-)

diff --git a/libavfilter/vf_deinterlace_qsv.c b/libavfilter/vf_deinterlace_qsv.c
index e7491e1..2fe74c1 100644
--- a/libavfilter/vf_deinterlace_qsv.c
+++ b/libavfilter/vf_deinterlace_qsv.c
@@ -434,13 +434,11 @@ static int process_frame(AVFilterContext *ctx, const AVFrame *in,
     mfxStatus err;
     int ret, again = 0;
 
-    out = av_frame_alloc();
-    if (!out)
-        return AVERROR(ENOMEM);
-
-    ret = av_hwframe_get_buffer(s->hw_frames_ctx, out, 0);
-    if (ret < 0)
+    out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
+    if (!out) {
+        ret = AVERROR(ENOMEM);
         goto fail;
+    }
 
     surf_out = (mfxFrameSurface1*)out->data[3];
     surf_out->Info.CropW     = outlink->w;
diff --git a/libavfilter/vf_hwupload.c b/libavfilter/vf_hwupload.c
index f54ce9f..9237253 100644
--- a/libavfilter/vf_hwupload.c
+++ b/libavfilter/vf_hwupload.c
@@ -159,15 +159,10 @@ static int hwupload_filter_frame(AVFilterLink *link, AVFrame *input)
     if (input->format == outlink->format)
         return ff_filter_frame(outlink, input);
 
-    output = av_frame_alloc();
+    output = ff_get_video_buffer(outlink, outlink->w, outlink->h);
     if (!output) {
-        err = AVERROR(ENOMEM);
-        goto fail;
-    }
-
-    err = av_hwframe_get_buffer(ctx->hwframes_ref, output, 0);
-    if (err < 0) {
         av_log(ctx, AV_LOG_ERROR, "Failed to allocate frame to upload to.\n");
+        err = AVERROR(ENOMEM);
         goto fail;
     }
 
diff --git a/libavfilter/vf_hwupload_cuda.c b/libavfilter/vf_hwupload_cuda.c
index 49f34b6..1e47ada 100644
--- a/libavfilter/vf_hwupload_cuda.c
+++ b/libavfilter/vf_hwupload_cuda.c
@@ -113,21 +113,17 @@ static int cudaupload_config_output(AVFilterLink *outlink)
 static int cudaupload_filter_frame(AVFilterLink *link, AVFrame *in)
 {
     AVFilterContext   *ctx = link->dst;
-    CudaUploadContext   *s = ctx->priv;
+    AVFilterLink  *outlink = ctx->outputs[0];
 
     AVFrame *out = NULL;
     int ret;
 
-    out = av_frame_alloc();
+    out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
     if (!out) {
         ret = AVERROR(ENOMEM);
         goto fail;
     }
 
-    ret = av_hwframe_get_buffer(s->hwframe, out, 0);
-    if (ret < 0)
-        goto fail;
-
     out->width  = in->width;
     out->height = in->height;
 
diff --git a/libavfilter/vf_scale_qsv.c b/libavfilter/vf_scale_qsv.c
index 88fca8b..52e3ef9 100644
--- a/libavfilter/vf_scale_qsv.c
+++ b/libavfilter/vf_scale_qsv.c
@@ -530,16 +530,12 @@ static int qsvscale_filter_frame(AVFilterLink *link, AVFrame *in)
     AVFrame *out = NULL;
     int ret = 0;
 
-    out = av_frame_alloc();
+    out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
     if (!out) {
         ret = AVERROR(ENOMEM);
         goto fail;
     }
 
-    ret = av_hwframe_get_buffer(s->out_frames_ref, out, 0);
-    if (ret < 0)
-        goto fail;
-
     do {
         err = MFXVideoVPP_RunFrameVPPAsync(s->session,
                                            (mfxFrameSurface1*)in->data[3],
diff --git a/libavfilter/vf_scale_vaapi.c b/libavfilter/vf_scale_vaapi.c
index 8221849..c4334c7 100644
--- a/libavfilter/vf_scale_vaapi.c
+++ b/libavfilter/vf_scale_vaapi.c
@@ -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);


======================================================================

diff --cc libavfilter/vf_hwupload_cuda.c
index 49f34b6,0ab5276..1e47ada
--- a/libavfilter/vf_hwupload_cuda.c
+++ b/libavfilter/vf_hwupload_cuda.c
@@@ -113,7 -151,7 +113,7 @@@ static int cudaupload_config_output(AVF
  static int cudaupload_filter_frame(AVFilterLink *link, AVFrame *in)
  {
      AVFilterContext   *ctx = link->dst;
--    CudaUploadContext   *s = ctx->priv;
++    AVFilterLink  *outlink = ctx->outputs[0];
  
      AVFrame *out = NULL;
      int ret;
diff --cc libavfilter/vf_scale_vaapi.c
index 8221849,67648a9..c4334c7
--- a/libavfilter/vf_scale_vaapi.c
+++ b/libavfilter/vf_scale_vaapi.c
@@@ -31,7 -31,7 +31,8 @@@
  #include "avfilter.h"
  #include "formats.h"
  #include "internal.h"
 +#include "scale.h"
+ #include "video.h"
  
  typedef struct ScaleVAAPIContext {
      const AVClass *class;



More information about the ffmpeg-cvslog mailing list