17f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. 27f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * 37f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * Redistribution and use in source and binary forms, with or without 47f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * modification, are permitted provided that the following conditions are 57f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * met: 67f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * * Redistributions of source code must retain the above copyright 77f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * notice, this list of conditions and the following disclaimer. 87f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * * Redistributions in binary form must reproduce the above 97f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * copyright notice, this list of conditions and the following 107f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * disclaimer in the documentation and/or other materials provided 117f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * with the distribution. 127f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * * Neither the name of The Linux Foundation nor the names of its 137f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * contributors may be used to endorse or promote products derived 147f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * from this software without specific prior written permission. 157f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * 167f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 177f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 187f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 197f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 207f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 217f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 227f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 237f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 247f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 257f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 267f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 277f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He * 287f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He */ 297f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 307f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He#ifndef __QCAMERA_BUFFERMAPS_H__ 317f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He#define __QCAMERA_BUFFERMAPS_H__ 327f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 337f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He// Camera dependencies 347f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He#include "cam_types.h" 357f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 367f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun Henamespace qcamera { 377f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 387f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun Heclass QCameraBufferMaps { 397f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun Hepublic: 407f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He QCameraBufferMaps(); 417f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He QCameraBufferMaps(const QCameraBufferMaps& pBufferMaps); 427f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He QCameraBufferMaps(const cam_buf_map_type_list& pBufMapList); 437f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He QCameraBufferMaps(cam_mapping_buf_type pType, 447f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pStreamId, 457f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pFrameIndex, 467f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He int32_t pPlaneIndex, 477f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pCookie, 487f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He int32_t pFd, 497f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He size_t pSize, 507f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He void *buffer); 517f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 527f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He ~QCameraBufferMaps(); 537f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 547f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He QCameraBufferMaps& operator=(const QCameraBufferMaps& pBufferMaps); 557f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 567f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t enqueue(cam_mapping_buf_type pType, 577f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pStreamId, 587f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pFrameIndex, 597f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He int32_t pPlaneIndex, 607f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pCookie, 617f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He int32_t pFd, 627f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He size_t pSize, 637f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He void *buffer); 647f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 657f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t getCamBufMapList(cam_buf_map_type_list& pBufMapList) const; 667f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 677f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He static uint32_t makeSingletonBufMapList(cam_mapping_buf_type pType, 687f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pStreamId, 697f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pFrameIndex, 707f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He int32_t pPlaneIndex, 717f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He uint32_t pCookie, 727f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He int32_t pFd, 737f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He size_t pSize, 747f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He cam_buf_map_type_list& pBufMapList, 757f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He void *buffer); 767f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 777f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun Heprivate: 787f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He cam_buf_map_type_list mBufMapList; 797f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He}; 807f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 817f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He}; // namespace qcamera 827f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He#endif /* __QCAMERA_BUFFERMAPS_H__ */ 837f47f6bd7178f8bf54cf78a003a52c3f4585158cZhijun He 84