From: SeokYeon Hwang Date: Sun, 14 Sep 2014 09:07:44 +0000 (+0900) Subject: brillcodec: remove DataHandler X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.2~620^2~9^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b68cc59260406ceb702010aefaf82dc6e9cbcc26;p=sdk%2Femulator%2Fqemu.git brillcodec: remove DataHandler Change-Id: I57571f1f2969a58314fd7b7c7285b67f238f6daf Signed-off-by: SeokYeon Hwang --- diff --git a/tizen/src/hw/pci/maru_brillcodec.c b/tizen/src/hw/pci/maru_brillcodec.c index df946d907d..29535bc30b 100644 --- a/tizen/src/hw/pci/maru_brillcodec.c +++ b/tizen/src/hw/pci/maru_brillcodec.c @@ -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, ©_audio_decode_data); TRACE("leave: %s\n", __func__); return true; diff --git a/tizen/src/hw/pci/maru_brillcodec.h b/tizen/src/hw/pci/maru_brillcodec.h index 161fcbec12..d2f78852ac 100644 --- a/tizen/src/hw/pci/maru_brillcodec.h +++ b/tizen/src/hw/pci/maru_brillcodec.h @@ -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;