You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
4.3 KiB
121 lines
4.3 KiB
/*
|
|
* Copyright (C) 2016 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package android.hardware.camera.device@1.0;
|
|
|
|
import android.hardware.camera.common@1.0::types;
|
|
import android.hardware.graphics.common@1.0::types;
|
|
|
|
/**
|
|
* Camera device HAL@1.0 preview stream operation interface.
|
|
*/
|
|
interface ICameraDevicePreviewCallback {
|
|
|
|
/**
|
|
* Acquire a buffer to write a preview buffer into.
|
|
*
|
|
* @return status The status code for this operation. If not OK, then
|
|
* buffer and stride must not be used.
|
|
* @return bufferId A unique ID for the returned buffer.
|
|
* @return buffer A handle to the buffer to write into. Must be non-null if the bufferId has not
|
|
* been seen by HAL before. Must be null if the bufferId is seen before. HAL must keep track
|
|
* of the bufferId to actual buffer handle mapping.
|
|
* @return stride The stride between two rows of pixels in this buffer.
|
|
*/
|
|
dequeueBuffer() generates (Status status, uint64_t bufferId, handle buffer, uint32_t stride);
|
|
|
|
/**
|
|
* Send a filled preview buffer to its consumer.
|
|
*
|
|
* @param bufferId The bufferId of the preview buffer
|
|
* @return status The status code for this operation.
|
|
*/
|
|
enqueueBuffer(uint64_t bufferId) generates (Status status);
|
|
|
|
/**
|
|
* Return a preview buffer unfilled. This buffer must not be sent on to the
|
|
* preview consumer as a valid buffer, but may be reused as if it were
|
|
* empty.
|
|
*
|
|
* @param bufferId The bufferId of the preview buffer
|
|
* @return status The status code for this operation.
|
|
*/
|
|
cancelBuffer(uint64_t bufferId) generates (Status status);
|
|
|
|
/**
|
|
* Set the number of preview buffers needed by the HAL.
|
|
*
|
|
* @param count The maximum number of preview buffers to allocate.
|
|
* @return status The status code for this operation.
|
|
*/
|
|
setBufferCount(uint32_t count) generates (Status status);
|
|
|
|
/**
|
|
* Set the dimensions and format of future preview buffers.
|
|
*
|
|
* The next buffer that is dequeued must match the requested size and
|
|
* format.
|
|
*
|
|
* @return Status The status code for this operation.
|
|
*/
|
|
setBuffersGeometry(uint32_t w, uint32_t h,
|
|
android.hardware.graphics.common@1.0::PixelFormat format)
|
|
generates (Status status);
|
|
|
|
/**
|
|
* Set the valid region of image data for the next buffer(s) to be enqueued.
|
|
*
|
|
* @return Status The status code for this operation.
|
|
*/
|
|
setCrop(int32_t left, int32_t top, int32_t right, int32_t bottom)
|
|
generates (Status status);
|
|
|
|
/**
|
|
* Set the producer usage flags for the next buffer(s) to be enqueued.
|
|
*
|
|
* @return Status The status code for this operation.
|
|
*/
|
|
setUsage(BufferUsage usage) generates (Status status);
|
|
|
|
/**
|
|
* Set the expected buffering mode for the preview output.
|
|
*/
|
|
setSwapInterval(int32_t interval) generates (Status status);
|
|
|
|
/**
|
|
* Get the minimum number of buffers the preview consumer endpoint needs
|
|
* to hold for correct operation.
|
|
*
|
|
* @return Status The status code for this operation.
|
|
* @return count The number of buffers the consumer has requested.
|
|
*/
|
|
getMinUndequeuedBufferCount() generates (Status status, uint32_t count);
|
|
|
|
/**
|
|
* Set the timestamp for the next buffer to enqueue
|
|
*
|
|
* Timestamps are measured in nanoseconds, and must be comparable
|
|
* and monotonically increasing between two frames in the same
|
|
* preview stream. They do not need to be comparable between
|
|
* consecutive or parallel preview streams, cameras, or app runs.
|
|
*
|
|
* @param timestamp The timestamp to set for future buffers.
|
|
* @return Status The status code for this operation.
|
|
*/
|
|
setTimestamp(int64_t timestamp) generates (Status status);
|
|
|
|
};
|