From 8b938cdab5bd3d074d9b41bc2915fcfc11e47f27 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Fri, 31 Jul 2009 11:52:50 -0700 Subject: The IOMX interface now instantiates IOMXRenderers to hide the details of hardware accelerated blitting. --- include/media/IOMX.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'include/media/IOMX.h') diff --git a/include/media/IOMX.h b/include/media/IOMX.h index 5c61c50..0010d84 100644 --- a/include/media/IOMX.h +++ b/include/media/IOMX.h @@ -23,6 +23,7 @@ #include #include +#include #define IOMX_USES_SOCKETS 0 @@ -30,6 +31,8 @@ namespace android { class IMemory; class IOMXObserver; +class IOMXRenderer; +class ISurface; class IOMX : public IInterface { public: @@ -87,6 +90,13 @@ public: OMX_U32 range_offset, OMX_U32 range_length, OMX_U32 flags, OMX_TICKS timestamp) = 0; #endif + + virtual sp createRenderer( + const sp &surface, + const char *componentName, + OMX_COLOR_FORMATTYPE colorFormat, + size_t encodedWidth, size_t encodedHeight, + size_t displayWidth, size_t displayHeight) = 0; }; struct omx_message { @@ -155,6 +165,13 @@ public: virtual void on_message(const omx_message &msg) = 0; }; +class IOMXRenderer : public IInterface { +public: + DECLARE_META_INTERFACE(OMXRenderer); + + virtual void render(IOMX::buffer_id buffer) = 0; +}; + //////////////////////////////////////////////////////////////////////////////// class BnOMX : public BnInterface { @@ -171,6 +188,13 @@ public: uint32_t flags = 0); }; +class BnOMXRenderer : public BnInterface { +public: + virtual status_t onTransact( + uint32_t code, const Parcel &data, Parcel *reply, + uint32_t flags = 0); +}; + } // namespace android #endif // ANDROID_IOMX_H_ -- cgit v1.1