From ccf8b94169197875af6c89172015b9644919b064 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Fri, 7 Aug 2009 12:01:29 -0700 Subject: Expose a variation of the createRenderer API that works on a plain Surface. --- include/media/IOMX.h | 11 +++++++++++ include/ui/Surface.h | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/media/IOMX.h b/include/media/IOMX.h index 857b2bd..7e5ff61 100644 --- a/include/media/IOMX.h +++ b/include/media/IOMX.h @@ -31,6 +31,7 @@ class IMemory; class IOMXObserver; class IOMXRenderer; class ISurface; +class Surface; class IOMX : public IInterface { public: @@ -87,6 +88,16 @@ public: OMX_COLOR_FORMATTYPE colorFormat, size_t encodedWidth, size_t encodedHeight, size_t displayWidth, size_t displayHeight) = 0; + + // Note: This method is _not_ virtual, it exists as a wrapper around + // the virtual "createRenderer" method above facilitating extraction + // of the ISurface from a regular Surface. + sp createRenderer( + const sp &surface, + const char *componentName, + OMX_COLOR_FORMATTYPE colorFormat, + size_t encodedWidth, size_t encodedHeight, + size_t displayWidth, size_t displayHeight); }; struct omx_message { diff --git a/include/ui/Surface.h b/include/ui/Surface.h index 5665c1f..d5dad31 100644 --- a/include/ui/Surface.h +++ b/include/ui/Surface.h @@ -35,8 +35,8 @@ namespace android { // --------------------------------------------------------------------------- class BufferMapper; +class IOMX; class Rect; -class MediaPlayerImpl; class Surface; class SurfaceComposerClient; struct per_client_cblk_t; @@ -181,7 +181,7 @@ private: // mediaplayer needs access to ISurface for display friend class MediaPlayer; friend class Test; - friend class MediaPlayerImpl; + friend class IOMX; const sp& getISurface() const { return mSurface; } status_t getBufferLocked(int index); -- cgit v1.1