| 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 | 85 |
| 86 // Sets the |sink| that gets the encoded frames. |rotation_applied| means | 86 // Sets the |sink| that gets the encoded frames. |rotation_applied| means |
| 87 // that the source must support rotation. Only set |rotation_applied| if the | 87 // that the source must support rotation. Only set |rotation_applied| if the |
| 88 // remote side does not support the rotation extension. | 88 // remote side does not support the rotation extension. |
| 89 void SetSink(EncoderSink* sink, bool rotation_applied); | 89 void SetSink(EncoderSink* sink, bool rotation_applied); |
| 90 | 90 |
| 91 // TODO(perkj): Can we remove VideoCodec.startBitrate ? | 91 // TODO(perkj): Can we remove VideoCodec.startBitrate ? |
| 92 void SetStartBitrate(int start_bitrate_bps); | 92 void SetStartBitrate(int start_bitrate_bps); |
| 93 | 93 |
| 94 void ConfigureEncoder(VideoEncoderConfig config, | 94 void ConfigureEncoder(VideoEncoderConfig config, |
| 95 size_t max_data_payload_length); | 95 size_t max_data_payload_length, |
| 96 bool nack_enabled); |
| 96 | 97 |
| 97 // Permanently stop encoding. After this method has returned, it is | 98 // Permanently stop encoding. After this method has returned, it is |
| 98 // guaranteed that no encoded frames will be delivered to the sink. | 99 // guaranteed that no encoded frames will be delivered to the sink. |
| 99 void Stop(); | 100 void Stop(); |
| 100 | 101 |
| 101 void SendKeyFrame(); | 102 void SendKeyFrame(); |
| 102 | 103 |
| 103 // virtual to test EncoderStateFeedback with mocks. | 104 // virtual to test EncoderStateFeedback with mocks. |
| 104 virtual void OnReceivedIntraFrameRequest(size_t stream_index); | 105 virtual void OnReceivedIntraFrameRequest(size_t stream_index); |
| 105 virtual void OnReceivedSLI(uint8_t picture_id); | 106 virtual void OnReceivedSLI(uint8_t picture_id); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 133 height(height), | 134 height(height), |
| 134 rotation(rotation), | 135 rotation(rotation), |
| 135 is_texture(is_texture) {} | 136 is_texture(is_texture) {} |
| 136 int width; | 137 int width; |
| 137 int height; | 138 int height; |
| 138 VideoRotation rotation; | 139 VideoRotation rotation; |
| 139 bool is_texture; | 140 bool is_texture; |
| 140 }; | 141 }; |
| 141 | 142 |
| 142 void ConfigureEncoderOnTaskQueue(VideoEncoderConfig config, | 143 void ConfigureEncoderOnTaskQueue(VideoEncoderConfig config, |
| 143 size_t max_data_payload_length); | 144 size_t max_data_payload_length, |
| 145 bool nack_enabled); |
| 144 void ReconfigureEncoder(); | 146 void ReconfigureEncoder(); |
| 145 | 147 |
| 146 // Implements VideoSinkInterface. | 148 // Implements VideoSinkInterface. |
| 147 void OnFrame(const VideoFrame& video_frame) override; | 149 void OnFrame(const VideoFrame& video_frame) override; |
| 148 | 150 |
| 149 // Implements VideoSendStatisticsCallback. | 151 // Implements VideoSendStatisticsCallback. |
| 150 void SendStatistics(uint32_t bit_rate, | 152 void SendStatistics(uint32_t bit_rate, |
| 151 uint32_t frame_rate) override; | 153 uint32_t frame_rate) override; |
| 152 | 154 |
| 153 void EncodeVideoFrame(const VideoFrame& frame, | 155 void EncodeVideoFrame(const VideoFrame& frame, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 VideoEncoderConfig encoder_config_ ACCESS_ON(&encoder_queue_); | 188 VideoEncoderConfig encoder_config_ ACCESS_ON(&encoder_queue_); |
| 187 std::unique_ptr<VideoBitrateAllocator> rate_allocator_ | 189 std::unique_ptr<VideoBitrateAllocator> rate_allocator_ |
| 188 ACCESS_ON(&encoder_queue_); | 190 ACCESS_ON(&encoder_queue_); |
| 189 | 191 |
| 190 // Set when ConfigureEncoder has been called in order to lazy reconfigure the | 192 // Set when ConfigureEncoder has been called in order to lazy reconfigure the |
| 191 // encoder on the next frame. | 193 // encoder on the next frame. |
| 192 bool pending_encoder_reconfiguration_ ACCESS_ON(&encoder_queue_); | 194 bool pending_encoder_reconfiguration_ ACCESS_ON(&encoder_queue_); |
| 193 rtc::Optional<VideoFrameInfo> last_frame_info_ ACCESS_ON(&encoder_queue_); | 195 rtc::Optional<VideoFrameInfo> last_frame_info_ ACCESS_ON(&encoder_queue_); |
| 194 uint32_t encoder_start_bitrate_bps_ ACCESS_ON(&encoder_queue_); | 196 uint32_t encoder_start_bitrate_bps_ ACCESS_ON(&encoder_queue_); |
| 195 size_t max_data_payload_length_ ACCESS_ON(&encoder_queue_); | 197 size_t max_data_payload_length_ ACCESS_ON(&encoder_queue_); |
| 198 bool nack_enabled_ ACCESS_ON(&encoder_queue_); |
| 196 uint32_t last_observed_bitrate_bps_ ACCESS_ON(&encoder_queue_); | 199 uint32_t last_observed_bitrate_bps_ ACCESS_ON(&encoder_queue_); |
| 197 bool encoder_paused_and_dropped_frame_ ACCESS_ON(&encoder_queue_); | 200 bool encoder_paused_and_dropped_frame_ ACCESS_ON(&encoder_queue_); |
| 198 bool has_received_sli_ ACCESS_ON(&encoder_queue_); | 201 bool has_received_sli_ ACCESS_ON(&encoder_queue_); |
| 199 uint8_t picture_id_sli_ ACCESS_ON(&encoder_queue_); | 202 uint8_t picture_id_sli_ ACCESS_ON(&encoder_queue_); |
| 200 bool has_received_rpsi_ ACCESS_ON(&encoder_queue_); | 203 bool has_received_rpsi_ ACCESS_ON(&encoder_queue_); |
| 201 uint64_t picture_id_rpsi_ ACCESS_ON(&encoder_queue_); | 204 uint64_t picture_id_rpsi_ ACCESS_ON(&encoder_queue_); |
| 202 Clock* const clock_; | 205 Clock* const clock_; |
| 203 | 206 |
| 204 VideoSendStream::DegradationPreference degradation_preference_ | 207 VideoSendStream::DegradationPreference degradation_preference_ |
| 205 ACCESS_ON(&encoder_queue_); | 208 ACCESS_ON(&encoder_queue_); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 229 // All public methods are proxied to |encoder_queue_|. It must must be | 232 // All public methods are proxied to |encoder_queue_|. It must must be |
| 230 // destroyed first to make sure no tasks are run that use other members. | 233 // destroyed first to make sure no tasks are run that use other members. |
| 231 rtc::TaskQueue encoder_queue_; | 234 rtc::TaskQueue encoder_queue_; |
| 232 | 235 |
| 233 RTC_DISALLOW_COPY_AND_ASSIGN(ViEEncoder); | 236 RTC_DISALLOW_COPY_AND_ASSIGN(ViEEncoder); |
| 234 }; | 237 }; |
| 235 | 238 |
| 236 } // namespace webrtc | 239 } // namespace webrtc |
| 237 | 240 |
| 238 #endif // WEBRTC_VIDEO_VIE_ENCODER_H_ | 241 #endif // WEBRTC_VIDEO_VIE_ENCODER_H_ |
| OLD | NEW |