brillcodec: remove DataHandler 86/27486/5
authorSeokYeon Hwang <syeon.hwang@samsung.com>
Sun, 14 Sep 2014 09:07:44 +0000 (18:07 +0900)
committerSeokYeon Hwang <syeon.hwang@samsung.com>
Mon, 15 Sep 2014 06:08:32 +0000 (15:08 +0900)
Change-Id: I57571f1f2969a58314fd7b7c7285b67f238f6daf
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
tizen/src/hw/pci/maru_brillcodec.c
tizen/src/hw/pci/maru_brillcodec.h

index df946d9..29535bc 100644 (file)
@@ -145,18 +145,10 @@ static CodecFuncEntry codec_func_handler[] = {
 static void default_get_data(void *dst, void *src, size_t size)
 {
     memcpy(dst, src, size);
-}
 
-static void default_release(void *opaque)
-{
-    g_free(opaque);
+    g_free(src);
 }
 
-static DataHandler default_data_handler = {
-    .get_data = default_get_data,
-    .release = default_release,
-};
-
 // queue
 static void *brillcodec_store_inbuf(uint8_t *mem_base,
                                         CodecParam *ioparam)
@@ -239,8 +231,8 @@ static CodecDataStg *brillcodec_pop_readqueue(MaruBrillCodecState *s)
 }
 
 static void brillcodec_push_writequeue(MaruBrillCodecState *s, void* opaque,
-                                            size_t data_size, int ctx_id,
-                                            DataHandler *handler)
+                                size_t data_size, int ctx_id,
+                                void (*get_data)(void *, void *, size_t))
 {
     DeviceMemEntry *elem = NULL;
     elem = g_malloc0(sizeof(DeviceMemEntry));
@@ -249,10 +241,10 @@ static void brillcodec_push_writequeue(MaruBrillCodecState *s, void* opaque,
     elem->data_size = data_size;
     elem->ctx_id = ctx_id;
 
-    if (handler) {
-        elem->handler = handler;
+    if (get_data) {
+        elem->get_data = get_data;
     } else {
-        elem->handler = &default_data_handler;
+        elem->get_data = default_get_data;
     }
 
     qemu_mutex_lock(&s->context_queue_mutex);
@@ -279,8 +271,7 @@ void brillcodec_pop_writequeue(MaruBrillCodecState *s, uint32_t ctx_idx)
 
         // check corrupted mem_offset
         if (mem_offset < CODEC_MEM_SIZE) {
-            elem->handler->get_data(s->vaddr + mem_offset, elem->opaque, elem->data_size);
-            elem->handler->release(elem->opaque);
+            elem->get_data(s->vaddr + mem_offset, elem->opaque, elem->data_size);
         } else {
             TRACE("mem_offset is corrupted!!\n");
         }
@@ -727,7 +718,7 @@ static void default_get_picture(void *dst, void *src, enum AVPixelFormat pix_fmt
 
 // video decode data handler
 // FIXME: ignore "size" now...
-static void copy_decode_video_data(void *dst, void *opaque, size_t dummy)
+static void copy_video_decode_data(void *dst, void *opaque, size_t dummy)
 {
     DataContainer *dc = (DataContainer *)opaque;
     CodecContext *context = (CodecContext *)dc->avctx->opaque;
@@ -756,18 +747,11 @@ static void copy_decode_video_data(void *dst, void *opaque, size_t dummy)
             default_get_picture(dst + dc->picture_buffer_offset, dc->frame, dc->avctx->pix_fmt);
         }
     }
-}
 
-static void release(void *opaque) {
-    g_free(opaque);
+    g_free(dc);
 }
 
-static DataHandler video_decode_data_handler = {
-    .get_data = copy_decode_video_data,
-    .release = release,
-};
-
-static void copy_encode_video_data(void *dst, void *opaque, size_t dummy)
+static void copy_video_encode_data(void *dst, void *opaque, size_t dummy)
 {
     DataContainer *dc = (DataContainer *)opaque;
     struct video_encode_output *encode_output =
@@ -788,13 +772,9 @@ static void copy_encode_video_data(void *dst, void *opaque, size_t dummy)
 
     g_free(dc->avpkt->data);
     g_free(dc->avpkt);
+    g_free(dc);
 }
 
-static DataHandler video_encode_data_handler = {
-    .get_data = copy_encode_video_data,
-    .release = release,
-};
-
 static uint32_t parse_and_decode_video(AVCodecContext *avctx, AVFrame *picture,
                                 AVCodecParserContext *pctx, int ctx_id,
                                 AVPacket *packet, uint32_t *got_picture,
@@ -922,7 +902,7 @@ static bool codec_decode_video_common(MaruBrillCodecState *s, int ctx_id,
         dc->frame = frame;
     }
 
-    brillcodec_push_writequeue(s, dc, 0, ctx_id, &video_decode_data_handler);
+    brillcodec_push_writequeue(s, dc, 0, ctx_id, copy_video_decode_data);
 
     TRACE("leave: %s\n", __func__);
 
@@ -950,7 +930,7 @@ static bool codec_picture_copy(MaruBrillCodecState *s, int ctx_id, void *elem)
     dc->avctx = CONTEXT(s, ctx_id)->avctx;
     dc->frame = CONTEXT(s, ctx_id)->frame;
 
-    brillcodec_push_writequeue(s, dc, 0, ctx_id, &video_decode_data_handler);
+    brillcodec_push_writequeue(s, dc, 0, ctx_id, copy_video_decode_data);
 
     TRACE("leave: %s\n", __func__);
 
@@ -1030,7 +1010,7 @@ static bool codec_encode_video(MaruBrillCodecState *s, int ctx_id, void *data_bu
     dc->avctx = avctx;
     dc->avpkt = avpkt;
 
-    brillcodec_push_writequeue(s, dc, 0, ctx_id, &video_encode_data_handler);
+    brillcodec_push_writequeue(s, dc, 0, ctx_id, copy_video_encode_data);
 
     TRACE("leave: %s\n", __func__);
     return true;
@@ -1202,7 +1182,7 @@ static AVFrame *resample_audio(AVCodecContext *avctx, AVFrame *sample_frame,
 }
 
 // FIXME: ignore "size" now...
-static void copy_decode_audio_data(void *dst, void *opaque, size_t dummy)
+static void copy_audio_decode_data(void *dst, void *opaque, size_t dummy)
 {
     DataContainer *dc = (DataContainer *)opaque;
 
@@ -1228,13 +1208,9 @@ static void copy_decode_audio_data(void *dst, void *opaque, size_t dummy)
             av_free(dc->frame);
         }
     }
-}
-
-static DataHandler audio_decode_data_handler = {
-    .get_data = copy_decode_audio_data,
-    .release = release,
-};
 
+    g_free(dc);
+}
 
 /*
  * dc->resampled = resample_frame ? true : false;
@@ -1311,7 +1287,7 @@ static bool codec_decode_audio(MaruBrillCodecState *s, int ctx_id, void *data_bu
     dc->out_sample_fmt = out_sample_fmt;
     dc->frame = resample_frame ? resample_frame : frame;
 
-    brillcodec_push_writequeue(s, dc, 0, ctx_id, &audio_decode_data_handler);
+    brillcodec_push_writequeue(s, dc, 0, ctx_id, &copy_audio_decode_data);
 
     TRACE("leave: %s\n", __func__);
     return true;
index 161fcbe..d2f7885 100644 (file)
@@ -101,17 +101,12 @@ struct MaruBrillCodecState {
     CodecPlugin         *hwaccel_plugin;
 };
 
-typedef struct DataHandler {
-    void (*get_data)(void *dst, void *src, size_t size);
-    void (*release)(void *opaque);
-} DataHandler;
-
 typedef struct DeviceMemEntry {
     void *opaque;
     uint32_t data_size;
     uint32_t ctx_id;
 
-    DataHandler *handler;
+    void (*get_data)(void *dst, void *src, size_t size);
 
     QTAILQ_ENTRY(DeviceMemEntry) node;
 } DeviceMemEntry;