[vlc-devel] [PATCH] omxil: Remove reference counting in the IOMX wrapper
Martin Storsjö
martin at martin.st
Sun Oct 2 22:06:42 CEST 2011
This is no longer necessary now, when the omxil module keeps
track of the number of initializations of the OMX Core.
---
modules/codec/omxil/iomx.cpp | 23 +++--------------------
1 files changed, 3 insertions(+), 20 deletions(-)
diff --git a/modules/codec/omxil/iomx.cpp b/modules/codec/omxil/iomx.cpp
index ccafc42..28d7093 100644
--- a/modules/codec/omxil/iomx.cpp
+++ b/modules/codec/omxil/iomx.cpp
@@ -44,15 +44,10 @@ using namespace android;
class IOMXContext {
public:
IOMXContext() {
- refcount = 0;
- init_refcount = 0;
}
sp<IOMX> iomx;
List<IOMX::ComponentInfo> components;
- int refcount;
-
- int init_refcount;
};
static IOMXContext *ctx;
@@ -311,26 +306,18 @@ static OMX_ERRORTYPE iomx_free_handle(OMX_HANDLETYPE handle)
static OMX_ERRORTYPE iomx_init()
{
- if (ctx->init_refcount > 0) {
- ctx->init_refcount++;
- return OMX_ErrorNone;
- }
OMXClient client;
if (client.connect() != OK)
return OMX_ErrorUndefined;
ctx->iomx = client.interface();
- ctx->init_refcount = 1;
ctx->iomx->listNodes(&ctx->components);
return OMX_ErrorNone;
}
static OMX_ERRORTYPE iomx_deinit()
{
- ctx->init_refcount--;
- if (ctx->init_refcount == 0) {
- ctx->iomx = NULL;
- }
+ ctx->iomx = NULL;
return OMX_ErrorNone;
}
@@ -372,18 +359,14 @@ void* iomx_dlopen(const char *)
{
if (!ctx)
ctx = new IOMXContext();
- ctx->refcount++;
return ctx;
}
void iomx_dlclose(void *handle)
{
IOMXContext *ctx = (IOMXContext*) handle;
- ctx->refcount--;
- if (!ctx->refcount) {
- delete ctx;
- ::ctx = NULL;
- }
+ delete ctx;
+ ::ctx = NULL;
}
void *iomx_dlsym(void *, const char *name)
--
1.7.2.5
More information about the vlc-devel
mailing list