summaryrefslogtreecommitdiff
path: root/media/codec2/sfplugin/Codec2InfoBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/codec2/sfplugin/Codec2InfoBuilder.cpp')
-rw-r--r--media/codec2/sfplugin/Codec2InfoBuilder.cpp20
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(&params);
+ if (err == C2_OK) {
+ for (const auto &paramDesc : params) {
+ if (C2LargeFrame::output::PARAM_TYPE == paramDesc->index()) {
+ std::string featureMultipleFrames =
+ std::string(KEY_FEATURE_) + FEATURE_MultipleFrames;
+ caps->addDetail(featureMultipleFrames.c_str(), 0);
+ break;
+ }
+ }
+ }
+ }
+ }
}
}
}