[vlc-commits] va: pass AVCodecContext pointer (inner part)

Rémi Denis-Courmont git at videolan.org
Tue Mar 4 21:36:28 CET 2014


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Mar  4 22:33:44 2014 +0200| [d4d02c57196c09d6ae560bdcf923c738a503c4bd] | committer: Rémi Denis-Courmont

va: pass AVCodecContext pointer (inner part)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d4d02c57196c09d6ae560bdcf923c738a503c4bd
---

 modules/codec/avcodec/dxva2.c   |    7 ++++---
 modules/codec/avcodec/hwdummy.c |    6 +++---
 modules/codec/avcodec/va.c      |    4 ++--
 modules/codec/avcodec/vaapi.c   |    7 ++++---
 modules/codec/avcodec/vda.c     |    7 ++++---
 modules/hw/vdpau/avcodec.c      |    8 ++++----
 6 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
index c1d1a4a..1298a5f 100644
--- a/modules/codec/avcodec/dxva2.c
+++ b/modules/codec/avcodec/dxva2.c
@@ -51,7 +51,7 @@
 #include "va.h"
 #include "../../video_chroma/copy.h"
 
-static int Open(vlc_va_t *, int, const es_format_t *);
+static int Open(vlc_va_t *, AVCodecContext *, const es_format_t *);
 static void Close(vlc_va_t *);
 
 vlc_module_begin()
@@ -492,7 +492,8 @@ static void Close(vlc_va_t *external)
     free(va);
 }
 
