summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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_;