[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:
ChenSiyong
2016-01-14 07:42:11 +00:00
parent ecb5caf3e4
commit 0b48769422
4 changed files with 10 additions and 7 deletions

View File

@@ -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;
}

View File

@@ -335,7 +335,6 @@ MPP_RET Mpp::reset()
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;
}

View File

@@ -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;

View File

@@ -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