Loading include/camera/CameraHardwareInterface.h +53 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ #include <ui/egl/android_natives.h> #include <utils/RefBase.h> #include <surfaceflinger/ISurface.h> #include <ui/android_native_buffer.h> #include <ui/GraphicBuffer.h> #include <camera/Camera.h> #include <camera/CameraParameters.h> Loading @@ -47,6 +49,17 @@ typedef void (*data_callback)(int32_t msgType, const sp<IMemory>& dataPtr, void* user); #ifdef USE_GRAPHIC_VIDEO_BUFFERS /** * Replace data_callback_timestamp. Once we are done, this * should be renamed as data_callback_timestamp, and the existing * data_callback_timestamp should be deleted. */ typedef void (*videobuffer_callback_timestamp)(nsecs_t timestamp, int32_t msgType, const sp<android_native_buffer_t>& buf, void* user); #endif typedef void (*data_callback_timestamp)(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& dataPtr, Loading Loading @@ -87,6 +100,46 @@ class CameraHardwareInterface : public virtual RefBase { public: virtual ~CameraHardwareInterface() { } #ifdef USE_GRAPHIC_VIDEO_BUFFERS /** * Replace existing setCallbacks() method. Once we are done, the * videobuffer_callback_timestamp parameter will be renamed to * data_callback_timestamp, but its signature will be the same * as videobuffer_callback_timestamp, which will be renamed * to data_callback_timestamp and the exiting data_callback_timestamp * will be deleted. */ virtual void setCallbacks(notify_callback notify_cb, data_callback data_cb, videobuffer_callback_timestamp data_cb_timestamp, void* user) = 0; /** * Replace releaseRecordingFrame(). releaseRecordingFrame() should be * changed so that it has the same signature of releaseVideoBuffer(), * once we are done, and releaseVideoBuffer() will be deleted. */ virtual void releaseVideoBuffer(const sp<android_native_buffer_t>& buf) = 0; /** * This method should be called after startRecording(). * * @param nBuffers the total number of video buffers allocated by the camera * hal * @param buffers an array allocated by the camera hal to hold the pointers * to the individual video buffers. The video buffers and the buffers array * should NOT be modified/released by camera hal until stopRecording() is * called and all outstanding video buffers previously sent out via * CAMERA_MSG_VIDEO_FRAME have been released via releaseVideoBuffer(). * Camera hal client must not release the individual buffers and the buffers * array. * @return no error if OK. */ virtual status_t getVideoBufferInfo( sp<android_native_buffer_t>** buffers, size_t *nBuffers) = 0; #endif /** Set the ANativeWindow to which preview frames are sent */ virtual status_t setPreviewWindow(const sp<ANativeWindow>& buf) = 0; Loading Loading
include/camera/CameraHardwareInterface.h +53 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ #include <ui/egl/android_natives.h> #include <utils/RefBase.h> #include <surfaceflinger/ISurface.h> #include <ui/android_native_buffer.h> #include <ui/GraphicBuffer.h> #include <camera/Camera.h> #include <camera/CameraParameters.h> Loading @@ -47,6 +49,17 @@ typedef void (*data_callback)(int32_t msgType, const sp<IMemory>& dataPtr, void* user); #ifdef USE_GRAPHIC_VIDEO_BUFFERS /** * Replace data_callback_timestamp. Once we are done, this * should be renamed as data_callback_timestamp, and the existing * data_callback_timestamp should be deleted. */ typedef void (*videobuffer_callback_timestamp)(nsecs_t timestamp, int32_t msgType, const sp<android_native_buffer_t>& buf, void* user); #endif typedef void (*data_callback_timestamp)(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& dataPtr, Loading Loading @@ -87,6 +100,46 @@ class CameraHardwareInterface : public virtual RefBase { public: virtual ~CameraHardwareInterface() { } #ifdef USE_GRAPHIC_VIDEO_BUFFERS /** * Replace existing setCallbacks() method. Once we are done, the * videobuffer_callback_timestamp parameter will be renamed to * data_callback_timestamp, but its signature will be the same * as videobuffer_callback_timestamp, which will be renamed * to data_callback_timestamp and the exiting data_callback_timestamp * will be deleted. */ virtual void setCallbacks(notify_callback notify_cb, data_callback data_cb, videobuffer_callback_timestamp data_cb_timestamp, void* user) = 0; /** * Replace releaseRecordingFrame(). releaseRecordingFrame() should be * changed so that it has the same signature of releaseVideoBuffer(), * once we are done, and releaseVideoBuffer() will be deleted. */ virtual void releaseVideoBuffer(const sp<android_native_buffer_t>& buf) = 0; /** * This method should be called after startRecording(). * * @param nBuffers the total number of video buffers allocated by the camera * hal * @param buffers an array allocated by the camera hal to hold the pointers * to the individual video buffers. The video buffers and the buffers array * should NOT be modified/released by camera hal until stopRecording() is * called and all outstanding video buffers previously sent out via * CAMERA_MSG_VIDEO_FRAME have been released via releaseVideoBuffer(). * Camera hal client must not release the individual buffers and the buffers * array. * @return no error if OK. */ virtual status_t getVideoBufferInfo( sp<android_native_buffer_t>** buffers, size_t *nBuffers) = 0; #endif /** Set the ANativeWindow to which preview frames are sent */ virtual status_t setPreviewWindow(const sp<ANativeWindow>& buf) = 0; Loading