Index: media/filters/source_buffer_stream.cc |
diff --git a/media/filters/source_buffer_stream.cc b/media/filters/source_buffer_stream.cc |
index 3f1b42d82662bc262607896ee3c1daa15e58e157..f50a397aa0be608704a910b536414967af589ab6 100644 |
--- a/media/filters/source_buffer_stream.cc |
+++ b/media/filters/source_buffer_stream.cc |
@@ -1498,8 +1498,13 @@ void SourceBufferRange::AppendRangeToEnd(const SourceBufferRange& range, |
DCHECK(CanAppendRangeToEnd(range)); |
DCHECK(!buffers_.empty()); |
- if (transfer_current_position) |
- next_buffer_index_ = range.next_buffer_index_ + buffers_.size(); |
+ if (transfer_current_position) { |
+ if (range.next_buffer_index_ >= 0) |
scherkus (not reviewing)
2013/01/07 23:34:06
aside from not updating w_f_k_/n_k_t_, was there a
acolwell GONE FROM CHROMIUM
2013/01/08 00:46:39
The test exposes both problems. When waiting_for_k
|
+ next_buffer_index_ = range.next_buffer_index_ + buffers_.size(); |
+ |
+ waiting_for_keyframe_ = range.waiting_for_keyframe_; |
+ next_keyframe_timestamp_ = range.next_keyframe_timestamp_; |
+ } |
AppendBuffersToEnd(range.buffers_); |
} |