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 #include <sstream> | 9 #include <sstream> |
10 | 10 |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
232 DVLOG(1) << __FUNCTION__ << " " << GetStreamTypeName() << ": buffers dts=[" | 232 DVLOG(1) << __FUNCTION__ << " " << GetStreamTypeName() << ": buffers dts=[" |
233 << buffers.front()->GetDecodeTimestamp().InSecondsF() << ";" | 233 << buffers.front()->GetDecodeTimestamp().InSecondsF() << ";" |
234 << buffers.back()->GetDecodeTimestamp().InSecondsF() << "] pts=[" | 234 << buffers.back()->GetDecodeTimestamp().InSecondsF() << "] pts=[" |
235 << buffers.front()->timestamp().InSecondsF() << ";" | 235 << buffers.front()->timestamp().InSecondsF() << ";" |
236 << buffers.back()->timestamp().InSecondsF() << "(last frame dur=" | 236 << buffers.back()->timestamp().InSecondsF() << "(last frame dur=" |
237 << buffers.back()->duration().InSecondsF() << ")]"; | 237 << buffers.back()->duration().InSecondsF() << ")]"; |
238 | 238 |
239 // New media segments must begin with a keyframe. | 239 // New media segments must begin with a keyframe. |
240 // TODO(wolenetz): Relax this requirement. See http://crbug.com/229412. | 240 // TODO(wolenetz): Relax this requirement. See http://crbug.com/229412. |
241 if (new_media_segment_ && !buffers.front()->is_key_frame()) { | 241 if (new_media_segment_ && !buffers.front()->is_key_frame()) { |
242 MEDIA_LOG(ERROR, media_log_) | 242 MEDIA_LOG(ERROR, media_log_) << "Media segment did not begin with key " |
243 << "Media segment did not begin with key frame."; | 243 "frame. Current lack of support for this " |
ddorwin
2015/07/20 21:37:38
nit: The following makes the second sentence more
wolenetz
2015/07/20 21:56:19
Done.
| |
244 "is a known issue. Please see " | |
245 "https://crbug.com/229412."; | |
244 return false; | 246 return false; |
245 } | 247 } |
246 | 248 |
247 // Buffers within a media segment should be monotonically increasing. | 249 // Buffers within a media segment should be monotonically increasing. |
248 if (!IsMonotonicallyIncreasing(buffers)) | 250 if (!IsMonotonicallyIncreasing(buffers)) |
249 return false; | 251 return false; |
250 | 252 |
251 if (media_segment_start_time_ < DecodeTimestamp() || | 253 if (media_segment_start_time_ < DecodeTimestamp() || |
252 buffers.front()->GetDecodeTimestamp() < DecodeTimestamp()) { | 254 buffers.front()->GetDecodeTimestamp() < DecodeTimestamp()) { |
253 MEDIA_LOG(ERROR, media_log_) | 255 MEDIA_LOG(ERROR, media_log_) |
(...skipping 1396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1650 return false; | 1652 return false; |
1651 | 1653 |
1652 DCHECK_NE(have_splice_buffers, have_preroll_buffer); | 1654 DCHECK_NE(have_splice_buffers, have_preroll_buffer); |
1653 splice_buffers_index_ = 0; | 1655 splice_buffers_index_ = 0; |
1654 pending_buffer_.swap(*out_buffer); | 1656 pending_buffer_.swap(*out_buffer); |
1655 pending_buffers_complete_ = false; | 1657 pending_buffers_complete_ = false; |
1656 return true; | 1658 return true; |
1657 } | 1659 } |
1658 | 1660 |
1659 } // namespace media | 1661 } // namespace media |
OLD | NEW |