166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. 266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* 366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* Redistribution and use in source and binary forms, with or without 466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* modification, are permitted provided that the following conditions are 566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* met: 666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* * Redistributions of source code must retain the above copyright 766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* notice, this list of conditions and the following disclaimer. 866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* * Redistributions in binary form must reproduce the above 966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* copyright notice, this list of conditions and the following 1066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* disclaimer in the documentation and/or other materials provided 1166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* with the distribution. 1266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* * Neither the name of The Linux Foundation nor the names of its 1366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* contributors may be used to endorse or promote products derived 1466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* from this software without specific prior written permission. 1566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* 1666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 1766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 1966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 2066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 2366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 2566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 2666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin* 2866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin*/ 2966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 3066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#define LOG_TAG "QCameraBufferMaps" 3166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 3266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin// System dependencies 3366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#include <utils/Errors.h> 3466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#include <stdlib.h> 3566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#include <string.h> 3666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 3766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin// Camera dependencies 3866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin#include "QCameraBufferMaps.h" 3966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 4066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjinusing namespace android; 4166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 4266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjinnamespace qcamera { 4366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 4466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 4566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : QCameraBufferMaps 4666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 4766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: default constructor of QCameraBufferMaps 4866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 4966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : None 5066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 5166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : None 5266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 5366f9976540f830b0090ff2ca557b0364a53f2008Patrick TjinQCameraBufferMaps::QCameraBufferMaps() 5466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 5566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin memset(&mBufMapList, 0, sizeof(mBufMapList)); 5666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 5766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 5866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 5966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : QCameraBufferMaps 6066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 6166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: copy constructor of QCameraBufferMaps 6266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 6366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : 6466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pBufferMaps : object to be copied 6566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 6666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : None 6766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 6866f9976540f830b0090ff2ca557b0364a53f2008Patrick TjinQCameraBufferMaps::QCameraBufferMaps(const QCameraBufferMaps& pBufferMaps) 6966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 7066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin memcpy(&mBufMapList, &pBufferMaps.mBufMapList, sizeof(mBufMapList)); 7166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 7266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 7366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 7466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : QCameraBufferMaps 7566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 7666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: constructor of QCameraBufferMaps 7766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 7866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : 7966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pBufMapList : list of buffer maps 8066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 8166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : None 8266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 8366f9976540f830b0090ff2ca557b0364a53f2008Patrick TjinQCameraBufferMaps::QCameraBufferMaps(const cam_buf_map_type_list& pBufMapList) 8466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 8566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin memcpy(&mBufMapList, &pBufMapList, sizeof(mBufMapList)); 8666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 8766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 8866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 8966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : QCameraBufferMaps 9066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 9166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: constructor of QCameraBufferMaps 9266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 9366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : 9466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pType : Type of buffer 9566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pStreamId : Stream id 9666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pFrameIndex : Frame index 9766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pPlaneIndex : Plane index 9866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pCookie : Could be job_id to identify mapping job 9966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pFd : Origin file descriptor 10066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pSize : Size of the buffer 10166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 10266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : None 10366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 10466f9976540f830b0090ff2ca557b0364a53f2008Patrick TjinQCameraBufferMaps::QCameraBufferMaps(cam_mapping_buf_type pType, 10566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pStreamId, 10666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pFrameIndex, 10766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t pPlaneIndex, 10866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pCookie, 10966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t pFd, 110c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda size_t pSize, 111c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda void *buffer) 11266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 11366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin memset(&mBufMapList, 0, sizeof(mBufMapList)); 114c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda enqueue(pType, pStreamId, pFrameIndex, pPlaneIndex, pCookie, pFd, pSize, buffer); 11566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 11666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 11766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 11866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : ~QCameraBufferMaps 11966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 12066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: destructor of QCameraBufferMaps 12166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 12266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : None 12366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 12466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : None 12566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 12666f9976540f830b0090ff2ca557b0364a53f2008Patrick TjinQCameraBufferMaps::~QCameraBufferMaps() 12766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 12866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 12966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 13066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 13166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : operator= 13266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 13366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: assignment operator of QCameraBufferMaps 13466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 13566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : 13666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pBufferMaps : object to be copied 13766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 13866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : *this, with updated contents 13966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 14066f9976540f830b0090ff2ca557b0364a53f2008Patrick TjinQCameraBufferMaps& QCameraBufferMaps::operator=(const QCameraBufferMaps& pBufferMaps) 14166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 14266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin if (&pBufferMaps != this) { 14366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin memcpy(&mBufMapList, &pBufferMaps.mBufMapList, sizeof(mBufMapList)); 14466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin } 14566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin return *this; 14666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 14766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 14866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 14966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : enqueue 15066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 15166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: Add a buffer map 15266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 15366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : 15466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pType : Type of buffer 15566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pStreamId : Stream id 15666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pFrameIndex : Frame index 15766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pPlaneIndex : Plane index 15866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pCookie : Could be job_id to identify mapping job 15966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pFd : Origin file descriptor 16066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pSize : Size of the buffer 16166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 16266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : int32_t type of status 16366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * NO_ERROR -- success 16466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * none-zero failure code 16566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 16666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjinuint32_t QCameraBufferMaps::enqueue(cam_mapping_buf_type pType, 16766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pStreamId, 16866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pFrameIndex, 16966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t pPlaneIndex, 17066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pCookie, 17166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t pFd, 172c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda size_t pSize, 173c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda void *buffer) 17466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 17566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pos = mBufMapList.length++; 17666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin mBufMapList.buf_maps[pos].type = pType; 17766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin mBufMapList.buf_maps[pos].stream_id = pStreamId; 17866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin mBufMapList.buf_maps[pos].frame_idx = pFrameIndex; 17966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin mBufMapList.buf_maps[pos].plane_idx = pPlaneIndex; 18066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin mBufMapList.buf_maps[pos].cookie = pCookie; 18166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin mBufMapList.buf_maps[pos].fd = pFd; 18266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin mBufMapList.buf_maps[pos].size = pSize; 183c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda mBufMapList.buf_maps[pos].buffer = buffer; 18466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 18566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin return NO_ERROR; 18666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 18766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 18866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 18966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : getCamBufMapList 19066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 19166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: Populate the list 19266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 19366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : 19466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pBufMapList : [output] the list of buffer maps 19566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 19666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : int32_t type of status 19766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * NO_ERROR -- success 19866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * none-zero failure code 19966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 20066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjinuint32_t QCameraBufferMaps::getCamBufMapList(cam_buf_map_type_list& pBufMapList) const 20166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 20266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin memcpy(&pBufMapList, &mBufMapList, sizeof(pBufMapList)); 20366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 20466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin return NO_ERROR; 20566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 20666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 20766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin/*=========================================================================== 20866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * FUNCTION : makeSingletonBufMapList 20966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 21066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * DESCRIPTION: Create a buffer map list of a single element 21166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 21266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * PARAMETERS : 21366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pType : Type of buffer 21466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pStreamId : Stream id 21566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pFrameIndex : Frame index 21666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pPlaneIndex : Plane index 21766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pCookie : Could be job_id to identify mapping job 21866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pFd : Origin file descriptor 21966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pSize : Size of the buffer 22066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * @pBufMapList : [output] the list of buffer maps 22166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * 22266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * RETURN : int32_t type of status 22366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * NO_ERROR -- success 22466f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin * none-zero failure code 22566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin *==========================================================================*/ 22666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjinuint32_t QCameraBufferMaps::makeSingletonBufMapList(cam_mapping_buf_type pType, 22766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pStreamId, 22866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pFrameIndex, 22966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t pPlaneIndex, 23066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t pCookie, 23166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin int32_t pFd, 23266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin size_t pSize, 233c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda cam_buf_map_type_list& pBufMapList, 234c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda void *buffer) 23566f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin{ 23666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin uint32_t rc = NO_ERROR; 23766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 23866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin QCameraBufferMaps bufferMaps(pType, 23966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin pStreamId, 24066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin pFrameIndex, 24166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin pPlaneIndex, 24266f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin pCookie, 24366f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin pFd, 244c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda pSize, 245c90a6a8f890acfc51343f58e7f9befe6276d2629Ranjith Kagathi Ananda buffer); 24666f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin rc = bufferMaps.getCamBufMapList(pBufMapList); 24766f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 24866f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin return rc; 24966f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin} 25066f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin 25166f9976540f830b0090ff2ca557b0364a53f2008Patrick Tjin}; // namespace qcamera 252