[vlc-commits] va_surface: use size_t for the surface index
Steve Lhomme
git at videolan.org
Mon Oct 21 09:25:19 CEST 2019
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Mon Oct 21 09:24:53 2019 +0200| [c0162d6dd7e289ce9006c146dfb3e35de4d8ddff] | committer: Steve Lhomme
va_surface: use size_t for the surface index
and read it using a const pointer
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c0162d6dd7e289ce9006c146dfb3e35de4d8ddff
---
modules/codec/avcodec/d3d11va.c | 4 ++--
modules/codec/avcodec/dxva2.c | 6 +++---
modules/codec/avcodec/va_surface.c | 10 +++++-----
modules/codec/avcodec/va_surface_internal.h | 6 +++---
4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c
index 202cb71a20..c0e419e9b5 100644
--- a/modules/codec/avcodec/d3d11va.c
+++ b/modules/codec/avcodec/d3d11va.c
@@ -126,7 +126,7 @@ static int DxGetInputList(vlc_va_t *, input_list_t *);
static int DxSetupOutput(vlc_va_t *, const directx_va_mode_t *, const video_format_t *);
static int DxCreateDecoderSurfaces(vlc_va_t *, int codec_id,
- const video_format_t *fmt, unsigned surface_count);
+ const video_format_t *fmt, size_t surface_count);
static void DxDestroySurfaces(void *);
static void SetupAVCodecContext(void *opaque)
@@ -594,7 +594,7 @@ static bool CanUseDecoderPadding(vlc_va_sys_t *sys)
* It creates a Direct3D11 decoder using the given video format
*/
static int DxCreateDecoderSurfaces(vlc_va_t *va, int codec_id,
- const video_format_t *fmt, unsigned surface_count)
+ const video_format_t *fmt, size_t surface_count)
{
vlc_va_sys_t *sys = va->sys;
HRESULT hr;
diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
index e6999604fa..0ca8f74290 100644
--- a/modules/codec/avcodec/dxva2.c
+++ b/modules/codec/avcodec/dxva2.c
@@ -149,7 +149,7 @@ static int DxGetInputList(vlc_va_t *, input_list_t *);
static int DxSetupOutput(vlc_va_t *, const directx_va_mode_t *, const video_format_t *);
static int DxCreateVideoDecoder(vlc_va_t *, int codec_id,
- const video_format_t *, unsigned surface_count);
+ const video_format_t *, size_t surface_count);
static void DxDestroyVideoDecoder(void *);
static void SetupAVCodecContext(void *opaque)
@@ -542,7 +542,7 @@ static int DxSetupOutput(vlc_va_t *va, const directx_va_mode_t *mode, const vide
* It creates a DXVA2 decoder using the given video format
*/
static int DxCreateVideoDecoder(vlc_va_t *va, int codec_id,
- const video_format_t *fmt, unsigned surface_count)
+ const video_format_t *fmt, size_t surface_count)
{
vlc_va_sys_t *sys = va->sys;
HRESULT hr;
@@ -670,7 +670,7 @@ static int DxCreateVideoDecoder(vlc_va_t *va, int codec_id,
msg_Dbg(va, "IDirectXVideoDecoderService_CreateVideoDecoder succeed");
return VLC_SUCCESS;
error:
- for (unsigned i = 0; i < surface_count; i++)
+ for (size_t i = 0; i < surface_count; i++)
IDirect3DSurface9_Release( sys->hw_surface[i] );
return VLC_EGENERIC;
}
diff --git a/modules/codec/avcodec/va_surface.c b/modules/codec/avcodec/va_surface.c
index 3b0dd98c14..974090ab71 100644
--- a/modules/codec/avcodec/va_surface.c
+++ b/modules/codec/avcodec/va_surface.c
@@ -41,7 +41,7 @@
#define MAX_GET_RETRIES ((VLC_TICK_FROM_SEC(1) + VOUT_OUTMEM_SLEEP) / VOUT_OUTMEM_SLEEP)
struct vlc_va_surface_t {
- unsigned index;
+ size_t index;
atomic_uintptr_t refcount; // 1 ref for the surface existance, 1 per surface/clone in-flight
va_pool_t *va_pool;
};
@@ -49,7 +49,7 @@ struct vlc_va_surface_t {
struct va_pool_t
{
/* */
- unsigned surface_count;
+ size_t surface_count;
unsigned surface_width;
unsigned surface_height;
@@ -77,7 +77,7 @@ static void va_pool_Release(va_pool_t *va_pool)
/* */
int va_pool_SetupDecoder(vlc_va_t *va, va_pool_t *va_pool, const AVCodecContext *avctx,
- const video_format_t *fmt, unsigned count)
+ const video_format_t *fmt, size_t count)
{
if ( va_pool->surface_count >= count &&
va_pool->surface_width == fmt->i_width &&
@@ -101,7 +101,7 @@ int va_pool_SetupDecoder(vlc_va_t *va, va_pool_t *va_pool, const AVCodecContext
va_pool->surface_height = fmt->i_height;
va_pool->surface_count = count;
- for (unsigned i = 0; i < va_pool->surface_count; i++) {
+ for (size_t i = 0; i < va_pool->surface_count; i++) {
vlc_va_surface_t *surface = &va_pool->surface[i];
atomic_init(&surface->refcount, 1);
va_pool_AddRef(va_pool);
@@ -163,7 +163,7 @@ void va_surface_Release(vlc_va_surface_t *surface)
va_pool_Release(surface->va_pool);
}
-unsigned va_surface_GetIndex(vlc_va_surface_t *surface)
+size_t va_surface_GetIndex(const vlc_va_surface_t *surface)
{
return surface->index;
}
diff --git a/modules/codec/avcodec/va_surface_internal.h b/modules/codec/avcodec/va_surface_internal.h
index 3c6a49b4cd..4ed38af02b 100644
--- a/modules/codec/avcodec/va_surface_internal.h
+++ b/modules/codec/avcodec/va_surface_internal.h
@@ -48,7 +48,7 @@ struct va_pool_cfg {
*/
int (*pf_create_decoder_surfaces)(vlc_va_t *, int codec_id,
const video_format_t *fmt,
- unsigned surface_count);
+ size_t surface_count);
/**
* Set the avcodec hw context after the decoder is created
*/
@@ -59,10 +59,10 @@ struct va_pool_cfg {
va_pool_t * va_pool_Create(vlc_va_t *, const struct va_pool_cfg *);
void va_pool_Close(va_pool_t *);
-int va_pool_SetupDecoder(vlc_va_t *, va_pool_t *, const AVCodecContext *, const video_format_t *, unsigned count);
+int va_pool_SetupDecoder(vlc_va_t *, va_pool_t *, const AVCodecContext *, const video_format_t *, size_t count);
vlc_va_surface_t *va_pool_Get(va_pool_t *);
-unsigned va_surface_GetIndex(vlc_va_surface_t *surface);
+size_t va_surface_GetIndex(const vlc_va_surface_t *surface);
void va_surface_AddRef(vlc_va_surface_t *surface);
void va_surface_Release(vlc_va_surface_t *surface);
More information about the vlc-commits
mailing list