Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(159)

Side by Side Diff: media/base/mime_util_internal.cc

Issue 2758873003: New media/base/decode_capabilities.h|cc (Closed)
Patch Set: Rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/base/media_client.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/mime_util_internal.h" 5 #include "media/base/mime_util_internal.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 default: 703 default:
704 ambiguous_platform_support = true; 704 ambiguous_platform_support = true;
705 } 705 }
706 } else if (codec == MimeUtil::VP9 && video_profile != VP9PROFILE_PROFILE0) { 706 } else if (codec == MimeUtil::VP9 && video_profile != VP9PROFILE_PROFILE0) {
707 // We don't know if the underlying platform supports these profiles. Need 707 // We don't know if the underlying platform supports these profiles. Need
708 // to add platform level querying to get supported profiles. 708 // to add platform level querying to get supported profiles.
709 // https://crbug.com/604566 709 // https://crbug.com/604566
710 ambiguous_platform_support = true; 710 ambiguous_platform_support = true;
711 } 711 }
712 712
713 if (GetMediaClient() && video_codec != kUnknownVideoCodec && 713 if (video_codec != kUnknownVideoCodec) {
714 !GetMediaClient()->IsSupportedVideoConfig( 714 VideoConfig video_config = {video_codec, video_profile, video_level,
715 {video_codec, video_profile, video_level, color_space})) { 715 color_space};
716 return IsNotSupported; 716
717 // If MediaClient is provided use it to check for decoder support.
718 MediaClient* media_client = GetMediaClient();
719 if (media_client && !media_client->IsSupportedVideoConfig(video_config))
720 return IsNotSupported;
721
722 // When no MediaClient is provided, assume default decoders are available
723 // as described by media::IsSupportedVideoConfig().
724 if (!media_client && !IsSupportedVideoConfig(video_config))
725 return IsNotSupported;
717 } 726 }
718 727
719 #if defined(OS_ANDROID) 728 #if defined(OS_ANDROID)
720 // TODO(chcunningham): Delete this. Android platform support should be 729 // TODO(chcunningham): Delete this. Android platform support should be
721 // handled by (android specific) MediaClient. 730 // handled by (android specific) media::IsSupportedVideoConfig() above.
722 if (!IsCodecSupportedOnAndroid(codec, mime_type_lower_case, is_encrypted, 731 if (!IsCodecSupportedOnAndroid(codec, mime_type_lower_case, is_encrypted,
723 platform_info_)) { 732 platform_info_)) {
724 return IsNotSupported; 733 return IsNotSupported;
725 } 734 }
726 #endif 735 #endif
727 736
728 return ambiguous_platform_support ? MayBeSupported : IsSupported; 737 return ambiguous_platform_support ? MayBeSupported : IsSupported;
729 } 738 }
730 739
731 bool MimeUtil::IsCodecProprietary(Codec codec) const { 740 bool MimeUtil::IsCodecProprietary(Codec codec) const {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 SupportsType MimeUtil::IsDefaultCodecSupported(const std::string& mime_type, 787 SupportsType MimeUtil::IsDefaultCodecSupported(const std::string& mime_type,
779 bool is_encrypted) const { 788 bool is_encrypted) const {
780 Codec default_codec = Codec::INVALID_CODEC; 789 Codec default_codec = Codec::INVALID_CODEC;
781 if (!GetDefaultCodec(mime_type, &default_codec)) 790 if (!GetDefaultCodec(mime_type, &default_codec))
782 return IsNotSupported; 791 return IsNotSupported;
783 return IsSimpleCodecSupported(mime_type, default_codec, is_encrypted); 792 return IsSimpleCodecSupported(mime_type, default_codec, is_encrypted);
784 } 793 }
785 794
786 } // namespace internal 795 } // namespace internal
787 } // namespace media 796 } // namespace media
OLDNEW
« no previous file with comments | « media/base/media_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698