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