diff --git a/services/media_engine/filters/audio_decoder_filter.cpp b/services/media_engine/filters/audio_decoder_filter.cpp
index 89f4f7208eebd3d2c46ce3740945cd37a4ae09ee..36c82f0ea0ba90eac751eba3dc5b45f0deef8731 100644
--- a/services/media_engine/filters/audio_decoder_filter.cpp
+++ b/services/media_engine/filters/audio_decoder_filter.cpp
@@ -15,6 +15,7 @@
#include "audio_decoder_filter.h"
#include "filter/filter_factory.h"
+#include "common/media_core.h"
namespace OHOS {
namespace Media {
@@ -222,11 +223,15 @@ FilterType AudioDecoderFilter::GetFilterType()
Status AudioDecoderFilter::OnLinked(StreamType inType, const std::shared_ptr &meta,
const std::shared_ptr &callback)
{
- MEDIA_LOG_E("AudioDecoderFilter::OnLinked.");
+ MEDIA_LOG_I("AudioDecoderFilter::OnLinked.");
onLinkedResultCallback_ = callback;
meta_ = meta;
std::string mime;
- meta_->GetData(Tag::MIME_TYPE, mime);
+ bool mimeGetRes = meta_->GetData(Tag::MIME_TYPE, mime);
+ if (!mimeGetRes && eventReceiver_ != nullptr) {
+ MEDIA_LOG_I("AudioDecoderFilter cannot get mime");
+ eventReceiver_->OnEvent({"audioDecoder", EventType::EVENT_ERROR, MSERR_UNSUPPORT_AUD_DEC_TYPE});
+ }
meta->SetData(Tag::AUDIO_SAMPLE_FORMAT, Plugins::SAMPLE_S16LE);
SetParameter(meta);
mediaCodec_->Init(mime, false);