OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/filters/source_buffer_stream.h" | 5 #include "media/filters/source_buffer_stream.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 947 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
958 // position. | 958 // position. |
959 // TODO(acolwell): Figure out a more elegant way to do this. | 959 // TODO(acolwell): Figure out a more elegant way to do this. |
960 SeekAndSetSelectedRange(*range_for_next_append_, seek_timestamp); | 960 SeekAndSetSelectedRange(*range_for_next_append_, seek_timestamp); |
961 temporarily_select_range = true; | 961 temporarily_select_range = true; |
962 } | 962 } |
963 } | 963 } |
964 | 964 |
965 // Handle splices between the existing buffers and the new buffers. If a | 965 // Handle splices between the existing buffers and the new buffers. If a |
966 // splice is generated the timestamp and duration of the first buffer in | 966 // splice is generated the timestamp and duration of the first buffer in |
967 // |new_buffers| will be modified. | 967 // |new_buffers| will be modified. |
968 // TODO(dalecurtis): Disabled until issues 356073, 356545 are fixed. | 968 GenerateSpliceFrame(new_buffers); |
969 // GenerateSpliceFrame(new_buffers); | |
970 | 969 |
971 base::TimeDelta prev_timestamp = last_appended_buffer_timestamp_; | 970 base::TimeDelta prev_timestamp = last_appended_buffer_timestamp_; |
972 bool prev_is_keyframe = last_appended_buffer_is_keyframe_; | 971 bool prev_is_keyframe = last_appended_buffer_is_keyframe_; |
973 base::TimeDelta next_timestamp = new_buffers.front()->GetDecodeTimestamp(); | 972 base::TimeDelta next_timestamp = new_buffers.front()->GetDecodeTimestamp(); |
974 bool next_is_keyframe = new_buffers.front()->IsKeyframe(); | 973 bool next_is_keyframe = new_buffers.front()->IsKeyframe(); |
975 | 974 |
976 if (prev_timestamp != kNoTimestamp() && prev_timestamp != next_timestamp) { | 975 if (prev_timestamp != kNoTimestamp() && prev_timestamp != next_timestamp) { |
977 // Clean up the old buffers between the last appended buffer and the | 976 // Clean up the old buffers between the last appended buffer and the |
978 // beginning of |new_buffers|. | 977 // beginning of |new_buffers|. |
979 RemoveInternal(prev_timestamp, next_timestamp, true, deleted_buffers); | 978 RemoveInternal(prev_timestamp, next_timestamp, true, deleted_buffers); |
(...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2182 if (buffer->end_of_stream() || buffer->timestamp() >= end) | 2181 if (buffer->end_of_stream() || buffer->timestamp() >= end) |
2183 break; | 2182 break; |
2184 if (buffer->timestamp() + buffer->duration() <= start) | 2183 if (buffer->timestamp() + buffer->duration() <= start) |
2185 continue; | 2184 continue; |
2186 buffers->push_back(buffer); | 2185 buffers->push_back(buffer); |
2187 } | 2186 } |
2188 return previous_size < buffers->size(); | 2187 return previous_size < buffers->size(); |
2189 } | 2188 } |
2190 | 2189 |
2191 } // namespace media | 2190 } // namespace media |
OLD | NEW |