diff options
author | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-27 21:16:58 +0000 |
---|---|---|
committer | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-27 21:16:58 +0000 |
commit | 950c3b3d1d0cb93b6ddcea6aaf9646b8842a5506 (patch) | |
tree | b7be9df58fb83a5fa54bab684de8379999ab3491 /media/webm/webm_cluster_parser.cc | |
parent | 3b693bdd1be9f78da6806fe58ea2aca4ee6f8fb8 (diff) | |
download | chromium_src-950c3b3d1d0cb93b6ddcea6aaf9646b8842a5506.zip chromium_src-950c3b3d1d0cb93b6ddcea6aaf9646b8842a5506.tar.gz chromium_src-950c3b3d1d0cb93b6ddcea6aaf9646b8842a5506.tar.bz2 |
Chrome-side implementation of media source timestamp offset
Adds functionality to signal an offset to be applied to the
buffers in ChunkDemuxer. Is not triggerable from Chrome yet.
BUG=139044
TEST=media_unittests
Review URL: https://chromiumcodereview.appspot.com/10803019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148810 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/webm/webm_cluster_parser.cc')
-rw-r--r-- | media/webm/webm_cluster_parser.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/media/webm/webm_cluster_parser.cc b/media/webm/webm_cluster_parser.cc index 14a360d..e9ef93e 100644 --- a/media/webm/webm_cluster_parser.cc +++ b/media/webm/webm_cluster_parser.cc @@ -43,6 +43,7 @@ WebMClusterParser::WebMClusterParser(int64 timecode_scale, block_duration_(-1), cluster_timecode_(-1), cluster_start_time_(kNoTimestamp()), + cluster_ended_(false), audio_(audio_track_num), video_(video_track_num) { CHECK_GE(video_encryption_key_id_size, 0); @@ -59,6 +60,7 @@ void WebMClusterParser::Reset() { last_block_timecode_ = -1; cluster_timecode_ = -1; cluster_start_time_ = kNoTimestamp(); + cluster_ended_ = false; parser_.Reset(); audio_.Reset(); video_.Reset(); @@ -70,10 +72,13 @@ int WebMClusterParser::Parse(const uint8* buf, int size) { int result = parser_.Parse(buf, size); - if (result <= 0) + if (result <= 0) { + cluster_ended_ = false; return result; + } - if (parser_.IsParsingComplete()) { + cluster_ended_ = parser_.IsParsingComplete(); + if (cluster_ended_) { // If there were no buffers in this cluster, set the cluster start time to // be the |cluster_timecode_|. if (cluster_start_time_ == kNoTimestamp()) { |