Changeset 243014 in webkit
- Timestamp:
- Mar 15, 2019 3:02:02 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 22 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r242997 r243014 1 2019-03-15 Jer Noble <jer.noble@apple.com> 2 3 Add a "supportedConfiguration" dictionary to MediaCapabilitiesDecodingInfo and MediaCapabilitiesEncodingInfo 4 https://bugs.webkit.org/show_bug.cgi?id=195763 5 6 Reviewed by Jon Lee. 7 8 * media/mediacapabilities/mock-decodingInfo-supportedConfiguration-expected.txt: Added. 9 * media/mediacapabilities/mock-decodingInfo-supportedConfiguration.html: Added. 10 1 11 2019-03-15 Simon Fraser <simon.fraser@apple.com> 2 12 -
trunk/Source/WebCore/CMakeLists.txt
r242974 r243014 283 283 Modules/mediacapabilities/AudioConfiguration.idl 284 284 Modules/mediacapabilities/MediaCapabilities.idl 285 Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl 286 Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl 285 287 Modules/mediacapabilities/MediaCapabilitiesInfo.idl 286 288 Modules/mediacapabilities/MediaConfiguration.idl -
trunk/Source/WebCore/ChangeLog
r243007 r243014 1 2019-03-15 Jer Noble <jer.noble@apple.com> 2 3 Add a "supportedConfiguration" dictionary to MediaCapabilitiesDecodingInfo and MediaCapabilitiesEncodingInfo 4 https://bugs.webkit.org/show_bug.cgi?id=195763 5 6 Reviewed by Jon Lee. 7 8 Test: media/mediacapabilities/mock-decodingInfo-supportedConfiguration.html 9 10 Add support for a proposed addition to the Media Capabilities spec that would future-proof additional changes 11 to Media Capabilities by allowing sites to check exactly what properties were queried by the browser when 12 answering a decodeInfo() or enocdeInfo() query. 13 14 * CMakeLists.txt: 15 * DerivedSources-input.xcfilelist: 16 * DerivedSources-output.xcfilelist: 17 * DerivedSources.make: 18 * Modules/mediacapabilities/AudioConfiguration.idl: 19 * Modules/mediacapabilities/MediaCapabilities.cpp: 20 (WebCore::MediaCapabilities::decodingInfo): 21 (WebCore::MediaCapabilities::encodingInfo): 22 * Modules/mediacapabilities/MediaCapabilities.idl: 23 * Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl: 24 * Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl: 25 * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: 26 * Modules/mediacapabilities/MediaDecodingConfiguration.idl: 27 * Modules/mediacapabilities/MediaEncodingConfiguration.idl: 28 * Modules/mediacapabilities/VideoConfiguration.idl: 29 * Sources.txt: 30 * WebCore.xcodeproj/project.pbxproj: 31 * platform/MediaCapabilitiesDecodingInfo.h: Copied from Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h. 32 (WebCore::MediaCapabilitiesDecodingInfo::MediaCapabilitiesDecodingInfo): 33 * platform/MediaCapabilitiesEncodingInfo.h: Copied from Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h. 34 (WebCore::MediaCapabilitiesEncodingInfo::MediaCapabilitiesEncodingInfo): 35 * platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp: 36 (WebCore::createMediaPlayerDecodingConfigurationCocoa): 37 * platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h: 38 * platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.cpp: 39 (WebCore::createMediaPlayerDecodingConfigurationGStreamer): 40 * platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.h: 41 * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp: 42 (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration): 43 (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration): 44 * platform/mediacapabilities/MediaEngineConfigurationFactory.h: 45 * platform/mock/MediaEngineConfigurationFactoryMock.cpp: 46 (WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration): 47 (WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration): 48 * platform/mock/MediaEngineConfigurationFactoryMock.h: 49 1 50 2019-03-15 Antti Koivisto <antti@apple.com> 2 51 -
trunk/Source/WebCore/DerivedSources-input.xcfilelist
r242976 r243014 133 133 $(PROJECT_DIR)/Modules/mediacapabilities/AudioConfiguration.idl 134 134 $(PROJECT_DIR)/Modules/mediacapabilities/MediaCapabilities.idl 135 $(PROJECT_DIR)/Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl 136 $(PROJECT_DIR)/Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl 135 137 $(PROJECT_DIR)/Modules/mediacapabilities/MediaCapabilitiesInfo.idl 136 138 $(PROJECT_DIR)/Modules/mediacapabilities/MediaConfiguration.idl -
trunk/Source/WebCore/DerivedSources-output.xcfilelist
r242976 r243014 906 906 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilities.cpp 907 907 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilities.h 908 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilitiesDecodingInfo.cpp 909 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilitiesDecodingInfo.h 910 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilitiesEncodingInfo.cpp 911 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilitiesEncodingInfo.h 908 912 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilitiesInfo.cpp 909 913 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilitiesInfo.h -
trunk/Source/WebCore/DerivedSources.make
r242974 r243014 197 197 $(WebCore)/Modules/mediacapabilities/AudioConfiguration.idl \ 198 198 $(WebCore)/Modules/mediacapabilities/MediaCapabilities.idl \ 199 $(WebCore)/Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl \ 200 $(WebCore)/Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl \ 199 201 $(WebCore)/Modules/mediacapabilities/MediaCapabilitiesInfo.idl \ 200 202 $(WebCore)/Modules/mediacapabilities/MediaConfiguration.idl \ -
trunk/Source/WebCore/Modules/mediacapabilities/AudioConfiguration.idl
r226228 r243014 24 24 */ 25 25 26 [ 27 EnabledBySetting=MediaCapabilities, 28 JSGenerateToJSObject, 29 ] 26 30 dictionary AudioConfiguration { 27 31 required DOMString contentType; -
trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp
r235919 r243014 28 28 29 29 #include "ContentType.h" 30 #include "JSMediaCapabilitiesInfo.h" 30 #include "JSMediaCapabilitiesDecodingInfo.h" 31 #include "JSMediaCapabilitiesEncodingInfo.h" 32 #include "MediaCapabilitiesDecodingInfo.h" 33 #include "MediaCapabilitiesEncodingInfo.h" 31 34 #include "MediaDecodingConfiguration.h" 32 35 #include "MediaEncodingConfiguration.h" … … 188 191 // decoding power efficiency unless the device’s power source has side 189 192 // effects such as enabling different decoding modules. 190 promise->resolve<IDLDictionary<MediaCapabilities Info>>(WTFMove(info));193 promise->resolve<IDLDictionary<MediaCapabilitiesDecodingInfo>>(WTFMove(info)); 191 194 }; 192 195 … … 229 232 // device’s power source has side effects such as enabling different 230 233 // encoding modules. 231 promise->resolve<IDLDictionary<MediaCapabilities Info>>(WTFMove(info));234 promise->resolve<IDLDictionary<MediaCapabilitiesEncodingInfo>>(WTFMove(info)); 232 235 }; 233 236 -
trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.idl
r235675 r243014 29 29 ] 30 30 interface MediaCapabilities { 31 Promise<MediaCapabilities Info> decodingInfo(MediaDecodingConfiguration configuration);32 Promise<MediaCapabilities Info> encodingInfo(MediaEncodingConfiguration configuration);31 Promise<MediaCapabilitiesDecodingInfo> decodingInfo(MediaDecodingConfiguration configuration); 32 Promise<MediaCapabilitiesEncodingInfo> encodingInfo(MediaEncodingConfiguration configuration); 33 33 }; -
trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl
r243013 r243014 1 1 /* 2 * Copyright (C) 201 7Apple Inc. All rights reserved.2 * Copyright (C) 2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 dictionary MediaEncodingConfiguration : MediaConfiguration { 27 required MediaEncodingType type; 26 [ 27 EnabledBySetting=MediaCapabilities, 28 JSGenerateToJSObject, 29 ] 30 dictionary MediaCapabilitiesDecodingInfo : MediaCapabilitiesInfo { 31 MediaDecodingConfiguration supportedConfiguration; 28 32 }; -
trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl
r243013 r243014 1 1 /* 2 * Copyright (C) 201 7Apple Inc. All rights reserved.2 * Copyright (C) 2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 dictionary AudioConfiguration { 27 required DOMString contentType; 28 DOMString channels; 29 unsigned long long bitrate; 30 unsigned long samplerate; 26 [ 27 EnabledBySetting=MediaCapabilities, 28 JSGenerateToJSObject, 29 ] 30 dictionary MediaCapabilitiesEncodingInfo : MediaCapabilitiesInfo { 31 MediaEncodingConfiguration supportedConfiguration; 31 32 }; -
trunk/Source/WebCore/Modules/mediacapabilities/MediaDecodingConfiguration.idl
r226228 r243014 24 24 */ 25 25 26 [ 27 EnabledBySetting=MediaCapabilities, 28 JSGenerateToJSObject, 29 ] 26 30 dictionary MediaDecodingConfiguration : MediaConfiguration { 27 31 required MediaDecodingType type; -
trunk/Source/WebCore/Modules/mediacapabilities/MediaEncodingConfiguration.idl
r226228 r243014 24 24 */ 25 25 26 [ 27 EnabledBySetting=MediaCapabilities, 28 JSGenerateToJSObject, 29 ] 26 30 dictionary MediaEncodingConfiguration : MediaConfiguration { 27 31 required MediaEncodingType type; -
trunk/Source/WebCore/Modules/mediacapabilities/VideoConfiguration.idl
r235919 r243014 24 24 */ 25 25 26 [ 27 EnabledBySetting=MediaCapabilities, 28 JSGenerateToJSObject, 29 ] 26 30 dictionary VideoConfiguration { 27 31 required DOMString contentType; -
trunk/Source/WebCore/Sources.txt
r242978 r243014 2930 2930 JSLongRange.cpp 2931 2931 JSMediaCapabilities.cpp 2932 JSMediaCapabilitiesDecodingInfo.cpp 2933 JSMediaCapabilitiesEncodingInfo.cpp 2932 2934 JSMediaCapabilitiesInfo.cpp 2933 2935 JSMediaController.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r243002 r243014 4182 4182 CDC979F51C498C0900DB50D4 /* WebCoreNSErrorExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = CDC979F31C498C0900DB50D4 /* WebCoreNSErrorExtras.h */; }; 4183 4183 CDCA98EB18B2C8EB00C12FF9 /* LegacyCDMPrivateMediaPlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDCA98EA18B2C8EB00C12FF9 /* LegacyCDMPrivateMediaPlayer.cpp */; }; 4184 CDCC9BCF22387E9A00FFB51C /* MediaCapabilitiesDecodingInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = CDCC9BCE22387E9A00FFB51C /* MediaCapabilitiesDecodingInfo.h */; }; 4185 CDCC9BD122387EAA00FFB51C /* MediaCapabilitiesEncodingInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = CDCC9BD022387EAA00FFB51C /* MediaCapabilitiesEncodingInfo.h */; }; 4184 4186 CDCD41E81C3DDB0A00965D99 /* ParsedContentRange.h in Headers */ = {isa = PBXBuildFile; fileRef = CDCD41E61C3DDB0900965D99 /* ParsedContentRange.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4185 4187 CDCFABBD18C0AF78006F8450 /* SelectionRangeData.h in Headers */ = {isa = PBXBuildFile; fileRef = CDCFABBB18C0AE31006F8450 /* SelectionRangeData.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 13835 13837 CDCA98E918B2C8D000C12FF9 /* LegacyCDMPrivateMediaPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyCDMPrivateMediaPlayer.h; sourceTree = "<group>"; }; 13836 13838 CDCA98EA18B2C8EB00C12FF9 /* LegacyCDMPrivateMediaPlayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyCDMPrivateMediaPlayer.cpp; sourceTree = "<group>"; }; 13839 CDCC9BC522387DA300FFB51C /* MediaCapabilitiesDecodingInfo.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = MediaCapabilitiesDecodingInfo.idl; sourceTree = "<group>"; }; 13840 CDCC9BCA22387E2100FFB51C /* MediaCapabilitiesEncodingInfo.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = MediaCapabilitiesEncodingInfo.idl; sourceTree = "<group>"; }; 13841 CDCC9BCE22387E9A00FFB51C /* MediaCapabilitiesDecodingInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaCapabilitiesDecodingInfo.h; sourceTree = "<group>"; }; 13842 CDCC9BD022387EAA00FFB51C /* MediaCapabilitiesEncodingInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaCapabilitiesEncodingInfo.h; sourceTree = "<group>"; }; 13837 13843 CDCD41E51C3DDB0900965D99 /* ParsedContentRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParsedContentRange.cpp; sourceTree = "<group>"; }; 13838 13844 CDCD41E61C3DDB0900965D99 /* ParsedContentRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParsedContentRange.h; sourceTree = "<group>"; }; … … 22322 22328 children = ( 22323 22329 CDBD3D2B1FE85CBB0012C545 /* AudioConfiguration.h */, 22330 CDCC9BCE22387E9A00FFB51C /* MediaCapabilitiesDecodingInfo.h */, 22331 CDCC9BD022387EAA00FFB51C /* MediaCapabilitiesEncodingInfo.h */, 22324 22332 CD0C8B582141C8CA0062F59D /* MediaCapabilitiesInfo.h */, 22325 22333 CDBD3D351FE85CBF0012C545 /* MediaConfiguration.h */, … … 26025 26033 CDBD3D321FE85CBE0012C545 /* MediaCapabilities.h */, 26026 26034 CDBD3D2F1FE85CBC0012C545 /* MediaCapabilities.idl */, 26035 CDCC9BC522387DA300FFB51C /* MediaCapabilitiesDecodingInfo.idl */, 26036 CDCC9BCA22387E2100FFB51C /* MediaCapabilitiesEncodingInfo.idl */, 26027 26037 CDBD3D331FE85CBE0012C545 /* MediaCapabilitiesInfo.idl */, 26028 26038 CDBD3D291FE85CB90012C545 /* MediaConfiguration.idl */, … … 32109 32119 26E944DD1AC4B4EA007B85B5 /* Term.h in Headers */, 32110 32120 6550B6A6099DF0270090D781 /* Text.h in Headers */, 32121 CDCC9BD122387EAA00FFB51C /* MediaCapabilitiesEncodingInfo.h in Headers */, 32111 32122 93309E17099E64920056E581 /* TextAffinity.h in Headers */, 32112 32123 CE7B2DB51586ABAD0098B3FA /* TextAlternativeWithRange.h in Headers */, … … 32202 32213 FB484F4D171F821E00040755 /* TransformFunctions.h in Headers */, 32203 32214 49E911CE0EF86D47009D0CAF /* TransformOperation.h in Headers */, 32215 CDCC9BCF22387E9A00FFB51C /* MediaCapabilitiesDecodingInfo.h in Headers */, 32204 32216 49E911D00EF86D47009D0CAF /* TransformOperations.h in Headers */, 32205 32217 5DB1BC6A10715A6400EFAA49 /* TransformSource.h in Headers */, -
trunk/Source/WebCore/platform/MediaCapabilitiesDecodingInfo.h
r243013 r243014 1 1 /* 2 * Copyright (C) 201 8Apple Inc. All rights reserved.2 * Copyright (C) 2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 26 26 #pragma once 27 27 28 #if PLATFORM(COCOA) 28 #include "MediaCapabilitiesInfo.h" 29 #include "MediaDecodingConfiguration.h" 29 30 30 31 namespace WebCore { 31 32 32 struct MediaCapabilitiesInfo; 33 struct MediaDecodingConfiguration; 33 struct MediaCapabilitiesDecodingInfo : MediaCapabilitiesInfo { 34 // FIXME(C++17): remove the following constructors once all compilers support extended 35 // aggregate initialization: 36 // <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0017r1.html> 37 MediaCapabilitiesDecodingInfo() = default; 38 MediaCapabilitiesDecodingInfo(MediaDecodingConfiguration&& supportedConfiguration) 39 : MediaCapabilitiesDecodingInfo({ }, WTFMove(supportedConfiguration)) 40 { 41 } 42 MediaCapabilitiesDecodingInfo(MediaCapabilitiesInfo&& info, MediaDecodingConfiguration&& supportedConfiguration) 43 : MediaCapabilitiesInfo(WTFMove(info)) 44 , supportedConfiguration(WTFMove(supportedConfiguration)) 45 { 46 } 34 47 35 extern void createMediaPlayerDecodingConfigurationCocoa(MediaDecodingConfiguration&, WTF::Function<void(MediaCapabilitiesInfo&&)>&&); 48 MediaDecodingConfiguration supportedConfiguration; 49 }; 36 50 37 51 } 38 39 #endif -
trunk/Source/WebCore/platform/MediaCapabilitiesEncodingInfo.h
r243013 r243014 1 1 /* 2 * Copyright (C) 201 8Apple Inc. All rights reserved.2 * Copyright (C) 2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 26 26 #pragma once 27 27 28 #if PLATFORM(COCOA) 28 #include "MediaCapabilitiesInfo.h" 29 #include "MediaEncodingConfiguration.h" 29 30 30 31 namespace WebCore { 31 32 32 struct MediaCapabilitiesInfo; 33 struct MediaDecodingConfiguration; 33 struct MediaCapabilitiesEncodingInfo : MediaCapabilitiesInfo { 34 // FIXME(C++17): remove the following constructors once all compilers support extended 35 // aggregate initialization: 36 // <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0017r1.html> 37 MediaCapabilitiesEncodingInfo() = default; 38 MediaCapabilitiesEncodingInfo(MediaEncodingConfiguration&& supportedConfiguration) 39 : MediaCapabilitiesEncodingInfo({ }, WTFMove(supportedConfiguration)) 40 { 41 } 42 MediaCapabilitiesEncodingInfo(MediaCapabilitiesInfo&& info, MediaEncodingConfiguration&& supportedConfiguration) 43 : MediaCapabilitiesInfo(WTFMove(info)) 44 , supportedConfiguration(WTFMove(supportedConfiguration)) 45 { 46 } 34 47 35 extern void createMediaPlayerDecodingConfigurationCocoa(MediaDecodingConfiguration&, WTF::Function<void(MediaCapabilitiesInfo&&)>&&); 48 MediaEncodingConfiguration supportedConfiguration; 49 }; 36 50 37 51 } 38 39 #endif -
trunk/Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp
r236094 r243014 30 30 31 31 #include "HEVCUtilitiesCocoa.h" 32 #include "MediaCapabilities Info.h"32 #include "MediaCapabilitiesDecodingInfo.h" 33 33 #include "MediaDecodingConfiguration.h" 34 34 #include "MediaPlayer.h" … … 49 49 } 50 50 51 void createMediaPlayerDecodingConfigurationCocoa(MediaDecodingConfiguration& configuration, WTF::Function<void(MediaCapabilitiesInfo&&)>&& callback)51 void createMediaPlayerDecodingConfigurationCocoa(MediaDecodingConfiguration&& configuration, WTF::Function<void(MediaCapabilitiesDecodingInfo&&)>&& callback) 52 52 { 53 MediaCapabilitiesInfo info; 53 MediaCapabilitiesDecodingInfo info; 54 54 55 if (configuration.video) { 55 56 auto& videoConfiguration = configuration.video.value(); … … 58 59 parameters.isMediaSource = configuration.type == MediaDecodingType::MediaSource; 59 60 if (MediaPlayer::supportsType(parameters) != MediaPlayer::IsSupported) { 60 callback({ 61 callback({{ }, WTFMove(configuration)}); 61 62 return; 62 63 } 63 info.supported = true;64 64 65 65 auto codecs = parameters.type.codecs(); 66 66 if (codecs.size() != 1) { 67 callback({ 67 callback({{ }, WTFMove(configuration)}); 68 68 return; 69 69 } … … 73 73 auto videoCodecType = videoCodecTypeFromRFC4281Type(codec); 74 74 if (!videoCodecType) { 75 callback({ 75 callback({{ }, WTFMove(configuration)}); 76 76 return; 77 77 } … … 80 80 auto parameters = parseHEVCCodecParameters(codec); 81 81 if (!parameters || !validateHEVCParameters(parameters.value(), info)) { 82 callback({ 82 callback({{ }, WTFMove(configuration)}); 83 83 return; 84 84 } 85 } else if (canLoad_VideoToolbox_VTIsHardwareDecodeSupported()) 85 } else if (canLoad_VideoToolbox_VTIsHardwareDecodeSupported()) { 86 86 info.powerEfficient = VTIsHardwareDecodeSupported(videoCodecType); 87 info.smooth = true; 88 } 87 89 } 88 90 … … 92 94 parameters.isMediaSource = configuration.type == MediaDecodingType::MediaSource; 93 95 if (MediaPlayer::supportsType(parameters) != MediaPlayer::IsSupported) { 94 callback({ 96 callback({{ }, WTFMove(configuration)}); 95 97 return; 96 98 } 97 99 info.supported = true; 98 100 } 101 102 info.supportedConfiguration = WTFMove(configuration); 99 103 100 104 callback(WTFMove(info)); -
trunk/Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h
r236094 r243014 30 30 namespace WebCore { 31 31 32 struct MediaCapabilities Info;32 struct MediaCapabilitiesDecodingInfo; 33 33 struct MediaDecodingConfiguration; 34 34 35 extern void createMediaPlayerDecodingConfigurationCocoa(MediaDecodingConfiguration& , WTF::Function<void(MediaCapabilitiesInfo&&)>&&);35 extern void createMediaPlayerDecodingConfigurationCocoa(MediaDecodingConfiguration&&, WTF::Function<void(MediaCapabilitiesDecodingInfo&&)>&&); 36 36 37 37 } -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.cpp
r241585 r243014 32 32 33 33 #include "GStreamerRegistryScanner.h" 34 #include "MediaCapabilities Info.h"34 #include "MediaCapabilitiesDecodingInfo.h" 35 35 #include "MediaDecodingConfiguration.h" 36 36 #include "MediaPlayer.h" … … 43 43 namespace WebCore { 44 44 45 void createMediaPlayerDecodingConfigurationGStreamer(MediaDecodingConfiguration& configuration, WTF::Function<void(MediaCapabilitiesInfo&&)>&& callback)45 void createMediaPlayerDecodingConfigurationGStreamer(MediaDecodingConfiguration&& configuration, WTF::Function<void(MediaCapabilitiesDecodingInfo&&)>&& callback) 46 46 { 47 47 bool isMediaSource = configuration.type == MediaDecodingType::MediaSource; … … 50 50 #else 51 51 if (isMediaSource) { 52 callback({ 52 callback({{ }, WTFMove(configuration)}); 53 53 return; 54 54 } … … 56 56 #endif 57 57 auto lookupResult = scanner.isDecodingSupported(configuration); 58 MediaCapabilities Info info;58 MediaCapabilitiesDecodingInfo info; 59 59 info.supported = lookupResult.isSupported; 60 60 info.powerEfficient = lookupResult.isUsingHardware; 61 info.supportedConfiguration = WTFMove(configuration); 61 62 62 63 callback(WTFMove(info)); -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.h
r241585 r243014 34 34 namespace WebCore { 35 35 36 struct MediaCapabilities Info;36 struct MediaCapabilitiesDecodingInfo; 37 37 struct MediaDecodingConfiguration; 38 38 39 extern void createMediaPlayerDecodingConfigurationGStreamer(MediaDecodingConfiguration& , WTF::Function<void(MediaCapabilitiesInfo&&)>&&);39 extern void createMediaPlayerDecodingConfigurationGStreamer(MediaDecodingConfiguration&&, WTF::Function<void(MediaCapabilitiesDecodingInfo&&)>&&); 40 40 41 41 } -
trunk/Source/WebCore/platform/mediacapabilities/MediaEngineConfigurationFactory.cpp
r241585 r243014 29 29 #include "MediaEngineConfigurationFactory.h" 30 30 31 #include "MediaCapabilitiesInfo.h" 31 #include "MediaCapabilitiesDecodingInfo.h" 32 #include "MediaCapabilitiesEncodingInfo.h" 32 33 #include "MediaDecodingConfiguration.h" 33 34 #include "MediaEncodingConfiguration.h" … … 53 54 54 55 struct MediaEngineFactory { 55 void(*createDecodingConfiguration)(MediaDecodingConfiguration& , MediaEngineConfigurationFactory::DecodingConfigurationCallback&&);56 void(*createEncodingConfiguration)(MediaEncodingConfiguration& , MediaEngineConfigurationFactory::EncodingConfigurationCallback&&);56 void(*createDecodingConfiguration)(MediaDecodingConfiguration&&, MediaEngineConfigurationFactory::DecodingConfigurationCallback&&); 57 void(*createEncodingConfiguration)(MediaEncodingConfiguration&&, MediaEngineConfigurationFactory::EncodingConfigurationCallback&&); 57 58 }; 58 59 … … 74 75 { 75 76 if (mockEnabled()) { 76 MediaEngineConfigurationFactoryMock::createDecodingConfiguration( config, WTFMove(callback));77 MediaEngineConfigurationFactoryMock::createDecodingConfiguration(WTFMove(config), WTFMove(callback)); 77 78 return; 78 79 } 79 80 80 auto factoryCallback = [] (auto factoryCallback, auto nextFactory, auto config, auto&& callback) mutable {81 auto factoryCallback = [] (auto factoryCallback, auto nextFactory, auto&& config, auto&& callback) mutable { 81 82 if (nextFactory == factories().end()) { 82 83 callback({ }); … … 90 91 } 91 92 92 factory.createDecodingConfiguration( config, [factoryCallback, nextFactory, config, callback = WTFMove(callback)] (auto&& info) mutable {93 factory.createDecodingConfiguration(WTFMove(config), [factoryCallback, nextFactory, config, callback = WTFMove(callback)] (auto&& info) mutable { 93 94 if (info.supported) { 94 95 callback(WTFMove(info)); … … 96 97 } 97 98 98 factoryCallback(factoryCallback, ++nextFactory, config, WTFMove(callback));99 factoryCallback(factoryCallback, ++nextFactory, WTFMove(info.supportedConfiguration), WTFMove(callback)); 99 100 }); 100 101 }; … … 105 106 { 106 107 if (mockEnabled()) { 107 MediaEngineConfigurationFactoryMock::createEncodingConfiguration( config, WTFMove(callback));108 MediaEngineConfigurationFactoryMock::createEncodingConfiguration(WTFMove(config), WTFMove(callback)); 108 109 return; 109 110 } 110 111 111 auto factoryCallback = [] (auto factoryCallback, auto nextFactory, auto config, auto&& callback) mutable {112 auto factoryCallback = [] (auto factoryCallback, auto nextFactory, auto&& config, auto&& callback) mutable { 112 113 if (nextFactory == factories().end()) { 113 114 callback({ }); … … 121 122 } 122 123 123 factory.createEncodingConfiguration( config, [factoryCallback, nextFactory, config, callback = WTFMove(callback)] (auto&& info) mutable {124 factory.createEncodingConfiguration(WTFMove(config), [factoryCallback, nextFactory, callback = WTFMove(callback)] (auto&& info) mutable { 124 125 if (info.supported) { 125 126 callback(WTFMove(info)); … … 127 128 } 128 129 129 factoryCallback(factoryCallback, ++nextFactory, config, WTFMove(callback));130 factoryCallback(factoryCallback, ++nextFactory, WTFMove(info.supportedConfiguration), WTFMove(callback)); 130 131 }); 131 132 }; 132 factoryCallback(factoryCallback, factories().begin(), config, WTFMove(callback));133 factoryCallback(factoryCallback, factories().begin(), WTFMove(config), WTFMove(callback)); 133 134 } 134 135 -
trunk/Source/WebCore/platform/mediacapabilities/MediaEngineConfigurationFactory.h
r235919 r243014 32 32 namespace WebCore { 33 33 34 struct MediaCapabilitiesInfo; 34 struct MediaCapabilitiesDecodingInfo; 35 struct MediaCapabilitiesEncodingInfo; 35 36 struct MediaDecodingConfiguration; 36 37 struct MediaEncodingConfiguration; … … 38 39 class MediaEngineConfigurationFactory { 39 40 public: 40 using DecodingConfigurationCallback = WTF::Function<void(MediaCapabilities Info&&)>;41 using EncodingConfigurationCallback = WTF::Function<void(MediaCapabilities Info&&)>;41 using DecodingConfigurationCallback = WTF::Function<void(MediaCapabilitiesDecodingInfo&&)>; 42 using EncodingConfigurationCallback = WTF::Function<void(MediaCapabilitiesEncodingInfo&&)>; 42 43 43 44 static void createDecodingConfiguration(MediaDecodingConfiguration&&, DecodingConfigurationCallback&&); -
trunk/Source/WebCore/platform/mock/MediaEngineConfigurationFactoryMock.cpp
r235919 r243014 30 30 31 31 #include "ContentType.h" 32 #include "MediaCapabilitiesInfo.h" 32 #include "MediaCapabilitiesDecodingInfo.h" 33 #include "MediaCapabilitiesEncodingInfo.h" 33 34 #include "MediaDecodingConfiguration.h" 34 35 #include "MediaEncodingConfiguration.h" … … 126 127 } 127 128 128 void MediaEngineConfigurationFactoryMock::createDecodingConfiguration(MediaDecodingConfiguration& configuration, DecodingConfigurationCallback&& callback)129 void MediaEngineConfigurationFactoryMock::createDecodingConfiguration(MediaDecodingConfiguration&& configuration, DecodingConfigurationCallback&& callback) 129 130 { 130 131 if (!canDecodeMedia(configuration)) { 131 callback({ }); 132 MediaCapabilitiesDecodingInfo info { WTFMove(configuration) }; 133 callback(WTFMove(info)); 132 134 return; 133 135 } 134 callback({ true, canSmoothlyDecodeMedia(configuration), canPowerEfficientlyDecodeMedia(configuration)});136 callback({{ true, canSmoothlyDecodeMedia(configuration), canPowerEfficientlyDecodeMedia(configuration) }, WTFMove(configuration)}); 135 137 } 136 138 137 void MediaEngineConfigurationFactoryMock::createEncodingConfiguration(MediaEncodingConfiguration& configuration, EncodingConfigurationCallback&& callback)139 void MediaEngineConfigurationFactoryMock::createEncodingConfiguration(MediaEncodingConfiguration&& configuration, EncodingConfigurationCallback&& callback) 138 140 { 139 141 if (!canEncodeMedia(configuration)) { 140 callback({ });142 callback({{ }, WTFMove(configuration) }); 141 143 return; 142 144 } 143 callback({ true, canSmoothlyEncodeMedia(configuration), canPowerEfficientlyEncodeMedia(configuration)});145 callback({{ true, canSmoothlyEncodeMedia(configuration), canPowerEfficientlyEncodeMedia(configuration) }, WTFMove(configuration)}); 144 146 } 145 147 -
trunk/Source/WebCore/platform/mock/MediaEngineConfigurationFactoryMock.h
r235919 r243014 32 32 namespace WebCore { 33 33 34 struct MediaCapabilitiesInfo; 34 struct MediaCapabilitiesDecodingInfo; 35 struct MediaCapabilitiesEncodingInfo; 35 36 struct MediaDecodingConfiguration; 36 37 struct MediaEncodingConfiguration; 37 38 38 39 struct MediaEngineConfigurationFactoryMock { 39 using DecodingConfigurationCallback = WTF::Function<void(MediaCapabilities Info&&)>;40 using EncodingConfigurationCallback = WTF::Function<void(MediaCapabilities Info&&)>;40 using DecodingConfigurationCallback = WTF::Function<void(MediaCapabilitiesDecodingInfo&&)>; 41 using EncodingConfigurationCallback = WTF::Function<void(MediaCapabilitiesEncodingInfo&&)>; 41 42 42 static void createDecodingConfiguration(MediaDecodingConfiguration& , DecodingConfigurationCallback&&);43 static void createEncodingConfiguration(MediaEncodingConfiguration& , EncodingConfigurationCallback&&);43 static void createDecodingConfiguration(MediaDecodingConfiguration&&, DecodingConfigurationCallback&&); 44 static void createEncodingConfiguration(MediaEncodingConfiguration&&, EncodingConfigurationCallback&&); 44 45 }; 45 46
Note: See TracChangeset
for help on using the changeset viewer.