Camera3DummyStream.cpp revision 16a2ada049447c156648812b94d25be07869f284
1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch/*
2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * Copyright (C) 2014 The Android Open Source Project
3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch *
4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * Licensed under the Apache License, Version 2.0 (the "License");
5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * you may not use this file except in compliance with the License.
6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * You may obtain a copy of the License at
7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch *
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch *      http://www.apache.org/licenses/LICENSE-2.0
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch *
10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * Unless required by applicable law or agreed to in writing, software
112385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch * distributed under the License is distributed on an "AS IS" BASIS,
129ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch * See the License for the specific language governing permissions and
14bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch * limitations under the License.
15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch */
162385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
17bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#define LOG_TAG "Camera3-DummyStream"
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define ATRACE_TAG ATRACE_TAG_CAMERA
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch//#define LOG_NDEBUG 0
20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <utils/Log.h>
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <utils/Trace.h>
23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "Camera3DummyStream.h"
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
252385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochnamespace android {
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace camera3 {
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCamera3DummyStream::Camera3DummyStream(int id) :
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        Camera3IOStreamBase(id, CAMERA3_STREAM_OUTPUT, DUMMY_WIDTH, DUMMY_HEIGHT,
31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                /*maxSize*/0, DUMMY_FORMAT) {
32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
332385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch}
342385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
352385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochCamera3DummyStream::~Camera3DummyStream() {
362385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
372385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch}
382385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
392385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochstatus_t Camera3DummyStream::getBufferLocked(camera3_stream_buffer *buffer) {
402385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    ATRACE_CALL();
412385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    ALOGE("%s: Stream %d: Dummy stream cannot produce buffers!", mId);
422385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    return INVALID_OPERATION;
432385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch}
44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochstatus_t Camera3DummyStream::returnBufferLocked(
46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        const camera3_stream_buffer &buffer,
47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        nsecs_t timestamp) {
48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    ATRACE_CALL();
49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    ALOGE("%s: Stream %d: Dummy stream cannot return buffers!", mId);
50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    return INVALID_OPERATION;
51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)status_t Camera3DummyStream::returnBufferCheckedLocked(
54bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch            const camera3_stream_buffer &buffer,
5503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)            nsecs_t timestamp,
56bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch            bool output,
57bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch            /*out*/
5803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)            sp<Fence> *releaseFenceOut) {
5903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    ATRACE_CALL();
60bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    ALOGE("%s: Stream %d: Dummy stream cannot return buffers!", mId);
6103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    return INVALID_OPERATION;
62bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch}
632385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
642385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochvoid Camera3DummyStream::dump(int fd, const Vector<String16> &args) const {
652385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    (void) args;
662385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    String8 lines;
672385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    lines.appendFormat("    Stream[%d]: Dummy\n", mId);
682385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    write(fd, lines.string(), lines.size());
692385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
702385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    Camera3IOStreamBase::dump(fd, args);
712385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch}
722385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
732385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochstatus_t Camera3DummyStream::setTransform(int transform) {
742385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    ATRACE_CALL();
752385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    // Do nothing
762385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    return OK;
772385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch}
78eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
79eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochstatus_t Camera3DummyStream::configureQueueLocked() {
80eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    // Do nothing
81eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    return OK;
8203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}
832385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
842385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochstatus_t Camera3DummyStream::disconnectLocked() {
852385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch    mState = (mState == STATE_IN_RECONFIG) ? STATE_IN_CONFIG
862385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                           : STATE_CONSTRUCTED;
87eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    return OK;
88eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
89bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
90bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochstatus_t Camera3DummyStream::getEndpointUsage(uint32_t *usage) {
91bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    *usage = DUMMY_USAGE;
92bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    return OK;
93bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch}
94bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
952385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch}; // namespace camera3
962385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
97bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch}; // namespace android
98bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch