Chromium Code Reviews| Index: media/filters/chunk_demuxer.cc |
| diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc |
| index d3f532cc9fbb13a601ec18ef57ccef79ed50a859..fe3dc460804e54c6e19e7afc960357288f1d6187 100644 |
| --- a/media/filters/chunk_demuxer.cc |
| +++ b/media/filters/chunk_demuxer.cc |
| @@ -15,6 +15,9 @@ |
| namespace media { |
| +// TODO(acolwell): Remove this when fixing http://crbug.com/122909 . |
| +const char* kDefaultSourceType = "video/webm; codecs=\"vp8, vorbis\""; |
| + |
| // Create an "end of stream" buffer. |
| static Buffer* CreateEOSBuffer() { |
| return new DataBuffer(0); |
| @@ -455,10 +458,40 @@ void ChunkDemuxer::FlushData() { |
| ChangeState_Locked(INITIALIZED); |
| } |
| -bool ChunkDemuxer::AppendData(const uint8* data, size_t length) { |
| - DVLOG(1) << "AppendData(" << length << ")"; |
| +ChunkDemuxer::Status ChunkDemuxer::AddId(const std::string& id, |
| + const std::string& type) { |
| + // TODO(acolwell): Proper mimetype decoding and support for more than one ID |
| + // will be added as part of http://crbug.com/122909 |
| + if (type != kDefaultSourceType) |
| + return kNotSupported; |
| + |
| + if (!source_id_.empty()) |
| + return kReachedIdLimit; |
| + |
| + source_id_ = id; |
| + return kOk; |
| +} |
| + |
| +bool ChunkDemuxer::RemoveId(const std::string& id) { |
| + DCHECK(!source_id_.empty()); |
| + DCHECK_EQ(source_id_, id); |
| + source_id_ = ""; |
| + return true; |
| +} |
| + |
| +bool ChunkDemuxer::AppendData(const std::string& id, |
| + const uint8* data, |
| + size_t length) { |
| + DVLOG(1) << "AppendData(" << id << ", " << length << ")"; |
| + |
| + // TODO(acolwell): Remove when http://webk.it/83788 fix lands. |
| + if (source_id_.empty()) |
| + AddId(id, kDefaultSourceType); |
| + |
| + DCHECK(!source_id_.empty()); |
| + DCHECK_EQ(source_id_, id); |
| - if (!data || length == 0u) |
| + if (id.empty() || !data || length == 0u) |
| return false; |
|
scherkus (not reviewing)
2012/04/23 19:24:17
documentation states false is returned when in an
acolwell GONE FROM CHROMIUM
2012/04/23 22:15:23
Done.
|
| int64 buffered_bytes = 0; |