diff options
author | acolwell@chromium.org <acolwell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-26 16:38:03 +0000 |
---|---|---|
committer | acolwell@chromium.org <acolwell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-26 16:38:03 +0000 |
commit | a93866519172cc8993583d9116ce16eec01d532b (patch) | |
tree | e617d768783948cabd3e0363cfa6bfe45a6b4ee0 /media/webm/webm_stream_parser.cc | |
parent | 2b2d9393845b8bb60f843d14ab0b59c4bc3949db (diff) | |
download | chromium_src-a93866519172cc8993583d9116ce16eec01d532b.zip chromium_src-a93866519172cc8993583d9116ce16eec01d532b.tar.gz chromium_src-a93866519172cc8993583d9116ce16eec01d532b.tar.bz2 |
Add config change handling to SourceBufferStream & ChunkDemuxer
BUG=122913
TEST=None
Review URL: https://chromiumcodereview.appspot.com/10696182
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148563 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/webm/webm_stream_parser.cc')
-rw-r--r-- | media/webm/webm_stream_parser.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/media/webm/webm_stream_parser.cc b/media/webm/webm_stream_parser.cc index d141bfd..e9c8233 100644 --- a/media/webm/webm_stream_parser.cc +++ b/media/webm/webm_stream_parser.cc @@ -235,7 +235,8 @@ bool WebMStreamParser::Parse(const uint8* buf, int size) { int cur_size = 0; byte_queue_.Peek(&cur, &cur_size); - do { + while (cur_size > 0) { + State oldState = state_; switch (state_) { case kParsingHeaders: result = ParseInfoAndTracks(cur, cur_size); @@ -255,10 +256,14 @@ bool WebMStreamParser::Parse(const uint8* buf, int size) { return false; } + if (state_ == oldState && result == 0) + break; + + DCHECK_GE(result, 0); cur += result; cur_size -= result; bytes_parsed += result; - } while (result > 0 && cur_size > 0); + } byte_queue_.Pop(bytes_parsed); return true; |