RealtimeMediaSourceCenterLibWebRTC.h [plain text]
#pragma once
#if ENABLE(MEDIA_STREAM) && USE(LIBWEBRTC)
#include "CaptureDeviceManager.h"
#include "LibWebRTCProvider.h"
#include "RealtimeMediaSource.h"
#include "RealtimeMediaSourceCenter.h"
#include <webrtc/api/peerconnectioninterface.h>
#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class RealtimeMediaSourceCenterLibWebRTC final : public RealtimeMediaSourceCenter {
public:
WEBCORE_EXPORT static RealtimeMediaSourceCenterLibWebRTC& singleton();
static RealtimeMediaSource::VideoCaptureFactory& videoCaptureSourceFactory();
static RealtimeMediaSource::AudioCaptureFactory& audioCaptureSourceFactory();
private:
friend class NeverDestroyed<RealtimeMediaSourceCenterLibWebRTC>;
RealtimeMediaSourceCenterLibWebRTC();
~RealtimeMediaSourceCenterLibWebRTC();
void setAudioFactory(RealtimeMediaSource::AudioCaptureFactory& factory) final { m_audioFactoryOverride = &factory; }
void unsetAudioFactory(RealtimeMediaSource::AudioCaptureFactory&) final { m_audioFactoryOverride = nullptr; }
RealtimeMediaSource::AudioCaptureFactory& audioFactory() final;
RealtimeMediaSource::VideoCaptureFactory& videoFactory() final;
CaptureDeviceManager& audioCaptureDeviceManager() final;
CaptureDeviceManager& videoCaptureDeviceManager() final;
CaptureDeviceManager& displayCaptureDeviceManager() final;
RealtimeMediaSource::AudioCaptureFactory* m_audioFactoryOverride { nullptr };
};
}
#endif // ENABLE(MEDIA_STREAM) && USE(LIBWEBRTC)