Lines Matching full:buffer

26  * 1. buffer get / put / reference management / external commit / get info.
37 * 2. user buffer working flow control abstraction.
38 * buffer should attach to certain group, and buffer mode control the buffer usage flow.
49 * 3. buffer allocator management
51 * it will support normal buffer, Android ion buffer, Linux v4l2 vb2 buffer
57 * mpp buffer group support two work flow mode:
59 * normal flow: all buffer are generated by MPP
60 * under this mode, buffer pool is maintained internally
71 * commit flow: all buffer are commited out of MPP
95 * mpp buffer group has two buffer limit mode: normal and limit
97 * normal mode: allows any buffer size and always general new buffer is no unused buffer
99 * This mode normally use with normal flow and is used for table / stream buffer
101 * limit mode : restrict the buffer's size and count in the buffer group. if try to calloc
102 * buffer with different size or extra count it will fail.
103 * This mode normally use with commit flow and is used for frame buffer
117 * the mpp buffer has serval types:
119 * normal : normal malloc buffer for unit test or hardware simulation
140 * DRM CMA buffer : MPP_BUFFER_TYPE_DRM | MPP_BUFFER_FLAGS_CONTIG
142 * DRM SECURE buffer: MPP_BUFFER_TYPE_DRM | MPP_BUFFER_FLAGS_SECURE
145 * The dma buffer source can also be set by format: flags | type.
146 * dma buffer source flags:
165 * index - the buffer index used to track buffer in buffer pool
166 * size - the buffer size
170 * ptr - virtual address of normal malloced buffer
172 * internal buffer counter number
176 * ptr - virtual address of ion buffer in user space
178 * fd - ion buffer file handle for map / unmap
193 * mpp_buffer_import_with_tag(MppBufferGroup group, MppBufferInfo *info, MppBuffer *buffer)
196 * group can be NULL then this buffer will attached to default legecy group
202 * 3. buffer - generated MppBuffer from MppBufferInfo.
203 * buffer can be NULL then the buffer is commit to group with unused status.
204 * Otherwise generated buffer will be directly got and ref_count increased.
209 * Add a external buffer info to group. This buffer will be on unused status.
210 * Typical usage is on Android. MediaPlayer gralloc Graphic buffer then commit these buffer
211 * to decoder's buffer group. Then decoder will recycle these buffer and return buffer reference
216 * Transfer a external buffer info to MppBuffer but it is not expected to attached to certain
217 * buffer group. So the group is set to NULL. Then this buffer can be used for MppFrame/MppPacket.
220 * imported buffer is leak or not and trace its usage inside mpp process. So we attach this kind
221 * of buffer to default misc buffer group for management.
226 #define mpp_buffer_import(buffer, info) \ argument
227 mpp_buffer_import_with_tag(NULL, info, buffer, MODULE_TAG, __FUNCTION__)
229 #define mpp_buffer_get(group, buffer, size) \ argument
230 mpp_buffer_get_with_tag(group, buffer, size, MODULE_TAG, __FUNCTION__)
232 #define mpp_buffer_put(buffer) \ argument
233 mpp_buffer_put_with_caller(buffer, __FUNCTION__)
235 #define mpp_buffer_inc_ref(buffer) \ argument
236 mpp_buffer_inc_ref_with_caller(buffer, __FUNCTION__)
238 #define mpp_buffer_info_get(buffer, info) \ argument
239 mpp_buffer_info_get_with_caller(buffer, info, __FUNCTION__)
241 #define mpp_buffer_read(buffer, offset, data, size) \ argument
242 mpp_buffer_read_with_caller(buffer, offset, data, size, __FUNCTION__)
244 #define mpp_buffer_write(buffer, offset, data, size) \ argument
245 mpp_buffer_write_with_caller(buffer, offset, data, size, __FUNCTION__)
247 #define mpp_buffer_get_ptr(buffer) \ argument
248 mpp_buffer_get_ptr_with_caller(buffer, __FUNCTION__)
250 #define mpp_buffer_get_fd(buffer) \ argument
251 mpp_buffer_get_fd_with_caller(buffer, __FUNCTION__)
253 #define mpp_buffer_get_size(buffer) \ argument
254 mpp_buffer_get_size_with_caller(buffer, __FUNCTION__)
256 #define mpp_buffer_get_index(buffer) \ argument
257 mpp_buffer_get_index_with_caller(buffer, __FUNCTION__)
259 #define mpp_buffer_set_index(buffer, index) \ argument
260 mpp_buffer_set_index_with_caller(buffer, index, __FUNCTION__)
262 #define mpp_buffer_get_offset(buffer) \ argument
263 mpp_buffer_get_offset_with_caller(buffer, __FUNCTION__)
265 #define mpp_buffer_set_offset(buffer, offset) \ argument
266 mpp_buffer_set_offset_with_caller(buffer, offset, __FUNCTION__)
280 * these interface will change value of group and buffer so before calling functions
287 MPP_RET mpp_buffer_import_with_tag(MppBufferGroup group, MppBufferInfo *info, MppBuffer *buffer,
289 MPP_RET mpp_buffer_get_with_tag(MppBufferGroup group, MppBuffer *buffer, size_t size,
291 MPP_RET mpp_buffer_put_with_caller(MppBuffer buffer, const char *caller);
292 MPP_RET mpp_buffer_inc_ref_with_caller(MppBuffer buffer, const char *caller);
294 MPP_RET mpp_buffer_info_get_with_caller(MppBuffer buffer, MppBufferInfo *info, const char *caller);
295 MPP_RET mpp_buffer_read_with_caller(MppBuffer buffer, size_t offset, void *data, size_t size, const…
296 MPP_RET mpp_buffer_write_with_caller(MppBuffer buffer, size_t offset, void *data, size_t size, cons…
297 void *mpp_buffer_get_ptr_with_caller(MppBuffer buffer, const char *caller);
298 int mpp_buffer_get_fd_with_caller(MppBuffer buffer, const char *caller);
299 size_t mpp_buffer_get_size_with_caller(MppBuffer buffer, const char *caller);
300 int mpp_buffer_get_index_with_caller(MppBuffer buffer, const char *caller);
301 MPP_RET mpp_buffer_set_index_with_caller(MppBuffer buffer, int index, const char *caller);
302 size_t mpp_buffer_get_offset_with_caller(MppBuffer buffer, const char *caller);
303 MPP_RET mpp_buffer_set_offset_with_caller(MppBuffer buffer, size_t offset, const char *caller);
315 * size : 0 - no limit, other - max buffer size
316 * count : 0 - no limit, other - max buffer count