1eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin/* 2eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * Copyright (C) 2013 The Android Open Source Project 3eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * 4eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * Licensed under the Apache License, Version 2.0 (the "License"); 5eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * you may not use this file except in compliance with the License. 6eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * You may obtain a copy of the License at 7eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * 8eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * http://www.apache.org/licenses/LICENSE-2.0 9eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * 10eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * Unless required by applicable law or agreed to in writing, software 11eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * distributed under the License is distributed on an "AS IS" BASIS, 12eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * See the License for the specific language governing permissions and 14eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin * limitations under the License. 15eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin */ 16eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 17eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin#ifndef ANDROID_SERVERS_CAMERA3_STREAMBUFFERLISTENER_H 18eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin#define ANDROID_SERVERS_CAMERA3_STREAMBUFFERLISTENER_H 19eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 20eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin#include <gui/Surface.h> 21eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin#include <utils/RefBase.h> 22eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 23eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkinnamespace android { 24eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 25eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkinnamespace camera3 { 26eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 27eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkinclass Camera3StreamBufferListener : public virtual RefBase { 28eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkinpublic: 29eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 30eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin struct BufferInfo { 31eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin bool mOutput; // if false then input buffer 32eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin Rect mCrop; 33eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin uint32_t mTransform; 34eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin uint32_t mScalingMode; 35eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin int64_t mTimestamp; 36eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin uint64_t mFrameNumber; 37b0fdc1ed2182fe851ef7ca98a1b4a552b53b3033Shuzhen Wang bool mError; 38eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin }; 39eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 40eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin // Buffer was acquired by the HAL 41eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin virtual void onBufferAcquired(const BufferInfo& bufferInfo) = 0; 42eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin // Buffer was released by the HAL 43eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin virtual void onBufferReleased(const BufferInfo& bufferInfo) = 0; 44eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin}; 45eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 46eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin}; //namespace camera3 47eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin}; //namespace android 48eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin 49eb10919cd3c8c26b0b9c09f933d152248ac3a666Igor Murashkin#endif 50