[mpp_list]: change mpp_list lock mechanism

1. add mutex function to mpp_list for auto lock
2. remove all lock in list operation, so lock need to be add externally
[hal_task]: use new mpp_list to implement task group
[mpp_dec/mpp_enc]: change mpp_list usage


git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@231 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
ChenHengming
2015-09-07 16:06:33 +00:00
parent 241f6865ad
commit 7facfbaa5c
8 changed files with 98 additions and 144 deletions

View File

@@ -154,7 +154,7 @@ void Mpp::clear()
MPP_RET Mpp::put_packet(MppPacket packet)
{
Mutex::Autolock autoLock(&mPacketLock);
Mutex::Autolock autoLock(mPackets->mutex());
if (mPackets->list_size() < 4) {
mPackets->add_at_tail(packet, sizeof(MppPacketImpl));
mPacketPutCount++;
@@ -166,7 +166,7 @@ MPP_RET Mpp::put_packet(MppPacket packet)
MPP_RET Mpp::get_frame(MppFrame *frame)
{
Mutex::Autolock autoLock(&mFrameLock);
Mutex::Autolock autoLock(mFrames->mutex());
if (mFrames->list_size()) {
mFrames->del_at_tail(frame, sizeof(frame));
mFrameGetCount++;
@@ -177,7 +177,7 @@ MPP_RET Mpp::get_frame(MppFrame *frame)
MPP_RET Mpp::put_frame(MppFrame frame)
{
Mutex::Autolock autoLock(&mFrameLock);
Mutex::Autolock autoLock(mFrames->mutex());
if (mFrames->list_size() < 4) {
mFrames->add_at_tail(frame, sizeof(MppFrameImpl));
mThreadCodec->signal();
@@ -189,7 +189,7 @@ MPP_RET Mpp::put_frame(MppFrame frame)
MPP_RET Mpp::get_packet(MppPacket *packet)
{
Mutex::Autolock autoLock(&mPacketLock);
Mutex::Autolock autoLock(mPackets->mutex());
if (mPackets->list_size()) {
mPackets->del_at_tail(packet, sizeof(packet));
mPacketGetCount++;