-static int Open(vlc_va_t *external, int codec_id, const es_format_t *fmt)
+static int Open(vlc_va_t *external, AVCodecContext *ctx,
+                const es_format_t *fmt)
 {
     vlc_va_dxva2_t *va = calloc(1, sizeof(*va));
     if (!va)
@@ -501,7 +502,7 @@ static int Open(vlc_va_t *external, int codec_id, const es_format_t *fmt)
     external->sys = va;
     /* */
     va->log = VLC_OBJECT(external);
-    va->codec_id = codec_id;
+    va->codec_id = ctx->codec_id;
     (void) fmt;
 
     /* Load dll*/
diff --git a/modules/codec/avcodec/hwdummy.c b/modules/codec/avcodec/hwdummy.c
index 76b522b..ebf54cb 100644
--- a/modules/codec/avcodec/hwdummy.c
+++ b/modules/codec/avcodec/hwdummy.c
@@ -35,7 +35,7 @@
 #include <vlc_picture.h>
 #include "../../codec/avcodec/va.h"
 
-static int Open(vlc_va_t *, int, const es_format_t *);
+static int Open(vlc_va_t *, AVCodecContext *, const es_format_t *);
 static void Close(vlc_va_t *);
 
 vlc_module_begin()
@@ -113,7 +113,7 @@ static int Setup(vlc_va_t *va, void **ctxp, vlc_fourcc_t *chromap,
     return VLC_SUCCESS;
 }
 
-static int Open(vlc_va_t *va, int codec, const es_format_t *fmt)
+static int Open(vlc_va_t *va, AVCodecContext *ctx, const es_format_t *fmt)
 {
     union
     {
@@ -125,7 +125,7 @@ static int Open(vlc_va_t *va, int codec, const es_format_t *fmt)
     if (unlikely(sys == NULL))
        return VLC_ENOMEM;
 
-    msg_Dbg(va, "codec %d (%4.4s) profile %d level %d", codec, u.str,
+    msg_Dbg(va, "codec %d (%4.4s) profile %d level %d", ctx->codec_id, u.str,
             fmt->i_profile, fmt->i_level);
 
     sys->context.decoder = DECODER_MAGIC;
diff --git a/modules/codec/avcodec/va.c b/modules/codec/avcodec/va.c
index fb3ad56..f2b22fb 100644
--- a/modules/codec/avcodec/va.c
+++ b/modules/codec/avcodec/va.c
@@ -33,9 +33,9 @@ static int vlc_va_Start(void *func, va_list ap)
     vlc_va_t *va = va_arg(ap, vlc_va_t *);
     AVCodecContext *ctx = va_arg(ap, AVCodecContext *);
     const es_format_t *fmt = va_arg(ap, const es_format_t *);
-    int (*open)(vlc_va_t *, int, const es_format_t *) = func;
+    int (*open)(vlc_va_t *, AVCodecContext *, const es_format_t *) = func;
 
-    return open(va, ctx->codec_id, fmt);
+    return open(va, ctx, fmt);
 }
 
 static void vlc_va_Stop(void *func, va_list ap)
diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
index 1a7b227..139d781 100644
--- a/modules/codec/avcodec/vaapi.c
+++ b/modules/codec/avcodec/vaapi.c
@@ -46,7 +46,7 @@
     vaCreateSurfaces(d, w, h, f, ns, s)
 #endif
 
-static int Create( vlc_va_t *, int, const es_format_t * );
+static int Create( vlc_va_t *, AVCodecContext *, const es_format_t * );
 static void Delete( vlc_va_t * );
 
 vlc_module_begin ()
@@ -541,7 +541,8 @@ static void Delete( vlc_va_t *va )
     free( sys );
 }
 
-static int Create( vlc_va_t *p_va, int i_codec_id, const es_format_t *fmt )
+static int Create( vlc_va_t *p_va, AVCodecContext *ctx,
+                   const es_format_t *fmt )
 {
     if( !vlc_xlib_init( VLC_OBJECT(p_va) ) )
     {
@@ -551,7 +552,7 @@ static int Create( vlc_va_t *p_va, int i_codec_id, const es_format_t *fmt )
 
     (void) fmt;
 
-    int err = Open( p_va, i_codec_id );
+    int err = Open( p_va, ctx->codec_id );
     if( err )
         return err;
 
diff --git a/modules/codec/avcodec/vda.c b/modules/codec/avcodec/vda.c
index 87d0883..ea242e0 100644
--- a/modules/codec/avcodec/vda.c
+++ b/modules/codec/avcodec/vda.c
@@ -39,7 +39,7 @@
 #include <libavcodec/vda.h>
 #include <VideoDecodeAcceleration/VDADecoder.h>
 
-static int Open( vlc_va_t *, int, const es_format_t * );
+static int Open( vlc_va_t *, AVCodecContext *, const es_format_t * );
 static void Close( vlc_va_t * );
 
 static const int  nvda_pix_fmt_list[] = { 0, 1 };
@@ -272,10 +272,11 @@ static void Close( vlc_va_t *external )
     free( p_va );
 }
 
-static int Open( vlc_va_t *external, int i_codec_id, const es_format_t *fmt )
+static int Open( vlc_va_t *external, AVCodecContext *ctx,
+                 const es_format_t *fmt )
 {
     msg_Dbg( external, "opening VDA module" );
-    if( i_codec_id != AV_CODEC_ID_H264 )
+    if( ctx->codec_id != AV_CODEC_ID_H264 )
     {
         msg_Warn( external, "input codec isn't H264, canceling VDA decoding" );
         return VLC_EGENERIC;
diff --git a/modules/hw/vdpau/avcodec.c b/modules/hw/vdpau/avcodec.c
index ad8c21b..c0ba6db 100644
--- a/modules/hw/vdpau/avcodec.c
+++ b/modules/hw/vdpau/avcodec.c
@@ -38,7 +38,7 @@
 #include "vlc_vdpau.h"
 #include "../../codec/avcodec/va.h"
 
-static int Open(vlc_va_t *, int, const es_format_t *);
+static int Open(vlc_va_t *, AVCodecContext *, const es_format_t *);
 static void Close(vlc_va_t *);
 
 vlc_module_begin()
@@ -169,13 +169,13 @@ static int Setup(vlc_va_t *va, void **ctxp, vlc_fourcc_t *chromap,
     return Init(va, ctxp, chromap, width, height);
 }
 
-static int Open(vlc_va_t *va, int codec, const es_format_t *fmt)
+static int Open(vlc_va_t *va, AVCodecContext *ctx, const es_format_t *fmt)
 {
     VdpStatus err;
     VdpDecoderProfile profile;
     int level;
 
-    switch (codec)
+    switch (ctx->codec_id)
     {
       case AV_CODEC_ID_MPEG1VIDEO:
         profile = VDP_DECODER_PROFILE_MPEG1;
@@ -262,7 +262,7 @@ static int Open(vlc_va_t *va, int codec, const es_format_t *fmt)
         break;
 
       default:
-        msg_Err(va, "unknown codec %d", codec);
+        msg_Err(va, "unknown codec %d", ctx->codec_id);
         return VLC_EGENERIC;
     }
 



More information about the vlc-commits mailing list