[vlc-commits] vaapi: inline init and deinit functions
Rémi Denis-Courmont
git at videolan.org
Sat Sep 13 11:24:53 CEST 2014
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Sep 13 12:24:40 2014 +0300| [f32044fc32d4aa252de4859ee98aa85978cac186] | committer: Rémi Denis-Courmont
vaapi: inline init and deinit functions
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f32044fc32d4aa252de4859ee98aa85978cac186
---
modules/codec/avcodec/vaapi.c | 57 +++++++++++++++--------------------------
1 file changed, 20 insertions(+), 37 deletions(-)
diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
index fb32e1c..22b679a 100644
--- a/modules/codec/avcodec/vaapi.c
+++ b/modules/codec/avcodec/vaapi.c
@@ -93,7 +93,6 @@ struct vlc_va_sys_t
bool b_supports_derive;
};
-/* */
static void DestroySurfaces( vlc_va_sys_t *sys )
{
if( sys->image.image_id != VA_INVALID_ID )
@@ -417,8 +416,10 @@ static int Setup( vlc_va_t *va, void **pp_hw_ctx, vlc_fourcc_t *pi_chroma,
return VLC_EGENERIC;
}
-static void Close( vlc_va_sys_t *sys )
+static void Delete( vlc_va_t *va )
{
+ vlc_va_sys_t *sys = va->sys;
+
if( sys->i_surface_width || sys->i_surface_height )
DestroySurfaces( sys );
@@ -431,17 +432,20 @@ static void Close( vlc_va_sys_t *sys )
#ifdef VLC_VA_BACKEND_DRM
close( sys->drm_fd );
#endif
-}
-
-static void Delete( vlc_va_t *va )
-{
- vlc_va_sys_t *sys = va->sys;
- Close( sys );
free( sys );
}
-static int Open( vlc_va_t *va, int i_codec_id, int i_thread_count )
+static int Create( vlc_va_t *va, AVCodecContext *ctx, const es_format_t *fmt )
{
+ (void) fmt;
+#ifdef VLC_VA_BACKEND_XLIB
+ if( !vlc_xlib_init( VLC_OBJECT(va) ) )
+ {
+ msg_Warn( va, "Ignoring VA-X11 API" );
+ return VLC_EGENERIC;
+ }
+#endif
+
vlc_va_sys_t *sys = calloc( 1, sizeof(*sys) );
if ( unlikely(sys == NULL) )
return VLC_ENOMEM;
@@ -452,7 +456,7 @@ static int Open( vlc_va_t *va, int i_codec_id, int i_thread_count )
int i_surface_count;
/* */
- switch( i_codec_id )
+ switch( ctx->codec_id )
{
case AV_CODEC_ID_MPEG1VIDEO:
case AV_CODEC_ID_MPEG2VIDEO:
@@ -473,7 +477,7 @@ static int Open( vlc_va_t *va, int i_codec_id, int i_thread_count )
break;
case AV_CODEC_ID_H264:
i_profile = VAProfileH264High;
- i_surface_count = 16 + i_thread_count + 2;
+ i_surface_count = 16 + ctx->thread_count + 2;
break;;
default:
free( sys );
@@ -571,6 +575,11 @@ static int Open( vlc_va_t *va, int i_codec_id, int i_thread_count )
va->sys = sys;
va->description = vaQueryVendorString( sys->p_display );
+ va->pix_fmt = PIX_FMT_VAAPI_VLD; /* Only VLD supported */
+ va->setup = Setup;
+ va->get = Get;
+ va->release = Release;
+ va->extract = Extract;
return VLC_SUCCESS;
error:
@@ -588,32 +597,6 @@ error:
return VLC_EGENERIC;
}
-static int Create( vlc_va_t *p_va, AVCodecContext *ctx,
- const es_format_t *fmt )
-{
-#ifdef VLC_VA_BACKEND_XLIB
- if( !vlc_xlib_init( VLC_OBJECT(p_va) ) )
- {
- msg_Warn( p_va, "Ignoring VA API" );
- return VLC_EGENERIC;
- }
-#endif
-
- (void) fmt;
-
- int err = Open( p_va, ctx->codec_id, ctx->thread_count );
- if( err )
- return err;
-
- /* Only VLD supported */
- p_va->pix_fmt = PIX_FMT_VAAPI_VLD;
- p_va->setup = Setup;
- p_va->get = Get;
- p_va->release = Release;
- p_va->extract = Extract;
- return VLC_SUCCESS;
-}
-
vlc_module_begin ()
#if defined (VLC_VA_BACKEND_XLIB)
set_description( N_("VA-API video decoder via X11") )
More information about the vlc-commits
mailing list