mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-06 09:36:49 +08:00
[mpp_packet]: used interal free when buffer alloc by mpppacket self
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@528 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
@@ -288,7 +288,6 @@ static MPP_RET try_proc_dec_task(Mpp *mpp, DecTask *task)
|
||||
if (!task->status.curr_task_rdy) {
|
||||
parser_prepare(dec->parser, dec->mpp_pkt_in, task_dec);
|
||||
if (0 == mpp_packet_get_length(dec->mpp_pkt_in)) {
|
||||
mpp_free(mpp_packet_get_data(dec->mpp_pkt_in));
|
||||
mpp_packet_deinit(&dec->mpp_pkt_in);
|
||||
dec->mpp_pkt_in = NULL;
|
||||
}
|
||||
|
@@ -307,7 +307,7 @@ MPP_RET Mpp::reset()
|
||||
MppPacket mpkt = NULL;
|
||||
RK_U32 flags = 0;
|
||||
mPackets->lock();
|
||||
if(mPackets->list_size()){
|
||||
if (mPackets->list_size()) {
|
||||
mPackets->del_at_head(&mpkt, sizeof(mpkt));
|
||||
}
|
||||
mPackets->flush();
|
||||
@@ -329,13 +329,12 @@ MPP_RET Mpp::reset()
|
||||
mpp_enc_reset(mEnc);
|
||||
}
|
||||
mThreadCodec->unlock(THREAD_RESET);
|
||||
if(mpkt != NULL){
|
||||
if (mpkt != NULL) {
|
||||
flags = mpp_packet_get_flag(mpkt);
|
||||
mpp_log("flags = %d",flags);
|
||||
if(flags&MPP_PACKET_FLAG_EXTRA_DATA){ //avoid first packet is extara data was flushed & dec can work
|
||||
mpp_log("flags = %d", flags);
|
||||
if (flags & MPP_PACKET_FLAG_EXTRA_DATA) { //avoid first packet is extara data was flushed & dec can work
|
||||
put_packet(mpkt);
|
||||
}
|
||||
mpp_free(mpp_packet_get_data(mpkt));
|
||||
mpp_packet_deinit(&mpkt);
|
||||
mpkt = NULL;
|
||||
}
|
||||
|
@@ -94,6 +94,7 @@ MPP_RET mpp_packet_copy_init(MppPacket *packet, const MppPacket src)
|
||||
memcpy(p, src, sizeof(*p));
|
||||
p->data = p->pos = data;
|
||||
p->size = p->length = size;
|
||||
p->flag |= MPP_PACKET_FLAG_INTERNAL;
|
||||
if (size) {
|
||||
memcpy(data, ((MppPacketImpl *)src)->data, size);
|
||||
}
|
||||
@@ -115,6 +116,9 @@ MPP_RET mpp_packet_deinit(MppPacket *packet)
|
||||
|
||||
MppPacketImpl *p = (MppPacketImpl *)(*packet);
|
||||
check_mpp_packet_name(p);
|
||||
if (p->flag & MPP_PACKET_FLAG_INTERNAL) {
|
||||
mpp_free(p->data);
|
||||
}
|
||||
mpp_free(p);
|
||||
*packet = NULL;
|
||||
return MPP_OK;
|
||||
|
@@ -22,6 +22,7 @@
|
||||
|
||||
#define MPP_PACKET_FLAG_EOS (0x00000001)
|
||||
#define MPP_PACKET_FLAG_EXTRA_DATA (0x00000002)
|
||||
#define MPP_PACKET_FLAG_INTERNAL (0x00000004)
|
||||
|
||||
/*
|
||||
* mpp_packet_imp structure
|
||||
|
Reference in New Issue
Block a user