11de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber/*
21de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * Copyright (C) 2009 The Android Open Source Project
31de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber *
41de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
51de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * you may not use this file except in compliance with the License.
61de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * You may obtain a copy of the License at
71de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber *
81de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
91de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber *
101de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * Unless required by applicable law or agreed to in writing, software
111de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
121de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * See the License for the specific language governing permissions and
141de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber * limitations under the License.
151de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber */
161de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
171de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber#ifndef OMX_RENDERER_H_
181de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
191de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber#define OMX_RENDERER_H_
201de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
211de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber#include <media/IOMX.h>
221de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
231de13168a9d9f55464dc98748ea28ef785f1048eAndreas Hubernamespace android {
241de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
251de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huberclass VideoRenderer;
261de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
271de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huberclass OMXRenderer : public BnOMXRenderer {
281de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huberpublic:
291de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber    // Assumes ownership of "impl".
301de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber    OMXRenderer(VideoRenderer *impl);
311de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber    virtual ~OMXRenderer();
321de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
331de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber    virtual void render(IOMX::buffer_id buffer);
341de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
351de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huberprivate:
361de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber    VideoRenderer *mImpl;
371de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
381de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber    OMXRenderer(const OMXRenderer &);
391de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber    OMXRenderer &operator=(const OMXRenderer &);
401de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber};
411de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
421de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber}  // namespace android
431de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber
441de13168a9d9f55464dc98748ea28ef785f1048eAndreas Huber#endif  // OMX_RENDERER_H_
45