mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-06 01:26:49 +08:00
[mpp_buffer]: add buffer check on buffer size
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@349 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
@@ -197,9 +197,8 @@ RK_S32 mpp_buffer_group_unused(MppBufferGroup group)
|
|||||||
|
|
||||||
MPP_RET mpp_buffer_group_limit_config(MppBufferGroup group, size_t size, RK_S32 count)
|
MPP_RET mpp_buffer_group_limit_config(MppBufferGroup group, size_t size, RK_S32 count)
|
||||||
{
|
{
|
||||||
if (NULL == group || 0 == size || count <= 0) {
|
if (NULL == group) {
|
||||||
mpp_err_f("input invalid group %p size %d count %d\n",
|
mpp_err_f("input invalid group %p\n", group);
|
||||||
group, size, count);
|
|
||||||
return MPP_NOK;
|
return MPP_NOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -138,11 +138,17 @@ MPP_RET mpp_buffer_create(const char *tag, RK_U32 group_id, MppBufferInfo *info)
|
|||||||
mpp_err_f("can not create buffer without group\n");
|
mpp_err_f("can not create buffer without group\n");
|
||||||
return MPP_NOK;
|
return MPP_NOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (group->limit_count && group->count >= group->limit_count) {
|
if (group->limit_count && group->count >= group->limit_count) {
|
||||||
mpp_err_f("reach group count limit %d\n", group->limit_count);
|
mpp_err_f("reach group count limit %d\n", group->limit_count);
|
||||||
return MPP_NOK;
|
return MPP_NOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (group->limit_size && info->size > group->limit_size) {
|
||||||
|
mpp_err_f("required size %d reach group size limit %d\n", info->size, group->limit_size);
|
||||||
|
return MPP_NOK;
|
||||||
|
}
|
||||||
|
|
||||||
MppBufferImpl *p = mpp_calloc(MppBufferImpl, 1);
|
MppBufferImpl *p = mpp_calloc(MppBufferImpl, 1);
|
||||||
if (NULL == p) {
|
if (NULL == p) {
|
||||||
mpp_err_f("failed to allocate context\n");
|
mpp_err_f("failed to allocate context\n");
|
||||||
|
@@ -110,7 +110,7 @@ int main()
|
|||||||
|
|
||||||
count = MPP_BUFFER_TEST_NORMAL_COUNT;
|
count = MPP_BUFFER_TEST_NORMAL_COUNT;
|
||||||
|
|
||||||
mpp_buffer_group_limit_config(group, size, count);
|
mpp_buffer_group_limit_config(group, 0, count);
|
||||||
|
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
ret = mpp_buffer_get(group, &normal_buffer[i], (i + 1) * SZ_1K);
|
ret = mpp_buffer_get(group, &normal_buffer[i], (i + 1) * SZ_1K);
|
||||||
|
Reference in New Issue
Block a user