1/* 2 * Copyright (C) 2014-2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#define LOG_TAG "Camera3-DummyStream" 18#define ATRACE_TAG ATRACE_TAG_CAMERA 19//#define LOG_NDEBUG 0 20 21#include <utils/Log.h> 22#include <utils/Trace.h> 23#include "Camera3DummyStream.h" 24 25namespace android { 26 27namespace camera3 { 28 29const String8 Camera3DummyStream::DUMMY_ID; 30 31Camera3DummyStream::Camera3DummyStream(int id) : 32 Camera3IOStreamBase(id, CAMERA3_STREAM_OUTPUT, DUMMY_WIDTH, DUMMY_HEIGHT, 33 /*maxSize*/0, DUMMY_FORMAT, DUMMY_DATASPACE, DUMMY_ROTATION, 34 DUMMY_ID) { 35 36} 37 38Camera3DummyStream::~Camera3DummyStream() { 39 40} 41 42status_t Camera3DummyStream::getBufferLocked(camera3_stream_buffer *, 43 const std::vector<size_t>&) { 44 ATRACE_CALL(); 45 ALOGE("%s: Stream %d: Dummy stream cannot produce buffers!", __FUNCTION__, mId); 46 return INVALID_OPERATION; 47} 48 49status_t Camera3DummyStream::returnBufferLocked( 50 const camera3_stream_buffer &, 51 nsecs_t) { 52 ATRACE_CALL(); 53 ALOGE("%s: Stream %d: Dummy stream cannot return buffers!", __FUNCTION__, mId); 54 return INVALID_OPERATION; 55} 56 57status_t Camera3DummyStream::returnBufferCheckedLocked( 58 const camera3_stream_buffer &, 59 nsecs_t, 60 bool, 61 /*out*/ 62 sp<Fence>*) { 63 ATRACE_CALL(); 64 ALOGE("%s: Stream %d: Dummy stream cannot return buffers!", __FUNCTION__, mId); 65 return INVALID_OPERATION; 66} 67 68void Camera3DummyStream::dump(int fd, const Vector<String16> &args) const { 69 (void) args; 70 String8 lines; 71 lines.appendFormat(" Stream[%d]: Dummy\n", mId); 72 write(fd, lines.string(), lines.size()); 73 74 Camera3IOStreamBase::dump(fd, args); 75} 76 77status_t Camera3DummyStream::setTransform(int) { 78 ATRACE_CALL(); 79 // Do nothing 80 return OK; 81} 82 83status_t Camera3DummyStream::detachBuffer(sp<GraphicBuffer>* buffer, int* fenceFd) { 84 (void) buffer; 85 (void) fenceFd; 86 // Do nothing 87 return OK; 88} 89 90status_t Camera3DummyStream::configureQueueLocked() { 91 // Do nothing 92 return OK; 93} 94 95status_t Camera3DummyStream::disconnectLocked() { 96 mState = (mState == STATE_IN_RECONFIG) ? STATE_IN_CONFIG 97 : STATE_CONSTRUCTED; 98 return OK; 99} 100 101status_t Camera3DummyStream::getEndpointUsage(uint64_t *usage) const { 102 *usage = DUMMY_USAGE; 103 return OK; 104} 105 106bool Camera3DummyStream::isVideoStream() const { 107 return false; 108} 109 110bool Camera3DummyStream::isConsumerConfigurationDeferred(size_t /*surface_id*/) const { 111 return false; 112} 113 114status_t Camera3DummyStream::dropBuffers(bool /*dropping*/) { 115 return OK; 116} 117 118const String8& Camera3DummyStream::getPhysicalCameraId() const { 119 return DUMMY_ID; 120} 121 122status_t Camera3DummyStream::setConsumers(const std::vector<sp<Surface>>& /*consumers*/) { 123 ALOGE("%s: Stream %d: Dummy stream doesn't support set consumer surface!", 124 __FUNCTION__, mId); 125 return INVALID_OPERATION; 126} 127 128status_t Camera3DummyStream::updateStream(const std::vector<sp<Surface>> &/*outputSurfaces*/, 129 const std::vector<OutputStreamInfo> &/*outputInfo*/, 130 const std::vector<size_t> &/*removedSurfaceIds*/, 131 KeyedVector<sp<Surface>, size_t> * /*outputMap*/) { 132 ALOGE("%s: this method is not supported!", __FUNCTION__); 133 return INVALID_OPERATION; 134} 135 136}; // namespace camera3 137 138}; // namespace android 139