[mpp_buffer]: add more interface to mpp_buffer

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@178 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
ChenHengming
2008-01-23 16:15:51 +00:00
parent d37c40d66f
commit 28faf8b7a6
2 changed files with 64 additions and 0 deletions

View File

@@ -203,7 +203,11 @@ MPP_RET mpp_buffer_commit(MppBufferGroup group, MppBufferInfo *info);
MPP_RET mpp_buffer_get_with_tag(const char *tag, MppBufferGroup group, MppBuffer *buffer, size_t size);
MPP_RET mpp_buffer_put(MppBuffer buffer);
MPP_RET mpp_buffer_inc_ref(MppBuffer buffer);
MPP_RET mpp_buffer_read(MppBuffer buffer, void *data, size_t size);
MPP_RET mpp_buffer_write(MppBuffer buffer, void *data, size_t size);
MPP_RET mpp_buffer_info_get(MppBuffer buffer, MppBufferInfo *info);
void *mpp_buffer_get_ptr(MppBuffer buffer);
int mpp_buffer_get_fd(MppBuffer buffer);
MPP_RET mpp_buffer_group_get(const char *tag, MppBufferMode mode, MppBufferGroup *group, MppBufferType type);
MPP_RET mpp_buffer_group_put(MppBufferGroup group);

View File

@@ -88,6 +88,66 @@ MPP_RET mpp_buffer_inc_ref(MppBuffer buffer)
return mpp_buffer_ref_inc((MppBufferImpl*)buffer);
}
MPP_RET mpp_buffer_read(MppBuffer buffer, void *data, size_t size)
{
if (NULL == buffer || NULL == data) {
mpp_err("%s invalid input: buffer %p data %p\n", __FUNCTION__, buffer, data);
return MPP_ERR_UNKNOW;
}
if (0 == size)
return MPP_OK;
MppBufferImpl *p = (MppBufferImpl*)buffer;
void *src = p->info.ptr;
mpp_assert(src != NULL);
memcpy(data, src, size);
return MPP_OK;
}
MPP_RET mpp_buffer_write(MppBuffer buffer, void *data, size_t size)
{
if (NULL == buffer || NULL == data) {
mpp_err("%s invalid input: buffer %p data %p\n", __FUNCTION__, buffer, data);
return MPP_ERR_UNKNOW;
}
if (0 == size)
return MPP_OK;
MppBufferImpl *p = (MppBufferImpl*)buffer;
void *dst = p->info.ptr;
mpp_assert(dst != NULL);
memcpy(dst, data, size);
return MPP_OK;
}
void *mpp_buffer_get_ptr(MppBuffer buffer)
{
if (NULL == buffer) {
mpp_err("%s invalid input: buffer %p data %p\n", __FUNCTION__, buffer);
return NULL;
}
MppBufferImpl *p = (MppBufferImpl*)buffer;
void *ptr = p->info.ptr;
mpp_assert(ptr != NULL);
return ptr;
}
int mpp_buffer_get_fd(MppBuffer buffer)
{
if (NULL == buffer) {
mpp_err("%s invalid input: buffer %p data %p\n", __FUNCTION__, buffer);
return -1;
}
MppBufferImpl *p = (MppBufferImpl*)buffer;
int fd = p->info.fd;
mpp_assert(fd >= 0);
return fd;
}
MPP_RET mpp_buffer_info_get(MppBuffer buffer, MppBufferInfo *info)
{
if (NULL == buffer || NULL == info) {