diff options
Diffstat (limited to 'media/codec2/sfplugin/Codec2InfoBuilder.cpp')
-rw-r--r-- | media/codec2/sfplugin/Codec2InfoBuilder.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/media/codec2/sfplugin/Codec2InfoBuilder.cpp b/media/codec2/sfplugin/Codec2InfoBuilder.cpp index 453a0d2f59..8dce7892de 100644 --- a/media/codec2/sfplugin/Codec2InfoBuilder.cpp +++ b/media/codec2/sfplugin/Codec2InfoBuilder.cpp @@ -20,6 +20,8 @@ #include <strings.h> +#include <android_media_codec.h> + #include <C2Component.h> #include <C2Config.h> #include <C2Debug.h> @@ -752,6 +754,24 @@ status_t Codec2InfoBuilder::buildMediaCodecList(MediaCodecListWriter* writer) { } addSupportedColorFormats( intf, caps.get(), trait, mediaType, it->second); + + if (android::media::codec::provider_->large_audio_frame_finish()) { + // Adding feature-multiple-frames when C2LargeFrame param is present + if (trait.domain == C2Component::DOMAIN_AUDIO) { + std::vector<std::shared_ptr<C2ParamDescriptor>> params; + c2_status_t err = intf->querySupportedParams(¶ms); + if (err == C2_OK) { + for (const auto ¶mDesc : params) { + if (C2LargeFrame::output::PARAM_TYPE == paramDesc->index()) { + std::string featureMultipleFrames = + std::string(KEY_FEATURE_) + FEATURE_MultipleFrames; + caps->addDetail(featureMultipleFrames.c_str(), 0); + break; + } + } + } + } + } } } } |