18b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol/* 28b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Copyright (c) 2014 Intel Corporation 38b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 48b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Licensed under the Apache License, Version 2.0 (the "License"); 58b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// you may not use this file except in compliance with the License. 68b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// You may obtain a copy of the License at 78b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 88b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// http://www.apache.org/licenses/LICENSE-2.0 98b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 108b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Unless required by applicable law or agreed to in writing, software 118b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// distributed under the License is distributed on an "AS IS" BASIS, 128b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// See the License for the specific language governing permissions and 148b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// limitations under the License. 158b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol*/ 168b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#ifndef IVIDEO_PAYLOAD_MANAGER_H 178b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#define IVIDEO_PAYLOAD_MANAGER_H 188b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 198b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#include <hardware/hwcomposer.h> 208b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 218b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolnamespace android { 228b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolnamespace intel { 238b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 248b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolclass BufferMapper; 258b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 268b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolclass IVideoPayloadManager { 278b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolpublic: 288b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol IVideoPayloadManager() {} 298b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol virtual ~IVideoPayloadManager() {} 308b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 318b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolpublic: 328b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol struct Buffer { 338b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol buffer_handle_t khandle; 348b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t width; 358b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t height; 368b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t bufWidth; 378b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t bufHeight; 388b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t lumaStride; 398b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t chromaUStride; 408b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t chromaVStride; 418b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t offsetX; 428b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint16_t offsetY; 438b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol bool tiled; 448b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol }; 458b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol struct MetaData { 468b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint32_t format; 478b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol uint32_t transform; 488b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol int64_t timestamp; 498b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol Buffer normalBuffer; 508b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol Buffer scalingBuffer; 518b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol Buffer rotationBuffer; 528b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol }; 538b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 548b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolpublic: 558b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol virtual bool getMetaData(BufferMapper *mapper, MetaData *metadata) = 0; 568b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol virtual bool setRenderStatus(BufferMapper *mapper, bool renderStatus) = 0; 578b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol}; 588b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 598b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol} // namespace intel 608b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol} // namespace android 618b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 628b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#endif /* IVIDEO_PAYLOAD_MANAGER_H */ 63