aboutsummaryrefslogtreecommitdiff
path: root/modules/ocl/cl_image_handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/ocl/cl_image_handler.cpp')
-rw-r--r--modules/ocl/cl_image_handler.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/modules/ocl/cl_image_handler.cpp b/modules/ocl/cl_image_handler.cpp
index f9fc56c..2fb87ab 100644
--- a/modules/ocl/cl_image_handler.cpp
+++ b/modules/ocl/cl_image_handler.cpp
@@ -25,6 +25,7 @@
#include "drm_bo_buffer.h"
#endif
#include "cl_device.h"
+#include "cl_video_buffer.h"
#include "swapped_buffer.h"
namespace XCam {
@@ -167,9 +168,9 @@ CLImageHandler::create_buffer_pool (const VideoBufferInfo &video_info)
if (_buf_pool.ptr ())
return XCAM_RETURN_ERROR_PARAM;
- SmartPtr<BufferPool> buffer_pool;
if (_buf_pool_type == CLImageHandler::CLVideoPoolType) {
- buffer_pool = new CLVideoBufferPool ();
+ SmartPtr<BufferPool> pool = new CLVideoBufferPool ();
+ _buf_pool = pool.ptr() ? pool : _buf_pool;
}
#if HAVE_LIBDRM
else {
@@ -181,30 +182,29 @@ CLImageHandler::create_buffer_pool (const VideoBufferInfo &video_info)
"CLImageHandler(%s) failed to get drm dispay", XCAM_STR (_name));
if (_buf_pool_type == CLImageHandler::DrmBoPoolType) {
- buffer_pool = new DrmBoBufferPool (display);
+ SmartPtr<BufferPool> pool = new DrmBoBufferPool (display);
+ _buf_pool = pool.ptr() ? pool : _buf_pool;
} else if (_buf_pool_type == CLImageHandler::CLBoPoolType) {
- buffer_pool = new CLBoBufferPool (display, get_context ());
+ SmartPtr<BufferPool> pool = new CLBoBufferPool (display, get_context ());
+ _buf_pool = pool.ptr() ? pool : _buf_pool;
}
}
#endif
XCAM_FAIL_RETURN(
WARNING,
- buffer_pool.ptr (),
+ _buf_pool.ptr (),
XCAM_RETURN_ERROR_CL,
"CLImageHandler(%s) create buffer pool failed, pool_type:%d",
XCAM_STR (_name), (int32_t)_buf_pool_type);
- XCAM_ASSERT (buffer_pool.ptr ());
// buffer_pool->set_swap_flags (_buf_swap_flags, _buf_swap_init_order);
- buffer_pool->set_video_info (video_info);
-
+ _buf_pool->set_video_info (video_info);
XCAM_FAIL_RETURN(
WARNING,
- buffer_pool->reserve (_buf_pool_size),
+ _buf_pool->reserve (_buf_pool_size),
XCAM_RETURN_ERROR_CL,
"CLImageHandler(%s) failed to init drm buffer pool", XCAM_STR (_name));
- _buf_pool = buffer_pool;
return XCAM_RETURN_NO_ERROR;
}