Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Unified Diff: webrtc/video/video_receive_stream.cc

Issue 2407163002: Make sure VideoReceiveStream can be restarted (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/video/video_receive_stream.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/video_receive_stream.cc
diff --git a/webrtc/video/video_receive_stream.cc b/webrtc/video/video_receive_stream.cc
index 7d77751db3cd8c69c6d3b9f51f92ee96e69e9b3a..f260b5ed4f173e1192e375160361975c09198034 100644
--- a/webrtc/video/video_receive_stream.cc
+++ b/webrtc/video/video_receive_stream.cc
@@ -188,6 +188,7 @@ VideoReceiveStream::VideoReceiveStream(
VieRemb* remb)
: transport_adapter_(config.rtcp_send_transport),
config_(std::move(config)),
+ num_cpu_cores_(num_cpu_cores),
process_thread_(process_thread),
clock_(Clock::GetRealTimeClock()),
decode_thread_(DecodeThreadFunction, this, "DecodingThread"),
@@ -224,13 +225,6 @@ VideoReceiveStream::VideoReceiveStream(
<< "Duplicate payload type (" << decoder.payload_type
<< ") for different decoders.";
decoder_payload_types.insert(decoder.payload_type);
- video_receiver_.RegisterExternalDecoder(decoder.decoder,
- decoder.payload_type);
-
- VideoCodec codec = CreateDecoderVideoCodec(decoder);
- RTC_CHECK(rtp_stream_receiver_.SetReceiveCodec(codec));
- RTC_CHECK_EQ(VCM_OK, video_receiver_.RegisterReceiveCodec(
- &codec, num_cpu_cores, false));
}
video_receiver_.SetRenderDelay(config.render_delay_ms);
@@ -281,6 +275,16 @@ void VideoReceiveStream::Start() {
}
RTC_DCHECK(renderer != nullptr);
+ for (const Decoder& decoder : config_.decoders) {
+ video_receiver_.RegisterExternalDecoder(decoder.decoder,
+ decoder.payload_type);
+
+ VideoCodec codec = CreateDecoderVideoCodec(decoder);
+ RTC_CHECK(rtp_stream_receiver_.SetReceiveCodec(codec));
+ RTC_CHECK_EQ(VCM_OK, video_receiver_.RegisterReceiveCodec(
+ &codec, num_cpu_cores_, false));
+ }
+
video_stream_decoder_.reset(new VideoStreamDecoder(
&video_receiver_, &rtp_stream_receiver_, &rtp_stream_receiver_,
rtp_stream_receiver_.IsRetransmissionsEnabled(),
« no previous file with comments | « webrtc/video/video_receive_stream.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698