---
On 13/09/16 09:58, Luca Barbato wrote:
> On 12/09/16 23:44, Mark Thompson wrote:
>> Typo: linesize should be linesize[i], but the error is hidden by the 
>> explicit cast.  Probably invisible because AVFrame has to be heap-allocated 
>> and is small, so it will always be sbrked and hence at a low address.
>
> The change seems mixed with another, could you split it? (typo fix ok).

Yeah, the two parts are totally independent.

This part removes the duplicate definition of GET_CALLBACK, with minor fixup 
because the two are subtly different.


 libavutil/hwcontext_vdpau.c | 37 +++++++++++++------------------------
 1 file changed, 13 insertions(+), 24 deletions(-)

diff --git a/libavutil/hwcontext_vdpau.c b/libavutil/hwcontext_vdpau.c
index 9722c10..4860aaa 100644
--- a/libavutil/hwcontext_vdpau.c
+++ b/libavutil/hwcontext_vdpau.c
@@ -127,13 +127,6 @@ static int vdpau_init_pixmfts(AVHWDeviceContext *ctx)
     return 0;
 }

-static int vdpau_device_init(AVHWDeviceContext *ctx)
-{
-    AVVDPAUDeviceContext *hwctx = ctx->hwctx;
-    VDPAUDeviceContext   *priv  = ctx->internal->priv;
-    VdpStatus             err;
-    int                   ret;
-
 #define GET_CALLBACK(id, result)                                               
 \
 do {                                                                           
 \
     void *tmp;                                                                 
 \
@@ -142,15 +135,22 @@ do {
         av_log(ctx, AV_LOG_ERROR, "Error getting the " #id " callback.\n");    
 \
         return AVERROR_UNKNOWN;                                                
 \
     }                                                                          
 \
-    priv->result = tmp;                                                        
 \
+    result = tmp;                                                              
 \
 } while (0)

+static int vdpau_device_init(AVHWDeviceContext *ctx)
+{
+    AVVDPAUDeviceContext *hwctx = ctx->hwctx;
+    VDPAUDeviceContext   *priv  = ctx->internal->priv;
+    VdpStatus             err;
+    int                   ret;
+
     
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES,
-                 get_transfer_caps);
-    GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR, get_data);
-    GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR, put_data);
-    GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_CREATE,           surf_create);
-    GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_DESTROY,          surf_destroy);
+                 priv->get_transfer_caps);
+    GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR, priv->get_data);
+    GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR, priv->put_data);
+    GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_CREATE,           
priv->surf_create);
+    GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_DESTROY,          
priv->surf_destroy);

     ret = vdpau_init_pixmfts(ctx);
     if (ret < 0) {
@@ -444,17 +444,6 @@ static int vdpau_device_create(AVHWDeviceContext *ctx, 
const char *device,
         return AVERROR_UNKNOWN;
     }

-#define GET_CALLBACK(id, result)                                               
 \
-do {                                                                           
 \
-    void *tmp;                                                                 
 \
-    err = hwctx->get_proc_address(hwctx->device, id, &tmp);                    
 \
-    if (err != VDP_STATUS_OK) {                                                
 \
-        av_log(ctx, AV_LOG_ERROR, "Error getting the " #id " callback.\n");    
 \
-        return AVERROR_UNKNOWN;                                                
 \
-    }                                                                          
 \
-    result = tmp;                                                              
 \
-} while (0)
-
     GET_CALLBACK(VDP_FUNC_ID_GET_INFORMATION_STRING, get_information_string);
     GET_CALLBACK(VDP_FUNC_ID_DEVICE_DESTROY,         priv->device_destroy);

-- 
2.9.3

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to