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

Unified Diff: webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc

Issue 2978743002: Fix potential incorrect sync flags used with screenshare TL stream. (Closed)
Patch Set: test case, plus frame config constructor fixes Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc
diff --git a/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc b/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc
index 8a33205d30b5c74af0ef8e837179935f7767311b..397e005cbe0f12442b20caa69ceda8fb60b33f46 100644
--- a/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc
+++ b/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc
@@ -152,11 +152,17 @@ TemporalLayers::FrameConfig ScreenshareLayers::UpdateLayerConfig(
last_emitted_tl0_timestamp_ = unwrapped_timestamp;
break;
case 1:
- if (TimeToSync(unwrapped_timestamp)) {
- last_sync_timestamp_ = unwrapped_timestamp;
- layer_state = TemporalLayerState::kTl1Sync;
+ if (layers_[1].state != TemporalLayer::State::kDropped) {
+ if (TimeToSync(unwrapped_timestamp)) {
+ last_sync_timestamp_ = unwrapped_timestamp;
+ layer_state = TemporalLayerState::kTl1Sync;
+ } else {
+ layer_state = TemporalLayerState::kTl1;
+ }
} else {
- layer_state = TemporalLayerState::kTl1;
+ layer_state = last_sync_timestamp_ == unwrapped_timestamp
+ ? TemporalLayerState::kTl1Sync
+ : TemporalLayerState::kTl1;
}
break;
case -1:

Powered by Google App Engine
This is Rietveld 408576698