Android Dev Intro - Camera addCallbackBuffer




addCallbackBuffer

Added in  API level 8
void addCallbackBuffer (byte[] callbackBuffer)

Adds a pre-allocated buffer to the preview callback buffer queue. Applications can add one or more buffers to the queue. When a preview frame arrives and there is still at least one available buffer, the buffer will be used and removed from the queue. Then preview callback is invoked with the buffer. If a frame arrives and there is no buffer left, the frame is discarded. Applications should add buffers back when they finish processing the data in them.

For formats besides YV12, the size of the buffer is determined by multiplying the preview image width, height, and bytes per pixel. The width and height can be read from getPreviewSize(). Bytes per pixel can be computed from getBitsPerPixel(int) / 8, using the image format fromgetPreviewFormat().

If using the YV12 format, the size can be calculated using the equations listed in setPreviewFormat(int).

This method is only necessary when setPreviewCallbackWithBuffer(PreviewCallback) is used. When setPreviewCallback(PreviewCallback) orsetOneShotPreviewCallback(PreviewCallback) are used, buffers are automatically allocated. When a supplied buffer is too small to hold the preview frame data, preview callback will return null and the buffer will be removed from the buffer queue.



use setPreviewCallbackWithBuffer and addCallbackBuffer together.

At first, you should call addCallbackBuffer before calling setPreviewCallbackWithBuffer. You can add buffer by calling addCallbackBuffer for 4-5 frames. It depends on your project. How many bytes a frame requires expains here..

Everytime onPreviewFrame is called, buffer added by addCallbackBuffer is used. As long as there is enough buffer added by addCallbackBuffer, onPreviewFrame is called. If there is no buffer left for onPreviewFrame, frames are started to drop and onPreviewFrame is not called.

So you should keep calling addCallbackBuffer during the execution. You can call addCallbackBuffer with the byte array parameter on onPreviewFrame after you process the data. In this way, you always reuse the same buffers.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值