diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-05 13:26:56 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-05 13:26:56 +0000 |
commit | 12a2c8ec2519bc87ddef551ca67d7dacc0992480 (patch) | |
tree | fa0832a15ff9ccd6d1ccfec440f536c4edc00dbf /webkit/media/buffered_data_source.h | |
parent | 88281950eed0e9fadba9d13fc68707068b5b5628 (diff) | |
download | chromium_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.h | 8 |
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_; |