#include "platform/graphics/media/MediaPlayer.h"
#include "public/platform/WebAudioSourceProviderClient.h"
#include "public/platform/WebMediaPlayerClient.h"
-#include "third_party/khronos/GLES2/gl2.h"
-#if OS(ANDROID)
-#include "third_party/skia/include/core/SkBitmap.h"
-#include "third_party/skia/include/core/SkRefCnt.h"
-#include "third_party/skia/include/gpu/GrTexture.h"
-#endif
#include "platform/weborigin/KURL.h"
#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
#include "wtf/ThreadingPrimitives.h"
-namespace WebCore {
-class AudioSourceProviderClient;
-class HTMLMediaElement;
-}
-
namespace blink {
+class AudioSourceProviderClient;
+class HTMLMediaElement;
class WebAudioSourceProvider;
class WebContentDecryptionModule;
class WebMediaPlayer;
-class WebGraphicsContext3D;
-// This class serves as a bridge between WebCore::MediaPlayer and
-// blink::WebMediaPlayer.
-class WebMediaPlayerClientImpl FINAL : public WebCore::MediaPlayer, public WebMediaPlayerClient {
+// This class serves as a bridge between MediaPlayer and
+// WebMediaPlayer.
+class WebMediaPlayerClientImpl FINAL : public MediaPlayer, public WebMediaPlayerClient {
public:
- static PassOwnPtr<WebCore::MediaPlayer> create(WebCore::MediaPlayerClient*);
+ static PassOwnPtr<MediaPlayer> create(MediaPlayerClient*);
virtual ~WebMediaPlayerClientImpl();
virtual void repaint() OVERRIDE;
virtual void durationChanged() OVERRIDE;
virtual void sizeChanged() OVERRIDE;
- virtual double volume() const OVERRIDE;
virtual void playbackStateChanged() OVERRIDE;
- virtual WebMediaPlayer::Preload preload() const OVERRIDE;
// WebEncryptedMediaPlayerClient methods:
virtual void keyAdded(const WebString& keySystem, const WebString& sessionId) OVERRIDE;
// MediaPlayer methods:
virtual WebMediaPlayer* webMediaPlayer() const OVERRIDE;
virtual void load(WebMediaPlayer::LoadType, const WTF::String& url, WebMediaPlayer::CORSMode) OVERRIDE;
- virtual void play() OVERRIDE;
- virtual void pause() OVERRIDE;
- virtual bool supportsSave() const OVERRIDE;
- virtual double duration() const OVERRIDE;
- virtual double currentTime() const OVERRIDE;
- virtual void seek(double time) OVERRIDE;
- virtual bool seeking() const OVERRIDE;
- virtual double rate() const OVERRIDE;
- virtual void setRate(double) OVERRIDE;
- virtual bool paused() const OVERRIDE;
- virtual void setPoster(const WebCore::KURL&) OVERRIDE;
- virtual WebCore::MediaPlayer::NetworkState networkState() const OVERRIDE;
- virtual double maxTimeSeekable() const OVERRIDE;
- virtual WTF::PassRefPtr<WebCore::TimeRanges> buffered() const OVERRIDE;
- virtual bool didLoadingProgress() const OVERRIDE;
- virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&) OVERRIDE;
- virtual bool copyVideoTextureToPlatformTexture(WebGraphicsContext3D*, Platform3DObject texture, GLint level, GLenum type, GLenum internalFormat, bool premultiplyAlpha, bool flipY) OVERRIDE;
- virtual void setPreload(WebCore::MediaPlayer::Preload) OVERRIDE;
- virtual bool hasSingleSecurityOrigin() const OVERRIDE;
- virtual double mediaTimeForTimeValue(double timeValue) const OVERRIDE;
+ virtual void setPreload(MediaPlayer::Preload) OVERRIDE;
#if ENABLE(WEB_AUDIO)
- virtual WebCore::AudioSourceProvider* audioSourceProvider() OVERRIDE;
+ virtual AudioSourceProvider* audioSourceProvider() OVERRIDE;
#endif
private:
- explicit WebMediaPlayerClientImpl(WebCore::MediaPlayerClient*);
+ explicit WebMediaPlayerClientImpl(MediaPlayerClient*);
- WebCore::HTMLMediaElement& mediaElement() const;
+ HTMLMediaElement& mediaElement() const;
- WebCore::MediaPlayerClient* m_client;
+ MediaPlayerClient* m_client;
OwnPtr<WebMediaPlayer> m_webMediaPlayer;
- WebCore::MediaPlayer::Preload m_preload;
- double m_rate;
-
-#if OS(ANDROID)
- // FIXME: This path "only works" on Android. It is a workaround for the problem that Skia could not handle Android's GL_TEXTURE_EXTERNAL_OES
- // texture internally. It should be removed and replaced by the normal paint path.
- // https://code.google.com/p/skia/issues/detail?id=1189
- void paintOnAndroid(WebCore::GraphicsContext*, const WebCore::IntRect&, uint8_t alpha);
- SkBitmap m_bitmap;
- bool m_usePaintOnAndroid;
-#endif
#if ENABLE(WEB_AUDIO)
// AudioClientImpl wraps an AudioSourceProviderClient.
// When the audio format is known, Chromium calls setFormat() which then dispatches into WebCore.
- class AudioClientImpl FINAL : public blink::WebAudioSourceProviderClient {
+ class AudioClientImpl FINAL : public NoBaseWillBeGarbageCollectedFinalized<AudioClientImpl>, public WebAudioSourceProviderClient {
public:
- AudioClientImpl(WebCore::AudioSourceProviderClient* client)
+ explicit AudioClientImpl(AudioSourceProviderClient* client)
: m_client(client)
{
}
// WebAudioSourceProviderClient
virtual void setFormat(size_t numberOfChannels, float sampleRate) OVERRIDE;
+ void trace(Visitor*);
+
private:
- WebCore::AudioSourceProviderClient* m_client;
+ RawPtrWillBeMember<AudioSourceProviderClient> m_client;
};
// AudioSourceProviderImpl wraps a WebAudioSourceProvider.
// provideInput() calls into Chromium to get a rendered audio stream.
- class AudioSourceProviderImpl FINAL : public WebCore::AudioSourceProvider {
+ class AudioSourceProviderImpl FINAL : public AudioSourceProvider {
public:
AudioSourceProviderImpl()
: m_webAudioSourceProvider(0)
// Wraps the given WebAudioSourceProvider.
void wrap(WebAudioSourceProvider*);
- // WebCore::AudioSourceProvider
- virtual void setClient(WebCore::AudioSourceProviderClient*) OVERRIDE;
- virtual void provideInput(WebCore::AudioBus*, size_t framesToProcess) OVERRIDE;
+ // AudioSourceProvider
+ virtual void setClient(AudioSourceProviderClient*) OVERRIDE;
+ virtual void provideInput(AudioBus*, size_t framesToProcess) OVERRIDE;
private:
WebAudioSourceProvider* m_webAudioSourceProvider;
- OwnPtr<AudioClientImpl> m_client;
+ OwnPtrWillBePersistent<AudioClientImpl> m_client;
Mutex provideInputLock;
};