summaryrefslogtreecommitdiffstats
path: root/webkit/api
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-29 21:49:49 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-29 21:49:49 +0000
commit38259a7a83545e07681d921564468844c7b03337 (patch)
treeceddb850f76be8ee565d9cc2d3d34d7ae445a1d7 /webkit/api
parent6b33da129646087bbc173a72c84e0690e91740de (diff)
downloadchromium_src-38259a7a83545e07681d921564468844c7b03337.zip
chromium_src-38259a7a83545e07681d921564468844c7b03337.tar.gz
chromium_src-38259a7a83545e07681d921564468844c7b03337.tar.bz2
BufferedDataSource to support server without range request support
This patch will enable BufferedDataSource to support servers with no range request support. It will start a probe request of 1 byte size besides the regular request. If the server does not support range request, we will turn on the is_streamed flag of FFmpeg and will not do any seeking. BUG=17628 TEST=test_shell_tests --gtest_filter=BufferedDataSource.* Review URL: http://codereview.chromium.org/160076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21999 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/api')
-rw-r--r--webkit/api/public/WebMediaPlayer.h10
-rw-r--r--webkit/api/src/WebMediaPlayerClientImpl.cpp28
-rw-r--r--webkit/api/src/WebMediaPlayerClientImpl.h2
3 files changed, 40 insertions, 0 deletions
diff --git a/webkit/api/public/WebMediaPlayer.h b/webkit/api/public/WebMediaPlayer.h
index 8b60c77..56bc967 100644
--- a/webkit/api/public/WebMediaPlayer.h
+++ b/webkit/api/public/WebMediaPlayer.h
@@ -59,6 +59,13 @@ namespace WebKit {
HaveEnoughData,
};
+ enum MovieLoadType{
+ Unknown,
+ Download,
+ StoredStream,
+ LiveStream,
+ };
+
virtual ~WebMediaPlayer() {}
virtual void load(const WebURL&) = 0;
@@ -104,6 +111,9 @@ namespace WebKit {
virtual unsigned long long bytesLoaded() const = 0;
virtual unsigned long long totalBytes() const = 0;
+
+ virtual bool hasSingleSecurityOrigin() const = 0;
+ virtual MovieLoadType movieLoadType() const = 0;
};
} // namespace WebKit
diff --git a/webkit/api/src/WebMediaPlayerClientImpl.cpp b/webkit/api/src/WebMediaPlayerClientImpl.cpp
index d26bd16..884d45b 100644
--- a/webkit/api/src/WebMediaPlayerClientImpl.cpp
+++ b/webkit/api/src/WebMediaPlayerClientImpl.cpp
@@ -361,6 +361,34 @@ void WebMediaPlayerClientImpl::setAutobuffer(bool autoBuffer)
m_webMediaPlayer->setAutoBuffer(autoBuffer);
}
+bool WebMediaPlayerClientImpl::hasSingleSecurityOrigin() const
+{
+ if (m_webMediaPlayer.get())
+ return m_webMediaPlayer->hasSingleSecurityOrigin();
+ return false;
+}
+
+MediaPlayer::MovieLoadType WebMediaPlayerClientImpl::movieLoadType() const
+{
+ COMPILE_ASSERT(
+ int(WebMediaPlayer::Unknown) == int(MediaPlayer::Unknown),
+ Unknown);
+ COMPILE_ASSERT(
+ int(WebMediaPlayer::Download) == int(MediaPlayer::Download),
+ Download);
+ COMPILE_ASSERT(
+ int(WebMediaPlayer::StoredStream) == int(MediaPlayer::StoredStream),
+ StoredStream);
+ COMPILE_ASSERT(
+ int(WebMediaPlayer::LiveStream) == int(MediaPlayer::LiveStream),
+ LiveStream);
+
+ if (m_webMediaPlayer.get())
+ return static_cast<MediaPlayer::MovieLoadType>(
+ m_webMediaPlayer->movieLoadType());
+ return MediaPlayer::Unknown;
+}
+
MediaPlayerPrivateInterface* WebMediaPlayerClientImpl::create(MediaPlayer* player)
{
WebMediaPlayerClientImpl* client = new WebMediaPlayerClientImpl();
diff --git a/webkit/api/src/WebMediaPlayerClientImpl.h b/webkit/api/src/WebMediaPlayerClientImpl.h
index d758276..721073c 100644
--- a/webkit/api/src/WebMediaPlayerClientImpl.h
+++ b/webkit/api/src/WebMediaPlayerClientImpl.h
@@ -90,6 +90,8 @@ namespace WebKit {
virtual unsigned bytesLoaded() const;
virtual void setSize(const WebCore::IntSize&);
virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&);
+ virtual bool hasSingleSecurityOrigin() const;
+ virtual WebCore::MediaPlayer::MovieLoadType movieLoadType() const;
private:
WebMediaPlayerClientImpl();