haikuwebkit/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.h

96 lines
3.3 KiB
C
Raw Permalink Normal View History

[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
/*
Add media stream release logging https://bugs.webkit.org/show_bug.cgi?id=195823 Source/WebCore: <rdar://problem/48939406> Reviewed by Youenn Fablet. No new tests, no behavioral change. * Modules/mediastream/MediaStream.cpp: (WebCore::MediaStream::MediaStream): (WebCore::MediaStream::clone): (WebCore::MediaStream::addTrack): (WebCore::MediaStream::removeTrack): (WebCore::MediaStream::addTrackFromPlatform): (WebCore::MediaStream::setIsActive): (WebCore::MediaStream::mediaCanStart): (WebCore::MediaStream::startProducingData): (WebCore::MediaStream::stopProducingData): (WebCore::MediaStream::endCaptureTracks): (WebCore::MediaStream::stop): (WebCore::MediaStream::logChannel const): * Modules/mediastream/MediaStream.h: * Modules/mediastream/MediaStreamTrack.cpp: (WebCore::MediaStreamTrack::MediaStreamTrack): (WebCore::MediaStreamTrack::logChannel const): * Modules/mediastream/MediaStreamTrack.h: * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::sourceFromNewReceiver): * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::AudioContext): (WebCore::nextLogIdentifier): Deleted. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): (WebCore::nextLogIdentifier): Deleted. * html/HTMLMediaElement.h: * platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::PlatformMediaSession): (WebCore::nextLogIdentifier): Deleted. * platform/audio/PlatformMediaSession.h: * platform/graphics/IntSize.cpp: (WebCore::IntSize::toJSONObject const): (WebCore::IntSize::toJSONString const): * platform/graphics/IntSize.h: (WTF::LogArgument<WebCore::IntSize>::toString): * platform/mediastream/MediaStreamPrivate.cpp: (WebCore::MediaStreamPrivate::addTrack): (WebCore::MediaStreamPrivate::removeTrack): (WebCore::MediaStreamPrivate::startProducingData): (WebCore::MediaStreamPrivate::stopProducingData): (WebCore::MediaStreamPrivate::setCaptureTracksMuted): (WebCore::MediaStreamPrivate::trackMutedChanged): (WebCore::MediaStreamPrivate::trackEnabledChanged): (WebCore::MediaStreamPrivate::trackStarted): (WebCore::MediaStreamPrivate::trackEnded): (WebCore::MediaStreamPrivate::setLogger): (WebCore::MediaStreamPrivate::logChannel const): * platform/mediastream/MediaStreamPrivate.h: * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::setLogger): (WebCore::MediaStreamTrackPrivate::logChannel const): * platform/mediastream/MediaStreamTrackPrivate.h: * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::logChannel const): Deleted. (WebCore::RealtimeIncomingAudioSource::logger const): Deleted. * platform/mediastream/RealtimeIncomingAudioSource.h: (WebCore::RealtimeIncomingAudioSource::setLogger): Deleted. * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::logChannel const): Deleted. (WebCore::RealtimeIncomingVideoSource::logger const): Deleted. * platform/mediastream/RealtimeIncomingVideoSource.h: (WebCore::RealtimeIncomingVideoSource::setLogger): Deleted. * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::RealtimeMediaSource): (WebCore::RealtimeMediaSource::setInterrupted): (WebCore::RealtimeMediaSource::setMuted): (WebCore::RealtimeMediaSource::notifyMutedChange): (WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers): (WebCore::RealtimeMediaSource::videoSampleAvailable): (WebCore::RealtimeMediaSource::start): (WebCore::RealtimeMediaSource::stop): (WebCore::RealtimeMediaSource::captureFailed): (WebCore::RealtimeMediaSource::applyConstraint): (WebCore::RealtimeMediaSource::supportsConstraints): (WebCore::RealtimeMediaSource::applyConstraints): (WebCore::RealtimeMediaSource::setSize): (WebCore::RealtimeMediaSource::setIntrinsicSize): (WebCore::RealtimeMediaSource::setFrameRate): (WebCore::RealtimeMediaSource::setAspectRatio): (WebCore::RealtimeMediaSource::setFacingMode): (WebCore::RealtimeMediaSource::setVolume): (WebCore::RealtimeMediaSource::setSampleRate): (WebCore::RealtimeMediaSource::setSampleSize): (WebCore::RealtimeMediaSource::setEchoCancellation): (WebCore::RealtimeMediaSource::setLogger): (WebCore::RealtimeMediaSource::logChannel const): (WebCore::convertEnumerationToString): * platform/mediastream/RealtimeMediaSource.h: (WTF::LogArgument<WebCore::RealtimeMediaSource::Type>::toString): * platform/mediastream/RealtimeMediaSourceSettings.cpp: (WebCore::RealtimeMediaSourceSettings::convertFlagsToString): (WebCore::convertEnumerationToString): * platform/mediastream/RealtimeMediaSourceSettings.h: (WTF::LogArgument<WebCore::RealtimeMediaSourceSettings::VideoFacingMode>::toString): (WTF::LogArgument<OptionSet<WebCore::RealtimeMediaSourceSettings::Flag>>::toString): * platform/mediastream/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): (WebCore::RealtimeOutgoingAudioSource::logChannel const): (WebCore::RealtimeOutgoingAudioSource::logger const): Deleted. * platform/mediastream/RealtimeOutgoingAudioSource.h: (WebCore::RealtimeOutgoingAudioSource::setLogger): Deleted. * platform/mediastream/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::sendOneBlackFrame): (WebCore::RealtimeOutgoingVideoSource::sendFrame): (WebCore::RealtimeOutgoingVideoSource::logChannel const): (WebCore::RealtimeOutgoingVideoSource::logger const): Deleted. * platform/mediastream/RealtimeOutgoingVideoSource.h: (WebCore::RealtimeOutgoingVideoSource::setLogger): Deleted. * platform/mediastream/RealtimeVideoSource.cpp: (WebCore::RealtimeVideoSource::setSizeAndFrameRate): (WebCore::SizeAndFrameRate::toJSONObject const): (WebCore::SizeAndFrameRate::toJSONString const): * platform/mediastream/RealtimeVideoSource.h: (WTF::LogArgument<WebCore::SizeAndFrameRate>::toString): * platform/mediastream/mac/AVVideoCaptureSource.h: * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::clearSession): (WebCore::AVVideoCaptureSource::startProducingData): (WebCore::AVVideoCaptureSource::stopProducingData): (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset): (WebCore::AVVideoCaptureSource::setupSession): (WebCore::AVVideoCaptureSource::frameDurationForFrameRate): (WebCore::AVVideoCaptureSource::setupCaptureSession): (WebCore::AVVideoCaptureSource::captureSessionIsRunningDidChange): (WebCore::AVVideoCaptureSource::captureDeviceSuspendedDidChange): (WebCore::AVVideoCaptureSource::captureSessionRuntimeError): (WebCore::AVVideoCaptureSource::captureSessionBeginInterruption): (WebCore::AVVideoCaptureSource::captureSessionEndInterruption): (WebCore::AVVideoCaptureSource::deviceDisconnected): (-[WebCoreAVVideoCaptureSourceObserver observeValueForKeyPath:ofObject:change:context:]): (-[WebCoreAVVideoCaptureSourceObserver deviceConnectedDidChange:]): (-[WebCoreAVVideoCaptureSourceObserver sessionRuntimeError:]): (-[WebCoreAVVideoCaptureSourceObserver beginSessionInterrupted:]): (-[WebCoreAVVideoCaptureSourceObserver endSessionInterrupted:]): (WebCore::AVVideoCaptureSource::initializeSession): Deleted. * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::setupAudioUnit): (WebCore::CoreAudioSharedUnit::verifyIsCapturing): (WebCore::CoreAudioSharedUnit::captureFailed): (WebCore::CoreAudioCaptureSource::initializeToStartProducingData): (WebCore::CoreAudioCaptureSource::addEchoCancellationSource): (WebCore::CoreAudioCaptureSource::removeEchoCancellationSource): (WebCore::CoreAudioCaptureSource::startProducingData): (WebCore::CoreAudioCaptureSource::stopProducingData): (WebCore::CoreAudioCaptureSource::scheduleReconfiguration): (WebCore::CoreAudioCaptureSource::beginInterruption): (WebCore::CoreAudioCaptureSource::endInterruption): * platform/mediastream/mac/CoreAudioCaptureSource.h: * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h: * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm: (WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): (WebCore::ScreenDisplayCaptureSourceMac::startProducingData): (WebCore::ScreenDisplayCaptureSourceMac::stopProducingData): (WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream): Source/WTF: Reviewed by Youenn Fablet. * wtf/LoggerHelper.h: Add LOG_IF variants that check a condition before logging. Canonical link: https://commits.webkit.org/210116@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-03-16 05:21:43 +00:00
* Copyright (C) 2017-2019 Apple Inc. All rights reserved.
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name of Ericsson nor the names of its contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#pragma once
#if USE(LIBWEBRTC)
#include "LibWebRTCMacros.h"
#include "RealtimeMediaSource.h"
2018-08-23 Youenn Fablet <youenn@apple.com> Update libwebrtc up to 984f1a80c0 https://bugs.webkit.org/show_bug.cgi?id=188745 <rdar://problem/43539177> Reviewed by Eric Carlson. Source/ThirdParty/libwebrtc: Update libwebrtc main code. Update exported symbols and related applied modifications. * CMakeLists.txt: * Configurations/libwebrtc.iOS.exp: * Configurations/libwebrtc.iOSsim.exp: * Configurations/libwebrtc.mac.exp: * Configurations/libwebrtc.xcconfig: * Source/webrtc: refreshed * WebKit/0001-Updating-webrtc.patch: Added. * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Removed. * WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Removed. * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Removed. * WebKit/0001-Using-VCP.patch: Removed. * WebKit/0003-Fixing-VP8-files.patch: Removed. * WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Removed. * WebKit/0005-Fix-RTC_FATAL.patch: Removed. * WebKit/0006-Disabling-VP8.patch: Removed. * WebKit/0007-Fix-RTC_STRINGIZE.patch: Removed. * WebKit/0008-Fix-sanitizer.patch: Removed. * WebKit/0009-Remove-dispatch_set_target_queue.patch: Removed. * WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Removed. * WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Removed. * WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Removed. * WebKit/0013-Fix-SafeSetError-use-after-move.patch: Removed. * libwebrtc.xcodeproj/project.pbxproj: Source/WebCore: Updated implementation according new webrtc backend. Instead of modifying libwebrtc header files, we disable unused parameter warning for such headers included in WebCore. WebCore implementation is updated according new webrtc API, mostly AddRef/Release. RealtimeOutgoingVideoSource now uses a pixel convolver to convert RGB pixel buffers as I420. Covered by existing tests. * CMakeLists.txt: * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream): (WebCore::fillEncodingParameters): (WebCore::fillRtpParameters): * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: (WebCore::LibWebRTCMediaEndpoint::Release const): * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): (WebCore::RealtimeMediaSource::supportsConstraint const): (WebCore::RealtimeMediaSource::supportsConstraints): * platform/mediastream/RealtimeOutgoingAudioSource.h: * platform/mediastream/RealtimeOutgoingVideoSource.h: * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: (WebCore::GStreamerVideoDecoder::newSampleCallback): * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: (WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder): (WebCore::GStreamerVideoEncoder::newSampleCallback): * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::ConvertToI420): (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: Added. (WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV): * testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::AddTrack): * testing/MockLibWebRTCPeerConnection.h: (WebCore::MockRtpSender::GetParameters): (WebCore::MockRtpSender::SetParameters): LayoutTests: Updated tests according new webrtc backend. * webrtc/libwebrtc/setLocalDescriptionCrash.html: * webrtc/video-getParameters.html: LayoutTests/imported/w3c: * web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt: * web-platform-tests/webrtc/no-media-call-expected.txt: Canonical link: https://commits.webkit.org/203936@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-08-23 17:32:20 +00:00
Add IGNORE_WARNING_.* macros https://bugs.webkit.org/show_bug.cgi?id=188996 Reviewed by Michael Catanzaro. Source/JavaScriptCore: * API/JSCallbackObject.h: * API/tests/testapi.c: * assembler/LinkBuffer.h: (JSC::LinkBuffer::finalizeCodeWithDisassembly): * b3/B3LowerToAir.cpp: * b3/B3Opcode.cpp: * b3/B3Type.h: * b3/B3TypeMap.h: * b3/B3Width.h: * b3/air/AirArg.cpp: * b3/air/AirArg.h: * b3/air/AirCode.h: * bytecode/Opcode.h: (JSC::padOpcodeName): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::speculateNumber): (JSC::DFG::SpeculativeJIT::speculateMisc): * dfg/DFGSpeculativeJIT64.cpp: * ftl/FTLOutput.h: * jit/CCallHelpers.h: (JSC::CCallHelpers::calculatePokeOffset): * llint/LLIntData.cpp: * llint/LLIntSlowPaths.cpp: (JSC::LLInt::slowPathLogF): * runtime/ConfigFile.cpp: (JSC::ConfigFile::canonicalizePaths): * runtime/JSDataViewPrototype.cpp: * runtime/JSGenericTypedArrayViewConstructor.h: * runtime/JSGenericTypedArrayViewPrototype.h: * runtime/Options.cpp: (JSC::Options::setAliasedOption): * tools/CodeProfiling.cpp: * wasm/WasmSections.h: * wasm/generateWasmValidateInlinesHeader.py: Source/WebCore: * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification): * accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::overrideAttachmentParent): (WebCore::AccessibilityObject::accessibilityIgnoreAttachment const): * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper renderWidgetChildren]): (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): (-[WebAccessibilityObjectWrapper role]): (-[WebAccessibilityObjectWrapper roleDescription]): * bridge/objc/WebScriptObject.mm: * bridge/objc/objc_class.mm: (JSC::Bindings::ObjcClass::fieldNamed const): * crypto/CommonCryptoUtilities.cpp: (WebCore::getCommonCryptoDigestAlgorithm): * crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: (WebCore::encryptAES_GCM): (WebCore::decyptAES_GCM): * crypto/mac/SerializedCryptoKeyWrapMac.mm: (WebCore::wrapSerializedCryptoKey): (WebCore::unwrapSerializedCryptoKey): * css/makeSelectorPseudoClassAndCompatibilityElementMap.py: * css/makeSelectorPseudoElementsMap.py: * editing/TextIterator.cpp: * editing/mac/EditorMac.mm: (WebCore::Editor::pasteWithPasteboard): (WebCore::Editor::takeFindStringFromSelection): (WebCore::Editor::replaceNodeFromPasteboard): * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking): * page/mac/ServicesOverlayController.mm: (WebCore::ServicesOverlayController::Highlight::paintContents): * platform/LocalizedStrings.cpp: (WebCore::formatLocalizedString): * platform/ScreenProperties.h: (WebCore::ScreenData::decode): * platform/gamepad/mac/HIDGamepadProvider.cpp: (WebCore::HIDGamepadProvider::stopMonitoringInput): * platform/graphics/PlatformDisplay.cpp: (WebCore::PlatformDisplay::sharedDisplay): * platform/graphics/SurrogatePairAwareTextIterator.cpp: * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm: (WebCore::MediaSelectionGroupAVFObjC::updateOptions): * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: (WebCore::CDMSessionAVStreamSession::update): * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack const): (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep): * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::IGNORE_CLANG_WARNING_END): * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (-[WebAVSampleBufferErrorListener beginObservingRenderer:]): (-[WebAVSampleBufferErrorListener stopObservingRenderer:]): (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): (WebCore::IGNORE_CLANG_WARNING_END): * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (PlatformCALayer::drawLayerContents): * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp: (WebCore::FontCascade::fontForCombiningCharacterSequence const): * platform/graphics/cg/ImageDecoderCG.cpp: (WebCore::ImageDecoderCG::createFrameImageAtIndex): * platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::GraphicsContext::drawLineForDocumentMarker): * platform/graphics/cocoa/WebGLLayer.h: (IGNORE_CLANG_WARNING): * platform/graphics/mac/ComplexTextControllerCoreText.mm: (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): * platform/graphics/mac/IconMac.mm: (WebCore::Icon::Icon): * platform/graphics/mac/PDFDocumentImageMac.mm: (WebCore::PDFDocumentImage::drawPDFPage): * platform/graphics/mac/WebKitNSImageExtras.mm: (-[NSImage _web_lockFocusWithDeviceScaleFactor:]): * platform/ios/DragImageIOS.mm: * platform/mac/DragImageMac.mm: (WebCore::scaleDragImage): (WebCore::createDragImageForLink): * platform/mac/LegacyNSPasteboardTypes.h: * platform/mac/LocalCurrentGraphicsContext.mm: (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): * platform/mac/PasteboardMac.mm: (WebCore::Pasteboard::createForCopyAndPaste): (WebCore::Pasteboard::createForDragAndDrop): (WebCore::setDragImageImpl): * platform/mac/PlatformEventFactoryMac.mm: (WebCore::globalPoint): * platform/mac/SSLKeyGeneratorMac.mm: * platform/mac/ScrollViewMac.mm: (WebCore::ScrollView::platformContentsToScreen const): (WebCore::ScrollView::platformScreenToContents const): * platform/mac/ThemeMac.mm: (WebCore::drawCellFocusRingWithFrameAtTime): * platform/mac/WebPlaybackControlsManager.mm: * platform/mac/WidgetMac.mm: (WebCore::Widget::paint): * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeOutgoingAudioSource.h: * platform/mediastream/RealtimeOutgoingVideoSource.h: * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: * platform/network/cf/NetworkStorageSessionCFNet.cpp: * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::createCFURLConnection): * platform/network/cf/SocketStreamHandleImplCFNet.cpp: (WebCore::SocketStreamHandleImpl::reportErrorToClient): * platform/network/create-http-header-name-table: * platform/text/TextEncoding.cpp: * testing/MockLibWebRTCPeerConnection.h: * xml/XPathGrammar.cpp: Source/WebCore/PAL: * pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp: (PAL::CryptoDigest::create): (PAL::CryptoDigest::addBytes): (PAL::CryptoDigest::computeHash): * pal/spi/cocoa/AVKitSPI.h: * pal/spi/cocoa/NSKeyedArchiverSPI.h: (insecurelyUnarchiveObjectFromData): * pal/spi/ios/MediaPlayerSPI.h: * pal/system/mac/PopupMenu.mm: (PAL::popUpMenu): * pal/system/mac/WebPanel.mm: (-[WebPanel init]): Source/WebKit: * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformSyncAllCookies): * PluginProcess/mac/PluginProcessMac.mm: (WebKit::beginModal): * PluginProcess/mac/PluginProcessShim.mm: * Shared/Plugins/Netscape/NetscapePluginModule.cpp: (WebKit::NetscapePluginModule::tryLoad): * Shared/ios/ChildProcessIOS.mm: (WebKit::ChildProcess::initializeSandbox): * Shared/mac/ChildProcessMac.mm: (WebKit::compileAndApplySandboxSlowCase): * Shared/mac/ColorSpaceData.mm: (WebKit::ColorSpaceData::decode): * Shared/mac/SandboxExtensionMac.mm: (WebKit::SandboxExtensionImpl::sandboxExtensionForType): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _web_superAccessibilityAttributeValue:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: * UIProcess/API/glib/WebKitWebView.cpp: (webkitWebViewRunAsModal): * UIProcess/API/mac/WKView.mm: (-[WKView _web_superAccessibilityAttributeValue:]): * UIProcess/Cocoa/DownloadClient.mm: (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): * UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm: (-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]): * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): * UIProcess/Cocoa/WebViewImpl.mm: (-[WKTextListTouchBarViewController initWithWebViewImpl:]): (WebKit::WebViewImpl::updateWindowAndViewFrames): (WebKit::WebViewImpl::sendDragEndToPage): (WebKit::WebViewImpl::startDrag): (WebKit::WebViewImpl::characterIndexForPoint): * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::getPluginProcessSerialNumber): (WebKit::PluginProcessProxy::makePluginProcessTheFrontProcess): (WebKit::PluginProcessProxy::makeUIProcessTheFrontProcess): (WebKit::PluginProcessProxy::exitFullscreen): * UIProcess/ios/SmartMagnificationController.mm: * UIProcess/ios/WKGeolocationProviderIOS.mm: * UIProcess/ios/WKLegacyPDFView.mm: * UIProcess/ios/WKPDFPageNumberIndicator.mm: (-[WKPDFPageNumberIndicator _makeRoundedCorners]): * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]): * UIProcess/ios/forms/WKFormColorControl.mm: (-[WKColorPopover initWithView:]): * UIProcess/ios/forms/WKFormInputControl.mm: (-[WKDateTimePopover initWithView:datePickerMode:]): * UIProcess/ios/forms/WKFormPopover.h: * UIProcess/ios/forms/WKFormPopover.mm: * UIProcess/ios/forms/WKFormSelectPopover.mm: (-[WKSelectPopover initWithView:hasGroups:]): * UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::screenToRootView): (WebKit::PageClientImpl::rootViewToScreen): * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController enterFullScreen:]): (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): (-[WKFullScreenWindowController exitFullScreen]): (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): * UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _setAutodisplay:]): (-[WKPrintingView _drawPDFDocument:page:atPoint:]): (-[WKPrintingView _drawPreview:]): (-[WKPrintingView drawRect:]): * UIProcess/mac/WKTextInputWindowController.mm: (-[WKTextInputPanel _interpretKeyEvent:usingLegacyCocoaTextInput:string:]): (-[WKTextInputPanel _hasMarkedText]): * UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::showPopupMenu): * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: (WebKit::initializeEventRecord): (WebKit::NetscapePlugin::sendComplexTextInput): (WebKit::makeCGLPresentLayerOpaque): (WebKit::NetscapePlugin::nullEventTimerFired): * WebProcess/Plugins/PDF/PDFPlugin.mm: (-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]): (-[WKPDFLayerControllerDelegate writeItemsToPasteboard:withTypes:]): (WebKit::PDFPlugin::handleEditingCommand): (WebKit::PDFPlugin::setActiveAnnotation): (WebKit:: const): * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h: * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h: * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm: (WebKit::PDFPluginTextAnnotation::createAnnotationElement): * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::convertImageToBitmap): (WebKit::WebDragClient::declareAndWriteDragImage): * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::drawPDFPage): Source/WebKitLegacy/mac: * Carbon/CarbonUtils.m: (PoolCleaner): * Carbon/CarbonWindowAdapter.mm: (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]): (-[CarbonWindowAdapter setViewsNeedDisplay:]): (-[CarbonWindowAdapter reconcileToCarbonWindowBounds]): (-[CarbonWindowAdapter _termWindowIfOwner]): (-[CarbonWindowAdapter _windowMovedToRect:]): (-[CarbonWindowAdapter setContentView:]): (-[CarbonWindowAdapter _handleRootBoundsChanged]): (-[CarbonWindowAdapter _handleContentBoundsChanged]): * Carbon/CarbonWindowFrame.m: (-[CarbonWindowFrame title]): * Carbon/HIViewAdapter.m: (+[HIViewAdapter getHIViewForNSView:]): * Carbon/HIWebView.mm: (overrideCGContext): (restoreCGContext): (Draw): * DOM/DOM.mm: * History/WebHistory.mm: (-[WebHistoryPrivate loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]): * History/WebHistoryItem.mm: (-[WebHistoryItem icon]): * Misc/WebKitNSStringExtras.mm: (-[NSString _web_drawAtPoint:font:textColor:]): * Misc/WebNSImageExtras.m: (-[NSImage _web_scaleToMaxSize:]): (-[NSImage _web_dissolveToFraction:]): * Misc/WebNSPasteboardExtras.mm: (+[NSPasteboard _web_setFindPasteboardString:withOwner:]): (-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]): * Panels/WebAuthenticationPanel.m: (-[WebAuthenticationPanel loadNib]): * Plugins/Hosted/NetscapePluginHostManager.mm: (WebKit::NetscapePluginHostManager::spawnPluginHost): (WebKit::NetscapePluginHostManager::didCreateWindow): * Plugins/Hosted/NetscapePluginHostProxy.mm: (WebKit::NetscapePluginHostProxy::makeCurrentProcessFrontProcess): (WebKit::NetscapePluginHostProxy::makePluginHostProcessFrontProcess const): (WebKit::NetscapePluginHostProxy::isPluginHostProcessFrontProcess const): * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::mouseEvent): * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView drawRect:]): * Plugins/Hosted/WebTextInputWindowController.m: (-[WebTextInputPanel _interpretKeyEvent:string:]): * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView convertFromX:andY:space:toX:andY:space:]): * Plugins/WebNetscapePluginPackage.mm: (-[WebNetscapePluginPackage _tryLoad]): * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]): (-[WebNetscapePluginView sendDrawRectEvent:]): (-[WebNetscapePluginView drawRect:]): * Plugins/WebPluginController.mm: (WebKit_TSUpdateCheck_alertDidEnd_returnCode_contextInfo_): (WebKit_NSAlert_beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo_): * WebCoreSupport/PopupMenuMac.mm: (PopupMenuMac::populate): * WebCoreSupport/WebAlternativeTextClient.h: * WebCoreSupport/WebDragClient.mm: (WebDragClient::startDrag): * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::convertMainResourceLoadToDownload): (webGetNSImage): * WebInspector/WebNodeHighlight.mm: * WebInspector/WebNodeHighlightView.mm: (-[WebNodeHighlightView drawRect:]): * WebView/WebClipView.mm: (-[WebClipView initWithFrame:]): * WebView/WebFrame.mm: (-[WebFrame _updateBackgroundAndUpdatesWhileOffscreen]): (-[WebFrame _drawRect:contentsOnly:]): (-[WebFrame accessibilityRoot]): * WebView/WebFullScreenController.mm: (-[WebFullScreenController enterFullScreen:]): (-[WebFullScreenController finishedEnterFullScreenAnimation:]): (-[WebFullScreenController exitFullScreen]): (-[WebFullScreenController finishedExitFullScreenAnimation:]): (-[WebFullScreenController _startEnterFullScreenAnimationWithDuration:]): (-[WebFullScreenController _startExitFullScreenAnimationWithDuration:]): * WebView/WebHTMLView.mm: (-[NSWindow _web_borderView]): (-[WebHTMLView _updateMouseoverWithFakeEvent]): (-[WebHTMLView _setAsideSubviews]): (-[WebHTMLView _autoscroll]): (-[WebHTMLView drawRect:]): (-[WebHTMLView mouseDown:]): (-[WebHTMLView mouseDragged:]): (-[WebHTMLView mouseUp:]): (-[WebHTMLView _endPrintModeAndRestoreWindowAutodisplay]): (-[WebHTMLView knowsPageRange:]): (-[WebHTMLView accessibilityHitTest:]): (-[WebHTMLView _fontAttributesFromFontPasteboard]): (-[WebHTMLView _colorAsString:]): (-[WebHTMLView copyFont:]): (-[WebHTMLView _executeSavedKeypressCommands]): (-[WebHTMLView attachRootLayer:]): (-[WebHTMLView textStorage]): (-[WebHTMLView _updateSelectionForInputManager]): * WebView/WebPDFView.mm: (_applicationInfoForMIMEType): (-[WebPDFView centerSelectionInVisibleArea:]): (-[WebPDFView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]): (-[WebPDFView _recursiveDisplayAllDirtyWithLockFocus:visRect:]): (-[WebPDFView _recursive:displayRectIgnoringOpacity:inContext:topView:]): (-[WebPDFView searchFor:direction:caseSensitive:wrap:startInSelection:]): * WebView/WebTextCompletionController.mm: (-[WebTextCompletionController _buildUI]): (-[WebTextCompletionController _placePopupWindow:]): * WebView/WebVideoFullscreenController.mm: * WebView/WebVideoFullscreenHUDWindowController.mm: (createMediaUIBackgroundView): * WebView/WebView.mm: (-[WebTextListTouchBarViewController initWithWebView:]): (-[WebView _dispatchTileDidDraw:]): (-[WebView encodeWithCoder:]): (-[WebView mainFrameIcon]): (LayerFlushController::flushLayers): * WebView/WebWindowAnimation.mm: (setScaledFrameForWindow): Source/WTF: * wtf/Assertions.cpp: * wtf/Assertions.h: * wtf/Compiler.h: * wtf/MD5.cpp: (WTF::MD5::MD5): (WTF::MD5::addBytes): (WTF::MD5::checksum): * wtf/PrintStream.cpp: (WTF::PrintStream::printfVariableFormat): * wtf/SHA1.cpp: (WTF::SHA1::SHA1): (WTF::SHA1::addBytes): (WTF::SHA1::computeHash): * wtf/ThreadingPthreads.cpp: * wtf/Vector.h: (WTF::VectorBuffer::endOfBuffer): * wtf/text/WTFString.cpp: (WTF::createWithFormatAndArguments): Canonical link: https://commits.webkit.org/204515@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235935 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-12 15:09:16 +00:00
ALLOW_UNUSED_PARAMETERS_BEGIN
2018-08-23 Youenn Fablet <youenn@apple.com> Update libwebrtc up to 984f1a80c0 https://bugs.webkit.org/show_bug.cgi?id=188745 <rdar://problem/43539177> Reviewed by Eric Carlson. Source/ThirdParty/libwebrtc: Update libwebrtc main code. Update exported symbols and related applied modifications. * CMakeLists.txt: * Configurations/libwebrtc.iOS.exp: * Configurations/libwebrtc.iOSsim.exp: * Configurations/libwebrtc.mac.exp: * Configurations/libwebrtc.xcconfig: * Source/webrtc: refreshed * WebKit/0001-Updating-webrtc.patch: Added. * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Removed. * WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Removed. * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Removed. * WebKit/0001-Using-VCP.patch: Removed. * WebKit/0003-Fixing-VP8-files.patch: Removed. * WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Removed. * WebKit/0005-Fix-RTC_FATAL.patch: Removed. * WebKit/0006-Disabling-VP8.patch: Removed. * WebKit/0007-Fix-RTC_STRINGIZE.patch: Removed. * WebKit/0008-Fix-sanitizer.patch: Removed. * WebKit/0009-Remove-dispatch_set_target_queue.patch: Removed. * WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Removed. * WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Removed. * WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Removed. * WebKit/0013-Fix-SafeSetError-use-after-move.patch: Removed. * libwebrtc.xcodeproj/project.pbxproj: Source/WebCore: Updated implementation according new webrtc backend. Instead of modifying libwebrtc header files, we disable unused parameter warning for such headers included in WebCore. WebCore implementation is updated according new webrtc API, mostly AddRef/Release. RealtimeOutgoingVideoSource now uses a pixel convolver to convert RGB pixel buffers as I420. Covered by existing tests. * CMakeLists.txt: * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream): (WebCore::fillEncodingParameters): (WebCore::fillRtpParameters): * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: (WebCore::LibWebRTCMediaEndpoint::Release const): * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): (WebCore::RealtimeMediaSource::supportsConstraint const): (WebCore::RealtimeMediaSource::supportsConstraints): * platform/mediastream/RealtimeOutgoingAudioSource.h: * platform/mediastream/RealtimeOutgoingVideoSource.h: * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: (WebCore::GStreamerVideoDecoder::newSampleCallback): * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: (WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder): (WebCore::GStreamerVideoEncoder::newSampleCallback): * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::ConvertToI420): (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: Added. (WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV): * testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::AddTrack): * testing/MockLibWebRTCPeerConnection.h: (WebCore::MockRtpSender::GetParameters): (WebCore::MockRtpSender::SetParameters): LayoutTests: Updated tests according new webrtc backend. * webrtc/libwebrtc/setLocalDescriptionCrash.html: * webrtc/video-getParameters.html: LayoutTests/imported/w3c: * web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt: * web-platform-tests/webrtc/no-media-call-expected.txt: Canonical link: https://commits.webkit.org/203936@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-08-23 17:32:20 +00:00
Update libwebrtc to M78 https://bugs.webkit.org/show_bug.cgi?id=203897 Patch by Youenn Fablet <youenn@apple.com> on 2019-11-07 LayoutTest/ChangeLog * webrtc/simulcast-h264.html: Update test to remove rid information from answer. LayoutTests/imported/w3c/ChangeLog * web-platform-tests/webrtc/RTCPeerConnection-createDataChannel-expected.txt: * web-platform-tests/webrtc/RTCRtpSender-getStats.https-expected.txt: Source/ThirdParty/libwebrtc/ChangeLog * webrtc: Updated Source/WebCore/ChangeLog Update include paths and binding code. Covered by existing tests. * Modules/mediastream/RTCStatsReport.idl: Removed no longer standard codec stat. * Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp: * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::setConfiguration): * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: * Modules/mediastream/libwebrtc/LibWebRTCObservers.h: * Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h: * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h: * Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.h: * Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: (WebCore::fillInboundRTPStreamStats): (WebCore::fillOutboundRTPStreamStats): (WebCore::fillRTCCodecStats): * Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h: * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp: * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeOutgoingAudioSource.h: * platform/mediastream/RealtimeOutgoingVideoSource.h: * platform/mediastream/gstreamer/GStreamerCapturer.cpp: * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: * platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h: * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: * platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: (WebCore::BasicPacketSocketFactory::CreateClientTcpSocket): * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: * testing/MockLibWebRTCPeerConnection.cpp: * testing/MockLibWebRTCPeerConnection.h: Source/WebKit/ChangeLog * NetworkProcess/webrtc/LibWebRTCSocketClient.h: * NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::createClientTCPSocket): * NetworkProcess/webrtc/NetworkRTCProvider.h: * NetworkProcess/webrtc/NetworkRTCProvider.mm: * NetworkProcess/webrtc/NetworkRTCSocket.h: * Shared/RTCPacketOptions.h: * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: (WebKit::RTCSocketFactory::CreateClientTcpSocket): * WebProcess/Network/webrtc/LibWebRTCResolver.h: * WebProcess/Network/webrtc/LibWebRTCSocket.h: * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: (WebKit::LibWebRTCSocketFactory::createClientTcpSocket): * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: * WebProcess/Network/webrtc/WebRTCMonitor.cpp: * WebProcess/Network/webrtc/WebRTCMonitor.h: Canonical link: https://commits.webkit.org/217512@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252472 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-15 01:03:08 +00:00
#include <webrtc/api/media_stream_interface.h>
2018-08-23 Youenn Fablet <youenn@apple.com> Update libwebrtc up to 984f1a80c0 https://bugs.webkit.org/show_bug.cgi?id=188745 <rdar://problem/43539177> Reviewed by Eric Carlson. Source/ThirdParty/libwebrtc: Update libwebrtc main code. Update exported symbols and related applied modifications. * CMakeLists.txt: * Configurations/libwebrtc.iOS.exp: * Configurations/libwebrtc.iOSsim.exp: * Configurations/libwebrtc.mac.exp: * Configurations/libwebrtc.xcconfig: * Source/webrtc: refreshed * WebKit/0001-Updating-webrtc.patch: Added. * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Removed. * WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Removed. * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Removed. * WebKit/0001-Using-VCP.patch: Removed. * WebKit/0003-Fixing-VP8-files.patch: Removed. * WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Removed. * WebKit/0005-Fix-RTC_FATAL.patch: Removed. * WebKit/0006-Disabling-VP8.patch: Removed. * WebKit/0007-Fix-RTC_STRINGIZE.patch: Removed. * WebKit/0008-Fix-sanitizer.patch: Removed. * WebKit/0009-Remove-dispatch_set_target_queue.patch: Removed. * WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Removed. * WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Removed. * WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Removed. * WebKit/0013-Fix-SafeSetError-use-after-move.patch: Removed. * libwebrtc.xcodeproj/project.pbxproj: Source/WebCore: Updated implementation according new webrtc backend. Instead of modifying libwebrtc header files, we disable unused parameter warning for such headers included in WebCore. WebCore implementation is updated according new webrtc API, mostly AddRef/Release. RealtimeOutgoingVideoSource now uses a pixel convolver to convert RGB pixel buffers as I420. Covered by existing tests. * CMakeLists.txt: * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream): (WebCore::fillEncodingParameters): (WebCore::fillRtpParameters): * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: (WebCore::LibWebRTCMediaEndpoint::Release const): * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): (WebCore::RealtimeMediaSource::supportsConstraint const): (WebCore::RealtimeMediaSource::supportsConstraints): * platform/mediastream/RealtimeOutgoingAudioSource.h: * platform/mediastream/RealtimeOutgoingVideoSource.h: * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: (WebCore::GStreamerVideoDecoder::newSampleCallback): * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: (WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder): (WebCore::GStreamerVideoEncoder::newSampleCallback): * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::ConvertToI420): (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: Added. (WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV): * testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::AddTrack): * testing/MockLibWebRTCPeerConnection.h: (WebCore::MockRtpSender::GetParameters): (WebCore::MockRtpSender::SetParameters): LayoutTests: Updated tests according new webrtc backend. * webrtc/libwebrtc/setLocalDescriptionCrash.html: * webrtc/video-getParameters.html: LayoutTests/imported/w3c: * web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt: * web-platform-tests/webrtc/no-media-call-expected.txt: Canonical link: https://commits.webkit.org/203936@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-08-23 17:32:20 +00:00
Add IGNORE_WARNING_.* macros https://bugs.webkit.org/show_bug.cgi?id=188996 Reviewed by Michael Catanzaro. Source/JavaScriptCore: * API/JSCallbackObject.h: * API/tests/testapi.c: * assembler/LinkBuffer.h: (JSC::LinkBuffer::finalizeCodeWithDisassembly): * b3/B3LowerToAir.cpp: * b3/B3Opcode.cpp: * b3/B3Type.h: * b3/B3TypeMap.h: * b3/B3Width.h: * b3/air/AirArg.cpp: * b3/air/AirArg.h: * b3/air/AirCode.h: * bytecode/Opcode.h: (JSC::padOpcodeName): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::speculateNumber): (JSC::DFG::SpeculativeJIT::speculateMisc): * dfg/DFGSpeculativeJIT64.cpp: * ftl/FTLOutput.h: * jit/CCallHelpers.h: (JSC::CCallHelpers::calculatePokeOffset): * llint/LLIntData.cpp: * llint/LLIntSlowPaths.cpp: (JSC::LLInt::slowPathLogF): * runtime/ConfigFile.cpp: (JSC::ConfigFile::canonicalizePaths): * runtime/JSDataViewPrototype.cpp: * runtime/JSGenericTypedArrayViewConstructor.h: * runtime/JSGenericTypedArrayViewPrototype.h: * runtime/Options.cpp: (JSC::Options::setAliasedOption): * tools/CodeProfiling.cpp: * wasm/WasmSections.h: * wasm/generateWasmValidateInlinesHeader.py: Source/WebCore: * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification): * accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::overrideAttachmentParent): (WebCore::AccessibilityObject::accessibilityIgnoreAttachment const): * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper renderWidgetChildren]): (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): (-[WebAccessibilityObjectWrapper role]): (-[WebAccessibilityObjectWrapper roleDescription]): * bridge/objc/WebScriptObject.mm: * bridge/objc/objc_class.mm: (JSC::Bindings::ObjcClass::fieldNamed const): * crypto/CommonCryptoUtilities.cpp: (WebCore::getCommonCryptoDigestAlgorithm): * crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: (WebCore::encryptAES_GCM): (WebCore::decyptAES_GCM): * crypto/mac/SerializedCryptoKeyWrapMac.mm: (WebCore::wrapSerializedCryptoKey): (WebCore::unwrapSerializedCryptoKey): * css/makeSelectorPseudoClassAndCompatibilityElementMap.py: * css/makeSelectorPseudoElementsMap.py: * editing/TextIterator.cpp: * editing/mac/EditorMac.mm: (WebCore::Editor::pasteWithPasteboard): (WebCore::Editor::takeFindStringFromSelection): (WebCore::Editor::replaceNodeFromPasteboard): * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking): * page/mac/ServicesOverlayController.mm: (WebCore::ServicesOverlayController::Highlight::paintContents): * platform/LocalizedStrings.cpp: (WebCore::formatLocalizedString): * platform/ScreenProperties.h: (WebCore::ScreenData::decode): * platform/gamepad/mac/HIDGamepadProvider.cpp: (WebCore::HIDGamepadProvider::stopMonitoringInput): * platform/graphics/PlatformDisplay.cpp: (WebCore::PlatformDisplay::sharedDisplay): * platform/graphics/SurrogatePairAwareTextIterator.cpp: * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm: (WebCore::MediaSelectionGroupAVFObjC::updateOptions): * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: (WebCore::CDMSessionAVStreamSession::update): * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack const): (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep): * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::IGNORE_CLANG_WARNING_END): * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (-[WebAVSampleBufferErrorListener beginObservingRenderer:]): (-[WebAVSampleBufferErrorListener stopObservingRenderer:]): (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): (WebCore::IGNORE_CLANG_WARNING_END): * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (PlatformCALayer::drawLayerContents): * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp: (WebCore::FontCascade::fontForCombiningCharacterSequence const): * platform/graphics/cg/ImageDecoderCG.cpp: (WebCore::ImageDecoderCG::createFrameImageAtIndex): * platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::GraphicsContext::drawLineForDocumentMarker): * platform/graphics/cocoa/WebGLLayer.h: (IGNORE_CLANG_WARNING): * platform/graphics/mac/ComplexTextControllerCoreText.mm: (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): * platform/graphics/mac/IconMac.mm: (WebCore::Icon::Icon): * platform/graphics/mac/PDFDocumentImageMac.mm: (WebCore::PDFDocumentImage::drawPDFPage): * platform/graphics/mac/WebKitNSImageExtras.mm: (-[NSImage _web_lockFocusWithDeviceScaleFactor:]): * platform/ios/DragImageIOS.mm: * platform/mac/DragImageMac.mm: (WebCore::scaleDragImage): (WebCore::createDragImageForLink): * platform/mac/LegacyNSPasteboardTypes.h: * platform/mac/LocalCurrentGraphicsContext.mm: (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): * platform/mac/PasteboardMac.mm: (WebCore::Pasteboard::createForCopyAndPaste): (WebCore::Pasteboard::createForDragAndDrop): (WebCore::setDragImageImpl): * platform/mac/PlatformEventFactoryMac.mm: (WebCore::globalPoint): * platform/mac/SSLKeyGeneratorMac.mm: * platform/mac/ScrollViewMac.mm: (WebCore::ScrollView::platformContentsToScreen const): (WebCore::ScrollView::platformScreenToContents const): * platform/mac/ThemeMac.mm: (WebCore::drawCellFocusRingWithFrameAtTime): * platform/mac/WebPlaybackControlsManager.mm: * platform/mac/WidgetMac.mm: (WebCore::Widget::paint): * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeOutgoingAudioSource.h: * platform/mediastream/RealtimeOutgoingVideoSource.h: * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: * platform/network/cf/NetworkStorageSessionCFNet.cpp: * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::createCFURLConnection): * platform/network/cf/SocketStreamHandleImplCFNet.cpp: (WebCore::SocketStreamHandleImpl::reportErrorToClient): * platform/network/create-http-header-name-table: * platform/text/TextEncoding.cpp: * testing/MockLibWebRTCPeerConnection.h: * xml/XPathGrammar.cpp: Source/WebCore/PAL: * pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp: (PAL::CryptoDigest::create): (PAL::CryptoDigest::addBytes): (PAL::CryptoDigest::computeHash): * pal/spi/cocoa/AVKitSPI.h: * pal/spi/cocoa/NSKeyedArchiverSPI.h: (insecurelyUnarchiveObjectFromData): * pal/spi/ios/MediaPlayerSPI.h: * pal/system/mac/PopupMenu.mm: (PAL::popUpMenu): * pal/system/mac/WebPanel.mm: (-[WebPanel init]): Source/WebKit: * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformSyncAllCookies): * PluginProcess/mac/PluginProcessMac.mm: (WebKit::beginModal): * PluginProcess/mac/PluginProcessShim.mm: * Shared/Plugins/Netscape/NetscapePluginModule.cpp: (WebKit::NetscapePluginModule::tryLoad): * Shared/ios/ChildProcessIOS.mm: (WebKit::ChildProcess::initializeSandbox): * Shared/mac/ChildProcessMac.mm: (WebKit::compileAndApplySandboxSlowCase): * Shared/mac/ColorSpaceData.mm: (WebKit::ColorSpaceData::decode): * Shared/mac/SandboxExtensionMac.mm: (WebKit::SandboxExtensionImpl::sandboxExtensionForType): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _web_superAccessibilityAttributeValue:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: * UIProcess/API/glib/WebKitWebView.cpp: (webkitWebViewRunAsModal): * UIProcess/API/mac/WKView.mm: (-[WKView _web_superAccessibilityAttributeValue:]): * UIProcess/Cocoa/DownloadClient.mm: (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): * UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm: (-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]): * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): * UIProcess/Cocoa/WebViewImpl.mm: (-[WKTextListTouchBarViewController initWithWebViewImpl:]): (WebKit::WebViewImpl::updateWindowAndViewFrames): (WebKit::WebViewImpl::sendDragEndToPage): (WebKit::WebViewImpl::startDrag): (WebKit::WebViewImpl::characterIndexForPoint): * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::getPluginProcessSerialNumber): (WebKit::PluginProcessProxy::makePluginProcessTheFrontProcess): (WebKit::PluginProcessProxy::makeUIProcessTheFrontProcess): (WebKit::PluginProcessProxy::exitFullscreen): * UIProcess/ios/SmartMagnificationController.mm: * UIProcess/ios/WKGeolocationProviderIOS.mm: * UIProcess/ios/WKLegacyPDFView.mm: * UIProcess/ios/WKPDFPageNumberIndicator.mm: (-[WKPDFPageNumberIndicator _makeRoundedCorners]): * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]): * UIProcess/ios/forms/WKFormColorControl.mm: (-[WKColorPopover initWithView:]): * UIProcess/ios/forms/WKFormInputControl.mm: (-[WKDateTimePopover initWithView:datePickerMode:]): * UIProcess/ios/forms/WKFormPopover.h: * UIProcess/ios/forms/WKFormPopover.mm: * UIProcess/ios/forms/WKFormSelectPopover.mm: (-[WKSelectPopover initWithView:hasGroups:]): * UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::screenToRootView): (WebKit::PageClientImpl::rootViewToScreen): * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController enterFullScreen:]): (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): (-[WKFullScreenWindowController exitFullScreen]): (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): * UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _setAutodisplay:]): (-[WKPrintingView _drawPDFDocument:page:atPoint:]): (-[WKPrintingView _drawPreview:]): (-[WKPrintingView drawRect:]): * UIProcess/mac/WKTextInputWindowController.mm: (-[WKTextInputPanel _interpretKeyEvent:usingLegacyCocoaTextInput:string:]): (-[WKTextInputPanel _hasMarkedText]): * UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::showPopupMenu): * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: (WebKit::initializeEventRecord): (WebKit::NetscapePlugin::sendComplexTextInput): (WebKit::makeCGLPresentLayerOpaque): (WebKit::NetscapePlugin::nullEventTimerFired): * WebProcess/Plugins/PDF/PDFPlugin.mm: (-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]): (-[WKPDFLayerControllerDelegate writeItemsToPasteboard:withTypes:]): (WebKit::PDFPlugin::handleEditingCommand): (WebKit::PDFPlugin::setActiveAnnotation): (WebKit:: const): * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h: * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h: * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm: (WebKit::PDFPluginTextAnnotation::createAnnotationElement): * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::convertImageToBitmap): (WebKit::WebDragClient::declareAndWriteDragImage): * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::drawPDFPage): Source/WebKitLegacy/mac: * Carbon/CarbonUtils.m: (PoolCleaner): * Carbon/CarbonWindowAdapter.mm: (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]): (-[CarbonWindowAdapter setViewsNeedDisplay:]): (-[CarbonWindowAdapter reconcileToCarbonWindowBounds]): (-[CarbonWindowAdapter _termWindowIfOwner]): (-[CarbonWindowAdapter _windowMovedToRect:]): (-[CarbonWindowAdapter setContentView:]): (-[CarbonWindowAdapter _handleRootBoundsChanged]): (-[CarbonWindowAdapter _handleContentBoundsChanged]): * Carbon/CarbonWindowFrame.m: (-[CarbonWindowFrame title]): * Carbon/HIViewAdapter.m: (+[HIViewAdapter getHIViewForNSView:]): * Carbon/HIWebView.mm: (overrideCGContext): (restoreCGContext): (Draw): * DOM/DOM.mm: * History/WebHistory.mm: (-[WebHistoryPrivate loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]): * History/WebHistoryItem.mm: (-[WebHistoryItem icon]): * Misc/WebKitNSStringExtras.mm: (-[NSString _web_drawAtPoint:font:textColor:]): * Misc/WebNSImageExtras.m: (-[NSImage _web_scaleToMaxSize:]): (-[NSImage _web_dissolveToFraction:]): * Misc/WebNSPasteboardExtras.mm: (+[NSPasteboard _web_setFindPasteboardString:withOwner:]): (-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]): * Panels/WebAuthenticationPanel.m: (-[WebAuthenticationPanel loadNib]): * Plugins/Hosted/NetscapePluginHostManager.mm: (WebKit::NetscapePluginHostManager::spawnPluginHost): (WebKit::NetscapePluginHostManager::didCreateWindow): * Plugins/Hosted/NetscapePluginHostProxy.mm: (WebKit::NetscapePluginHostProxy::makeCurrentProcessFrontProcess): (WebKit::NetscapePluginHostProxy::makePluginHostProcessFrontProcess const): (WebKit::NetscapePluginHostProxy::isPluginHostProcessFrontProcess const): * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::mouseEvent): * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView drawRect:]): * Plugins/Hosted/WebTextInputWindowController.m: (-[WebTextInputPanel _interpretKeyEvent:string:]): * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView convertFromX:andY:space:toX:andY:space:]): * Plugins/WebNetscapePluginPackage.mm: (-[WebNetscapePluginPackage _tryLoad]): * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]): (-[WebNetscapePluginView sendDrawRectEvent:]): (-[WebNetscapePluginView drawRect:]): * Plugins/WebPluginController.mm: (WebKit_TSUpdateCheck_alertDidEnd_returnCode_contextInfo_): (WebKit_NSAlert_beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo_): * WebCoreSupport/PopupMenuMac.mm: (PopupMenuMac::populate): * WebCoreSupport/WebAlternativeTextClient.h: * WebCoreSupport/WebDragClient.mm: (WebDragClient::startDrag): * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::convertMainResourceLoadToDownload): (webGetNSImage): * WebInspector/WebNodeHighlight.mm: * WebInspector/WebNodeHighlightView.mm: (-[WebNodeHighlightView drawRect:]): * WebView/WebClipView.mm: (-[WebClipView initWithFrame:]): * WebView/WebFrame.mm: (-[WebFrame _updateBackgroundAndUpdatesWhileOffscreen]): (-[WebFrame _drawRect:contentsOnly:]): (-[WebFrame accessibilityRoot]): * WebView/WebFullScreenController.mm: (-[WebFullScreenController enterFullScreen:]): (-[WebFullScreenController finishedEnterFullScreenAnimation:]): (-[WebFullScreenController exitFullScreen]): (-[WebFullScreenController finishedExitFullScreenAnimation:]): (-[WebFullScreenController _startEnterFullScreenAnimationWithDuration:]): (-[WebFullScreenController _startExitFullScreenAnimationWithDuration:]): * WebView/WebHTMLView.mm: (-[NSWindow _web_borderView]): (-[WebHTMLView _updateMouseoverWithFakeEvent]): (-[WebHTMLView _setAsideSubviews]): (-[WebHTMLView _autoscroll]): (-[WebHTMLView drawRect:]): (-[WebHTMLView mouseDown:]): (-[WebHTMLView mouseDragged:]): (-[WebHTMLView mouseUp:]): (-[WebHTMLView _endPrintModeAndRestoreWindowAutodisplay]): (-[WebHTMLView knowsPageRange:]): (-[WebHTMLView accessibilityHitTest:]): (-[WebHTMLView _fontAttributesFromFontPasteboard]): (-[WebHTMLView _colorAsString:]): (-[WebHTMLView copyFont:]): (-[WebHTMLView _executeSavedKeypressCommands]): (-[WebHTMLView attachRootLayer:]): (-[WebHTMLView textStorage]): (-[WebHTMLView _updateSelectionForInputManager]): * WebView/WebPDFView.mm: (_applicationInfoForMIMEType): (-[WebPDFView centerSelectionInVisibleArea:]): (-[WebPDFView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]): (-[WebPDFView _recursiveDisplayAllDirtyWithLockFocus:visRect:]): (-[WebPDFView _recursive:displayRectIgnoringOpacity:inContext:topView:]): (-[WebPDFView searchFor:direction:caseSensitive:wrap:startInSelection:]): * WebView/WebTextCompletionController.mm: (-[WebTextCompletionController _buildUI]): (-[WebTextCompletionController _placePopupWindow:]): * WebView/WebVideoFullscreenController.mm: * WebView/WebVideoFullscreenHUDWindowController.mm: (createMediaUIBackgroundView): * WebView/WebView.mm: (-[WebTextListTouchBarViewController initWithWebView:]): (-[WebView _dispatchTileDidDraw:]): (-[WebView encodeWithCoder:]): (-[WebView mainFrameIcon]): (LayerFlushController::flushLayers): * WebView/WebWindowAnimation.mm: (setScaledFrameForWindow): Source/WTF: * wtf/Assertions.cpp: * wtf/Assertions.h: * wtf/Compiler.h: * wtf/MD5.cpp: (WTF::MD5::MD5): (WTF::MD5::addBytes): (WTF::MD5::checksum): * wtf/PrintStream.cpp: (WTF::PrintStream::printfVariableFormat): * wtf/SHA1.cpp: (WTF::SHA1::SHA1): (WTF::SHA1::addBytes): (WTF::SHA1::computeHash): * wtf/ThreadingPthreads.cpp: * wtf/Vector.h: (WTF::VectorBuffer::endOfBuffer): * wtf/text/WTFString.cpp: (WTF::createWithFormatAndArguments): Canonical link: https://commits.webkit.org/204515@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235935 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-12 15:09:16 +00:00
ALLOW_UNUSED_PARAMETERS_END
2018-08-23 Youenn Fablet <youenn@apple.com> Update libwebrtc up to 984f1a80c0 https://bugs.webkit.org/show_bug.cgi?id=188745 <rdar://problem/43539177> Reviewed by Eric Carlson. Source/ThirdParty/libwebrtc: Update libwebrtc main code. Update exported symbols and related applied modifications. * CMakeLists.txt: * Configurations/libwebrtc.iOS.exp: * Configurations/libwebrtc.iOSsim.exp: * Configurations/libwebrtc.mac.exp: * Configurations/libwebrtc.xcconfig: * Source/webrtc: refreshed * WebKit/0001-Updating-webrtc.patch: Added. * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Removed. * WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Removed. * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Removed. * WebKit/0001-Using-VCP.patch: Removed. * WebKit/0003-Fixing-VP8-files.patch: Removed. * WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Removed. * WebKit/0005-Fix-RTC_FATAL.patch: Removed. * WebKit/0006-Disabling-VP8.patch: Removed. * WebKit/0007-Fix-RTC_STRINGIZE.patch: Removed. * WebKit/0008-Fix-sanitizer.patch: Removed. * WebKit/0009-Remove-dispatch_set_target_queue.patch: Removed. * WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Removed. * WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Removed. * WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Removed. * WebKit/0013-Fix-SafeSetError-use-after-move.patch: Removed. * libwebrtc.xcodeproj/project.pbxproj: Source/WebCore: Updated implementation according new webrtc backend. Instead of modifying libwebrtc header files, we disable unused parameter warning for such headers included in WebCore. WebCore implementation is updated according new webrtc API, mostly AddRef/Release. RealtimeOutgoingVideoSource now uses a pixel convolver to convert RGB pixel buffers as I420. Covered by existing tests. * CMakeLists.txt: * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream): (WebCore::fillEncodingParameters): (WebCore::fillRtpParameters): * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: (WebCore::LibWebRTCMediaEndpoint::Release const): * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): (WebCore::RealtimeMediaSource::supportsConstraint const): (WebCore::RealtimeMediaSource::supportsConstraints): * platform/mediastream/RealtimeOutgoingAudioSource.h: * platform/mediastream/RealtimeOutgoingVideoSource.h: * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: (WebCore::GStreamerVideoDecoder::newSampleCallback): * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: (WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder): (WebCore::GStreamerVideoEncoder::newSampleCallback): * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: * platform/mediastream/libwebrtc/LibWebRTCProvider.h: * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::ConvertToI420): (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: Added. (WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV): * testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::AddTrack): * testing/MockLibWebRTCPeerConnection.h: (WebCore::MockRtpSender::GetParameters): (WebCore::MockRtpSender::SetParameters): LayoutTests: Updated tests according new webrtc backend. * webrtc/libwebrtc/setLocalDescriptionCrash.html: * webrtc/video-getParameters.html: LayoutTests/imported/w3c: * web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt: * web-platform-tests/webrtc/no-media-call-expected.txt: Canonical link: https://commits.webkit.org/203936@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-08-23 17:32:20 +00:00
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
#include <wtf/RetainPtr.h>
namespace WebCore {
class CaptureDevice;
Add release logging for incoming and outgoing webrtc audio tracks https://bugs.webkit.org/show_bug.cgi?id=185545 Reviewed by Eric Carlson. Add logging of audio tracks. When doing a WebRTC call, one log line is added each second for each audio track. Validated that logging is done through manual testing. Refactored code to use LogHelper and apply it to video sources as well. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::sourceFromNewReceiver): (WebCore::sourceFromNewReceiver): Deleted. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::logChannel const): (WebCore::RealtimeIncomingAudioSource::logger const): * platform/mediastream/RealtimeIncomingAudioSource.h: (WebCore::RealtimeIncomingAudioSource::setLogger): * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::logChannel const): (WebCore::RealtimeIncomingVideoSource::logger const): * platform/mediastream/RealtimeIncomingVideoSource.h: (WebCore::RealtimeIncomingVideoSource::setLogger): * platform/mediastream/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): (WebCore::RealtimeOutgoingAudioSource::sendAudioFrames): (WebCore::RealtimeOutgoingAudioSource::logChannel const): (WebCore::RealtimeOutgoingAudioSource::logger const): * platform/mediastream/RealtimeOutgoingAudioSource.h: (WebCore::RealtimeOutgoingAudioSource::setLogger): * platform/mediastream/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded): (WebCore::RealtimeOutgoingVideoSource::sendOneBlackFrame): (WebCore::RealtimeOutgoingVideoSource::logChannel const): (WebCore::RealtimeOutgoingVideoSource::logger const): * platform/mediastream/RealtimeOutgoingVideoSource.h: (WebCore::RealtimeOutgoingVideoSource::setLogger): * platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp: (WebCore::RealtimeIncomingAudioSourceCocoa::OnData): * platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h: * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool): (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame): (WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame): * platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: (WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer): Canonical link: https://commits.webkit.org/208048@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-17 19:23:45 +00:00
class RealtimeIncomingVideoSource
: public RealtimeMediaSource
, private rtc::VideoSinkInterface<webrtc::VideoFrame>
End a remote MediaStreamTrack if its source is ended https://bugs.webkit.org/show_bug.cgi?id=213074 Reviewed by Eric Carlson. Source/WebCore: Make remote audio/video source observers of their webrtc source. In case the webrtc source ends, end the source, thus its related tracks as well. This is covered by the above test. Test: webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::startProducingData): (WebCore::RealtimeIncomingAudioSource::stopProducingData): (WebCore::RealtimeIncomingAudioSource::OnChanged): * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::~RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnChanged): * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::requestToEnd): (WebCore::RealtimeMediaSource::end): * platform/mediastream/RealtimeMediaSource.h: LayoutTests: * webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive-expected.txt: Added. * webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html: Added. Canonical link: https://commits.webkit.org/225865@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262905 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-11 17:14:07 +00:00
, private webrtc::ObserverInterface
Add release logging for incoming and outgoing webrtc audio tracks https://bugs.webkit.org/show_bug.cgi?id=185545 Reviewed by Eric Carlson. Add logging of audio tracks. When doing a WebRTC call, one log line is added each second for each audio track. Validated that logging is done through manual testing. Refactored code to use LogHelper and apply it to video sources as well. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::sourceFromNewReceiver): (WebCore::sourceFromNewReceiver): Deleted. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::logChannel const): (WebCore::RealtimeIncomingAudioSource::logger const): * platform/mediastream/RealtimeIncomingAudioSource.h: (WebCore::RealtimeIncomingAudioSource::setLogger): * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::logChannel const): (WebCore::RealtimeIncomingVideoSource::logger const): * platform/mediastream/RealtimeIncomingVideoSource.h: (WebCore::RealtimeIncomingVideoSource::setLogger): * platform/mediastream/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): (WebCore::RealtimeOutgoingAudioSource::sendAudioFrames): (WebCore::RealtimeOutgoingAudioSource::logChannel const): (WebCore::RealtimeOutgoingAudioSource::logger const): * platform/mediastream/RealtimeOutgoingAudioSource.h: (WebCore::RealtimeOutgoingAudioSource::setLogger): * platform/mediastream/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded): (WebCore::RealtimeOutgoingVideoSource::sendOneBlackFrame): (WebCore::RealtimeOutgoingVideoSource::logChannel const): (WebCore::RealtimeOutgoingVideoSource::logger const): * platform/mediastream/RealtimeOutgoingVideoSource.h: (WebCore::RealtimeOutgoingVideoSource::setLogger): * platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp: (WebCore::RealtimeIncomingAudioSourceCocoa::OnData): * platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h: * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool): (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame): (WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame): * platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: (WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer): Canonical link: https://commits.webkit.org/208048@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-17 19:23:45 +00:00
{
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
public:
static Ref<RealtimeIncomingVideoSource> create(rtc::scoped_refptr<webrtc::VideoTrackInterface>&&, String&&);
End a remote MediaStreamTrack if its source is ended https://bugs.webkit.org/show_bug.cgi?id=213074 Reviewed by Eric Carlson. Source/WebCore: Make remote audio/video source observers of their webrtc source. In case the webrtc source ends, end the source, thus its related tracks as well. This is covered by the above test. Test: webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::startProducingData): (WebCore::RealtimeIncomingAudioSource::stopProducingData): (WebCore::RealtimeIncomingAudioSource::OnChanged): * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::~RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnChanged): * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::requestToEnd): (WebCore::RealtimeMediaSource::end): * platform/mediastream/RealtimeMediaSource.h: LayoutTests: * webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive-expected.txt: Added. * webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html: Added. Canonical link: https://commits.webkit.org/225865@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262905 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-11 17:14:07 +00:00
~RealtimeIncomingVideoSource();
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
Make RealtimeIncomingVideoSources and RealtimeOutgoingVideoSources port agnostic https://bugs.webkit.org/show_bug.cgi?id=177869 Patch by Alejandro G. Castro <alex@igalia.com> on 2017-10-16 Reviewed by Youenn Fablet. Refactor the RealtimeIncomingVideoSource and RealtimeOutgoingVideoSource classes, move the cocoa specific code to a different class. This way we can use them from other ports. No new functionality, just a refactor. * CMakeLists.txt: * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/RealtimeIncomingVideoSource.cpp: Moved from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h. Just the port agnostic parts. * platform/mediastream/RealtimeIncomingVideoSource.h: Moved from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h. DItto * platform/mediastream/RealtimeOutgoingVideoSource.cpp: Moved from Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp. Ditto * platform/mediastream/RealtimeOutgoingVideoSource.h: Moved from Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.h. Ditto * platform/mediastream/mac/RealtimeIncomingVideoSourceMac.cpp: Added, it adds the Cocoa specific parts from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.cpp. (WebCore::RealtimeIncomingVideoSource::create): Moved this function from the base class, it allows avoiding the include. * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h: Added, cocoa dependent code from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h. (WebCore::RealtimeOutgoingVideoSource::create): Moved this funtion from the base class, now we can use the Cocoa create without including it in the base class. * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: Added, cocoa dependent code. * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h: Added, cocoa dependent code. Canonical link: https://commits.webkit.org/194551@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223406 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-16 14:44:52 +00:00
protected:
RealtimeIncomingVideoSource(rtc::scoped_refptr<webrtc::VideoTrackInterface>&&, String&&);
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
Add release logging for incoming and outgoing webrtc audio tracks https://bugs.webkit.org/show_bug.cgi?id=185545 Reviewed by Eric Carlson. Add logging of audio tracks. When doing a WebRTC call, one log line is added each second for each audio track. Validated that logging is done through manual testing. Refactored code to use LogHelper and apply it to video sources as well. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::sourceFromNewReceiver): (WebCore::sourceFromNewReceiver): Deleted. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::logChannel const): (WebCore::RealtimeIncomingAudioSource::logger const): * platform/mediastream/RealtimeIncomingAudioSource.h: (WebCore::RealtimeIncomingAudioSource::setLogger): * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::logChannel const): (WebCore::RealtimeIncomingVideoSource::logger const): * platform/mediastream/RealtimeIncomingVideoSource.h: (WebCore::RealtimeIncomingVideoSource::setLogger): * platform/mediastream/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): (WebCore::RealtimeOutgoingAudioSource::sendAudioFrames): (WebCore::RealtimeOutgoingAudioSource::logChannel const): (WebCore::RealtimeOutgoingAudioSource::logger const): * platform/mediastream/RealtimeOutgoingAudioSource.h: (WebCore::RealtimeOutgoingAudioSource::setLogger): * platform/mediastream/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded): (WebCore::RealtimeOutgoingVideoSource::sendOneBlackFrame): (WebCore::RealtimeOutgoingVideoSource::logChannel const): (WebCore::RealtimeOutgoingVideoSource::logger const): * platform/mediastream/RealtimeOutgoingVideoSource.h: (WebCore::RealtimeOutgoingVideoSource::setLogger): * platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp: (WebCore::RealtimeIncomingAudioSourceCocoa::OnData): * platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h: * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool): (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame): (WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame): * platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: (WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer): Canonical link: https://commits.webkit.org/208048@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-17 19:23:45 +00:00
#if !RELEASE_LOG_DISABLED
const char* logClassName() const final { return "RealtimeIncomingVideoSource"; }
#endif
Make RealtimeIncomingVideoSources and RealtimeOutgoingVideoSources port agnostic https://bugs.webkit.org/show_bug.cgi?id=177869 Patch by Alejandro G. Castro <alex@igalia.com> on 2017-10-16 Reviewed by Youenn Fablet. Refactor the RealtimeIncomingVideoSource and RealtimeOutgoingVideoSource classes, move the cocoa specific code to a different class. This way we can use them from other ports. No new functionality, just a refactor. * CMakeLists.txt: * WebCore.xcodeproj/project.pbxproj: * platform/mediastream/RealtimeIncomingVideoSource.cpp: Moved from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h. Just the port agnostic parts. * platform/mediastream/RealtimeIncomingVideoSource.h: Moved from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h. DItto * platform/mediastream/RealtimeOutgoingVideoSource.cpp: Moved from Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp. Ditto * platform/mediastream/RealtimeOutgoingVideoSource.h: Moved from Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.h. Ditto * platform/mediastream/mac/RealtimeIncomingVideoSourceMac.cpp: Added, it adds the Cocoa specific parts from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.cpp. (WebCore::RealtimeIncomingVideoSource::create): Moved this function from the base class, it allows avoiding the include. * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h: Added, cocoa dependent code from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h. (WebCore::RealtimeOutgoingVideoSource::create): Moved this funtion from the base class, now we can use the Cocoa create without including it in the base class. * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: Added, cocoa dependent code. * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h: Added, cocoa dependent code. Canonical link: https://commits.webkit.org/194551@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223406 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-10-16 14:44:52 +00:00
private:
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
// RealtimeMediaSource API
void startProducingData() final;
void stopProducingData() final;
[MediaStream] Clean up RealtimeMediaSource settings change handling https://bugs.webkit.org/show_bug.cgi?id=189998 <rdar://problem/44797884> Reviewed by Youenn Fablet. Source/WebCore: No new tests, updated webrtc/video-disabled-black.html. * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::Source): (WebCore::CanvasCaptureMediaStreamTrack::Source::settings): (WebCore::CanvasCaptureMediaStreamTrack::Source::settingsDidChange): (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized): * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::settingsDidChange): * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::settingsDidChange): (WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers): (WebCore::RealtimeMediaSource::setSize): (WebCore::RealtimeMediaSource::setFrameRate): (WebCore::RealtimeMediaSource::setAspectRatio): (WebCore::RealtimeMediaSource::setFacingMode): (WebCore::RealtimeMediaSource::setVolume): (WebCore::RealtimeMediaSource::setSampleRate): (WebCore::RealtimeMediaSource::setSampleSize): (WebCore::RealtimeMediaSource::setEchoCancellation): * platform/mediastream/RealtimeMediaSource.h: * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: (WebCore::GStreamerAudioCaptureSource::settingsDidChange): * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: (WebCore::GStreamerVideoCaptureSource::settingsDidChange): * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::settingsDidChange): * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::settingsDidChange): * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: (WebCore::DisplayCaptureSourceCocoa::settingsDidChange): * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::processNewSample): * platform/mock/MockRealtimeAudioSource.cpp: (WebCore::MockRealtimeAudioSource::settingsDidChange): * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::settingsDidChange): Source/WebKit: * WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::Source::setSettings): LayoutTests: * webrtc/video-disabled-black.html: Canonical link: https://commits.webkit.org/205075@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-30 14:32:15 +00:00
void settingsDidChange(OptionSet<RealtimeMediaSourceSettings::Flag>) final;
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
Support arbitrary video resolution in getUserMedia API https://bugs.webkit.org/show_bug.cgi?id=178109 <rdar://problem/35083128> Reviewed by Youenn Fablet. Source/WebCore: Support arbitrary video resolutions by configuring the camera to capture at the closest larger size it supports and scaling/cropping frames as necessary. No new tests, existing tests updated. * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: * Modules/webaudio/MediaStreamAudioSource.cpp: (WebCore::MediaStreamAudioSource::capabilities): Make non-const, it wasn't helpful. (WebCore::MediaStreamAudioSource::settings): Ditto. (WebCore::MediaStreamAudioSource::capabilities const): Deleted. (WebCore::MediaStreamAudioSource::settings const): Deleted. * Modules/webaudio/MediaStreamAudioSource.h: * SourcesCocoa.txt: Add PixelBufferResizer. * WebCore.xcodeproj/project.pbxproj: Ditto. * platform/cocoa/CoreVideoSoftLink.h: * platform/cocoa/VideoToolboxSoftLink.cpp: * platform/cocoa/VideoToolboxSoftLink.h: * platform/graphics/cv/PixelBufferResizer.h: Added. (WebCore::PixelBufferResizer::canResizeTo): * platform/graphics/cv/PixelBufferResizer.mm: Added. (WebCore::PixelBufferResizer::PixelBufferResizer): (WebCore::PixelBufferResizer::resize): * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::capabilities): Make non-const, it wasn't helpful. (WebCore::RealtimeIncomingAudioSource::settings): Ditto. (WebCore::RealtimeIncomingAudioSource::capabilities const): Deleted. (WebCore::RealtimeIncomingAudioSource::settings const): Deleted. * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::capabilities): Make non-const, it wasn't helpful. (WebCore::RealtimeIncomingVideoSource::settings): Ditto. (WebCore::RealtimeIncomingVideoSource::capabilities const): Deleted. (WebCore::RealtimeIncomingVideoSource::settings const): Deleted. * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::supportsConstraint): (WebCore::RealtimeMediaSource::supportsConstraint const): Deleted. * platform/mediastream/RealtimeMediaSource.h: * platform/mediastream/RealtimeVideoSource.cpp: (WebCore::RealtimeVideoSource::presets): (WebCore::RealtimeVideoSource::setSupportedPresets): (WebCore::standardVideoSizes): (WebCore::RealtimeVideoSource::updateCapabilities): Make non-const, it wasn't helpful. (WebCore::presetSupportsFrameRate): (WebCore::RealtimeVideoSource::supportsCaptureSize): (WebCore::RealtimeVideoSource::shouldUsePreset): (WebCore::RealtimeVideoSource::bestSupportedSizeAndFrameRate): (WebCore::RealtimeVideoSource::setSizeAndFrameRate): (WebCore::RealtimeVideoSource::addSupportedCapabilities const): Deleted. * platform/mediastream/RealtimeVideoSource.h: (WebCore::VideoPresetData::encode const): (WebCore::VideoPresetData::decode): (WebCore::VideoPreset::create): (WebCore::VideoPreset::VideoPreset): (WebCore::RealtimeVideoSource::prefersPreset): (WebCore::RealtimeVideoSource::canResizeVideoFrames const): (WebCore::RealtimeVideoSource::setDefaultSize): (WebCore::RealtimeVideoSource::observedFrameRate const): (WebCore::VideoPreset::encode const): Deleted. (WebCore::VideoPreset::decode): Deleted. * platform/mediastream/mac/AVVideoCaptureSource.h: (WebCore::AVVideoCaptureSource::videoPresets): Deleted. * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoPreset::create): (WebCore::AVVideoPreset::AVVideoPreset): (WebCore::AVVideoCaptureSource::AVVideoCaptureSource): (WebCore::AVVideoCaptureSource::settings): (WebCore::AVVideoCaptureSource::capabilities): Make non-const, it wasn't helpful. (WebCore::AVVideoCaptureSource::setFrameRate): (WebCore::AVVideoCaptureSource::prefersPreset): (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset): (WebCore::AVVideoCaptureSource::frameDurationForFrameRate): (WebCore::AVVideoCaptureSource::setupCaptureSession): (WebCore::AVVideoCaptureSource::processNewFrame): (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection): (WebCore::AVVideoCaptureSource::isFrameRateSupported): (WebCore::AVVideoCaptureSource::generatePresets): (WebCore::updateSizeMinMax): Deleted. (WebCore::updateAspectRatioMinMax): Deleted. (WebCore::AVVideoCaptureSource::settings const): Deleted. (WebCore::AVVideoCaptureSource::capabilities const): Deleted. (WebCore::AVVideoCaptureSource::sizeForPreset): Deleted. (WebCore::AVVideoCaptureSource::setPreset): Deleted. (WebCore::AVVideoCaptureSource::setSizeAndFrameRate): Deleted. (WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions): Deleted. (WebCore::AVVideoCaptureSource::supportsSizeAndFrameRate): Deleted. * platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::capabilities): Make non-const, it wasn't helpful. (WebCore::CoreAudioCaptureSource::settings): Ditto. (WebCore::CoreAudioCaptureSource::capabilities const): Deleted. (WebCore::CoreAudioCaptureSource::settings const): Deleted. * platform/mediastream/mac/CoreAudioCaptureSource.h: * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: (WebCore::DisplayCaptureSourceCocoa::capabilities): Make non-const, it wasn't helpful. (WebCore::DisplayCaptureSourceCocoa::settings): Ditto. (WebCore::DisplayCaptureSourceCocoa::capabilities const): Deleted. (WebCore::DisplayCaptureSourceCocoa::settings const): Deleted. * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: * platform/mediastream/mac/MockRealtimeVideoSourceMac.h: * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): (WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): (WebCore::MockRealtimeVideoSourceMac::setSizeAndFrameRateWithPreset): * platform/mock/MockMediaDevice.h: (WebCore::MockCameraProperties::decode): * platform/mock/MockRealtimeAudioSource.cpp: (WebCore::MockRealtimeAudioSource::settings): Make non-const, it wasn't helpful. (WebCore::MockRealtimeAudioSource::capabilities): Ditto. (WebCore::MockRealtimeAudioSource::settings const): Deleted. (WebCore::MockRealtimeAudioSource::capabilities const): Deleted. * platform/mock/MockRealtimeAudioSource.h: * platform/mock/MockRealtimeMediaSourceCenter.cpp: (WebCore::defaultDevices): Change video device presets to trigger resize code more often. * platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): (WebCore::MockRealtimeVideoSource::generatePresets): (WebCore::MockRealtimeVideoSource::capabilities): Make non-const, it wasn't helpful. (WebCore::MockRealtimeVideoSource::settings): Ditto. (WebCore::MockRealtimeVideoSource::capabilities const): Deleted. (WebCore::MockRealtimeVideoSource::settings const): Deleted. * platform/mock/MockRealtimeVideoSource.h: Source/WebCore/PAL: * pal/cf/CoreMediaSoftLink.cpp: * pal/cf/CoreMediaSoftLink.h: Source/WebKit: * WebProcess/cocoa/UserMediaCaptureManager.cpp: LayoutTests: * fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt: * fast/mediastream/apply-constraints-advanced-expected.txt: * fast/mediastream/apply-constraints-advanced.html: * fast/mediastream/apply-constraints-video.html: Canonical link: https://commits.webkit.org/204595@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-14 19:01:41 +00:00
const RealtimeMediaSourceCapabilities& capabilities() final;
const RealtimeMediaSourceSettings& settings() final;
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
bool isIncomingVideoSource() const final { return true; }
End a remote MediaStreamTrack if its source is ended https://bugs.webkit.org/show_bug.cgi?id=213074 Reviewed by Eric Carlson. Source/WebCore: Make remote audio/video source observers of their webrtc source. In case the webrtc source ends, end the source, thus its related tracks as well. This is covered by the above test. Test: webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::startProducingData): (WebCore::RealtimeIncomingAudioSource::stopProducingData): (WebCore::RealtimeIncomingAudioSource::OnChanged): * platform/mediastream/RealtimeIncomingAudioSource.h: * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::~RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnChanged): * platform/mediastream/RealtimeIncomingVideoSource.h: * platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::requestToEnd): (WebCore::RealtimeMediaSource::end): * platform/mediastream/RealtimeMediaSource.h: LayoutTests: * webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive-expected.txt: Added. * webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html: Added. Canonical link: https://commits.webkit.org/225865@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262905 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-11 17:14:07 +00:00
// webrtc::ObserverInterface API
void OnChanged() final;
Remove WTF::Optional synonym for std::optional, using that class template directly instead https://bugs.webkit.org/show_bug.cgi?id=226433 Reviewed by Chris Dumez. Source/JavaScriptCore: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py: (ObjCProtocolTypesImplementationGenerator._generate_init_method_for_payload): Use auto instead of Optional<>. Also use * instead of value() and nest the definition of the local inside an if statement in the case where it's an optional. * inspector/scripts/tests/expected/*: Regenerated these results. Source/WebCore: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebCore/PAL: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebDriver: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebKit: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. * Scripts/webkit/tests: Regenerated expected results, by running the command "python Scripts/webkit/messages_unittest.py -r". (How am I supposed to know to do that?) Source/WebKitLegacy/ios: * WebCoreSupport/WebChromeClientIOS.h: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebKitLegacy/mac: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WebKitLegacy/win: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Source/WTF: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. * wtf/Optional.h: Remove WTF::Optional. Tools: * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>. Canonical link: https://commits.webkit.org/238290@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278253 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-05-30 16:11:40 +00:00
std::optional<RealtimeMediaSourceSettings> m_currentSettings;
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
rtc::scoped_refptr<webrtc::VideoTrackInterface> m_videoTrack;
Add release logging for incoming and outgoing webrtc audio tracks https://bugs.webkit.org/show_bug.cgi?id=185545 Reviewed by Eric Carlson. Add logging of audio tracks. When doing a WebRTC call, one log line is added each second for each audio track. Validated that logging is done through manual testing. Refactored code to use LogHelper and apply it to video sources as well. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::sourceFromNewReceiver): (WebCore::sourceFromNewReceiver): Deleted. * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: * platform/mediastream/RealtimeIncomingAudioSource.cpp: (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): (WebCore::RealtimeIncomingAudioSource::logChannel const): (WebCore::RealtimeIncomingAudioSource::logger const): * platform/mediastream/RealtimeIncomingAudioSource.h: (WebCore::RealtimeIncomingAudioSource::setLogger): * platform/mediastream/RealtimeIncomingVideoSource.cpp: (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::logChannel const): (WebCore::RealtimeIncomingVideoSource::logger const): * platform/mediastream/RealtimeIncomingVideoSource.h: (WebCore::RealtimeIncomingVideoSource::setLogger): * platform/mediastream/RealtimeOutgoingAudioSource.cpp: (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): (WebCore::RealtimeOutgoingAudioSource::sendAudioFrames): (WebCore::RealtimeOutgoingAudioSource::logChannel const): (WebCore::RealtimeOutgoingAudioSource::logger const): * platform/mediastream/RealtimeOutgoingAudioSource.h: (WebCore::RealtimeOutgoingAudioSource::setLogger): * platform/mediastream/RealtimeOutgoingVideoSource.cpp: (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded): (WebCore::RealtimeOutgoingVideoSource::sendOneBlackFrame): (WebCore::RealtimeOutgoingVideoSource::logChannel const): (WebCore::RealtimeOutgoingVideoSource::logger const): * platform/mediastream/RealtimeOutgoingVideoSource.h: (WebCore::RealtimeOutgoingVideoSource::setLogger): * platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp: (WebCore::RealtimeIncomingAudioSourceCocoa::OnData): * platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h: * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool): (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame): (WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame): * platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp: * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: (WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer): Canonical link: https://commits.webkit.org/208048@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-17 19:23:45 +00:00
#if !RELEASE_LOG_DISABLED
mutable RefPtr<const Logger> m_logger;
const void* m_logIdentifier;
#endif
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
};
} // namespace WebCore
SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::RealtimeIncomingVideoSource)
static bool isType(const WebCore::RealtimeMediaSource& source) { return source.isIncomingVideoSource(); }
SPECIALIZE_TYPE_TRAITS_END()
[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks https://bugs.webkit.org/show_bug.cgi?id=167432 Patch by Youenn Fablet <youenn@apple.com> on 2017-01-25 Reviewed by Eric Carlson. Not covered by tests right now, this will be covered by layout/mock tests. RealtimeIncomingVideoSource consumes video frames given by libwebrtc. RealtimeOutgoingVideoSource consumes video frames from WebCore tracks (capture typically) and feeds libwebrtc with them. * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: Added. (WebCore::RealtimeIncomingVideoSource::create): (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): (WebCore::RealtimeIncomingVideoSource::startProducingData): (WebCore::RealtimeIncomingVideoSource::stopProducingData): (WebCore::RealtimeIncomingVideoSource::OnFrame): (WebCore::RealtimeIncomingVideoSource::processNewSample): (WebCore::drawImage): (WebCore::RealtimeIncomingVideoSource::currentFrameImage): (WebCore::RealtimeIncomingVideoSource::paintCurrentFrameInContext): (WebCore::RealtimeIncomingVideoSource::capabilities): (WebCore::RealtimeIncomingVideoSource::settings): (WebCore::RealtimeIncomingVideoSource::supportedConstraints): * platform/mediastream/mac/RealtimeIncomingVideoSource.h: Added. * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: Added. (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): (WebCore::RealtimeOutgoingVideoSource::GetStats): (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): (WebCore::RealtimeOutgoingVideoSource::RemoveSink): (WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: Added. Canonical link: https://commits.webkit.org/184471@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-01-26 00:31:51 +00:00
#endif // USE(LIBWEBRTC)