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

Unified Diff: webrtc/video/vie_encoder.cc

Issue 2493893003: Turn off error resilience for vp8 for no temporal layers if nack is enabled. (Closed)
Patch Set: address comments Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/video/vie_encoder.h ('k') | webrtc/video/vie_encoder_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/vie_encoder.cc
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc
index 2c9c6799e8c4456e5bfd7e8ca1dfc2e4acbe5e64..c2598f48a9079a9a103ab1f5cf66216997132ffc 100644
--- a/webrtc/video/vie_encoder.cc
+++ b/webrtc/video/vie_encoder.cc
@@ -52,21 +52,24 @@ class ViEEncoder::ConfigureEncoderTask : public rtc::QueuedTask {
public:
ConfigureEncoderTask(ViEEncoder* vie_encoder,
VideoEncoderConfig config,
- size_t max_data_payload_length)
+ size_t max_data_payload_length,
+ bool nack_enabled)
: vie_encoder_(vie_encoder),
config_(std::move(config)),
- max_data_payload_length_(max_data_payload_length) {}
+ max_data_payload_length_(max_data_payload_length),
+ nack_enabled_(nack_enabled) {}
private:
bool Run() override {
- vie_encoder_->ConfigureEncoderOnTaskQueue(std::move(config_),
- max_data_payload_length_);
+ vie_encoder_->ConfigureEncoderOnTaskQueue(
+ std::move(config_), max_data_payload_length_, nack_enabled_);
return true;
}
ViEEncoder* const vie_encoder_;
VideoEncoderConfig config_;
size_t max_data_payload_length_;
+ bool nack_enabled_;
};
class ViEEncoder::EncodeTask : public rtc::QueuedTask {
@@ -246,6 +249,7 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores,
pending_encoder_reconfiguration_(false),
encoder_start_bitrate_bps_(0),
max_data_payload_length_(0),
+ nack_enabled_(false),
last_observed_bitrate_bps_(0),
encoder_paused_and_dropped_frame_(false),
has_received_sli_(false),
@@ -344,19 +348,22 @@ void ViEEncoder::SetStartBitrate(int start_bitrate_bps) {
}
void ViEEncoder::ConfigureEncoder(VideoEncoderConfig config,
- size_t max_data_payload_length) {
+ size_t max_data_payload_length,
+ bool nack_enabled) {
encoder_queue_.PostTask(
std::unique_ptr<rtc::QueuedTask>(new ConfigureEncoderTask(
- this, std::move(config), max_data_payload_length)));
+ this, std::move(config), max_data_payload_length, nack_enabled)));
}
void ViEEncoder::ConfigureEncoderOnTaskQueue(VideoEncoderConfig config,
- size_t max_data_payload_length) {
+ size_t max_data_payload_length,
+ bool nack_enabled) {
RTC_DCHECK_RUN_ON(&encoder_queue_);
RTC_DCHECK(sink_);
LOG(LS_INFO) << "ConfigureEncoder requested.";
max_data_payload_length_ = max_data_payload_length;
+ nack_enabled_ = nack_enabled;
encoder_config_ = std::move(config);
pending_encoder_reconfiguration_ = true;
@@ -382,7 +389,8 @@ void ViEEncoder::ReconfigureEncoder() {
VideoCodec codec;
if (!VideoCodecInitializer::SetupCodec(encoder_config_, settings_, streams,
- &codec, &rate_allocator_)) {
+ nack_enabled_, &codec,
+ &rate_allocator_)) {
LOG(LS_ERROR) << "Failed to create encoder configuration.";
}
« no previous file with comments | « webrtc/video/vie_encoder.h ('k') | webrtc/video/vie_encoder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698