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

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

Issue 1778503002: Experiment for the nack module. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 9 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 22 matching lines...) Expand all
33 class CongestionController; 33 class CongestionController;
34 class ProcessThread; 34 class ProcessThread;
35 class VoiceEngine; 35 class VoiceEngine;
36 class VieRemb; 36 class VieRemb;
37 37
38 namespace internal { 38 namespace internal {
39 39
40 class VideoReceiveStream : public webrtc::VideoReceiveStream, 40 class VideoReceiveStream : public webrtc::VideoReceiveStream,
41 public I420FrameCallback, 41 public I420FrameCallback,
42 public VideoRenderCallback, 42 public VideoRenderCallback,
43 public EncodedImageCallback { 43 public EncodedImageCallback,
44 public NackSender,
45 public KeyFrameRequestSender {
stefan-webrtc 2016/03/10 14:20:40 Is there a point in webrtc::RtpRtcp implementing N
philipel 2016/03/10 16:39:28 No, not really, fixed
44 public: 46 public:
45 VideoReceiveStream(int num_cpu_cores, 47 VideoReceiveStream(int num_cpu_cores,
46 CongestionController* congestion_controller, 48 CongestionController* congestion_controller,
47 const VideoReceiveStream::Config& config, 49 const VideoReceiveStream::Config& config,
48 webrtc::VoiceEngine* voice_engine, 50 webrtc::VoiceEngine* voice_engine,
49 ProcessThread* process_thread, 51 ProcessThread* process_thread,
50 CallStats* call_stats, 52 CallStats* call_stats,
51 VieRemb* remb); 53 VieRemb* remb);
52 ~VideoReceiveStream() override; 54 ~VideoReceiveStream() override;
53 55
(...skipping 18 matching lines...) Expand all
72 74
73 // Overrides EncodedImageCallback. 75 // Overrides EncodedImageCallback.
74 int32_t Encoded(const EncodedImage& encoded_image, 76 int32_t Encoded(const EncodedImage& encoded_image,
75 const CodecSpecificInfo* codec_specific_info, 77 const CodecSpecificInfo* codec_specific_info,
76 const RTPFragmentationHeader* fragmentation) override; 78 const RTPFragmentationHeader* fragmentation) override;
77 79
78 const Config& config() const { return config_; } 80 const Config& config() const { return config_; }
79 81
80 void SetSyncChannel(VoiceEngine* voice_engine, int audio_channel_id); 82 void SetSyncChannel(VoiceEngine* voice_engine, int audio_channel_id);
81 83
84 // NackSender
85 void SendNack(const std::vector<uint16_t>& sequence_numbers) override;
86
87 // KeyFrameRequestSender
88 void RequestKeyFrame() override;
89
82 private: 90 private:
83 static bool DecodeThreadFunction(void* ptr); 91 static bool DecodeThreadFunction(void* ptr);
84 void Decode(); 92 void Decode();
85 93
86 TransportAdapter transport_adapter_; 94 TransportAdapter transport_adapter_;
87 EncodedFrameCallbackAdapter encoded_frame_proxy_; 95 EncodedFrameCallbackAdapter encoded_frame_proxy_;
88 const VideoReceiveStream::Config config_; 96 const VideoReceiveStream::Config config_;
89 ProcessThread* const process_thread_; 97 ProcessThread* const process_thread_;
90 Clock* const clock_; 98 Clock* const clock_;
91 99
92 rtc::PlatformThread decode_thread_; 100 rtc::PlatformThread decode_thread_;
93 101
94 CongestionController* const congestion_controller_; 102 CongestionController* const congestion_controller_;
95 CallStats* const call_stats_; 103 CallStats* const call_stats_;
96 VieRemb* const remb_; 104 VieRemb* const remb_;
97 105
98 std::unique_ptr<VideoCodingModule> vcm_; 106 std::unique_ptr<VideoCodingModule> vcm_;
99 IncomingVideoStream incoming_video_stream_; 107 IncomingVideoStream incoming_video_stream_;
100 ReceiveStatisticsProxy stats_proxy_; 108 ReceiveStatisticsProxy stats_proxy_;
101 ViEChannel vie_channel_; 109 ViEChannel vie_channel_;
102 ViEReceiver* const vie_receiver_; 110 ViEReceiver* const vie_receiver_;
103 ViESyncModule vie_sync_; 111 ViESyncModule vie_sync_;
104 RtpRtcp* const rtp_rtcp_; 112 RtpRtcp* const rtp_rtcp_;
105 }; 113 };
106 } // namespace internal 114 } // namespace internal
107 } // namespace webrtc 115 } // namespace webrtc
108 116
109 #endif // WEBRTC_VIDEO_VIDEO_RECEIVE_STREAM_H_ 117 #endif // WEBRTC_VIDEO_VIDEO_RECEIVE_STREAM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698