[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