Index: webrtc/media/engine/webrtcvideoengine.h |
diff --git a/webrtc/media/engine/webrtcvideoengine.h b/webrtc/media/engine/webrtcvideoengine.h |
index 0d51aa758fb7e7d412301b6542615a08f48edba3..184ab2076af2f814d39470f68d684efb89f62a5d 100644 |
--- a/webrtc/media/engine/webrtcvideoengine.h |
+++ b/webrtc/media/engine/webrtcvideoengine.h |
@@ -205,6 +205,7 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { |
const VideoCodecSettings& b); |
VideoCodec codec; |
+ rtc::Optional<VideoCodec> stereo_codec; |
webrtc::UlpfecConfig ulpfec; |
int flexfec_payload_type; |
int rtx_payload_type; |
@@ -328,6 +329,7 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { |
// matches. |
AllocatedEncoder CreateVideoEncoder(const VideoCodec& codec, |
bool force_encoder_allocation); |
+ AllocatedEncoder CreateStereoVideoEncoder(const VideoCodec& codec); |
void DestroyVideoEncoder(AllocatedEncoder* encoder); |
void SetCodec(const VideoCodecSettings& codec, |
bool force_encoder_allocation); |
@@ -357,6 +359,8 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { |
ACCESS_ON(&thread_checker_); |
const std::unique_ptr<WebRtcVideoEncoderFactory> internal_encoder_factory_ |
ACCESS_ON(&thread_checker_); |
+ std::unique_ptr<WebRtcVideoEncoderFactory> stereo_encoder_factory_ |
+ ACCESS_ON(&thread_checker_); |
webrtc::VideoSendStream* stream_ ACCESS_ON(&thread_checker_); |
rtc::VideoSinkInterface<webrtc::VideoFrame>* encoder_sink_ |
@@ -430,6 +434,7 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { |
AllocatedDecoder CreateOrReuseVideoDecoder( |
std::vector<AllocatedDecoder>* old_decoder, |
const VideoCodec& codec); |
+ AllocatedDecoder CreateStereoVideoDecoder(const VideoCodec& codec); |
void ClearDecoders(std::vector<AllocatedDecoder>* allocated_decoders); |
std::string GetCodecNameFromPayloadType(int payload_type); |
@@ -447,6 +452,8 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { |
webrtc::FlexfecReceiveStream* flexfec_stream_; |
WebRtcVideoDecoderFactory* const external_decoder_factory_; |
+ const std::unique_ptr<WebRtcVideoDecoderFactory> internal_decoder_factory_; |
+ std::unique_ptr<WebRtcVideoDecoderFactory> stereo_decoder_factory_; |
std::vector<AllocatedDecoder> allocated_decoders_; |
rtc::CriticalSection sink_lock_; |
@@ -475,6 +482,9 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { |
// codec that is supported locally will be selected. |
rtc::Optional<VideoCodecSettings> SelectSendVideoCodec( |
const std::vector<VideoCodecSettings>& remote_mapped_codecs) const; |
+ rtc::Optional<WebRtcVideoChannel::VideoCodecSettings> |
+ SelectStereoAssociatedVideoCodec( |
+ const std::vector<VideoCodecSettings>& remote_mapped_codecs) const; |
static bool NonFlexfecReceiveCodecsHaveChanged( |
std::vector<VideoCodecSettings> before, |