diff options
Diffstat (limited to 'media/codecs/base/SimpleC2Interface.cpp')
| -rw-r--r-- | media/codecs/base/SimpleC2Interface.cpp | 315 |
1 files changed, 0 insertions, 315 deletions
diff --git a/media/codecs/base/SimpleC2Interface.cpp b/media/codecs/base/SimpleC2Interface.cpp deleted file mode 100644 index c849a4e..0000000 --- a/media/codecs/base/SimpleC2Interface.cpp +++ /dev/null @@ -1,315 +0,0 @@ -/* - * Copyright (C) 2017 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. - */ - -//#define LOG_NDEBUG 0 -#define LOG_TAG "SimpleC2Interface" -#include <utils/Log.h> - -// use MediaDefs here vs. MediaCodecConstants as this is not MediaCodec specific/dependent -#include <media/stagefright/foundation/MediaDefs.h> - -#include <SimpleC2Interface.h> - -namespace android { - -/* SimpleInterface */ - -SimpleInterface<void>::BaseParams::BaseParams( - const std::shared_ptr<C2ReflectorHelper> &reflector, - C2String name, - C2Component::kind_t kind, - C2Component::domain_t domain, - C2String mediaType, - std::vector<C2String> aliases) - : C2InterfaceHelper(reflector) { - setDerivedInstance(this); - - addParameter( - DefineParam(mName, C2_PARAMKEY_COMPONENT_NAME) - .withConstValue(AllocSharedString<C2ComponentNameSetting>(name.c_str())) - .build()); - - if (aliases.size()) { - C2String joined; - for (const C2String &alias : aliases) { - if (joined.length()) { - joined += ","; - } - joined += alias; - } - addParameter( - DefineParam(mAliases, C2_PARAMKEY_COMPONENT_ALIASES) - .withConstValue(AllocSharedString<C2ComponentAliasesSetting>(joined.c_str())) - .build()); - } - - addParameter( - DefineParam(mKind, C2_PARAMKEY_COMPONENT_KIND) - .withConstValue(new C2ComponentKindSetting(kind)) - .build()); - - addParameter( - DefineParam(mDomain, C2_PARAMKEY_COMPONENT_DOMAIN) - .withConstValue(new C2ComponentDomainSetting(domain)) - .build()); - - // simple interfaces have single streams - addParameter( - DefineParam(mInputStreamCount, C2_PARAMKEY_INPUT_STREAM_COUNT) - .withConstValue(new C2PortStreamCountTuning::input(1)) - .build()); - - addParameter( - DefineParam(mOutputStreamCount, C2_PARAMKEY_OUTPUT_STREAM_COUNT) - .withConstValue(new C2PortStreamCountTuning::output(1)) - .build()); - - // set up buffer formats and allocators - - // default to linear buffers and no media type - C2BufferData::type_t rawBufferType = C2BufferData::LINEAR; - C2String rawMediaType; - C2Allocator::id_t rawAllocator = C2AllocatorStore::DEFAULT_LINEAR; - C2BlockPool::local_id_t rawPoolId = C2BlockPool::BASIC_LINEAR; - C2BufferData::type_t codedBufferType = C2BufferData::LINEAR; - C2Allocator::id_t codedAllocator = C2AllocatorStore::DEFAULT_LINEAR; - C2BlockPool::local_id_t codedPoolId = C2BlockPool::BASIC_LINEAR; - - switch (domain) { - case C2Component::DOMAIN_IMAGE: - case C2Component::DOMAIN_VIDEO: - // TODO: should we define raw image? The only difference is timestamp handling - rawBufferType = C2BufferData::GRAPHIC; - rawMediaType = MEDIA_MIMETYPE_VIDEO_RAW; - rawAllocator = C2AllocatorStore::DEFAULT_GRAPHIC; - rawPoolId = C2BlockPool::BASIC_GRAPHIC; - break; - case C2Component::DOMAIN_AUDIO: - rawBufferType = C2BufferData::LINEAR; - rawMediaType = MEDIA_MIMETYPE_AUDIO_RAW; - rawAllocator = C2AllocatorStore::DEFAULT_LINEAR; - rawPoolId = C2BlockPool::BASIC_LINEAR; - break; - default: - break; - } - bool isEncoder = kind == C2Component::KIND_ENCODER; - - // handle raw decoders - if (mediaType == rawMediaType) { - codedBufferType = rawBufferType; - codedAllocator = rawAllocator; - codedPoolId = rawPoolId; - } - - addParameter( - DefineParam(mInputFormat, C2_PARAMKEY_INPUT_STREAM_BUFFER_TYPE) - .withConstValue(new C2StreamBufferTypeSetting::input( - 0u, isEncoder ? rawBufferType : codedBufferType)) - .build()); - - addParameter( - DefineParam(mInputMediaType, C2_PARAMKEY_INPUT_MEDIA_TYPE) - .withConstValue(AllocSharedString<C2PortMediaTypeSetting::input>( - isEncoder ? rawMediaType : mediaType)) - .build()); - - addParameter( - DefineParam(mOutputFormat, C2_PARAMKEY_OUTPUT_STREAM_BUFFER_TYPE) - .withConstValue(new C2StreamBufferTypeSetting::output( - 0u, isEncoder ? codedBufferType : rawBufferType)) - .build()); - - addParameter( - DefineParam(mOutputMediaType, C2_PARAMKEY_OUTPUT_MEDIA_TYPE) - .withConstValue(AllocSharedString<C2PortMediaTypeSetting::output>( - isEncoder ? mediaType : rawMediaType)) - .build()); - - C2Allocator::id_t inputAllocators[1] = { isEncoder ? rawAllocator : codedAllocator }; - C2Allocator::id_t outputAllocators[1] = { isEncoder ? codedAllocator : rawAllocator }; - C2BlockPool::local_id_t outputPoolIds[1] = { isEncoder ? codedPoolId : rawPoolId }; - - addParameter( - DefineParam(mInputAllocators, C2_PARAMKEY_INPUT_ALLOCATORS) - .withDefault(C2PortAllocatorsTuning::input::AllocShared(inputAllocators)) - .withFields({ C2F(mInputAllocators, m.values[0]).any(), - C2F(mInputAllocators, m.values).inRange(0, 1) }) - .withSetter(Setter<C2PortAllocatorsTuning::input>::NonStrictValuesWithNoDeps) - .build()); - - addParameter( - DefineParam(mOutputAllocators, C2_PARAMKEY_OUTPUT_ALLOCATORS) - .withDefault(C2PortAllocatorsTuning::output::AllocShared(outputAllocators)) - .withFields({ C2F(mOutputAllocators, m.values[0]).any(), - C2F(mOutputAllocators, m.values).inRange(0, 1) }) - .withSetter(Setter<C2PortAllocatorsTuning::output>::NonStrictValuesWithNoDeps) - .build()); - - addParameter( - DefineParam(mOutputPoolIds, C2_PARAMKEY_OUTPUT_BLOCK_POOLS) - .withDefault(C2PortBlockPoolsTuning::output::AllocShared(outputPoolIds)) - .withFields({ C2F(mOutputPoolIds, m.values[0]).any(), - C2F(mOutputPoolIds, m.values).inRange(0, 1) }) - .withSetter(Setter<C2PortBlockPoolsTuning::output>::NonStrictValuesWithNoDeps) - .build()); - - // add stateless params - addParameter( - DefineParam(mSubscribedParamIndices, C2_PARAMKEY_SUBSCRIBED_PARAM_INDICES) - .withDefault(C2SubscribedParamIndicesTuning::AllocShared(0u)) - .withFields({ C2F(mSubscribedParamIndices, m.values[0]).any(), - C2F(mSubscribedParamIndices, m.values).any() }) - .withSetter(Setter<C2SubscribedParamIndicesTuning>::NonStrictValuesWithNoDeps) - .build()); - - /* TODO - - addParameter( - DefineParam(mCurrentWorkOrdinal, C2_PARAMKEY_CURRENT_WORK) - .withDefault(new C2CurrentWorkTuning()) - .withFields({ C2F(mCurrentWorkOrdinal, m.timeStamp).any(), - C2F(mCurrentWorkOrdinal, m.frameIndex).any(), - C2F(mCurrentWorkOrdinal, m.customOrdinal).any() }) - .withSetter(Setter<C2CurrentWorkTuning>::NonStrictValuesWithNoDeps) - .build()); - - addParameter( - DefineParam(mLastInputQueuedWorkOrdinal, C2_PARAMKEY_LAST_INPUT_QUEUED) - .withDefault(new C2LastWorkQueuedTuning::input()) - .withFields({ C2F(mLastInputQueuedWorkOrdinal, m.timeStamp).any(), - C2F(mLastInputQueuedWorkOrdinal, m.frameIndex).any(), - C2F(mLastInputQueuedWorkOrdinal, m.customOrdinal).any() }) - .withSetter(Setter<C2LastWorkQueuedTuning::input>::NonStrictValuesWithNoDeps) - .build()); - - addParameter( - DefineParam(mLastOutputQueuedWorkOrdinal, C2_PARAMKEY_LAST_OUTPUT_QUEUED) - .withDefault(new C2LastWorkQueuedTuning::output()) - .withFields({ C2F(mLastOutputQueuedWorkOrdinal, m.timeStamp).any(), - C2F(mLastOutputQueuedWorkOrdinal, m.frameIndex).any(), - C2F(mLastOutputQueuedWorkOrdinal, m.customOrdinal).any() }) - .withSetter(Setter<C2LastWorkQueuedTuning::output>::NonStrictValuesWithNoDeps) - .build()); - - std::shared_ptr<C2OutOfMemoryTuning> mOutOfMemory; - - std::shared_ptr<C2PortConfigCounterTuning::input> mInputConfigCounter; - std::shared_ptr<C2PortConfigCounterTuning::output> mOutputConfigCounter; - std::shared_ptr<C2ConfigCounterTuning> mDirectConfigCounter; - - */ -} - -void SimpleInterface<void>::BaseParams::noInputLatency() { - addParameter( - DefineParam(mRequestedInputDelay, C2_PARAMKEY_INPUT_DELAY_REQUEST) - .withConstValue(new C2PortRequestedDelayTuning::input(0u)) - .build()); - - addParameter( - DefineParam(mActualInputDelay, C2_PARAMKEY_INPUT_DELAY) - .withConstValue(new C2PortActualDelayTuning::input(0u)) - .build()); -} - -void SimpleInterface<void>::BaseParams::noOutputLatency() { - addParameter( - DefineParam(mRequestedOutputDelay, C2_PARAMKEY_OUTPUT_DELAY_REQUEST) - .withConstValue(new C2PortRequestedDelayTuning::output(0u)) - .build()); - - addParameter( - DefineParam(mActualOutputDelay, C2_PARAMKEY_OUTPUT_DELAY) - .withConstValue(new C2PortActualDelayTuning::output(0u)) - .build()); -} - -void SimpleInterface<void>::BaseParams::noPipelineLatency() { - addParameter( - DefineParam(mRequestedPipelineDelay, C2_PARAMKEY_PIPELINE_DELAY_REQUEST) - .withConstValue(new C2RequestedPipelineDelayTuning(0u)) - .build()); - - addParameter( - DefineParam(mActualPipelineDelay, C2_PARAMKEY_PIPELINE_DELAY) - .withConstValue(new C2ActualPipelineDelayTuning(0u)) - .build()); -} - -void SimpleInterface<void>::BaseParams::noPrivateBuffers() { - addParameter( - DefineParam(mPrivateAllocators, C2_PARAMKEY_PRIVATE_ALLOCATORS) - .withConstValue(C2PrivateAllocatorsTuning::AllocShared(0u)) - .build()); - - addParameter( - DefineParam(mMaxPrivateBufferCount, C2_PARAMKEY_MAX_PRIVATE_BUFFER_COUNT) - .withConstValue(C2MaxPrivateBufferCountTuning::AllocShared(0u)) - .build()); - - addParameter( - DefineParam(mPrivatePoolIds, C2_PARAMKEY_PRIVATE_BLOCK_POOLS) - .withConstValue(C2PrivateBlockPoolsTuning::AllocShared(0u)) - .build()); -} - -void SimpleInterface<void>::BaseParams::noInputReferences() { - addParameter( - DefineParam(mMaxInputReferenceAge, C2_PARAMKEY_INPUT_MAX_REFERENCE_AGE) - .withConstValue(new C2StreamMaxReferenceAgeTuning::input(0u)) - .build()); - - addParameter( - DefineParam(mMaxInputReferenceCount, C2_PARAMKEY_INPUT_MAX_REFERENCE_COUNT) - .withConstValue(new C2StreamMaxReferenceCountTuning::input(0u)) - .build()); -} - -void SimpleInterface<void>::BaseParams::noOutputReferences() { - addParameter( - DefineParam(mMaxOutputReferenceAge, C2_PARAMKEY_OUTPUT_MAX_REFERENCE_AGE) - .withConstValue(new C2StreamMaxReferenceAgeTuning::output(0u)) - .build()); - - addParameter( - DefineParam(mMaxOutputReferenceCount, C2_PARAMKEY_OUTPUT_MAX_REFERENCE_COUNT) - .withConstValue(new C2StreamMaxReferenceCountTuning::output(0u)) - .build()); -} - -void SimpleInterface<void>::BaseParams::noTimeStretch() { - addParameter( - DefineParam(mTimeStretch, C2_PARAMKEY_TIME_STRETCH) - .withConstValue(new C2ComponentTimeStretchTuning(1.f)) - .build()); -} - -/* - Clients need to handle the following base params due to custom dependency. - - std::shared_ptr<C2ApiLevelSetting> mApiLevel; - std::shared_ptr<C2ApiFeaturesSetting> mApiFeatures; - std::shared_ptr<C2ComponentAttributesSetting> mAttrib; - - std::shared_ptr<C2PortSuggestedBufferCountTuning::input> mSuggestedInputBufferCount; - std::shared_ptr<C2PortSuggestedBufferCountTuning::output> mSuggestedOutputBufferCount; - - std::shared_ptr<C2TrippedTuning> mTripped; - -*/ - -} // namespace android |
