Changeset 263734 in webkit
- Timestamp:
- Jun 30, 2020 12:19:59 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r263733 r263734 1 2020-06-30 Youenn Fablet <youenn@apple.com> 2 3 Add VP9 WebRTC codec runtime flag 4 https://bugs.webkit.org/show_bug.cgi?id=213724 5 6 Reviewed by Eric Carlson. 7 8 * webrtc/h265.html: 9 * webrtc/vp9-expected.txt: Added. 10 * webrtc/vp9.html: Added. 11 1 12 2020-06-30 Diego Pino Garcia <dpino@igalia.com> 2 13 -
trunk/LayoutTests/webrtc/h265.html
r259452 r263734 19 19 test(() => { 20 20 if (window.internals) 21 window.internals. clearPeerConnectionFactory();21 window.internals.setWebRTCH265Support(false); 22 22 23 const codecs = RTCRtpSender.getCapabilities("video").codecs; 23 let codecs = RTCRtpSender.getCapabilities("video").codecs; 24 hasH265 = codecs.some((codec) => { return codec.mimeType == "video/H265"; }); 25 assert_false(hasH265); 26 27 if (window.internals) 28 window.internals.setWebRTCH265Support(true); 29 30 codecs = RTCRtpSender.getCapabilities("video").codecs; 24 31 hasH265 = codecs.some((codec) => { return codec.mimeType == "video/H265"; }); 25 32 assert_true(hasH265); -
trunk/Source/ThirdParty/libwebrtc/ChangeLog
r263453 r263734 1 2020-06-30 Youenn Fablet <youenn@apple.com> 2 3 Add VP9 WebRTC codec runtime flag 4 https://bugs.webkit.org/show_bug.cgi?id=213724 5 6 Reviewed by Eric Carlson. 7 8 Update WebKit binding code to switch on/off VP9 encoder/decoder. 9 We still use vp9_noop for now, so encoder/decoder is not functional. 10 11 * Configurations/libwebrtc.iOS.exp: 12 * Configurations/libwebrtc.iOSsim.exp: 13 * Configurations/libwebrtc.mac.exp: 14 * Configurations/libwebrtc.xcconfig: 15 * Configurations/libwebrtcpcrtc.xcconfig: 16 * Source/webrtc/modules/video_coding/codecs/vp9/vp9_noop.cc: 17 * Source/webrtc/sdk/WebKit/WebKitDecoder.mm: 18 (webrtc::createWebKitDecoderFactory): 19 * Source/webrtc/sdk/WebKit/WebKitEncoder.mm: 20 (webrtc::createWebKitEncoderFactory): 21 (webrtc::setH264HardwareEncoderAllowed): 22 (webrtc::isH264HardwareEncoderAllowed): 23 * Source/webrtc/sdk/WebKit/WebKitUtilities.h: 24 * Source/webrtc/sdk/WebKit/WebKitUtilities.mm: 25 * Source/webrtc/sdk/objc/api/video_codec/RTCVideoDecoderVP9.h: 26 * Source/webrtc/sdk/objc/api/video_codec/RTCVideoEncoderVP9.h: 27 * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h: 28 * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m: 29 (-[RTCDefaultVideoDecoderFactory initWithH265:vp9:]): 30 (-[RTCDefaultVideoDecoderFactory supportedCodecs]): 31 * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h: 32 * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m: 33 (-[RTCDefaultVideoEncoderFactory initWithH265:vp9:]): 34 (-[RTCDefaultVideoEncoderFactory supportedCodecs]): 35 * libwebrtc.xcodeproj/project.pbxproj: 36 1 37 2020-06-24 Youenn Fablet <youenn@apple.com> 2 38 -
trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp
r262726 r263734 105 105 __ZNK6webrtc21IceCandidateInterface10server_urlEv 106 106 __ZN6webrtc20setApplicationStatusEb 107 __ZN6webrtc26createWebKitDecoderFactoryENS_1 8WebKitCodecSupportE108 __ZN6webrtc26createWebKitEncoderFactoryENS_1 8WebKitCodecSupportE107 __ZN6webrtc26createWebKitDecoderFactoryENS_10WebKitH265ENS_9WebKitVP9E 108 __ZN6webrtc26createWebKitEncoderFactoryENS_10WebKitH265ENS_9WebKitVP9E 109 109 __ZN6webrtc29setH264HardwareEncoderAllowedEb 110 110 __ZN6webrtc20pixelBufferFromFrameERKNS_10VideoFrameERKNSt3__18functionIFP10__CVBuffermmEEE -
trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp
r262726 r263734 105 105 __ZNK6webrtc21IceCandidateInterface10server_urlEv 106 106 __ZN6webrtc20setApplicationStatusEb 107 __ZN6webrtc26createWebKitDecoderFactoryENS_1 8WebKitCodecSupportE108 __ZN6webrtc26createWebKitEncoderFactoryENS_1 8WebKitCodecSupportE107 __ZN6webrtc26createWebKitDecoderFactoryENS_10WebKitH265ENS_9WebKitVP9E 108 __ZN6webrtc26createWebKitEncoderFactoryENS_10WebKitH265ENS_9WebKitVP9E 109 109 __ZN6webrtc29setH264HardwareEncoderAllowedEb 110 110 __ZN6webrtc20pixelBufferFromFrameERKNS_10VideoFrameERKNSt3__18functionIFP10__CVBuffermmEEE -
trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp
r262726 r263734 105 105 __ZNK6webrtc21IceCandidateInterface10server_urlEv 106 106 __ZN6webrtc20setApplicationStatusEb 107 __ZN6webrtc26createWebKitDecoderFactoryENS_1 8WebKitCodecSupportE108 __ZN6webrtc26createWebKitEncoderFactoryENS_1 8WebKitCodecSupportE107 __ZN6webrtc26createWebKitDecoderFactoryENS_10WebKitH265ENS_9WebKitVP9E 108 __ZN6webrtc26createWebKitEncoderFactoryENS_10WebKitH265ENS_9WebKitVP9E 109 109 __ZN6webrtc29setH264HardwareEncoderAllowedEb 110 110 __ZN6webrtc20pixelBufferFromFrameERKNS_10VideoFrameERKNSt3__18functionIFP10__CVBuffermmEEE -
trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig
r263375 r263734 27 27 28 28 // FIXME: Set WEBRTC_USE_BUILTIN_ISAC_FIX and WEBRTC_USE_BUILTIN_ISAC_FLOAT for iOS and Mac 29 GCC_PREPROCESSOR_DEFINITIONS = GTEST_RELATIVE_PATH WEBRTC_OPUS_SUPPORT_120MS_PTIME=0 WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_NETINET_IN_H HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_USE_BUILTIN_ILBC WEBRTC_CODEC_ILBC WEBRTC_USE_BUILTIN_OPUS WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE HAVE_SCTP WEBRTC_CODEC_G711 WEBRTC_CODEC_G722 WEBRTC_OPUS_VARIABLE_COMPLEXITY=0 WEBRTC_USE_BUILTIN_ISAC_FIX=1 WEBRTC_USE_BUILTIN_ISAC_FLOAT=0 USE_BUILTIN_SW_CODECS WEBRTC_WEBKIT_BUILD $(inherited);29 GCC_PREPROCESSOR_DEFINITIONS = GTEST_RELATIVE_PATH WEBRTC_OPUS_SUPPORT_120MS_PTIME=0 WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_NETINET_IN_H HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_USE_BUILTIN_ILBC WEBRTC_CODEC_ILBC WEBRTC_USE_BUILTIN_OPUS WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE HAVE_SCTP WEBRTC_CODEC_G711 WEBRTC_CODEC_G722 WEBRTC_OPUS_VARIABLE_COMPLEXITY=0 WEBRTC_USE_BUILTIN_ISAC_FIX=1 WEBRTC_USE_BUILTIN_ISAC_FLOAT=0 USE_BUILTIN_SW_CODECS WEBRTC_WEBKIT_BUILD RTC_ENABLE_VP9 $(inherited); 30 30 31 31 GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(inherited) WEBRTC_USE_VTB_HARDWARE_ENCODER; -
trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig
r252472 r263734 13 13 USE_HEADERMAP = NO; 14 14 15 GCC_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_USE_BUILTIN_ILBC WEBRTC_CODEC_ILBC WEBRTC_USE_BUILTIN_OPUS WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE HAVE_NETINET_IN_H HAVE_SCTP $(inherited);15 GCC_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_USE_BUILTIN_ILBC WEBRTC_CODEC_ILBC WEBRTC_USE_BUILTIN_OPUS WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE HAVE_NETINET_IN_H HAVE_SCTP RTC_ENABLE_VP9 $(inherited); 16 16 17 17 GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(inherited); -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/video_coding/codecs/vp9/vp9_noop.cc
r252472 r263734 10 10 */ 11 11 12 #if defined(RTC_ENABLE_VP9) 13 #error 14 #endif // !defined(RTC_ENABLE_VP9) 12 // FIXME: Use libvpx to support VP9 encoder and decoder. 15 13 16 14 #include "modules/video_coding/codecs/vp9/include/vp9.h" -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.mm
r259568 r263734 168 168 } 169 169 170 std::unique_ptr<webrtc::VideoDecoderFactory> createWebKitDecoderFactory(WebKit CodecSupport codecSupport)171 { 172 auto internalFactory = ObjCToNativeVideoDecoderFactory([[RTCDefaultVideoDecoderFactory alloc] initWithH265: codecSupport == WebKitCodecSupport::H264VP8AndH265]);170 std::unique_ptr<webrtc::VideoDecoderFactory> createWebKitDecoderFactory(WebKitH265 supportsH265, WebKitVP9 supportsVP9) 171 { 172 auto internalFactory = ObjCToNativeVideoDecoderFactory([[RTCDefaultVideoDecoderFactory alloc] initWithH265: supportsH265 == WebKitH265::On vp9: supportsVP9 == WebKitVP9::On]); 173 173 if (videoDecoderCallbacks().createCallback) 174 174 return std::make_unique<RemoteVideoDecoderFactory>(std::move(internalFactory)); -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitEncoder.mm
r259568 r263734 34 34 #include "sdk/objc/api/peerconnection/RTCVideoCodecInfo+Private.h" 35 35 #include "sdk/objc/api/peerconnection/RTCVideoEncoderSettings+Private.h" 36 #include "sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h" 36 37 #include "sdk/objc/components/video_codec/RTCVideoEncoderH264.h" 37 38 #include "sdk/objc/components/video_codec/RTCVideoEncoderH265.h" 38 39 #include "sdk/objc/native/src/objc_frame_buffer.h" 39 40 #include "sdk/objc/native/api/video_encoder_factory.h" 40 41 41 42 @interface WK_RTCLocalVideoH264H265Encoder : NSObject … … 94 95 @end 95 96 namespace webrtc { 97 98 std::unique_ptr<webrtc::VideoEncoderFactory> createWebKitEncoderFactory(WebKitH265 supportsH265, WebKitVP9 supportsVP9) 99 { 100 #if ENABLE_VCP_ENCODER || ENABLE_VCP_VTB_ENCODER 101 static std::once_flag onceFlag; 102 std::call_once(onceFlag, [] { 103 webrtc::VPModuleInitialize(); 104 }); 105 #endif 106 107 auto internalFactory = ObjCToNativeVideoEncoderFactory([[RTCDefaultVideoEncoderFactory alloc] initWithH265: supportsH265 == WebKitH265::On vp9:supportsVP9 == WebKitVP9::On]); 108 return std::make_unique<VideoEncoderFactoryWithSimulcast>(std::move(internalFactory)); 109 } 110 111 static bool h264HardwareEncoderAllowed = true; 112 void setH264HardwareEncoderAllowed(bool allowed) 113 { 114 h264HardwareEncoderAllowed = allowed; 115 } 116 117 bool isH264HardwareEncoderAllowed() 118 { 119 return h264HardwareEncoderAllowed; 120 } 96 121 97 122 std::unique_ptr<VideoEncoder> VideoEncoderFactoryWithSimulcast::CreateVideoEncoder(const SdpVideoFormat& format) -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitUtilities.h
r261651 r263734 40 40 class VideoFrame; 41 41 42 enum class WebKitCodecSupport { H264VP8AndH265, H264AndVP8 }; 42 enum class WebKitH265 { Off, On }; 43 enum class WebKitVP9 { Off, On }; 43 44 44 std::unique_ptr<webrtc::VideoEncoderFactory> createWebKitEncoderFactory(WebKit CodecSupport);45 std::unique_ptr<webrtc::VideoDecoderFactory> createWebKitDecoderFactory(WebKit CodecSupport);45 std::unique_ptr<webrtc::VideoEncoderFactory> createWebKitEncoderFactory(WebKitH265, WebKitVP9); 46 std::unique_ptr<webrtc::VideoDecoderFactory> createWebKitDecoderFactory(WebKitH265, WebKitVP9); 46 47 47 48 void setApplicationStatus(bool isActive); -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitUtilities.mm
r259568 r263734 26 26 #include "WebKitUtilities.h" 27 27 28 //#include "Common/RTCUIApplicationStatusObserver.h" 29 #import "WebRTC/RTCVideoCodecH264.h" 28 #include "native/src/objc_frame_buffer.h" 29 #include "third_party/libyuv/include/libyuv/convert_from.h" 30 #include "Framework/Headers/WebRTC/RTCVideoFrameBuffer.h" 30 31 31 #include "api/video/video_frame.h"32 #include "helpers/scoped_cftyperef.h"33 #include "native/src/objc_frame_buffer.h"34 #include "rtc_base/time_utils.h"35 #include "sdk/objc/components/video_codec/nalu_rewriter.h"36 #include "third_party/libyuv/include/libyuv/convert_from.h"37 #include "webrtc/rtc_base/checks.h"38 #include "Framework/Headers/WebRTC/RTCVideoCodecFactory.h"39 #include "Framework/Headers/WebRTC/RTCVideoFrame.h"40 #include "Framework/Headers/WebRTC/RTCVideoFrameBuffer.h"41 #include "Framework/Native/api/video_decoder_factory.h"42 #include "Framework/Native/api/video_encoder_factory.h"43 #include "VideoProcessingSoftLink.h"44 #include "WebKitEncoder.h"45 46 #include <mutex>47 48 /*49 #if !defined(WEBRTC_IOS)50 __attribute__((objc_runtime_name("WK_RTCUIApplicationStatusObserver")))51 @interface RTCUIApplicationStatusObserver : NSObject52 53 + (instancetype)sharedInstance;54 + (void)prepareForUse;55 56 - (BOOL)isApplicationActive;57 58 @end59 #endif60 61 @implementation RTCUIApplicationStatusObserver {62 BOOL _isActive;63 }64 65 + (instancetype)sharedInstance {66 static id sharedInstance;67 static dispatch_once_t onceToken;68 dispatch_once(&onceToken, ^{69 sharedInstance = [[self alloc] init];70 });71 72 return sharedInstance;73 }74 75 + (void)prepareForUse {76 __unused RTCUIApplicationStatusObserver *observer = [self sharedInstance];77 }78 79 - (id)init {80 _isActive = YES;81 return self;82 }83 84 - (void)setActive {85 _isActive = YES;86 }87 88 - (void)setInactive {89 _isActive = NO;90 }91 92 - (BOOL)isApplicationActive {93 return _isActive;94 }95 96 @end97 */98 32 namespace webrtc { 99 33 … … 106 40 [[RTCUIApplicationStatusObserver sharedInstance] setInactive]; 107 41 */ 108 }109 110 std::unique_ptr<webrtc::VideoEncoderFactory> createWebKitEncoderFactory(WebKitCodecSupport codecSupport)111 {112 #if ENABLE_VCP_ENCODER || ENABLE_VCP_VTB_ENCODER113 static std::once_flag onceFlag;114 std::call_once(onceFlag, [] {115 webrtc::VPModuleInitialize();116 });117 #endif118 119 auto internalFactory = ObjCToNativeVideoEncoderFactory([[RTCDefaultVideoEncoderFactory alloc] initWithH265: codecSupport == WebKitCodecSupport::H264VP8AndH265]);120 return std::make_unique<VideoEncoderFactoryWithSimulcast>(std::move(internalFactory));121 }122 123 static bool h264HardwareEncoderAllowed = true;124 void setH264HardwareEncoderAllowed(bool allowed)125 {126 h264HardwareEncoderAllowed = allowed;127 }128 129 bool isH264HardwareEncoderAllowed()130 {131 return h264HardwareEncoderAllowed;132 42 } 133 43 -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/api/video_codec/RTCVideoDecoderVP9.h
r237075 r263734 15 15 16 16 RTC_OBJC_EXPORT 17 __attribute__((objc_runtime_name("WK_RTCVideoDecoderVP9"))) 17 18 @interface RTCVideoDecoderVP9 : NSObject 18 19 -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/api/video_codec/RTCVideoEncoderVP9.h
r237075 r263734 15 15 16 16 RTC_OBJC_EXPORT 17 __attribute__((objc_runtime_name("WK_RTCVideoEncoderVP9"))) 17 18 @interface RTCVideoEncoderVP9 : NSObject 18 19 -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h
r259452 r263734 22 22 __attribute__((objc_runtime_name("WK_RTCDefaultVideoDecoderFactory"))) 23 23 @interface RTCDefaultVideoDecoderFactory : NSObject <RTCVideoDecoderFactory> 24 - (id)initWithH265:(bool)supportH265 ;24 - (id)initWithH265:(bool)supportH265 vp9:(bool)supportsVP9; 25 25 @end 26 26 -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m
r259452 r263734 25 25 26 26 @implementation RTCDefaultVideoDecoderFactory { 27 bool _supportH265; 27 bool _supportsH265; 28 bool _supportsVP9; 28 29 } 29 30 30 - (id)initWithH265:(bool)support H26531 - (id)initWithH265:(bool)supportsH265 vp9:(bool)supportsVP9 31 32 { 32 33 self = [super init]; 33 34 if (self) { 34 _supportH265 = supportH265; 35 _supportsH265 = supportsH265; 36 _supportsVP9 = supportsVP9; 35 37 } 36 38 return self; … … 58 60 RTCVideoCodecInfo *vp8Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp8Name]; 59 61 62 NSMutableArray<RTCVideoCodecInfo *> *codecs = [[NSMutableArray alloc] initWithCapacity:5]; 63 64 [codecs addObject:constrainedHighInfo]; 65 [codecs addObject:constrainedBaselineInfo]; 60 66 #if !defined(RTC_DISABLE_H265) 61 RTCVideoCodecInfo *h265Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecH265Name]; 67 if (_supportsH265) { 68 RTCVideoCodecInfo *h265Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecH265Name]; 69 [codecs addObject:h265Info]; 70 } 62 71 #endif 63 72 [codecs addObject:vp8Info]; 64 73 #if defined(RTC_ENABLE_VP9) 65 RTCVideoCodecInfo *vp9Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name]; 74 if (_supportsVP9) { 75 RTCVideoCodecInfo *vp9Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name]; 76 [codecs addObject:vp9Info]; 77 } 66 78 #endif 67 79 68 if (!_supportH265) { 69 return @[ 70 constrainedHighInfo, 71 constrainedBaselineInfo, 72 vp8Info, 73 #if defined(RTC_ENABLE_VP9) 74 vp9Info, 75 #endif 76 ]; 77 } 78 return @[ 79 constrainedHighInfo, 80 constrainedBaselineInfo, 81 #if !defined(RTC_DISABLE_H265) 82 h265Info, 83 #endif 84 vp8Info, 85 #if defined(RTC_ENABLE_VP9) 86 vp9Info, 87 #endif 88 ]; 80 return codecs; 89 81 } 90 82 -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h
r259452 r263734 23 23 @interface RTCDefaultVideoEncoderFactory : NSObject <RTCVideoEncoderFactory> 24 24 25 - (id)initWithH265:(bool)supportH265 ;25 - (id)initWithH265:(bool)supportH265 vp9:(bool)supportsVP9; 26 26 + (NSArray<RTCVideoCodecInfo *> *)supportedCodecs; 27 + (NSArray<RTCVideoCodecInfo *> *)supportedCodecsWithH265:(bool)supportsH265 vp9:(bool)supportsVP9; 27 28 28 29 @end -
trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m
r259452 r263734 25 25 26 26 @implementation RTCDefaultVideoEncoderFactory { 27 bool _supportH265; 27 bool _supportsH265; 28 bool _supportsVP9; 28 29 } 29 30 30 - (id)initWithH265:(bool)support H26531 - (id)initWithH265:(bool)supportsH265 vp9:(bool)supportsVP9 31 32 { 32 33 self = [super init]; 33 34 if (self) { 34 _supportH265 = supportH265; 35 _supportsH265 = supportsH265; 36 _supportsVP9 = supportsVP9; 35 37 } 36 38 return self; … … 38 40 39 41 + (NSArray<RTCVideoCodecInfo *> *)supportedCodecs { 42 return [self supportedCodecsWithH265:true vp9:true]; 43 } 44 45 + (NSArray<RTCVideoCodecInfo *> *)supportedCodecsWithH265:(bool)supportsH265 vp9:(bool)supportsVP9 { 40 46 NSDictionary<NSString *, NSString *> *constrainedHighParams = @{ 41 47 @"profile-level-id" : kRTCMaxSupportedH264ProfileLevelConstrainedHigh, … … 56 62 parameters:constrainedBaselineParams]; 57 63 58 #if !defined(DISABLE_H265) 59 RTCVideoCodecInfo *h265Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecH265Name]; 64 NSMutableArray<RTCVideoCodecInfo *> *codecs = [[NSMutableArray alloc] initWithCapacity:5]; 65 66 [codecs addObject:constrainedHighInfo]; 67 [codecs addObject:constrainedBaselineInfo]; 68 #if !defined(RTC_DISABLE_H265) 69 if (supportsH265) { 70 RTCVideoCodecInfo *h265Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecH265Name]; 71 [codecs addObject:h265Info]; 72 } 60 73 #endif 61 74 62 75 RTCVideoCodecInfo *vp8Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp8Name]; 76 [codecs addObject:vp8Info]; 63 77 64 78 #if defined(RTC_ENABLE_VP9) 65 RTCVideoCodecInfo *vp9Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name]; 79 if (supportsVP9) { 80 RTCVideoCodecInfo *vp9Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name]; 81 [codecs addObject:vp9Info]; 82 } 66 83 #endif 67 84 68 return @[ 69 constrainedHighInfo, 70 constrainedBaselineInfo, 71 #if !defined(DISABLE_H265) 72 h265Info, 73 #endif 74 vp8Info, 75 #if defined(RTC_ENABLE_VP9) 76 vp9Info, 77 #endif 78 ]; 85 return codecs; 79 86 } 80 87 … … 100 107 101 108 - (NSArray<RTCVideoCodecInfo *> *)supportedCodecs { 102 NSMutableArray<RTCVideoCodecInfo *> *codecs = [[[self class] supportedCodecs] mutableCopy]; 103 104 NSMutableArray<RTCVideoCodecInfo *> *orderedCodecs = [NSMutableArray array]; 105 [orderedCodecs addObjectsFromArray:codecs]; 106 if (!_supportH265) 107 [orderedCodecs removeObjectAtIndex:0]; 108 109 return [orderedCodecs copy]; 109 return [[self class] supportedCodecsWithH265:_supportsH265 vp9: _supportsVP9]; 110 110 } 111 111 -
trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj
r262308 r263734 979 979 413E67A5216988DC00EF37ED /* video_stream_encoder_observer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 413E67A4216988DC00EF37ED /* video_stream_encoder_observer.cc */; }; 980 980 413F4D7022B0BAEF006A7A6B /* RTCVideoDecoderVP8.h in Headers */ = {isa = PBXBuildFile; fileRef = 413F4D6F22B0BAEE006A7A6B /* RTCVideoDecoderVP8.h */; }; 981 414035EC24AA0EBC00BCE9B2 /* RTCVideoDecoderVP9.h in Headers */ = {isa = PBXBuildFile; fileRef = 414035E824AA0EBB00BCE9B2 /* RTCVideoDecoderVP9.h */; }; 982 414035ED24AA0EBC00BCE9B2 /* RTCVideoEncoderVP9.mm in Sources */ = {isa = PBXBuildFile; fileRef = 414035E924AA0EBB00BCE9B2 /* RTCVideoEncoderVP9.mm */; }; 983 414035EE24AA0EBC00BCE9B2 /* RTCVideoEncoderVP9.h in Headers */ = {isa = PBXBuildFile; fileRef = 414035EA24AA0EBB00BCE9B2 /* RTCVideoEncoderVP9.h */; }; 984 414035EF24AA0EBC00BCE9B2 /* RTCVideoDecoderVP9.mm in Sources */ = {isa = PBXBuildFile; fileRef = 414035EB24AA0EBB00BCE9B2 /* RTCVideoDecoderVP9.mm */; }; 985 414035F224AA0F5400BCE9B2 /* video_rtp_depacketizer_vp9.cc in Sources */ = {isa = PBXBuildFile; fileRef = 414035F024AA0F5300BCE9B2 /* video_rtp_depacketizer_vp9.cc */; }; 986 414035F324AA0F5400BCE9B2 /* video_rtp_depacketizer_vp9.h in Headers */ = {isa = PBXBuildFile; fileRef = 414035F124AA0F5300BCE9B2 /* video_rtp_depacketizer_vp9.h */; }; 981 987 4140B8201E4E3383007409E6 /* audio_encoder_pcm.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4140B8181E4E3383007409E6 /* audio_encoder_pcm.cc */; }; 982 988 4140B8211E4E3383007409E6 /* audio_encoder_pcm.h in Headers */ = {isa = PBXBuildFile; fileRef = 4140B8191E4E3383007409E6 /* audio_encoder_pcm.h */; }; … … 4992 4998 413E67AA2169894C00EF37ED /* RTCNativeMutableI420Buffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCNativeMutableI420Buffer.h; sourceTree = "<group>"; }; 4993 4999 413F4D6F22B0BAEE006A7A6B /* RTCVideoDecoderVP8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCVideoDecoderVP8.h; sourceTree = "<group>"; }; 5000 414035E824AA0EBB00BCE9B2 /* RTCVideoDecoderVP9.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCVideoDecoderVP9.h; sourceTree = "<group>"; }; 5001 414035E924AA0EBB00BCE9B2 /* RTCVideoEncoderVP9.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RTCVideoEncoderVP9.mm; sourceTree = "<group>"; }; 5002 414035EA24AA0EBB00BCE9B2 /* RTCVideoEncoderVP9.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCVideoEncoderVP9.h; sourceTree = "<group>"; }; 5003 414035EB24AA0EBB00BCE9B2 /* RTCVideoDecoderVP9.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RTCVideoDecoderVP9.mm; sourceTree = "<group>"; }; 5004 414035F024AA0F5300BCE9B2 /* video_rtp_depacketizer_vp9.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = video_rtp_depacketizer_vp9.cc; sourceTree = "<group>"; }; 5005 414035F124AA0F5300BCE9B2 /* video_rtp_depacketizer_vp9.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = video_rtp_depacketizer_vp9.h; sourceTree = "<group>"; }; 4994 5006 4140B8181E4E3383007409E6 /* audio_encoder_pcm.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = audio_encoder_pcm.cc; path = g711/audio_encoder_pcm.cc; sourceTree = "<group>"; }; 4995 5007 4140B8191E4E3383007409E6 /* audio_encoder_pcm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = audio_encoder_pcm.h; path = g711/audio_encoder_pcm.h; sourceTree = "<group>"; }; … … 9283 9295 417954012169851F0028266B /* RTCVideoEncoderVP8.h */, 9284 9296 413E67642169854500EF37ED /* RTCVideoEncoderVP8.mm */, 9297 414035E824AA0EBB00BCE9B2 /* RTCVideoDecoderVP9.h */, 9298 414035EB24AA0EBB00BCE9B2 /* RTCVideoDecoderVP9.mm */, 9299 414035EA24AA0EBB00BCE9B2 /* RTCVideoEncoderVP9.h */, 9300 414035E924AA0EBB00BCE9B2 /* RTCVideoEncoderVP9.mm */, 9285 9301 417953FE2169851F0028266B /* RTCWrappedNativeVideoDecoder.h */, 9286 9302 41795403216985200028266B /* RTCWrappedNativeVideoDecoder.mm */, … … 13461 13477 4189390A242A704C007FDC41 /* video_rtp_depacketizer_vp8.cc */, 13462 13478 4189390B242A704C007FDC41 /* video_rtp_depacketizer_vp8.h */, 13479 414035F024AA0F5300BCE9B2 /* video_rtp_depacketizer_vp9.cc */, 13480 414035F124AA0F5300BCE9B2 /* video_rtp_depacketizer_vp9.h */, 13463 13481 ); 13464 13482 name = source; … … 15062 15080 41893A5C242A77B8007FDC41 /* event_based_exponential_moving_average.h in Headers */, 15063 15081 5CD286151E6A66130094FDC8 /* event_log_writer.h in Headers */, 15082 414035EC24AA0EBC00BCE9B2 /* RTCVideoDecoderVP9.h in Headers */, 15064 15083 41893A5B242A77B8007FDC41 /* event_rate_counter.h in Headers */, 15065 15084 4131C051234B898D0028A615 /* event_tracer.h in Headers */, … … 15704 15723 4131C4DB234C84A30028A615 /* rtp_dependency_descriptor_reader.h in Headers */, 15705 15724 4131C4DC234C84A30028A615 /* rtp_dependency_descriptor_writer.h in Headers */, 15725 414035EE24AA0EBC00BCE9B2 /* RTCVideoEncoderVP9.h in Headers */, 15706 15726 4189391B242A704E007FDC41 /* rtp_descriptor_authentication.h in Headers */, 15707 15727 5CDD8AB71E43C00F00621E92 /* rtp_file_source.h in Headers */, … … 15988 16008 5CDD86D71E43BA2800621E92 /* vad_core.h in Headers */, 15989 16009 5CDD86DA1E43BA2800621E92 /* vad_filterbank.h in Headers */, 16010 414035F324AA0F5400BCE9B2 /* video_rtp_depacketizer_vp9.h in Headers */, 15990 16011 5CDD86DD1E43BA2800621E92 /* vad_gmm.h in Headers */, 15991 16012 5CDD86E01E43BA2800621E92 /* vad_sp.h in Headers */, … … 17397 17418 5CD285461E6A61D20094FDC8 /* audio_format.cc in Sources */, 17398 17419 41DDB26F212679D200296D47 /* audio_format_to_string.cc in Sources */, 17420 414035EF24AA0EBC00BCE9B2 /* RTCVideoDecoderVP9.mm in Sources */, 17399 17421 4131C3A7234B96C30028A615 /* audio_frame.cc in Sources */, 17400 17422 5CD284921E6A5F410094FDC8 /* audio_frame_manipulator.cc in Sources */, … … 17790 17812 4131C227234B8BB20028A615 /* keyframe_interval_settings.cc in Sources */, 17791 17813 5CDD87C41E43BC0500621E92 /* lattice.c in Sources */, 17814 414035ED24AA0EBC00BCE9B2 /* RTCVideoEncoderVP9.mm in Sources */, 17792 17815 41433CF21F79B33400387B4D /* lattice.c in Sources */, 17793 17816 41433D141F79B33400387B4D /* lattice_c.c in Sources */, … … 17867 17890 417953B4216982420028266B /* nalu_rewriter.cc in Sources */, 17868 17891 4131C03C234B898D0028A615 /* nat_server.cc in Sources */, 17892 414035F224AA0F5400BCE9B2 /* video_rtp_depacketizer_vp9.cc in Sources */, 17869 17893 4131C054234B898D0028A615 /* nat_socket_factory.cc in Sources */, 17870 17894 4131C089234B898D0028A615 /* nat_types.cc in Sources */, -
trunk/Source/WebCore/ChangeLog
r263729 r263734 1 2020-06-30 Youenn Fablet <youenn@apple.com> 2 3 Add VP9 WebRTC codec runtime flag 4 https://bugs.webkit.org/show_bug.cgi?id=213724 5 6 Reviewed by Eric Carlson. 7 8 Add binding code to switch on/off VP9 in WebRTC factories based on runtime flag. 9 10 Test: webrtc/vp9.html 11 12 * page/Page.cpp: 13 (WebCore::m_shouldRelaxThirdPartyCookieBlocking): 14 * page/RuntimeEnabledFeatures.h: 15 (WebCore::RuntimeEnabledFeatures::webRTCVP9CodecEnabled const): 16 (WebCore::RuntimeEnabledFeatures::setWebRTCVP9CodecEnabled): 17 * platform/mediastream/libwebrtc/LibWebRTCProvider.h: 18 * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: 19 (WebCore::LibWebRTCProviderCocoa::createDecoderFactory): 20 (WebCore::LibWebRTCProviderCocoa::createEncoderFactory): 21 * testing/Internals.cpp: 22 (WebCore::Internals::setWebRTCH265Support): 23 (WebCore::Internals::setWebRTCVP9Support): 24 * testing/Internals.h: 25 * testing/Internals.idl: 26 1 27 2020-06-29 Antoine Quint <graouts@webkit.org> 2 28 -
trunk/Source/WebCore/page/Page.cpp
r263531 r263734 335 335 336 336 #if USE(LIBWEBRTC) 337 m_libWebRTCProvider->supportsH265(RuntimeEnabledFeatures::sharedFeatures().webRTCH265CodecEnabled()); 337 m_libWebRTCProvider->setH265Support(RuntimeEnabledFeatures::sharedFeatures().webRTCH265CodecEnabled()); 338 m_libWebRTCProvider->setVP9Support(RuntimeEnabledFeatures::sharedFeatures().webRTCVP9CodecEnabled()); 338 339 #endif 339 340 -
trunk/Source/WebCore/page/RuntimeEnabledFeatures.h
r263700 r263734 242 242 bool webRTCH265CodecEnabled() const { return m_isWebRTCH265CodecEnabled; } 243 243 void setWebRTCH265CodecEnabled(bool isEnabled) { m_isWebRTCH265CodecEnabled = isEnabled; } 244 bool webRTCVP9CodecEnabled() const { return m_isWebRTCVP9CodecEnabled; } 245 void setWebRTCVP9CodecEnabled(bool isEnabled) { m_isWebRTCVP9CodecEnabled = isEnabled; } 244 246 bool peerConnectionEnabled() const { return m_isPeerConnectionEnabled; } 245 247 void setPeerConnectionEnabled(bool isEnabled) { m_isPeerConnectionEnabled = isEnabled; } … … 511 513 #if ENABLE(WEB_RTC) 512 514 bool m_isWebRTCDTMFEnabled { true }; 513 bool m_isWebRTCH265CodecEnabled { true }; 515 bool m_isWebRTCH265CodecEnabled { false }; 516 bool m_isWebRTCVP9CodecEnabled { false }; 514 517 bool m_isPeerConnectionEnabled { true }; 515 518 bool m_isWebRTCMDNSICECandidatesEnabled { false }; -
trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h
r261277 r263734 105 105 void enableEnumeratingAllNetworkInterfaces(); 106 106 107 void supportsH265(bool value) { m_supportsH265 = value; } 107 void setH265Support(bool value) { m_supportsH265 = value; } 108 void setVP9Support(bool value) { m_supportsVP9 = value; } 109 bool isSupportingH265() const { return m_supportsH265; } 110 bool isSupportingVP9() const { return m_supportsVP9; } 108 111 virtual void disableNonLocalhostConnections() { m_disableNonLocalhostConnections = true; } 109 112 … … 147 150 bool m_disableNonLocalhostConnections { false }; 148 151 bool m_supportsH265 { false }; 152 bool m_supportsVP9 { false }; 149 153 bool m_enableLogging { true }; 150 154 bool m_useDTLS10 { false }; -
trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp
r261651 r263734 57 57 ASSERT(isMainThread()); 58 58 59 auto codecSupport = m_supportsH265 ? webrtc::WebKitCodecSupport::H264VP8AndH265 : webrtc::WebKitCodecSupport::H264AndVP8; 60 return webrtc::createWebKitDecoderFactory(codecSupport); 59 return webrtc::createWebKitDecoderFactory(isSupportingH265() ? webrtc::WebKitH265::On : webrtc::WebKitH265::Off, isSupportingVP9() ? webrtc::WebKitVP9::On : webrtc::WebKitVP9::Off); 61 60 } 62 61 … … 65 64 ASSERT(isMainThread()); 66 65 67 auto codecSupport = m_supportsH265 ? webrtc::WebKitCodecSupport::H264VP8AndH265 : webrtc::WebKitCodecSupport::H264AndVP8; 68 return webrtc::createWebKitEncoderFactory(codecSupport); 66 return webrtc::createWebKitEncoderFactory(isSupportingH265() ? webrtc::WebKitH265::On : webrtc::WebKitH265::Off, isSupportingVP9() ? webrtc::WebKitVP9::On : webrtc::WebKitVP9::Off); 69 67 } 70 68 -
trunk/Source/WebCore/testing/Internals.cpp
r263700 r263734 1614 1614 connection.applyRotationForOutgoingVideoSources(); 1615 1615 } 1616 void Internals::setWebRTCH265Support(bool value) 1617 { 1618 #if USE(LIBWEBRTC) 1619 if (auto* page = contextDocument()->page()) { 1620 page->libWebRTCProvider().setH265Support(value); 1621 page->libWebRTCProvider().clearFactory(); 1622 } 1623 #endif 1624 } 1625 1626 void Internals::setWebRTCVP9Support(bool value) 1627 { 1628 #if USE(LIBWEBRTC) 1629 if (auto* page = contextDocument()->page()) { 1630 page->libWebRTCProvider().setVP9Support(value); 1631 page->libWebRTCProvider().clearFactory(); 1632 } 1633 #endif 1634 } 1616 1635 1617 1636 void Internals::setEnableWebRTCEncryption(bool value) -
trunk/Source/WebCore/testing/Internals.h
r263700 r263734 598 598 void clearPeerConnectionFactory(); 599 599 void applyRotationForOutgoingVideoSources(RTCPeerConnection&); 600 void setWebRTCH265Support(bool); 601 void setWebRTCVP9Support(bool); 600 602 void setEnableWebRTCEncryption(bool); 601 603 void setUseDTLS10(bool); -
trunk/Source/WebCore/testing/Internals.idl
r263700 r263734 777 777 [Conditional=WEB_RTC] void setH264HardwareEncoderAllowed(boolean allowed); 778 778 [Conditional=WEB_RTC] void applyRotationForOutgoingVideoSources(RTCPeerConnection connection); 779 [Conditional=WEB_RTC] void setWebRTCH265Support(boolean allowed); 780 [Conditional=WEB_RTC] void setWebRTCVP9Support(boolean allowed); 779 781 780 782 [Conditional=MEDIA_STREAM] void setMockAudioTrackChannelNumber(MediaStreamTrack track, unsigned short count); -
trunk/Source/WebKit/ChangeLog
r263727 r263734 1 2020-06-30 Youenn Fablet <youenn@apple.com> 2 3 Add VP9 WebRTC codec runtime flag 4 https://bugs.webkit.org/show_bug.cgi?id=213724 5 6 Reviewed by Eric Carlson. 7 8 * Shared/WebPreferences.yaml: 9 * WebProcess/WebPage/WebPage.cpp: 10 (WebKit::WebPage::updatePreferences): 11 1 12 2020-06-29 Brady Eidson <beidson@apple.com> 2 13 -
trunk/Source/WebKit/Shared/WebPreferences.yaml
r263718 r263734 607 607 category: experimental 608 608 609 WebRTCVP9CodecEnabled: 610 type: bool 611 defaultValue: false 612 webcoreBinding: RuntimeEnabledFeatures 613 condition: ENABLE(WEB_RTC) 614 humanReadableName: "WebRTC VP9 codec" 615 humanReadableDescription: "Enable WebRTC VP9 codec" 616 category: experimental 617 609 618 WebRTCPlatformCodecsInGPUProcessEnabled: 610 619 type: bool -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r263727 r263734 3729 3729 3730 3730 #if USE(LIBWEBRTC) 3731 m_page->libWebRTCProvider().supportsH265(RuntimeEnabledFeatures::sharedFeatures().webRTCH265CodecEnabled()); 3731 m_page->libWebRTCProvider().setH265Support(RuntimeEnabledFeatures::sharedFeatures().webRTCH265CodecEnabled()); 3732 m_page->libWebRTCProvider().setVP9Support(RuntimeEnabledFeatures::sharedFeatures().webRTCVP9CodecEnabled()); 3732 3733 #endif 3733 3734
Note: See TracChangeset
for help on using the changeset viewer.