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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 int64_t _latestMs; | 52 int64_t _latestMs; |
53 }; | 53 }; |
54 | 54 |
55 class VideoSender : public Module { | 55 class VideoSender : public Module { |
56 public: | 56 public: |
57 typedef VideoCodingModule::SenderNackMode SenderNackMode; | 57 typedef VideoCodingModule::SenderNackMode SenderNackMode; |
58 | 58 |
59 VideoSender(Clock* clock, | 59 VideoSender(Clock* clock, |
60 EncodedImageCallback* post_encode_callback, | 60 EncodedImageCallback* post_encode_callback, |
61 VideoEncoderRateObserver* encoder_rate_observer, | 61 VideoEncoderRateObserver* encoder_rate_observer, |
62 VCMQMSettingsCallback* qm_settings_callback, | |
63 VCMSendStatisticsCallback* send_stats_callback); | 62 VCMSendStatisticsCallback* send_stats_callback); |
64 | 63 |
65 ~VideoSender(); | 64 ~VideoSender(); |
66 | 65 |
67 // Register the send codec to be used. | 66 // Register the send codec to be used. |
68 // This method must be called on the construction thread. | 67 // This method must be called on the construction thread. |
69 int32_t RegisterSendCodec(const VideoCodec* sendCodec, | 68 int32_t RegisterSendCodec(const VideoCodec* sendCodec, |
70 uint32_t numberOfCores, | 69 uint32_t numberOfCores, |
71 uint32_t maxPayloadSize); | 70 uint32_t maxPayloadSize); |
72 | 71 |
73 void RegisterExternalEncoder(VideoEncoder* externalEncoder, | 72 void RegisterExternalEncoder(VideoEncoder* externalEncoder, |
74 uint8_t payloadType, | 73 uint8_t payloadType, |
75 bool internalSource); | 74 bool internalSource); |
76 | 75 |
77 int Bitrate(unsigned int* bitrate) const; | 76 int Bitrate(unsigned int* bitrate) const; |
78 int FrameRate(unsigned int* framerate) const; | 77 int FrameRate(unsigned int* framerate) const; |
79 | 78 |
80 int32_t SetChannelParameters(uint32_t target_bitrate, // bits/s. | 79 int32_t SetChannelParameters(uint32_t target_bitrate, // bits/s. |
81 uint8_t lossRate, | 80 uint8_t lossRate, |
82 int64_t rtt); | 81 int64_t rtt); |
83 | 82 |
84 int32_t RegisterProtectionCallback(VCMProtectionCallback* protection); | 83 int32_t RegisterProtectionCallback(VCMProtectionCallback* protection); |
85 void SetVideoProtection(VCMVideoProtection videoProtection); | 84 void SetVideoProtection(VCMVideoProtection videoProtection); |
86 | 85 |
87 int32_t AddVideoFrame(const VideoFrame& videoFrame, | 86 int32_t AddVideoFrame(const VideoFrame& videoFrame, |
88 const VideoContentMetrics* _contentMetrics, | |
89 const CodecSpecificInfo* codecSpecificInfo); | 87 const CodecSpecificInfo* codecSpecificInfo); |
90 | 88 |
91 int32_t IntraFrameRequest(size_t stream_index); | 89 int32_t IntraFrameRequest(size_t stream_index); |
92 int32_t EnableFrameDropper(bool enable); | 90 int32_t EnableFrameDropper(bool enable); |
93 | 91 |
94 void SuspendBelowMinBitrate(); | 92 void SuspendBelowMinBitrate(); |
95 bool VideoSuspended() const; | 93 bool VideoSuspended() const; |
96 | 94 |
97 int64_t TimeUntilNextProcess() override; | 95 int64_t TimeUntilNextProcess() override; |
98 void Process() override; | 96 void Process() override; |
(...skipping 10 matching lines...) Expand all Loading... |
109 VCMEncodedFrameCallback _encodedFrameCallback GUARDED_BY(encoder_crit_); | 107 VCMEncodedFrameCallback _encodedFrameCallback GUARDED_BY(encoder_crit_); |
110 VCMSendStatisticsCallback* const send_stats_callback_; | 108 VCMSendStatisticsCallback* const send_stats_callback_; |
111 VCMCodecDataBase _codecDataBase GUARDED_BY(encoder_crit_); | 109 VCMCodecDataBase _codecDataBase GUARDED_BY(encoder_crit_); |
112 bool frame_dropper_enabled_ GUARDED_BY(encoder_crit_); | 110 bool frame_dropper_enabled_ GUARDED_BY(encoder_crit_); |
113 VCMProcessTimer _sendStatsTimer; | 111 VCMProcessTimer _sendStatsTimer; |
114 | 112 |
115 // Must be accessed on the construction thread of VideoSender. | 113 // Must be accessed on the construction thread of VideoSender. |
116 VideoCodec current_codec_; | 114 VideoCodec current_codec_; |
117 rtc::ThreadChecker main_thread_; | 115 rtc::ThreadChecker main_thread_; |
118 | 116 |
119 VCMQMSettingsCallback* const qm_settings_callback_; | |
120 VCMProtectionCallback* protection_callback_; | 117 VCMProtectionCallback* protection_callback_; |
121 | 118 |
122 rtc::CriticalSection params_crit_; | 119 rtc::CriticalSection params_crit_; |
123 EncoderParameters encoder_params_ GUARDED_BY(params_crit_); | 120 EncoderParameters encoder_params_ GUARDED_BY(params_crit_); |
124 bool encoder_has_internal_source_ GUARDED_BY(params_crit_); | 121 bool encoder_has_internal_source_ GUARDED_BY(params_crit_); |
125 std::string encoder_name_ GUARDED_BY(params_crit_); | 122 std::string encoder_name_ GUARDED_BY(params_crit_); |
126 std::vector<FrameType> next_frame_types_ GUARDED_BY(params_crit_); | 123 std::vector<FrameType> next_frame_types_ GUARDED_BY(params_crit_); |
127 }; | 124 }; |
128 | 125 |
129 class VideoReceiver : public Module { | 126 class VideoReceiver : public Module { |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 VCMProcessTimer _receiveStatsTimer; | 208 VCMProcessTimer _receiveStatsTimer; |
212 VCMProcessTimer _retransmissionTimer; | 209 VCMProcessTimer _retransmissionTimer; |
213 VCMProcessTimer _keyRequestTimer; | 210 VCMProcessTimer _keyRequestTimer; |
214 QpParser qp_parser_; | 211 QpParser qp_parser_; |
215 ThreadUnsafeOneTimeEvent first_frame_received_; | 212 ThreadUnsafeOneTimeEvent first_frame_received_; |
216 }; | 213 }; |
217 | 214 |
218 } // namespace vcm | 215 } // namespace vcm |
219 } // namespace webrtc | 216 } // namespace webrtc |
220 #endif // WEBRTC_MODULES_VIDEO_CODING_VIDEO_CODING_IMPL_H_ | 217 #endif // WEBRTC_MODULES_VIDEO_CODING_VIDEO_CODING_IMPL_H_ |
OLD | NEW |