From d41eaeb7cded2b2cda83f53aa320cf18e2d07380 Mon Sep 17 00:00:00 2001 From: "buildbot@webrtc.org" Date: Thu, 12 Jun 2014 07:13:26 +0000 Subject: [PATCH] (Auto)update libjingle 69005149-> 69049090 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6408 4adac7df-926f-26a2-2b94-8c16560cd09d --- talk/media/webrtc/webrtcvideoengine2.cc | 84 ++++++++++++------------- talk/media/webrtc/webrtcvideoengine2.h | 11 ++-- 2 files changed, 45 insertions(+), 50 deletions(-) diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc index 6593b2a9e2..6ee07a32fd 100644 --- a/talk/media/webrtc/webrtcvideoengine2.cc +++ b/talk/media/webrtc/webrtcvideoengine2.cc @@ -195,50 +195,47 @@ static std::vector DefaultVideoCodecs() { WebRtcVideoEncoderFactory2::~WebRtcVideoEncoderFactory2() { } -class DefaultVideoEncoderFactory : public WebRtcVideoEncoderFactory2 { - public: - virtual std::vector CreateVideoStreams( - const VideoCodec& codec, - const VideoOptions& options, - size_t num_streams) OVERRIDE { - assert(SupportsCodec(codec)); - if (num_streams != 1) { - LOG(LS_ERROR) << "Unsupported number of streams: " << num_streams; - return std::vector(); - } - - webrtc::VideoStream stream; - stream.width = codec.width; - stream.height = codec.height; - stream.max_framerate = - codec.framerate != 0 ? codec.framerate : kDefaultFramerate; - - int min_bitrate = kMinVideoBitrate; - codec.GetParam(kCodecParamMinBitrate, &min_bitrate); - int max_bitrate = kMaxVideoBitrate; - codec.GetParam(kCodecParamMaxBitrate, &max_bitrate); - stream.min_bitrate_bps = min_bitrate * 1000; - stream.target_bitrate_bps = stream.max_bitrate_bps = max_bitrate * 1000; - - int max_qp = 56; - codec.GetParam(kCodecParamMaxQuantization, &max_qp); - stream.max_qp = max_qp; - std::vector streams; - streams.push_back(stream); - return streams; +std::vector WebRtcVideoEncoderFactory2::CreateVideoStreams( + const VideoCodec& codec, + const VideoOptions& options, + size_t num_streams) { + assert(SupportsCodec(codec)); + if (num_streams != 1) { + LOG(LS_ERROR) << "Unsupported number of streams: " << num_streams; + return std::vector(); } - virtual webrtc::VideoEncoder* CreateVideoEncoder( - const VideoCodec& codec, - const VideoOptions& options) OVERRIDE { - assert(SupportsCodec(codec)); - return webrtc::VP8Encoder::Create(); - } + webrtc::VideoStream stream; + stream.width = codec.width; + stream.height = codec.height; + stream.max_framerate = + codec.framerate != 0 ? codec.framerate : kDefaultFramerate; - virtual bool SupportsCodec(const VideoCodec& codec) OVERRIDE { - return _stricmp(codec.name.c_str(), kVp8PayloadName) == 0; - } -}; + int min_bitrate = kMinVideoBitrate; + codec.GetParam(kCodecParamMinBitrate, &min_bitrate); + int max_bitrate = kMaxVideoBitrate; + codec.GetParam(kCodecParamMaxBitrate, &max_bitrate); + stream.min_bitrate_bps = min_bitrate * 1000; + stream.target_bitrate_bps = stream.max_bitrate_bps = max_bitrate * 1000; + + int max_qp = 56; + codec.GetParam(kCodecParamMaxQuantization, &max_qp); + stream.max_qp = max_qp; + std::vector streams; + streams.push_back(stream); + return streams; +} + +webrtc::VideoEncoder* WebRtcVideoEncoderFactory2::CreateVideoEncoder( + const VideoCodec& codec, + const VideoOptions& options) { + assert(SupportsCodec(codec)); + return webrtc::VP8Encoder::Create(); +} + +bool WebRtcVideoEncoderFactory2::SupportsCodec(const VideoCodec& codec) { + return _stricmp(codec.name.c_str(), kVp8PayloadName) == 0; +} WebRtcVideoEngine2::WebRtcVideoEngine2() { // Construct without a factory or voice engine. @@ -264,7 +261,6 @@ void WebRtcVideoEngine2::Construct(WebRtcVideoChannelFactory* channel_factory, video_codecs_ = DefaultVideoCodecs(); default_codec_format_ = VideoFormat(kDefaultVideoFormat); - default_video_encoder_factory_.reset(new DefaultVideoEncoderFactory()); } WebRtcVideoEngine2::~WebRtcVideoEngine2() { @@ -463,8 +459,8 @@ bool WebRtcVideoEngine2::ShouldIgnoreTrace(const std::string& trace) { return false; } -WebRtcVideoEncoderFactory2* WebRtcVideoEngine2::GetVideoEncoderFactory() const { - return default_video_encoder_factory_.get(); +WebRtcVideoEncoderFactory2* WebRtcVideoEngine2::GetVideoEncoderFactory() { + return &default_video_encoder_factory_; } // Thin map between VideoFrame and an existing webrtc::I420VideoFrame diff --git a/talk/media/webrtc/webrtcvideoengine2.h b/talk/media/webrtc/webrtcvideoengine2.h index 4287d2826e..d1a784dc4f 100644 --- a/talk/media/webrtc/webrtcvideoengine2.h +++ b/talk/media/webrtc/webrtcvideoengine2.h @@ -86,13 +86,13 @@ class WebRtcVideoEncoderFactory2 { virtual std::vector CreateVideoStreams( const VideoCodec& codec, const VideoOptions& options, - size_t num_streams) = 0; + size_t num_streams); virtual webrtc::VideoEncoder* CreateVideoEncoder( const VideoCodec& codec, - const VideoOptions& options) = 0; + const VideoOptions& options); - virtual bool SupportsCodec(const cricket::VideoCodec& codec) = 0; + virtual bool SupportsCodec(const cricket::VideoCodec& codec); }; // WebRtcVideoEngine2 is used for the new native WebRTC Video API (webrtc:1667). @@ -144,7 +144,7 @@ class WebRtcVideoEngine2 : public sigslot::has_slots<> { talk_base::CpuMonitor* cpu_monitor() { return cpu_monitor_.get(); } - virtual WebRtcVideoEncoderFactory2* GetVideoEncoderFactory() const; + virtual WebRtcVideoEncoderFactory2* GetVideoEncoderFactory(); private: void Construct(WebRtcVideoChannelFactory* channel_factory, @@ -167,8 +167,7 @@ class WebRtcVideoEngine2 : public sigslot::has_slots<> { talk_base::scoped_ptr cpu_monitor_; WebRtcVideoChannelFactory* channel_factory_; - talk_base::scoped_ptr - default_video_encoder_factory_; + WebRtcVideoEncoderFactory2 default_video_encoder_factory_; }; // Adapter between webrtc::VideoRenderer and cricket::VideoRenderer.