1e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber/*
2bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * Copyright (C) 2011 The Android Open Source Project
3e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber *
4e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
5e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber * you may not use this file except in compliance with the License.
6e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber * You may obtain a copy of the License at
7e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber *
8e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
9e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber *
10e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber * Unless required by applicable law or agreed to in writing, software
11e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
12e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber * See the License for the specific language governing permissions and
14e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber * limitations under the License.
15e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber */
16e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
17bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber#ifndef SOFT_OMX_PLUGIN_H_
18e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
19bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber#define SOFT_OMX_PLUGIN_H_
20e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
21bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber#include <media/stagefright/foundation/ABase.h>
226c6b4d0d2b98a7ceee8b697daaf611f8df3254fbJames Dong#include <OMXPluginBase.h>
23e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
24e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Hubernamespace android {
25e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
26bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huberstruct SoftOMXPlugin : public OMXPluginBase {
27bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    SoftOMXPlugin();
28e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
29e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber    virtual OMX_ERRORTYPE makeComponentInstance(
30e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber            const char *name,
31e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber            const OMX_CALLBACKTYPE *callbacks,
32e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber            OMX_PTR appData,
33e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber            OMX_COMPONENTTYPE **component);
34e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
35f0fb96c352f30b812a4903a1d783a715e1e817bdAndreas Huber    virtual OMX_ERRORTYPE destroyComponentInstance(
36f0fb96c352f30b812a4903a1d783a715e1e817bdAndreas Huber            OMX_COMPONENTTYPE *component);
37f0fb96c352f30b812a4903a1d783a715e1e817bdAndreas Huber
38e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber    virtual OMX_ERRORTYPE enumerateComponents(
39e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber            OMX_STRING name,
40e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber            size_t size,
41e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber            OMX_U32 index);
42e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
438ae1d0bdcef22f2bdd8d283e0e615f3ba6c3f4cdAndreas Huber    virtual OMX_ERRORTYPE getRolesOfComponent(
448ae1d0bdcef22f2bdd8d283e0e615f3ba6c3f4cdAndreas Huber            const char *name,
458ae1d0bdcef22f2bdd8d283e0e615f3ba6c3f4cdAndreas Huber            Vector<String8> *roles);
468ae1d0bdcef22f2bdd8d283e0e615f3ba6c3f4cdAndreas Huber
47e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huberprivate:
48bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    DISALLOW_EVIL_CONSTRUCTORS(SoftOMXPlugin);
49e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber};
50e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
51e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber}  // namespace android
52e3ec3cec3a2e27033249ff82964d2cbd441d9873Andreas Huber
53bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber#endif  // SOFT_OMX_PLUGIN_H_
54