From 7a5a04ccd18c262a89476e074aaa809aeb7f4319 Mon Sep 17 00:00:00 2001 From: ChenHengming Date: Thu, 24 Sep 2015 23:48:31 +0000 Subject: [PATCH] [mpp_pacet]: rename mpp_packet_copy to mpp_packet_copy_init [mpp_dec]: put_packet will transfer pointer rather than implement git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@306 6e48237b-75ef-9749-8fc9-41990f28c85a --- inc/mpp_packet.h | 3 ++- mpp/codec/mpp_dec.cpp | 8 ++++---- mpp/mpp.cpp | 6 ++++-- mpp/mpp_packet.cpp | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/inc/mpp_packet.h b/inc/mpp_packet.h index 5feda767..93795cf8 100644 --- a/inc/mpp_packet.h +++ b/inc/mpp_packet.h @@ -30,10 +30,11 @@ extern "C" { * MppPacket interface * * mpp_packet_init = mpp_packet_new + mpp_packet_set_data + mpp_packet_set_size + * mpp_packet_copy_init = mpp_packet_init + memcpy */ MPP_RET mpp_packet_new(MppPacket *packet); MPP_RET mpp_packet_init(MppPacket *packet, void *data, size_t size); -MPP_RET mpp_packet_copy(MppPacket *packet, const MppPacket src); +MPP_RET mpp_packet_copy_init(MppPacket *packet, const MppPacket src); MPP_RET mpp_packet_deinit(MppPacket *packet); /* diff --git a/mpp/codec/mpp_dec.cpp b/mpp/codec/mpp_dec.cpp index cd4fc839..2f2d3884 100644 --- a/mpp/codec/mpp_dec.cpp +++ b/mpp/codec/mpp_dec.cpp @@ -34,7 +34,7 @@ void *mpp_dec_parser_thread(void *data) MppDec *dec = mpp->mDec; MppBufSlots slots = dec->slots; HalTaskGroup tasks = dec->tasks; - MppPacketImpl packet; + MppPacket packet = NULL; /* * parser thread need to wait at cases below: @@ -106,9 +106,9 @@ void *mpp_dec_parser_thread(void *data) */ if (!task_ready) { hal_task_init(&task_local, MPP_CTX_DEC); - parser_prepare(dec->parser, (MppPacket)&packet, task_dec); - if (0 == packet.length) { - mpp_packet_reset(&packet); + parser_prepare(dec->parser, packet, task_dec); + if (0 == mpp_packet_get_length(packet)) { + mpp_packet_deinit(&packet); packet_ready = 0; } } diff --git a/mpp/mpp.cpp b/mpp/mpp.cpp index a5cb0e98..1adea7e5 100644 --- a/mpp/mpp.cpp +++ b/mpp/mpp.cpp @@ -56,7 +56,7 @@ Mpp::Mpp(MppCtxType type, MppCodingType coding) { switch (mType) { case MPP_CTX_DEC : { - mPackets = new mpp_list((node_destructor)NULL); + mPackets = new mpp_list((node_destructor)mpp_packet_deinit); mFrames = new mpp_list((node_destructor)mpp_frame_deinit); mTasks = new mpp_list((node_destructor)NULL); @@ -156,7 +156,9 @@ MPP_RET Mpp::put_packet(MppPacket packet) { Mutex::Autolock autoLock(mPackets->mutex()); if (mPackets->list_size() < 4) { - mPackets->add_at_tail(packet, sizeof(MppPacketImpl)); + MppPacket pkt; + mpp_packet_copy_init(&pkt, packet); + mPackets->add_at_tail(&pkt, sizeof(pkt)); mPacketPutCount++; mThreadCodec->signal(); return MPP_OK; diff --git a/mpp/mpp_packet.cpp b/mpp/mpp_packet.cpp index 511ecda6..965f6797 100644 --- a/mpp/mpp_packet.cpp +++ b/mpp/mpp_packet.cpp @@ -72,7 +72,7 @@ MPP_RET mpp_packet_init(MppPacket *packet, void *data, size_t size) return MPP_OK; } -MPP_RET mpp_packet_copy(MppPacket *packet, const MppPacket src) +MPP_RET mpp_packet_copy_init(MppPacket *packet, const MppPacket src) { if (NULL == packet || NULL == src) { mpp_err_f("found NULL input\n");