Chromium Code Reviews| Index: media/filters/chunk_demuxer.cc |
| diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc |
| index 6322f5a97b99e91e8797eff90a6403869019bcb1..981595a0da4253e8c51ea451f278e96cf26ae99e 100644 |
| --- a/media/filters/chunk_demuxer.cc |
| +++ b/media/filters/chunk_demuxer.cc |
| @@ -181,6 +181,9 @@ class ChunkDemuxerStream : public DemuxerStream { |
| // Returns true if buffers were successfully added. |
| bool Append(const StreamParser::BufferQueue& buffers); |
| + // Signal to the stream that duration has changed to |duration|. |
| + void OnSetDuration(base::TimeDelta duration); |
| + |
| // Returns the range of buffered data in this stream, capped at |duration|. |
| Ranges<TimeDelta> GetBufferedRanges(base::TimeDelta duration) const; |
| @@ -335,6 +338,11 @@ bool ChunkDemuxerStream::Append(const StreamParser::BufferQueue& buffers) { |
| return true; |
| } |
| +void ChunkDemuxerStream::OnSetDuration(base::TimeDelta duration) { |
| + base::AutoLock auto_lock(lock_); |
| + stream_->OnSetDuration(duration); |
| +} |
| + |
| Ranges<TimeDelta> ChunkDemuxerStream::GetBufferedRanges( |
| base::TimeDelta duration) const { |
| base::AutoLock auto_lock(lock_); |
| @@ -824,6 +832,18 @@ void ChunkDemuxer::Abort(const std::string& id) { |
| stream_parser_map_[id]->Flush(); |
| } |
| +void ChunkDemuxer::SetDuration(base::TimeDelta duration) { |
| + DVLOG(1) << "SetDuration(" << duration.InSecondsF() << ")"; |
| + |
| + UpdateDuration(duration); |
|
acolwell GONE FROM CHROMIUM
2012/08/24 18:19:10
I think you need a
if(duration != duration_)
re
vrk (LEFT CHROMIUM)
2012/08/28 00:03:22
Did == instead :)
|
| + |
| + if (audio_) |
| + audio_->OnSetDuration(duration); |
| + |
| + if (video_) |
| + video_->OnSetDuration(duration); |
| +} |
| + |
| bool ChunkDemuxer::SetTimestampOffset(const std::string& id, TimeDelta offset) { |
| DVLOG(1) << "SetTimestampOffset(" << id << ", " << offset.InSecondsF() << ")"; |
| CHECK(IsValidId(id)); |