summaryrefslogtreecommitdiffstats
path: root/webkit/media/buffered_data_source.h
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-05 13:26:56 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-05 13:26:56 +0000
commit12a2c8ec2519bc87ddef551ca67d7dacc0992480 (patch)
treefa0832a15ff9ccd6d1ccfec440f536c4edc00dbf /webkit/media/buffered_data_source.h
parent88281950eed0e9fadba9d13fc68707068b5b5628 (diff)
downloadchromium_src-12a2c8ec2519bc87ddef551ca67d7dacc0992480.zip
chromium_src-12a2c8ec2519bc87ddef551ca67d7dacc0992480.tar.gz
chromium_src-12a2c8ec2519bc87ddef551ca67d7dacc0992480.tar.bz2
Report buffered byte ranges even when they are buffered before DataSource::set_host() is called.
Otherwise if the resource loaded before FFmpegDemuxer::InitializeTask() ran, any bytes that were already buffered would never be reported to the Pipeline. BUG=145141 Review URL: https://chromiumcodereview.appspot.com/10905012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154947 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/media/buffered_data_source.h')
-rw-r--r--webkit/media/buffered_data_source.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/webkit/media/buffered_data_source.h b/webkit/media/buffered_data_source.h
index 91e1178..45666fd 100644
--- a/webkit/media/buffered_data_source.h
+++ b/webkit/media/buffered_data_source.h
@@ -12,6 +12,7 @@
#include "base/synchronization/lock.h"
#include "googleurl/src/gurl.h"
#include "media/base/data_source.h"
+#include "media/base/ranges.h"
#include "webkit/media/buffered_resource_loader.h"
#include "webkit/media/preload.h"
@@ -129,6 +130,10 @@ class BufferedDataSource : public media::DataSource {
void LoadingStateChangedCallback(BufferedResourceLoader::LoadingState state);
void ProgressCallback(int64 position);
+ // Report a buffered byte range [start,end] or queue it for later
+ // reporting if set_host() hasn't been called yet.
+ void ReportOrQueueBufferedBytes(int64 start, int64 end);
+
void UpdateHostState_Locked();
// URL of the resource requested.
@@ -210,6 +215,9 @@ class BufferedDataSource : public media::DataSource {
// Current playback rate.
float playback_rate_;
+ // Buffered byte ranges awaiting set_host() being called to report to host().
+ media::Ranges<int64> queued_buffered_byte_ranges_;
+
scoped_refptr<media::MediaLog> media_log_;
DownloadingCB downloading_cb_;