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

Side by Side Diff: chromecast/renderer/media/key_systems_cast.cc

Issue 2853123003: EME contentType checks for AC3/EAC3 (Closed)
Patch Set: int32 Created 3 years, 7 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 | « no previous file | components/cdm/browser/cdm_message_filter_android.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chromecast/renderer/media/key_systems_cast.h" 5 #include "chromecast/renderer/media/key_systems_cast.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 11 matching lines...) Expand all
22 using ::media::EmeFeatureSupport; 22 using ::media::EmeFeatureSupport;
23 using ::media::EmeInitDataType; 23 using ::media::EmeInitDataType;
24 using ::media::EmeMediaType; 24 using ::media::EmeMediaType;
25 using ::media::EmeSessionTypeSupport; 25 using ::media::EmeSessionTypeSupport;
26 using ::media::SupportedCodecs; 26 using ::media::SupportedCodecs;
27 27
28 namespace chromecast { 28 namespace chromecast {
29 namespace media { 29 namespace media {
30 namespace { 30 namespace {
31 31
32 #if defined(PLAYREADY_CDM_AVAILABLE) || \
33 (defined(WIDEVINE_CDM_AVAILABLE) && !defined(OS_ANDROID))
34 SupportedCodecs GetCastEmeSupportedCodecs() {
35 SupportedCodecs codecs =
36 ::media::EME_CODEC_MP4_AAC | ::media::EME_CODEC_MP4_AVC1 |
37 ::media::EME_CODEC_COMMON_VP9 | ::media::EME_CODEC_WEBM_VP8 |
38 ::media::EME_CODEC_WEBM_VP9;
39
40 #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
41 codecs |= ::media::EME_CODEC_MP4_HEVC;
42 #endif // BUILDFLAG(ENABLE_HEVC_DEMUXING)
43
44 #if BUILDFLAG(ENABLE_DOLBY_VISION_DEMUXING)
45 codecs |= ::media::EME_CODEC_MP4_DV_AVC;
46 #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
47 codecs |= ::media::EME_CODEC_MP4_DV_HEVC;
48 #endif // BUILDFLAG(ENABLE_HEVC_DEMUXING)
49 #endif // BUILDFLAG(ENABLE_DOLBY_VISION_DEMUXING)
50
51 #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
52 codecs |= ::media::EME_CODEC_MP4_AC3 | ::media::EME_CODEC_MP4_EAC3;
53 #endif // BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
54
55 return codecs;
56 }
57 #endif
58
32 #if defined(PLAYREADY_CDM_AVAILABLE) 59 #if defined(PLAYREADY_CDM_AVAILABLE)
33 class PlayReadyKeySystemProperties : public ::media::KeySystemProperties { 60 class PlayReadyKeySystemProperties : public ::media::KeySystemProperties {
34 public: 61 public:
35 explicit PlayReadyKeySystemProperties(bool persistent_license_support) 62 explicit PlayReadyKeySystemProperties(bool persistent_license_support)
36 : persistent_license_support_(persistent_license_support) {} 63 : persistent_license_support_(persistent_license_support) {}
37 64
38 std::string GetKeySystemName() const override { 65 std::string GetKeySystemName() const override {
39 return media::kChromecastPlayreadyKeySystem; 66 return media::kChromecastPlayreadyKeySystem;
40 } 67 }
41 68
42 bool IsSupportedInitDataType(EmeInitDataType init_data_type) const override { 69 bool IsSupportedInitDataType(EmeInitDataType init_data_type) const override {
43 return init_data_type == EmeInitDataType::CENC; 70 return init_data_type == EmeInitDataType::CENC;
44 } 71 }
45 72
46 SupportedCodecs GetSupportedCodecs() const override { 73 SupportedCodecs GetSupportedCodecs() const override {
47 SupportedCodecs codecs = 74 return GetCastEmeSupportedCodecs();
48 ::media::EME_CODEC_MP4_AAC | ::media::EME_CODEC_MP4_AVC1;
49 #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
50 codecs |= ::media::EME_CODEC_MP4_HEVC;
51 #endif
52 #if BUILDFLAG(ENABLE_DOLBY_VISION_DEMUXING)
53 codecs |= ::media::EME_CODEC_MP4_DV_AVC;
54 #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
55 codecs |= ::media::EME_CODEC_MP4_DV_HEVC;
56 #endif
57 #endif
58 return codecs;
59 } 75 }
60 76
61 EmeConfigRule GetRobustnessConfigRule( 77 EmeConfigRule GetRobustnessConfigRule(
62 EmeMediaType media_type, 78 EmeMediaType media_type,
63 const std::string& requested_robustness) const override { 79 const std::string& requested_robustness) const override {
64 return requested_robustness.empty() ? EmeConfigRule::SUPPORTED 80 return requested_robustness.empty() ? EmeConfigRule::SUPPORTED
65 : EmeConfigRule::NOT_SUPPORTED; 81 : EmeConfigRule::NOT_SUPPORTED;
66 } 82 }
67 83
68 EmeSessionTypeSupport GetPersistentLicenseSessionSupport() const override { 84 EmeSessionTypeSupport GetPersistentLicenseSessionSupport() const override {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 #endif 119 #endif
104 key_systems_properties->emplace_back( 120 key_systems_properties->emplace_back(
105 new PlayReadyKeySystemProperties(enable_persistent_license_playready)); 121 new PlayReadyKeySystemProperties(enable_persistent_license_playready));
106 #endif // defined(PLAYREADY_CDM_AVAILABLE) 122 #endif // defined(PLAYREADY_CDM_AVAILABLE)
107 123
108 #if defined(WIDEVINE_CDM_AVAILABLE) 124 #if defined(WIDEVINE_CDM_AVAILABLE)
109 #if defined(OS_ANDROID) 125 #if defined(OS_ANDROID)
110 cdm::AddAndroidWidevine(key_systems_properties); 126 cdm::AddAndroidWidevine(key_systems_properties);
111 #else 127 #else
112 using Robustness = cdm::WidevineKeySystemProperties::Robustness; 128 using Robustness = cdm::WidevineKeySystemProperties::Robustness;
113 ::media::SupportedCodecs codecs = 129
114 ::media::EME_CODEC_MP4_AAC | ::media::EME_CODEC_MP4_AVC1 | 130 SupportedCodecs codecs = GetCastEmeSupportedCodecs();
115 ::media::EME_CODEC_MP4_VP9 | ::media::EME_CODEC_WEBM_VP8 | 131
116 ::media::EME_CODEC_WEBM_VP9;
117 #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
118 codecs |= ::media::EME_CODEC_MP4_HEVC;
119 #endif
120 #if BUILDFLAG(ENABLE_DOLBY_VISION_DEMUXING)
121 codecs |= ::media::EME_CODEC_MP4_DV_AVC;
122 #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
123 codecs |= ::media::EME_CODEC_MP4_DV_HEVC;
124 #endif
125 #endif
126 key_systems_properties->emplace_back(new cdm::WidevineKeySystemProperties( 132 key_systems_properties->emplace_back(new cdm::WidevineKeySystemProperties(
127 codecs, // Regular codecs. 133 codecs, // Regular codecs.
128 Robustness::HW_SECURE_ALL, // Max audio robustness. 134 Robustness::HW_SECURE_ALL, // Max audio robustness.
129 Robustness::HW_SECURE_ALL, // Max video robustness. 135 Robustness::HW_SECURE_ALL, // Max video robustness.
130 enable_persistent_license_support 136 enable_persistent_license_support
131 ? EmeSessionTypeSupport::SUPPORTED 137 ? EmeSessionTypeSupport::SUPPORTED
132 : EmeSessionTypeSupport::NOT_SUPPORTED, // persistent-license. 138 : EmeSessionTypeSupport::NOT_SUPPORTED, // persistent-license.
133 EmeSessionTypeSupport::NOT_SUPPORTED, // persistent-release-message. 139 EmeSessionTypeSupport::NOT_SUPPORTED, // persistent-release-message.
134 // Note: On Chromecast, all CDMs may have persistent state. 140 // Note: On Chromecast, all CDMs may have persistent state.
135 EmeFeatureSupport::ALWAYS_ENABLED, // Persistent state. 141 EmeFeatureSupport::ALWAYS_ENABLED, // Persistent state.
136 EmeFeatureSupport::ALWAYS_ENABLED)); // Distinctive identifier. 142 EmeFeatureSupport::ALWAYS_ENABLED)); // Distinctive identifier.
137 #endif // defined(OS_ANDROID) 143 #endif // defined(OS_ANDROID)
138 #endif // defined(WIDEVINE_CDM_AVAILABLE) 144 #endif // defined(WIDEVINE_CDM_AVAILABLE)
139 } 145 }
140 146
141 } // namespace media 147 } // namespace media
142 } // namespace chromecast 148 } // namespace chromecast
OLDNEW
« no previous file with comments | « no previous file | components/cdm/browser/cdm_message_filter_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698