mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-06 17:46:50 +08:00
[MppBuffer]: Fix block error on Linux
When decoding in internal buffer mode and source is field mode the decoder need 3 buffer to continue decoding. But mpp_buffer_group_unused function only return 1 by default. This patch return correct value considering the buffer limit count and buffer group mode. Change-Id: I4331ca026708037f1d9bace090299315d41f4829 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -297,7 +297,17 @@ RK_S32 mpp_buffer_group_unused(MppBufferGroup group)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MppBufferGroupImpl *p = (MppBufferGroupImpl *)group;
|
MppBufferGroupImpl *p = (MppBufferGroupImpl *)group;
|
||||||
return (p->mode == MPP_BUFFER_INTERNAL ? 1 : p->count_unused);
|
RK_S32 unused = 0;
|
||||||
|
|
||||||
|
if (p->mode == MPP_BUFFER_INTERNAL) {
|
||||||
|
if (p->limit_count)
|
||||||
|
unused = p->limit_count - p->count_used;
|
||||||
|
else
|
||||||
|
unused = 3; /* NOTE: 3 for 1 decoding 2 deinterlace buffer */
|
||||||
|
} else
|
||||||
|
unused = p->count_unused;
|
||||||
|
|
||||||
|
return unused;
|
||||||
}
|
}
|
||||||
|
|
||||||
MppBufferMode mpp_buffer_group_mode(MppBufferGroup group)
|
MppBufferMode mpp_buffer_group_mode(MppBufferGroup group)
|
||||||
|
Reference in New Issue
Block a user