| Index: content/renderer/media/rtc_encoding_video_capturer_factory.h
|
| diff --git a/content/renderer/media/rtc_encoding_video_capturer_factory.h b/content/renderer/media/rtc_encoding_video_capturer_factory.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3cff1f417ea42c2338d7765b93bb15e226df6aa3
|
| --- /dev/null
|
| +++ b/content/renderer/media/rtc_encoding_video_capturer_factory.h
|
| @@ -0,0 +1,56 @@
|
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CONTENT_RENDERER_MEDIA_RTC_ENCODING_VIDEO_CAPTURER_FACTORY_H_
|
| +#define CONTENT_RENDERER_MEDIA_RTC_ENCODING_VIDEO_CAPTURER_FACTORY_H_
|
| +
|
| +#include "base/memory/ref_counted.h"
|
| +#include "media/video/encoded_video_source.h"
|
| +#include "media/video/video_encode_types.h"
|
| +#include "third_party/libjingle/source/talk/media/webrtc/webrtcvideoencoderfactory.h"
|
| +
|
| +namespace content {
|
| +
|
| +class RtcEncodingVideoCapturer;
|
| +
|
| +class RtcEncodingVideoCapturerFactory :
|
| + public cricket::WebRtcVideoEncoderFactory,
|
| + public base::RefCountedThreadSafe<RtcEncodingVideoCapturerFactory> {
|
| + public:
|
| + RtcEncodingVideoCapturerFactory();
|
| +
|
| + // WebRtcVideoEncoderFactory interface.
|
| + virtual webrtc::VideoEncoder* CreateVideoEncoder(
|
| + webrtc::VideoCodecType type) OVERRIDE;
|
| + virtual void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) OVERRIDE;
|
| +
|
| + virtual const std::vector<VideoCodec>& codecs()
|
| + const OVERRIDE;
|
| +
|
| + // Callback for RequestCapabilities().
|
| + void OnCapabilitiesAvailable(const media::VideoEncodingCapabilities& caps);
|
| +
|
| + // Invoked when an EncodedVideoSource is added/removed.
|
| + void OnEncodedVideoSourceAdded(media::EncodedVideoSource* source);
|
| + void OnEncodedVideoSourceRemoved(media::EncodedVideoSource* source);
|
| +
|
| +private:
|
| + virtual ~RtcEncodingVideoCapturerFactory();
|
| +
|
| + friend class base::RefCountedThreadSafe<RtcEncodingVideoCapturerFactory>;
|
| +
|
| + // Set of registered encoding capable video capturers.
|
| + typedef std::set<webrtc::VideoEncoder*> EncoderSet;
|
| +
|
| + media::EncodedVideoSource* encoded_video_source_;
|
| + std::vector<VideoCodec> codecs_;
|
| +
|
| + EncoderSet encoder_set_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(RtcEncodingVideoCapturerFactory);
|
| +};
|
| +
|
| +} // namespace content
|
| +
|
| +#endif // CONTENT_RENDERER_MEDIA_RTC_ENCODING_VIDEO_CAPTURER_FACTORY_H_
|
|
|