OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 int64_t Period() const; | 44 int64_t Period() const; |
45 int64_t TimeUntilProcess() const; | 45 int64_t TimeUntilProcess() const; |
46 void Processed(); | 46 void Processed(); |
47 | 47 |
48 private: | 48 private: |
49 Clock* _clock; | 49 Clock* _clock; |
50 int64_t _periodMs; | 50 int64_t _periodMs; |
51 int64_t _latestMs; | 51 int64_t _latestMs; |
52 }; | 52 }; |
53 | 53 |
54 class VideoSender { | 54 class VideoSender : public Module { |
55 public: | 55 public: |
56 typedef VideoCodingModule::SenderNackMode SenderNackMode; | 56 typedef VideoCodingModule::SenderNackMode SenderNackMode; |
57 | 57 |
58 VideoSender(Clock* clock, | 58 VideoSender(Clock* clock, |
59 EncodedImageCallback* post_encode_callback, | 59 EncodedImageCallback* post_encode_callback, |
60 VideoEncoderRateObserver* encoder_rate_observer, | 60 VideoEncoderRateObserver* encoder_rate_observer, |
61 VCMQMSettingsCallback* qm_settings_callback); | 61 VCMQMSettingsCallback* qm_settings_callback); |
62 | 62 |
63 ~VideoSender(); | 63 ~VideoSender(); |
64 | 64 |
(...skipping 24 matching lines...) Expand all Loading... |
89 int32_t AddVideoFrame(const VideoFrame& videoFrame, | 89 int32_t AddVideoFrame(const VideoFrame& videoFrame, |
90 const VideoContentMetrics* _contentMetrics, | 90 const VideoContentMetrics* _contentMetrics, |
91 const CodecSpecificInfo* codecSpecificInfo); | 91 const CodecSpecificInfo* codecSpecificInfo); |
92 | 92 |
93 int32_t IntraFrameRequest(int stream_index); | 93 int32_t IntraFrameRequest(int stream_index); |
94 int32_t EnableFrameDropper(bool enable); | 94 int32_t EnableFrameDropper(bool enable); |
95 | 95 |
96 void SuspendBelowMinBitrate(); | 96 void SuspendBelowMinBitrate(); |
97 bool VideoSuspended() const; | 97 bool VideoSuspended() const; |
98 | 98 |
99 int64_t TimeUntilNextProcess(); | 99 int64_t TimeUntilNextProcess() override; |
100 void Process(); | 100 void Process() override; |
101 | 101 |
102 private: | 102 private: |
103 void SetEncoderParameters(EncoderParameters params) | 103 void SetEncoderParameters(EncoderParameters params) |
104 EXCLUSIVE_LOCKS_REQUIRED(encoder_crit_); | 104 EXCLUSIVE_LOCKS_REQUIRED(encoder_crit_); |
105 | 105 |
106 Clock* const clock_; | 106 Clock* const clock_; |
107 | 107 |
108 rtc::CriticalSection process_crit_; | 108 rtc::CriticalSection process_crit_; |
109 rtc::CriticalSection encoder_crit_; | 109 rtc::CriticalSection encoder_crit_; |
110 VCMGenericEncoder* _encoder; | 110 VCMGenericEncoder* _encoder; |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 VCMProcessTimer _receiveStatsTimer; | 216 VCMProcessTimer _receiveStatsTimer; |
217 VCMProcessTimer _retransmissionTimer; | 217 VCMProcessTimer _retransmissionTimer; |
218 VCMProcessTimer _keyRequestTimer; | 218 VCMProcessTimer _keyRequestTimer; |
219 QpParser qp_parser_; | 219 QpParser qp_parser_; |
220 ThreadUnsafeOneTimeEvent first_frame_received_; | 220 ThreadUnsafeOneTimeEvent first_frame_received_; |
221 }; | 221 }; |
222 | 222 |
223 } // namespace vcm | 223 } // namespace vcm |
224 } // namespace webrtc | 224 } // namespace webrtc |
225 #endif // WEBRTC_MODULES_VIDEO_CODING_VIDEO_CODING_IMPL_H_ | 225 #endif // WEBRTC_MODULES_VIDEO_CODING_VIDEO_CODING_IMPL_H_ |
OLD | NEW |