Index: media/base/mime_util_internal.cc |
diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc |
index d2ff7a150e3c55a4030083472a11915307fb34c8..db4f10b97cedcb8392e48a6731cd585e9f0424e9 100644 |
--- a/media/base/mime_util_internal.cc |
+++ b/media/base/mime_util_internal.cc |
@@ -710,15 +710,24 @@ SupportsType MimeUtil::IsCodecSupported(const std::string& mime_type_lower_case, |
ambiguous_platform_support = true; |
} |
- if (GetMediaClient() && video_codec != kUnknownVideoCodec && |
- !GetMediaClient()->IsSupportedVideoConfig( |
- {video_codec, video_profile, video_level, color_space})) { |
- return IsNotSupported; |
+ if (video_codec != kUnknownVideoCodec) { |
+ VideoConfig video_config = {video_codec, video_profile, video_level, |
+ color_space}; |
+ |
+ // If MediaClient is provided use it to check for decoder support. |
+ MediaClient* media_client = GetMediaClient(); |
+ if (media_client && !media_client->IsSupportedVideoConfig(video_config)) |
+ return IsNotSupported; |
+ |
+ // When no MediaClient is provided, assume default decoders are available |
+ // as described by media::IsSupportedVideoConfig(). |
+ if (!media_client && !IsSupportedVideoConfig(video_config)) |
+ return IsNotSupported; |
} |
#if defined(OS_ANDROID) |
// TODO(chcunningham): Delete this. Android platform support should be |
- // handled by (android specific) MediaClient. |
+ // handled by (android specific) media::IsSupportedVideoConfig() above. |
if (!IsCodecSupportedOnAndroid(codec, mime_type_lower_case, is_encrypted, |
platform_info_)) { |
return IsNotSupported; |