| Index: media/filters/chunk_demuxer.cc | 
| diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc | 
| index 49836a129e580d085c1ca956ac27d7c5ac3bea90..e7525b4191891c5b1c34d53b023cffb21eb9f611 100644 | 
| --- a/media/filters/chunk_demuxer.cc | 
| +++ b/media/filters/chunk_demuxer.cc | 
| @@ -157,6 +157,10 @@ Ranges<TimeDelta> ChunkDemuxerStream::GetBufferedRanges( | 
| return range.IntersectionWith(valid_time_range); | 
| } | 
|  | 
| +TimeDelta ChunkDemuxerStream::GetHighestPresentationTimestamp() const { | 
| +  return stream_->GetHighestPresentationTimestamp(); | 
| +} | 
| + | 
| TimeDelta ChunkDemuxerStream::GetBufferedDuration() const { | 
| return stream_->GetBufferedDuration(); | 
| } | 
| @@ -593,6 +597,17 @@ Ranges<TimeDelta> ChunkDemuxer::GetBufferedRanges(const std::string& id) const { | 
| return itr->second->GetBufferedRanges(duration_, state_ == ENDED); | 
| } | 
|  | 
| +base::TimeDelta ChunkDemuxer::GetHighestPresentationTimestamp( | 
| +    const std::string& id) const { | 
| +  base::AutoLock auto_lock(lock_); | 
| +  DCHECK(!id.empty()); | 
| + | 
| +  MediaSourceStateMap::const_iterator itr = source_state_map_.find(id); | 
| + | 
| +  DCHECK(itr != source_state_map_.end()); | 
| +  return itr->second->GetHighestPresentationTimestamp(); | 
| +} | 
| + | 
| bool ChunkDemuxer::EvictCodedFrames(const std::string& id, | 
| base::TimeDelta currentMediaTime, | 
| size_t newDataSize) { | 
|  |