/* static */ bool ADTSDecoder::IsSupportedType(const MediaContentType& aContentType) { if (aContentType.Type() == MEDIAMIMETYPE("audio/aac") || aContentType.Type() == MEDIAMIMETYPE("audio/aacp") || aContentType.Type() == MEDIAMIMETYPE("audio/x-aac")) { return IsEnabled() && (aContentType.ExtendedType().Codecs().IsEmpty() || aContentType.ExtendedType().Codecs().AsString().EqualsASCII("aac")); } return false; }
bool AndroidMediaPluginHost::FindDecoder(const MediaContentType& aMimeType, MediaCodecs* aCodecs) { const char *chars; size_t len = NS_CStringGetData(aMimeType.Type().AsString(), &chars, nullptr); for (size_t n = 0; n < mPlugins.Length(); ++n) { Manifest *plugin = mPlugins[n]; const char* const *codecs; if (plugin->CanDecode(chars, len, &codecs)) { if (aCodecs) { nsString codecsString; for (const char* const* codec = codecs; *codec; ++codec) { if (codecsString.IsEmpty()) { codecsString += ','; } codecsString.AppendASCII(*codec); } *aCodecs = MediaCodecs(codecsString); } return true; } } return false; }