haikuwebkit/LayoutTests/webrtc/video-interruption-expected...

5 lines
61 B
Plaintext
Raw Permalink Normal View History

WebRTC video does not resume receiving when switching back to Safari 11 on iOS https://bugs.webkit.org/show_bug.cgi?id=175472 <rdar://problem/33860863> Patch by Youenn Fablet <youenn@apple.com> on 2017-09-25 Reviewed by Darin Adler. Source/ThirdParty/libwebrtc: Adding a method to disable any decoding/encoding task. When reenabling the decoder, the decoder will request an I frame after failing the first initial decoding task. * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.h: (webrtc::H264VideoToolboxDecoder::SetActive): * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.mm: (webrtc::H264VideoToolboxDecoder::Decode): * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h: * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm: (webrtc::H264VideoToolboxEncoder::Encode): Source/WebCore: Test: webrtc/video-interruption.html and manual testing. Using new SetActive method from libwebrtc encoder/decoder to enable/disable them based on interuptions. For that purpose, LibWebRTCProvider is now storing the peer connection factory and keeping track of the encoder/decoder factories. LibWebRTCProvider is then notified by WebPage when backgrounded/foregrounded. * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: (WebCore::staticFactoryAndThreads): (WebCore::initializePeerConnectionFactoryAndThreads): (WebCore::LibWebRTCProvider::factory): (WebCore::LibWebRTCProvider::setPeerConnectionFactory): (WebCore::LibWebRTCProvider::createPeerConnection): (WebCore::LibWebRTCProvider::setActive): (WebCore::LibWebRTCProvider::webRTCAvailable): (WebCore::LibWebRTCProvider::mayResumePlayback): Deleted. (WebCore::LibWebRTCProvider::suspendPlayback): Deleted. * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.cpp: Copied from Source/WebCore/platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp. (WebCore::VideoToolboxVideoDecoderFactory::setActive): (WebCore::VideoToolboxVideoDecoderFactory::CreateVideoDecoder): (WebCore::VideoToolboxVideoDecoderFactory::DestroyVideoDecoder): * platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.h: Copied from Source/WebCore/platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h. * platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp: (WebCore::VideoToolboxVideoEncoderFactory::setActive): (WebCore::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder): (WebCore::VideoToolboxVideoEncoderFactory::DestroyVideoEncoder): * platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h: * testing/Internals.cpp: (WebCore::Internals::resetToConsistentState): * testing/MockLibWebRTCPeerConnection.cpp: (WebCore::useRealRTCPeerConnectionFactory): (WebCore::useMockRTCPeerConnectionFactory): * testing/MockLibWebRTCPeerConnection.h: Source/WebKit: Notifying LibWebRTC of backgrounding/foregrouding. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationDidEnterBackground): (WebKit::WebPage::applicationWillEnterForeground): LayoutTests: * webrtc/video-interruption-expected.txt: Added. * webrtc/video-interruption.html: Added. Canonical link: https://commits.webkit.org/193772@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222478 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-25 23:23:27 +00:00
PASS Basic video exchange with media session interruption
WebRTC video does not resume receiving when switching back to Safari 11 on iOS https://bugs.webkit.org/show_bug.cgi?id=175472 <rdar://problem/33860863> Patch by Youenn Fablet <youenn@apple.com> on 2017-09-25 Reviewed by Darin Adler. Source/ThirdParty/libwebrtc: Adding a method to disable any decoding/encoding task. When reenabling the decoder, the decoder will request an I frame after failing the first initial decoding task. * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.h: (webrtc::H264VideoToolboxDecoder::SetActive): * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.mm: (webrtc::H264VideoToolboxDecoder::Decode): * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h: * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm: (webrtc::H264VideoToolboxEncoder::Encode): Source/WebCore: Test: webrtc/video-interruption.html and manual testing. Using new SetActive method from libwebrtc encoder/decoder to enable/disable them based on interuptions. For that purpose, LibWebRTCProvider is now storing the peer connection factory and keeping track of the encoder/decoder factories. LibWebRTCProvider is then notified by WebPage when backgrounded/foregrounded. * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: (WebCore::staticFactoryAndThreads): (WebCore::initializePeerConnectionFactoryAndThreads): (WebCore::LibWebRTCProvider::factory): (WebCore::LibWebRTCProvider::setPeerConnectionFactory): (WebCore::LibWebRTCProvider::createPeerConnection): (WebCore::LibWebRTCProvider::setActive): (WebCore::LibWebRTCProvider::webRTCAvailable): (WebCore::LibWebRTCProvider::mayResumePlayback): Deleted. (WebCore::LibWebRTCProvider::suspendPlayback): Deleted. * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.cpp: Copied from Source/WebCore/platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp. (WebCore::VideoToolboxVideoDecoderFactory::setActive): (WebCore::VideoToolboxVideoDecoderFactory::CreateVideoDecoder): (WebCore::VideoToolboxVideoDecoderFactory::DestroyVideoDecoder): * platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.h: Copied from Source/WebCore/platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h. * platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp: (WebCore::VideoToolboxVideoEncoderFactory::setActive): (WebCore::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder): (WebCore::VideoToolboxVideoEncoderFactory::DestroyVideoEncoder): * platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h: * testing/Internals.cpp: (WebCore::Internals::resetToConsistentState): * testing/MockLibWebRTCPeerConnection.cpp: (WebCore::useRealRTCPeerConnectionFactory): (WebCore::useMockRTCPeerConnectionFactory): * testing/MockLibWebRTCPeerConnection.h: Source/WebKit: Notifying LibWebRTC of backgrounding/foregrouding. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationDidEnterBackground): (WebKit::WebPage::applicationWillEnterForeground): LayoutTests: * webrtc/video-interruption-expected.txt: Added. * webrtc/video-interruption.html: Added. Canonical link: https://commits.webkit.org/193772@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222478 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-09-25 23:23:27 +00:00