Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Unified Diff: media/webm/webm_stream_parser.cc

Issue 10803019: Chrome-side implementation of media source timestamp offset (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/webm/webm_stream_parser.cc
diff --git a/media/webm/webm_stream_parser.cc b/media/webm/webm_stream_parser.cc
index 602d22787c341b9603d49f317345678dc5f78320..5af622b8239325aafce1719438edfe4e1f381980 100644
--- a/media/webm/webm_stream_parser.cc
+++ b/media/webm/webm_stream_parser.cc
@@ -264,6 +264,14 @@ bool WebMStreamParser::Parse(const uint8* buf, int size) {
return true;
}
+void WebMStreamParser::SetTimestampOffset(base::TimeDelta offset) {
+ timestamp_offset_ = offset;
+}
+
+void WebMStreamParser::ClearTimestampOffset() {
+ SetTimestampOffset(base::TimeDelta());
+}
+
void WebMStreamParser::ChangeState(State new_state) {
DVLOG(1) << "ChangeState() : " << state_ << " -> " << new_state;
state_ = new_state;
@@ -385,9 +393,14 @@ int WebMStreamParser::ParseCluster(const uint8* data, int size) {
if (result <= 0)
return result;
- if (id == kWebMIdCluster)
+ if (id == kWebMIdCluster) {
waiting_for_buffers_ = true;
+ // Wait until the beginning of a new cluster to set the buffer timestamp
+ // offset.
+ cluster_parser_->SetTimestampOffset(timestamp_offset_);
+ }
+
if (id == kWebMIdCues) {
if (size < (result + element_size)) {
// We don't have the whole element yet. Signal we need more data.

Powered by Google App Engine
This is Rietveld 408576698