You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
3.7 KiB
118 lines
3.7 KiB
/* |
|
* Copyright (c) 2009-2011 Intel Corporation. All rights reserved. |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
*/ |
|
|
|
#ifndef OMX_COMPONENT_DEFINES_H_ |
|
#define OMX_COMPONENT_DEFINES_H_ |
|
|
|
|
|
|
|
#define DECLARE_HANDLER(CLASS, FUNC)\ |
|
static OMX_ERRORTYPE Get##FUNC(void *inst, OMX_PTR pStructure) {\ |
|
return ((CLASS*)inst)->Get##FUNC(pStructure);\ |
|
}\ |
|
static OMX_ERRORTYPE Set##FUNC(void *inst, OMX_PTR pStructure) {\ |
|
return ((CLASS*)inst)->Set##FUNC(pStructure);\ |
|
}\ |
|
OMX_ERRORTYPE Get##FUNC(OMX_PTR pStructure);\ |
|
OMX_ERRORTYPE Set##FUNC(OMX_PTR pStructure); |
|
|
|
#define CHECK_TYPE_HEADER(P)\ |
|
ret = CheckTypeHeader((P), sizeof(*(P)));\ |
|
if (ret != OMX_ErrorNone) {\ |
|
LOGE("Invalid type header.");\ |
|
return ret;\ |
|
} |
|
|
|
#define CHECK_PORT_INDEX(P, INDEX)\ |
|
if ((P)->nPortIndex != INDEX) {\ |
|
LOGE("Bad port index %u, expected: %d", (P)->nPortIndex, INDEX);\ |
|
return OMX_ErrorBadPortIndex;\ |
|
} |
|
|
|
#define CHECK_ENUMERATION_RANGE(INDEX, RANGE)\ |
|
if (INDEX >= RANGE) {\ |
|
LOGE("No more enumeration.");\ |
|
return OMX_ErrorNoMore;\ |
|
} |
|
|
|
#define CHECK_PORT_INDEX_RANGE(P)\ |
|
if ((P)->nPortIndex != 0 && (P)->nPortIndex != 1) {\ |
|
LOGE("Port out of range %u", (P)->nPortIndex);\ |
|
return OMX_ErrorBadPortIndex;\ |
|
} |
|
|
|
#define CHECK_RETURN_VALUE(FUNC)\ |
|
if (ret != OMX_ErrorNone) {\ |
|
LOGE(FUNC" failed: Error code = 0x%x", ret);\ |
|
return ret;\ |
|
} |
|
|
|
#define CHECK_SET_PARAM_STATE()\ |
|
OMX_STATETYPE state;\ |
|
CBaseGetState((void *)GetComponentHandle(), &state);\ |
|
if (state != OMX_StateLoaded && state != OMX_StateWaitForResources) {\ |
|
LOGE("Invalid state to set param.");\ |
|
return OMX_ErrorIncorrectStateOperation;\ |
|
} |
|
|
|
#define CHECK_SET_CONFIG_STATE()\ |
|
OMX_STATETYPE state;\ |
|
CBaseGetState((void *)GetComponentHandle(), &state);\ |
|
if (state == OMX_StateLoaded || state == OMX_StateWaitForResources) {\ |
|
LOGE("Invalid state to set config");\ |
|
return OMX_ErrorNone;\ |
|
} |
|
|
|
#define CHECK_BS_STATE() \ |
|
if (mBsState == BS_STATE_EXECUTING) { \ |
|
LOGE("Wrong state"); \ |
|
return OMX_ErrorUndefined; \ |
|
} |
|
|
|
#define CHECK_BS_STATUS(FUNC) \ |
|
if (ret != BS_SUCCESS) { \ |
|
LOGE(FUNC" Failed. ret = 0x%08x\n", ret); \ |
|
return OMX_ErrorUndefined; \ |
|
} |
|
|
|
#define CHECK_STATUS(FUNC) \ |
|
if (ret != OMX_ErrorNone) { \ |
|
LOGE(FUNC" Failed. ret = 0x%08x\n", ret); \ |
|
return ret; \ |
|
} |
|
|
|
#define CHECK_ENCODE_STATUS(FUNC)\ |
|
if (ret < ENCODE_SUCCESS) { \ |
|
LOGE(FUNC" Failed. ret = 0x%08x\n", ret); \ |
|
return OMX_ErrorUndefined; \ |
|
} |
|
|
|
#define DECLARE_OMX_COMPONENT(NAME, ROLE, CLASS) \ |
|
static const char *gName = (const char *)(NAME);\ |
|
static const char *gRole = (const char *)(ROLE);\ |
|
OMX_ERRORTYPE CreateInstance(OMX_PTR *instance) {\ |
|
*instance = NULL;\ |
|
ComponentBase *inst = new CLASS;\ |
|
if (!inst) {\ |
|
return OMX_ErrorInsufficientResources;\ |
|
}\ |
|
*instance = inst;\ |
|
return OMX_ErrorNone;\ |
|
}\ |
|
struct wrs_omxil_cmodule_ops_s gOps = {CreateInstance};\ |
|
struct wrs_omxil_cmodule_s WRS_OMXIL_CMODULE_SYMBOL = {gName, &gRole, 1, &gOps}; |
|
|
|
#endif /* OMX_COMPONENT_DEFINES_H_ */
|
|
|