- std::string codec_type = AndroidMimeTypeToCodecType(mime_type);
- std::vector<media::MediaCodecBridge::CodecsInfo> codecs_info =
- MediaCodecBridge::GetCodecsInfo();
- for (size_t i = 0; i < codecs_info.size(); ++i) {
- if (codecs_info[i].codecs == codec_type &&
- codecs_info[i].direction == direction) {
- // It would be nice if MediaCodecInfo externalized some notion of
- // HW-acceleration but it doesn't. Android Media guidance is that the
- // prefix below is always used for SW decoders, so that's what we use.
- if (!StartsWithASCII(codecs_info[i].name, "OMX.google.", true))
- return false;
+ std::string codec_name;
+ if (SupportsGetName()) {
+ codec_name = GetDefaultCodecName(mime_type, direction);
+ } else {
+ std::string codec_type = AndroidMimeTypeToCodecType(mime_type);
+ std::vector<media::MediaCodecBridge::CodecsInfo> codecs_info =
+ MediaCodecBridge::GetCodecsInfo();
+ for (size_t i = 0; i < codecs_info.size(); ++i) {
+ if (codecs_info[i].codecs == codec_type &&
+ codecs_info[i].direction == direction) {
+ codec_name = codecs_info[i].name;
+ break;
+ }