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