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

Side by Side Diff: webrtc/video/video_receive_stream.h

Issue 3006063002: Reland of Use RtxReceiveStream. (Closed)
Patch Set: Address comments. Created 3 years, 3 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 20 matching lines...) Expand all
31 #include "webrtc/video/video_stream_decoder.h" 31 #include "webrtc/video/video_stream_decoder.h"
32 32
33 namespace webrtc { 33 namespace webrtc {
34 34
35 class CallStats; 35 class CallStats;
36 class IvfFileWriter; 36 class IvfFileWriter;
37 class ProcessThread; 37 class ProcessThread;
38 class RTPFragmentationHeader; 38 class RTPFragmentationHeader;
39 class RtpStreamReceiverInterface; 39 class RtpStreamReceiverInterface;
40 class RtpStreamReceiverControllerInterface; 40 class RtpStreamReceiverControllerInterface;
41 class RtxReceiveStream;
41 class VCMTiming; 42 class VCMTiming;
42 class VCMJitterEstimator; 43 class VCMJitterEstimator;
43 44
44 namespace internal { 45 namespace internal {
45 46
46 class VideoReceiveStream : public webrtc::VideoReceiveStream, 47 class VideoReceiveStream : public webrtc::VideoReceiveStream,
47 public rtc::VideoSinkInterface<VideoFrame>, 48 public rtc::VideoSinkInterface<VideoFrame>,
48 public EncodedImageCallback, 49 public EncodedImageCallback,
49 public NackSender, 50 public NackSender,
50 public KeyFrameRequestSender, 51 public KeyFrameRequestSender,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 TransportAdapter transport_adapter_; 119 TransportAdapter transport_adapter_;
119 const VideoReceiveStream::Config config_; 120 const VideoReceiveStream::Config config_;
120 const int num_cpu_cores_; 121 const int num_cpu_cores_;
121 ProcessThread* const process_thread_; 122 ProcessThread* const process_thread_;
122 Clock* const clock_; 123 Clock* const clock_;
123 124
124 rtc::PlatformThread decode_thread_; 125 rtc::PlatformThread decode_thread_;
125 126
126 CallStats* const call_stats_; 127 CallStats* const call_stats_;
127 128
129 // Shared by media and rtx stream receivers, since the latter has no RtpRtcp
130 // module of its own.
131 const std::unique_ptr<ReceiveStatistics> rtp_receive_statistics_;
132
128 std::unique_ptr<VCMTiming> timing_; // Jitter buffer experiment. 133 std::unique_ptr<VCMTiming> timing_; // Jitter buffer experiment.
129 vcm::VideoReceiver video_receiver_; 134 vcm::VideoReceiver video_receiver_;
130 std::unique_ptr<rtc::VideoSinkInterface<VideoFrame>> incoming_video_stream_; 135 std::unique_ptr<rtc::VideoSinkInterface<VideoFrame>> incoming_video_stream_;
131 ReceiveStatisticsProxy stats_proxy_; 136 ReceiveStatisticsProxy stats_proxy_;
132 RtpVideoStreamReceiver rtp_video_stream_receiver_; 137 RtpVideoStreamReceiver rtp_video_stream_receiver_;
133 std::unique_ptr<VideoStreamDecoder> video_stream_decoder_; 138 std::unique_ptr<VideoStreamDecoder> video_stream_decoder_;
134 RtpStreamsSynchronizer rtp_stream_sync_; 139 RtpStreamsSynchronizer rtp_stream_sync_;
135 140
136 rtc::CriticalSection ivf_writer_lock_; 141 rtc::CriticalSection ivf_writer_lock_;
137 std::unique_ptr<IvfFileWriter> ivf_writer_ GUARDED_BY(ivf_writer_lock_); 142 std::unique_ptr<IvfFileWriter> ivf_writer_ GUARDED_BY(ivf_writer_lock_);
138 143
139 // Members for the new jitter buffer experiment. 144 // Members for the new jitter buffer experiment.
140 std::unique_ptr<VCMJitterEstimator> jitter_estimator_; 145 std::unique_ptr<VCMJitterEstimator> jitter_estimator_;
141 std::unique_ptr<video_coding::FrameBuffer> frame_buffer_; 146 std::unique_ptr<video_coding::FrameBuffer> frame_buffer_;
142 147
143 std::unique_ptr<RtpStreamReceiverInterface> media_receiver_; 148 std::unique_ptr<RtpStreamReceiverInterface> media_receiver_;
149 std::unique_ptr<RtxReceiveStream> rtx_receive_stream_;
144 std::unique_ptr<RtpStreamReceiverInterface> rtx_receiver_; 150 std::unique_ptr<RtpStreamReceiverInterface> rtx_receiver_;
145 151
146 // Whenever we are in an undecodable state (stream has just started or due to 152 // Whenever we are in an undecodable state (stream has just started or due to
147 // a decoding error) we require a keyframe to restart the stream. 153 // a decoding error) we require a keyframe to restart the stream.
148 bool keyframe_required_ = true; 154 bool keyframe_required_ = true;
149 155
150 // If we have successfully decoded any frame. 156 // If we have successfully decoded any frame.
151 bool frame_decoded_ = false; 157 bool frame_decoded_ = false;
152 }; 158 };
153 } // namespace internal 159 } // namespace internal
154 } // namespace webrtc 160 } // namespace webrtc
155 161
156 #endif // WEBRTC_VIDEO_VIDEO_RECEIVE_STREAM_H_ 162 #endif // WEBRTC_VIDEO_VIDEO_RECEIVE_STREAM_H_
OLDNEW
« no previous file with comments | « webrtc/video/rtp_video_stream_receiver_unittest.cc ('k') | webrtc/video/video_receive_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698