aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authordavilla <davilla@4pi.com>2013-08-05 01:03:44 -0400
committerdavilla <davilla@4pi.com>2013-08-09 08:56:43 -0400
commitfb0dc5a262eba5cfb4f862bdb6da6f29d1bf0d40 (patch)
treebedf0a119ffdcfb6bd0db57818b5ea989557d367 /tools
parent2f91abde6b7048a06af8df714ca5cf6db0c2fabf (diff)
droid: remove old android audio depends
Diffstat (limited to 'tools')
-rw-r--r--tools/depends/target/android-sys/Makefile53
-rw-r--r--tools/depends/target/android-sys/iomx.cpp473
2 files changed, 0 insertions, 526 deletions
diff --git a/tools/depends/target/android-sys/Makefile b/tools/depends/target/android-sys/Makefile
deleted file mode 100644
index 76451b9697..0000000000
--- a/tools/depends/target/android-sys/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-include ../../Makefile.include
-DEPS = ../../Makefile.include Makefile iomx.cpp
-
-LIBNAME=android-sys
-VERSION=0.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-PRIVATE_LIBDIR=$(PLATFORM)/android-libs
-PRIVATE_LIBS =$(PRIVATE_LIBDIR)/libutils.so
-PRIVATE_LIBS+=$(PRIVATE_LIBDIR)/libmedia.so
-PRIVATE_LIBS+=$(PRIVATE_LIBDIR)/libbinder.so
-PRIVATE_LIBS+=$(PRIVATE_LIBDIR)/libstagefright.so
-
-CXXFLAGS =$(PLATFORM_FLAGS) -I$(PREFIX)/include -fexceptions
-LDFLAGS += -L$(PRIVATE_LIBDIR) -lmedia -lutils -lbinder
-INCLUDES+=-I$(PLATFORM)/$(SDK_PLATFORM)/system/core/include
-INCLUDES+=-I$(PLATFORM)/$(SDK_PLATFORM)/frameworks/base/include
-INCLUDES+=-I$(PLATFORM)/$(SDK_PLATFORM)/frameworks/base/include/media/stagefright/openmax
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
- cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
- rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
- cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-
-$(PRIVATE_LIBS:.so=.symbols): $(PLATFORM)
-
-$(PRIVATE_LIBS:.so=.c): $(PRIVATE_LIBS:.so=.symbols)
- rm -f $@
- for s in `cat $(@:.c=.symbols)`; do echo "void $$s() {}" >> $@; done
-
-$(PRIVATE_LIBS): $(PRIVATE_LIBS:.so=.c)
- $(CC) $(@:.so=.c) -shared -o $@
-
-$(PLATFORM)/$(SDK_PLATFORM)/libiomx.so: iomx.cpp
- $(CXX) $(CXXFLAGS) $(INCLUDES) -shared -o $@ iomx.cpp $(LDFLAGS) -lstagefright
-
-.installed-$(PLATFORM): $(PRIVATE_LIBS) $(PLATFORM)/$(SDK_PLATFORM)/libiomx.so
- mkdir -p $(PREFIX)/include/$(SDK_PLATFORM)
- mkdir -p $(PREFIX)/lib/$(SDK_PLATFORM)
- cp -f $(PLATFORM)/$(SDK_PLATFORM)/libiomx.so $(PREFIX)/lib/$(SDK_PLATFORM)/
- cp -f $(PLATFORM)/$(SDK_PLATFORM)/frameworks/base/include/media/stagefright/openmax/* $(PREFIX)/include/$(SDK_PLATFORM)/
- touch $@
-
-clean:
- rm -f .installed-$(PLATFORM) $(PLATFORM)/libiomx.so $(PRIVATE_LIBS) $(PRIVATE_LIBS:.so=.c)
-
-distclean::
- rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/android-sys/iomx.cpp b/tools/depends/target/android-sys/iomx.cpp
deleted file mode 100644
index d21fae74ca..0000000000
--- a/tools/depends/target/android-sys/iomx.cpp
+++ /dev/null
@@ -1,473 +0,0 @@
-/*****************************************************************************
- * iomx.cpp: OpenMAX interface implementation based on IOMX
- *****************************************************************************
- * Copyright (C) 2011 VLC authors and VideoLAN
- *
- * Authors: Martin Storsjo <martin@martin.st>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-/*****************************************************************************
- * Preamble
- *****************************************************************************/
-
-#include <media/stagefright/OMXClient.h>
-#include <media/IOMX.h>
-#include <binder/MemoryDealer.h>
-#include <OMX_Component.h>
-
-extern "C" {
-
-int android_printf(const char *format, ...)
-{
- // For use before CLog is setup by XBMC_Run()
- va_list args;
- va_start(args, format);
- int result = __android_log_vprint(ANDROID_LOG_VERBOSE, "XBMC", format, args);
- va_end(args);
- return result;
-}
-}
-
-//#define PREFIX(x) I ## x
-#define PREFIX(x) x
-
-using namespace android;
-
-class IOMXContext {
-public:
- IOMXContext() {
- }
-
- sp<IOMX> iomx;
- List<IOMX::ComponentInfo> components;
-};
-
-static IOMXContext *ctx;
-
-class OMXNode;
-
-class OMXCodecObserver : public BnOMXObserver {
-public:
- OMXCodecObserver() {
- node = NULL;
- }
- void setNode(OMXNode* n) {
- node = n;
- }
- void onMessage(const omx_message &msg);
- void registerBuffers(const sp<IMemoryHeap> &) {
- }
-private:
- OMXNode *node;
-};
-
-class OMXNode {
-public:
- IOMX::node_id node;
- sp<OMXCodecObserver> observer;
- OMX_CALLBACKTYPE callbacks;
- OMX_PTR app_data;
- OMX_STATETYPE state;
- List<OMX_BUFFERHEADERTYPE*> buffers;
- OMX_HANDLETYPE handle;
- String8 component_name;
-};
-
-class OMXBuffer {
-public:
- sp<MemoryDealer> dealer;
- IOMX::buffer_id id;
-};
-
-void OMXCodecObserver::onMessage(const omx_message &msg)
-{
- if (!node)
- return;
- switch (msg.type) {
- case omx_message::EVENT:
- // TODO: Needs locking
- if (msg.u.event_data.event == OMX_EventCmdComplete && msg.u.event_data.data1 == OMX_CommandStateSet)
- node->state = (OMX_STATETYPE) msg.u.event_data.data2;
- node->callbacks.EventHandler(node->handle, node->app_data, msg.u.event_data.event, msg.u.event_data.data1, msg.u.event_data.data2, NULL);
- break;
- case omx_message::EMPTY_BUFFER_DONE:
- for( List<OMX_BUFFERHEADERTYPE*>::iterator it = node->buffers.begin(); it != node->buffers.end(); it++ ) {
- OMXBuffer* info = (OMXBuffer*) (*it)->pPlatformPrivate;
- if (msg.u.buffer_data.buffer == info->id) {
- node->callbacks.EmptyBufferDone(node->handle, node->app_data, *it);
- break;
- }
- }
- break;
- case omx_message::FILL_BUFFER_DONE:
- for( List<OMX_BUFFERHEADERTYPE*>::iterator it = node->buffers.begin(); it != node->buffers.end(); it++ ) {
- OMXBuffer* info = (OMXBuffer*) (*it)->pPlatformPrivate;
- if (msg.u.extended_buffer_data.buffer == info->id) {
- OMX_BUFFERHEADERTYPE *buffer = *it;
- buffer->nOffset = msg.u.extended_buffer_data.range_offset;
- buffer->nFilledLen = msg.u.extended_buffer_data.range_length;
- buffer->nFlags = msg.u.extended_buffer_data.flags;
- buffer->nTimeStamp = msg.u.extended_buffer_data.timestamp;
- node->callbacks.FillBufferDone(node->handle, node->app_data, buffer);
- break;
- }
- }
- break;
- default:
- break;
- }
-}
-
-static OMX_ERRORTYPE get_error(status_t err)
-{
- if (err == OK)
- return OMX_ErrorNone;
- return OMX_ErrorUndefined;
-}
-
-static int get_param_size(OMX_INDEXTYPE param_index)
-{
- switch (param_index) {
- case OMX_IndexParamPortDefinition:
- return sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- case OMX_IndexParamStandardComponentRole:
- return sizeof(OMX_PARAM_COMPONENTROLETYPE);
- case OMX_IndexParamVideoInit:
- case OMX_IndexParamAudioInit:
- case OMX_IndexParamImageInit:
- case OMX_IndexParamOtherInit:
- return sizeof(OMX_PORT_PARAM_TYPE);
- case OMX_IndexParamNumAvailableStreams:
- return sizeof(OMX_PARAM_U32TYPE);
- case OMX_IndexParamAudioPcm:
- return sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- case OMX_IndexParamAudioAdpcm:
- return sizeof(OMX_AUDIO_PARAM_AMRTYPE);
- case OMX_IndexParamAudioAmr:
- return sizeof(OMX_AUDIO_PARAM_AMRTYPE);
- case OMX_IndexParamAudioG723:
- return sizeof(OMX_AUDIO_PARAM_G723TYPE);
- case OMX_IndexParamAudioG726:
- return sizeof(OMX_AUDIO_PARAM_G726TYPE);
- case OMX_IndexParamAudioG729:
- return sizeof(OMX_AUDIO_PARAM_G729TYPE);
- case OMX_IndexParamAudioAac:
- return sizeof(OMX_AUDIO_PARAM_AACPROFILETYPE);
- case OMX_IndexParamAudioMp3:
- return sizeof(OMX_AUDIO_PARAM_MP3TYPE);
- case OMX_IndexParamAudioSbc:
- return sizeof(OMX_AUDIO_PARAM_SBCTYPE);
- case OMX_IndexParamAudioVorbis:
- return sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
- case OMX_IndexParamAudioWma:
- return sizeof(OMX_AUDIO_PARAM_WMATYPE);
- case OMX_IndexParamAudioRa:
- return sizeof(OMX_AUDIO_PARAM_RATYPE);
- case OMX_IndexParamVideoPortFormat:
- return sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
- case OMX_IndexParamVideoBitrate:
- return sizeof(OMX_VIDEO_PARAM_BITRATETYPE);
- case OMX_IndexParamVideoH263:
- return sizeof(OMX_VIDEO_PARAM_H263TYPE);
- case OMX_IndexParamVideoMpeg4:
- return sizeof(OMX_VIDEO_PARAM_MPEG4TYPE);
- case OMX_IndexParamVideoAvc:
- return sizeof(OMX_VIDEO_PARAM_AVCTYPE);
- default:
- return 0;
- }
-}
-
-static int get_config_size(OMX_INDEXTYPE param_index)
-{
- switch (param_index) {
- case OMX_IndexConfigCommonOutputCrop:
- return sizeof(OMX_CONFIG_RECTTYPE);
- default:
- /* Dynamically queried config indices could have any size, but
- * are currently only used with OMX_BOOL. */
- return sizeof(OMX_BOOL);
- }
-}
-
-static OMX_ERRORTYPE iomx_send_command(OMX_HANDLETYPE component, OMX_COMMANDTYPE command, OMX_U32 param1, OMX_PTR)
-{
- android_printf("iomx_send_command\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- return get_error(ctx->iomx->sendCommand(node->node, command, param1));
-}
-
-static OMX_ERRORTYPE iomx_get_parameter(OMX_HANDLETYPE component, OMX_INDEXTYPE param_index, OMX_PTR param)
-{
- android_printf("iomx_get_parameter\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- return get_error(ctx->iomx->getParameter(node->node, param_index, param, get_param_size(param_index)));
-}
-
-static OMX_ERRORTYPE iomx_set_parameter(OMX_HANDLETYPE component, OMX_INDEXTYPE param_index, OMX_PTR param)
-{
- android_printf("iomx_set_parameter\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- return get_error(ctx->iomx->setParameter(node->node, param_index, param, get_param_size(param_index)));
-}
-
-static OMX_ERRORTYPE iomx_get_state(OMX_HANDLETYPE component, OMX_STATETYPE *ptr)
-{
- android_printf("iomx_get_state\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- *ptr = node->state;
- return OMX_ErrorNone;
-}
-
-static OMX_ERRORTYPE iomx_allocate_buffer(OMX_HANDLETYPE component, OMX_BUFFERHEADERTYPE **bufferptr, OMX_U32 port_index, OMX_PTR app_private, OMX_U32 size)
-{
- android_printf("iomx_allocate_buffer\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- OMXBuffer* info = new OMXBuffer;
- info->dealer = new MemoryDealer(size + 4096); // Do we need to keep this around, or is it kept alive via the IMemory that references it?
- sp<IMemory> mem = info->dealer->allocate(size);
- int ret = ctx->iomx->allocateBufferWithBackup(node->node, port_index, mem, &info->id);
- if (ret != OK)
- return OMX_ErrorUndefined;
- OMX_BUFFERHEADERTYPE *buffer = (OMX_BUFFERHEADERTYPE*) calloc(1, sizeof(OMX_BUFFERHEADERTYPE));
- *bufferptr = buffer;
- buffer->pPlatformPrivate = info;
- buffer->pAppPrivate = app_private;
- buffer->nAllocLen = size;
- buffer->pBuffer = (OMX_U8*) mem->pointer();
- node->buffers.push_back(buffer);
- return OMX_ErrorNone;
-}
-
-static OMX_ERRORTYPE iomx_free_buffer(OMX_HANDLETYPE component, OMX_U32 port, OMX_BUFFERHEADERTYPE *buffer)
-{
- android_printf("iomx_free_buffer\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- OMXBuffer* info = (OMXBuffer*) buffer->pPlatformPrivate;
- status_t ret = ctx->iomx->freeBuffer(node->node, port, info->id);
- for( List<OMX_BUFFERHEADERTYPE*>::iterator it = node->buffers.begin(); it != node->buffers.end(); it++ ) {
- if (buffer == *it) {
- node->buffers.erase(it);
- break;
- }
- }
- free(buffer);
- delete info;
- return get_error(ret);
-}
-
-static OMX_ERRORTYPE iomx_empty_this_buffer(OMX_HANDLETYPE component, OMX_BUFFERHEADERTYPE *buffer)
-{
- android_printf("iomx_empty_this_buffer\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- OMXBuffer* info = (OMXBuffer*) buffer->pPlatformPrivate;
- return get_error(ctx->iomx->emptyBuffer(node->node, info->id, buffer->nOffset, buffer->nFilledLen, buffer->nFlags, buffer->nTimeStamp));
-}
-
-static OMX_ERRORTYPE iomx_fill_this_buffer(OMX_HANDLETYPE component, OMX_BUFFERHEADERTYPE *buffer)
-{
- android_printf("iomx_fill_this_buffer\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- OMXBuffer* info = (OMXBuffer*) buffer->pPlatformPrivate;
- return get_error(ctx->iomx->fillBuffer(node->node, info->id));
-}
-
-static OMX_ERRORTYPE iomx_component_role_enum(OMX_HANDLETYPE component, OMX_U8 *role, OMX_U32 index)
-{
- android_printf("iomx_component_role_enum\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- for( List<IOMX::ComponentInfo>::iterator it = ctx->components.begin(); it != ctx->components.end(); it++ ) {
- if (node->component_name == it->mName) {
- if (index >= it->mRoles.size())
- return OMX_ErrorNoMore;
- List<String8>::iterator it2 = it->mRoles.begin();
- for( OMX_U32 i = 0; it2 != it->mRoles.end() && i < index; i++, it2++ ) ;
- strncpy((char*)role, it2->string(), OMX_MAX_STRINGNAME_SIZE);
- if (it2->length() >= OMX_MAX_STRINGNAME_SIZE)
- role[OMX_MAX_STRINGNAME_SIZE - 1] = '\0';
- return OMX_ErrorNone;
- }
- }
- return OMX_ErrorInvalidComponentName;
-}
-
-static OMX_ERRORTYPE iomx_get_extension_index(OMX_HANDLETYPE component, OMX_STRING parameter, OMX_INDEXTYPE *index)
-{
- android_printf("iomx_get_extension_index\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- return get_error(ctx->iomx->getExtensionIndex(node->node, parameter, index));
-}
-
-static OMX_ERRORTYPE iomx_set_config(OMX_HANDLETYPE component, OMX_INDEXTYPE index, OMX_PTR param)
-{
- android_printf("iomx_set_config\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- return get_error(ctx->iomx->setConfig(node->node, index, param, get_config_size(index)));
-}
-
-static OMX_ERRORTYPE iomx_get_config(OMX_HANDLETYPE component, OMX_INDEXTYPE index, OMX_PTR param)
-{
- android_printf("iomx_get_config\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)component)->pComponentPrivate;
- return get_error(ctx->iomx->getConfig(node->node, index, param, get_config_size(index)));
-}
-
-extern "C" {
-OMX_ERRORTYPE PREFIX(OMX_GetHandle)(OMX_HANDLETYPE *handle_ptr, OMX_STRING component_name, OMX_PTR app_data, OMX_CALLBACKTYPE *callbacks)
-{
- android_printf("OMX_GetHandle\n");
- OMXNode* node = new OMXNode();
- node->app_data = app_data;
- node->callbacks = *callbacks;
- node->observer = new OMXCodecObserver();
- node->observer->setNode(node);
- node->state = OMX_StateLoaded;
- node->component_name = component_name;
-
- OMX_COMPONENTTYPE* component = (OMX_COMPONENTTYPE*) malloc(sizeof(OMX_COMPONENTTYPE));
- memset(component, 0, sizeof(OMX_COMPONENTTYPE));
- component->nSize = sizeof(OMX_COMPONENTTYPE);
- component->nVersion.s.nVersionMajor = 1;
- component->nVersion.s.nVersionMinor = 0;
- component->nVersion.s.nRevision = 0;
- component->nVersion.s.nStep = 0;
- component->pComponentPrivate = node;
- component->SendCommand = iomx_send_command;
- component->GetParameter = iomx_get_parameter;
- component->SetParameter = iomx_set_parameter;
- component->FreeBuffer = iomx_free_buffer;
- component->EmptyThisBuffer = iomx_empty_this_buffer;
- component->FillThisBuffer = iomx_fill_this_buffer;
- component->GetState = iomx_get_state;
- component->AllocateBuffer = iomx_allocate_buffer;
- component->ComponentRoleEnum = iomx_component_role_enum;
- component->GetExtensionIndex = iomx_get_extension_index;
- component->SetConfig = iomx_set_config;
- component->GetConfig = iomx_get_config;
-
- *handle_ptr = component;
- node->handle = component;
- status_t ret;
- if ((ret = ctx->iomx->allocateNode( component_name, node->observer, &node->node )) != OK)
- return OMX_ErrorUndefined;
- return OMX_ErrorNone;
-}
-
-OMX_ERRORTYPE PREFIX(OMX_FreeHandle)(OMX_HANDLETYPE handle)
-{
- android_printf("OMX_FreeHandle\n");
- OMXNode* node = (OMXNode*) ((OMX_COMPONENTTYPE*)handle)->pComponentPrivate;
- ctx->iomx->freeNode( node->node );
- node->observer->setNode(NULL);
- delete node;
- free(handle);
- return OMX_ErrorNone;
-}
-
-OMX_ERRORTYPE PREFIX(OMX_Init)(void)
-{
- android_printf("OMX_Init\n");
- OMXClient client;
- if (client.connect() != OK)
- return OMX_ErrorUndefined;
-
- if (!ctx)
- ctx = new IOMXContext();
- ctx->iomx = client.interface();
- ctx->iomx->listNodes(&ctx->components);
-
- for (List<IOMX::ComponentInfo>::iterator it = ctx->components.begin(); it != ctx->components.end(); it++)
- {
- const IOMX::ComponentInfo &info = *it;
- const char* componentName = info.mName.string();
- for (List<String8>::const_iterator role_it = info.mRoles.begin(); role_it != info.mRoles.end(); role_it++)
- {
- const char* componentRole = (*role_it).string();
- android_printf("componentName:%s,componentRole:%s\n", componentName, componentRole);
- }
- }
- return OMX_ErrorNone;
-}
-
-OMX_ERRORTYPE PREFIX(OMX_Deinit)(void)
-{
- android_printf("OMX_Deinit\n");
- ctx->iomx = NULL;
- delete ctx;
- ctx = NULL;
- return OMX_ErrorNone;
-}
-
-OMX_ERRORTYPE PREFIX(OMX_ComponentNameEnum)(OMX_STRING component_name, OMX_U32 name_length, OMX_U32 index)
-{
- android_printf("OMX_ComponentNameEnum\n");
- if (index >= ctx->components.size())
- return OMX_ErrorNoMore;
- List<IOMX::ComponentInfo>::iterator it = ctx->components.begin();
- for( OMX_U32 i = 0; i < index; i++ )
- it++;
- strncpy(component_name, it->mName.string(), name_length);
- component_name[name_length - 1] = '\0';
- return OMX_ErrorNone;
-}
-
-OMX_ERRORTYPE PREFIX(OMX_GetRolesOfComponent)(OMX_STRING component_name, OMX_U32 *num_roles, OMX_U8 **roles)
-{
- android_printf("OMX_GetRolesOfComponent\n");
- for( List<IOMX::ComponentInfo>::iterator it = ctx->components.begin(); it != ctx->components.end(); it++ ) {
- if (!strcmp(component_name, it->mName.string())) {
- if (!roles) {
- *num_roles = it->mRoles.size();
- return OMX_ErrorNone;
- }
- if (*num_roles < it->mRoles.size())
- return OMX_ErrorInsufficientResources;
- *num_roles = it->mRoles.size();
- OMX_U32 i = 0;
- for( List<String8>::iterator it2 = it->mRoles.begin(); it2 != it->mRoles.end(); i++, it2++ ) {
- strncpy((char*)roles[i], it2->string(), OMX_MAX_STRINGNAME_SIZE);
- roles[i][OMX_MAX_STRINGNAME_SIZE - 1] = '\0';
- }
- return OMX_ErrorNone;
- }
- }
- return OMX_ErrorInvalidComponentName;
-}
-
-OMX_ERRORTYPE PREFIX(OMX_GetComponentsOfRole)(OMX_STRING role, OMX_U32 *num_comps, OMX_U8 **comp_names)
-{
- android_printf("OMX_GetComponentsOfRole\n");
- OMX_U32 i = 0;
- for( List<IOMX::ComponentInfo>::iterator it = ctx->components.begin(); it != ctx->components.end(); it++ ) {
- for( List<String8>::iterator it2 = it->mRoles.begin(); it2 != it->mRoles.end(); it2++ ) {
- if (!strcmp(it2->string(), role)) {
- if (comp_names) {
- if (*num_comps < i)
- return OMX_ErrorInsufficientResources;
- strncpy((char*)comp_names[i], it->mName.string(), OMX_MAX_STRINGNAME_SIZE);
- comp_names[i][OMX_MAX_STRINGNAME_SIZE - 1] = '\0';
- }
- i++;
- break;
- }
- }
- }
- *num_comps = i;
- return OMX_ErrorNone;
-}
-}
-