summaryrefslogtreecommitdiffstats
path: root/media/player
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-14 17:34:43 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-14 17:34:43 +0000
commit21f41240a85fbbb7f2048ac812154889c982b280 (patch)
treeb2cb97a2471a663b32cdedb157746a04f1be3f69 /media/player
parent354e2cfc4fdcac9cecc2d7eac369968de24d128b (diff)
downloadchromium_src-21f41240a85fbbb7f2048ac812154889c982b280.zip
chromium_src-21f41240a85fbbb7f2048ac812154889c982b280.tar.gz
chromium_src-21f41240a85fbbb7f2048ac812154889c982b280.tar.bz2
Change WtlVideoRenderer to use VideoThread as opposed to VideoRendererBase.
Review URL: http://codereview.chromium.org/113361 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16066 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/player')
-rw-r--r--media/player/wtl_renderer.cc24
-rw-r--r--media/player/wtl_renderer.h18
2 files changed, 26 insertions, 16 deletions
diff --git a/media/player/wtl_renderer.cc b/media/player/wtl_renderer.cc
index 20056d3..45b380b 100644
--- a/media/player/wtl_renderer.cc
+++ b/media/player/wtl_renderer.cc
@@ -9,16 +9,26 @@ WtlVideoRenderer::WtlVideoRenderer(WtlVideoWindow* window)
: window_(window) {
}
-bool WtlVideoRenderer::OnInitialize(size_t width, size_t height) {
+WtlVideoRenderer::~WtlVideoRenderer() {
+}
+
+// static
+bool WtlVideoRenderer::IsMediaFormatSupported(
+ const media::MediaFormat& media_format) {
+ int width = 0;
+ int height = 0;
+ return ParseMediaFormat(media_format, &width, &height);
+}
+
+bool WtlVideoRenderer::OnInitialize(media::VideoDecoder* decoder) {
+ int width = 0;
+ int height = 0;
+ if (!ParseMediaFormat(decoder->media_format(), &width, &height))
+ return false;
window_->SetSize(width, height);
return true;
}
-void WtlVideoRenderer::OnPaintNeeded() {
+void WtlVideoRenderer::OnFrameAvailable() {
window_->Invalidate();
}
-
-void WtlVideoRenderer::GetCurrentFrame(
- scoped_refptr<media::VideoFrame>* frame_out) {
- return media::VideoRendererBase::GetCurrentFrame(frame_out);
-}
diff --git a/media/player/wtl_renderer.h b/media/player/wtl_renderer.h
index 33724f5..38beb2f 100644
--- a/media/player/wtl_renderer.h
+++ b/media/player/wtl_renderer.h
@@ -7,24 +7,24 @@
#ifndef MEDIA_PLAYER_WTL_RENDERER_H_
#define MEDIA_PLAYER_WTL_RENDERER_H_
-#include "media/filters/video_renderer_base.h"
+#include "media/filters/video_thread.h"
class WtlVideoWindow;
-class WtlVideoRenderer : public media::VideoRendererBase {
+class WtlVideoRenderer : public media::VideoThread {
public:
explicit WtlVideoRenderer(WtlVideoWindow* window);
- virtual bool OnInitialize(size_t width, size_t height);
- virtual void OnPaintNeeded();
- void GetCurrentFrame(scoped_refptr<media::VideoFrame>* frame_out);
- static bool IsMediaFormatSupported(const media::MediaFormat& format) {
- return media::VideoRendererBase::IsMediaFormatSupported(format);
- }
+ static bool IsMediaFormatSupported(const media::MediaFormat& media_format);
+
+ protected:
+ virtual bool OnInitialize(media::VideoDecoder* decoder);
+ virtual void OnFrameAvailable();
private:
+ // Only allow to be deleted by reference counting.
friend class scoped_refptr<WtlVideoRenderer>;
- virtual ~WtlVideoRenderer() {}
+ virtual ~WtlVideoRenderer();
WtlVideoWindow* window_;