mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-16 14:11:10 +08:00
[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:
@@ -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++;
|
||||
|
Reference in New Issue
Block a user