Camera3StreamBufferListener.h revision 7b82efe7a376c882f8f938e1c41b8311a8cdda4a
123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)/*
223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * Copyright (C) 2013 The Android Open Source Project
323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) *
423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License");
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * you may not use this file except in compliance with the License.
623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * You may obtain a copy of the License at
723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) *
823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) *      http://www.apache.org/licenses/LICENSE-2.0
923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) *
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Unless required by applicable law or agreed to in writing, software
1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS,
1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * See the License for the specific language governing permissions and
1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * limitations under the License.
1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) */
1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef ANDROID_SERVERS_CAMERA3_STREAMBUFFERLISTENER_H
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define ANDROID_SERVERS_CAMERA3_STREAMBUFFERLISTENER_H
196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <gui/Surface.h>
2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include <utils/RefBase.h>
2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace android {
2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace camera3 {
2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)class Camera3StreamBufferListener : public virtual RefBase {
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdochpublic:
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    struct BufferInfo {
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        bool mOutput; // if false then input buffer
3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        Rect mCrop;
3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        uint32_t mTransform;
3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        uint32_t mScalingMode;
3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        int64_t mTimestamp;
3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        uint64_t mFrameNumber;
3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    };
3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    // Buffer was acquired by the HAL
4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    virtual void onBufferAcquired(const BufferInfo& bufferInfo) = 0;
4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    // Buffer was released by the HAL
4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    virtual void onBufferReleased(const BufferInfo& bufferInfo) = 0;
435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)};
445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}; //namespace camera3
4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}; //namespace android
4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
4823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#endif
49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)