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

Side by Side Diff: third_party/WebKit/Source/modules/media_capabilities/MediaCapabilities.cpp

Issue 2805553004: Wire up MediaCapabilities is_supported to MimeUtil (Closed)
Patch Set: Created 3 years, 8 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "modules/media_capabilities/MediaCapabilities.h" 5 #include "modules/media_capabilities/MediaCapabilities.h"
6 6
7 #include "bindings/core/v8/CallbackPromiseAdapter.h" 7 #include "bindings/core/v8/CallbackPromiseAdapter.h"
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "bindings/core/v8/ScriptPromiseResolver.h"
10 #include "bindings/core/v8/ScriptState.h" 10 #include "bindings/core/v8/ScriptState.h"
11 #include "modules/media_capabilities/MediaConfiguration.h" 11 #include "modules/media_capabilities/MediaConfiguration.h"
12 #include "modules/media_capabilities/MediaDecodingAbility.h" 12 #include "modules/media_capabilities/MediaDecodingAbility.h"
13 #include "platform/network/ParsedContentType.h"
13 #include "public/platform/Platform.h" 14 #include "public/platform/Platform.h"
14 #include "public/platform/modules/media_capabilities/WebMediaCapabilitiesClient. h" 15 #include "public/platform/modules/media_capabilities/WebMediaCapabilitiesClient. h"
15 #include "public/platform/modules/media_capabilities/WebMediaConfiguration.h" 16 #include "public/platform/modules/media_capabilities/WebMediaConfiguration.h"
16 #include "public/platform/modules/media_capabilities/WebMediaDecodingAbility.h" 17 #include "public/platform/modules/media_capabilities/WebMediaDecodingAbility.h"
17 18
18 namespace blink { 19 namespace blink {
19 20
20 namespace { 21 namespace {
21 22
22 WebAudioConfiguration toWebAudioConfiguration( 23 WebAudioConfiguration toWebAudioConfiguration(
23 const AudioConfiguration& configuration) { 24 const AudioConfiguration& configuration) {
24 WebAudioConfiguration webConfiguration; 25 WebAudioConfiguration webConfiguration;
25 26
26 // contentType is mandatory. 27 // contentType is mandatory.
27 DCHECK(configuration.hasContentType()); 28 DCHECK(configuration.hasContentType());
28 webConfiguration.contentType = configuration.contentType(); 29 ParsedContentType parsedContentType(configuration.contentType(),
30 ParsedContentType::Mode::Strict);
31
32 // TODO(mlamouri): Sort out error handling for invalid input. Spec issue
33 // https://github.com/WICG/media-capabilities/issues/32
34 DCHECK(parsedContentType.isValid());
35
36 DEFINE_STATIC_LOCAL(const String, codecs, ("codecs"));
37 webConfiguration.mimeType = parsedContentType.mimeType().lower();
38 webConfiguration.codec = parsedContentType.parameterValueForName(codecs);
29 39
30 // channels is optional and will be set to a null WebString if not present. 40 // channels is optional and will be set to a null WebString if not present.
31 webConfiguration.channels = configuration.hasChannels() 41 webConfiguration.channels = configuration.hasChannels()
32 ? WebString(configuration.channels()) 42 ? WebString(configuration.channels())
33 : WebString(); 43 : WebString();
34 44
35 if (configuration.hasBitrate()) 45 if (configuration.hasBitrate())
36 webConfiguration.bitrate = configuration.bitrate(); 46 webConfiguration.bitrate = configuration.bitrate();
37 47
38 if (configuration.hasSamplerate()) 48 if (configuration.hasSamplerate())
39 webConfiguration.samplerate = configuration.samplerate(); 49 webConfiguration.samplerate = configuration.samplerate();
40 50
41 return webConfiguration; 51 return webConfiguration;
42 } 52 }
43 53
44 WebVideoConfiguration toWebVideoConfiguration( 54 WebVideoConfiguration toWebVideoConfiguration(
45 const VideoConfiguration& configuration) { 55 const VideoConfiguration& configuration) {
46 WebVideoConfiguration webConfiguration; 56 WebVideoConfiguration webConfiguration;
47 57
48 // All the properties are mandatory. 58 // All the properties are mandatory.
49 DCHECK(configuration.hasContentType()); 59 DCHECK(configuration.hasContentType());
50 webConfiguration.contentType = configuration.contentType(); 60 ParsedContentType parsedContentType(configuration.contentType(),
61 ParsedContentType::Mode::Strict);
62 // TODO(mlamouri): Sort out error handling for invalid input. Spec issue
63 // https://github.com/WICG/media-capabilities/issues/32
64 DCHECK(parsedContentType.isValid());
65
66 DEFINE_STATIC_LOCAL(const String, codecs, ("codecs"));
67 webConfiguration.mimeType = parsedContentType.mimeType().lower();
68 webConfiguration.codec = parsedContentType.parameterValueForName(codecs);
51 69
52 DCHECK(configuration.hasWidth()); 70 DCHECK(configuration.hasWidth());
53 webConfiguration.width = configuration.width(); 71 webConfiguration.width = configuration.width();
54 72
55 DCHECK(configuration.hasHeight()); 73 DCHECK(configuration.hasHeight());
56 webConfiguration.height = configuration.height(); 74 webConfiguration.height = configuration.height();
57 75
58 DCHECK(configuration.hasBitrate()); 76 DCHECK(configuration.hasBitrate());
59 webConfiguration.bitrate = configuration.bitrate(); 77 webConfiguration.bitrate = configuration.bitrate();
60 78
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 toWebMediaConfiguration(configuration), 116 toWebMediaConfiguration(configuration),
99 WTF::makeUnique<CallbackPromiseAdapter<MediaDecodingAbility, void>>( 117 WTF::makeUnique<CallbackPromiseAdapter<MediaDecodingAbility, void>>(
100 resolver)); 118 resolver));
101 119
102 return promise; 120 return promise;
103 } 121 }
104 122
105 DEFINE_TRACE(MediaCapabilities) {} 123 DEFINE_TRACE(MediaCapabilities) {}
106 124
107 } // namespace blink 125 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698