vlc | branch: master | Martin Storsjö <[email protected]> | Mon Mar 18 22:45:55 2013 +0200| [a90f4bb033ff0c8faf2ecbc201d5983706af7eba] | committer: Martin Storsjö
omxil: Generalize code for hardcoded component/role mappings Signed-off-by: Martin Storsjö <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a90f4bb033ff0c8faf2ecbc201d5983706af7eba --- modules/codec/omxil/omxil_core.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/modules/codec/omxil/omxil_core.c b/modules/codec/omxil/omxil_core.c index 66c1aab..91bb894 100644 --- a/modules/codec/omxil/omxil_core.c +++ b/modules/codec/omxil/omxil_core.c @@ -192,6 +192,20 @@ void DeinitOmxCore(void) /***************************************************************************** * CreateComponentsList: creates a list of components matching the given role *****************************************************************************/ + +static const struct +{ + const char *psz_role; + const char *psz_name; +} role_mappings[] = +{ +#ifdef RPI_OMX + { "video_decoder.avc", "OMX.broadcom.video_decode" }, + { "iv_renderer", "OMX.broadcom.video_render" }, +#endif + { 0, 0 } +}; + int CreateComponentsList(vlc_object_t *p_this, const char *psz_role, char ppsz_components[MAX_COMPONENTS_LIST_SIZE][OMX_MAX_STRINGNAME_SIZE]) { @@ -212,17 +226,12 @@ int CreateComponentsList(vlc_object_t *p_this, const char *psz_role, msg_Dbg(p_this, "component %s", psz_name); -#ifdef RPI_OMX - if (!strcmp(psz_name, "OMX.broadcom.video_decode")) { - if (!strcmp(psz_role, "video_decoder.avc")) { - goto found; - } - } else if (!strcmp(psz_name, "OMX.broadcom.video_render")) { - if (!strcmp(psz_role, "iv_renderer")) { + for( unsigned int j = 0; role_mappings[j].psz_role; j++ ) { + if( !strcmp( psz_role, role_mappings[j].psz_role ) && + !strcmp( psz_name, role_mappings[j].psz_name ) ) { goto found; } } -#endif omx_error = pf_get_roles_of_component(psz_name, &roles, 0); if(omx_error != OMX_ErrorNone || !roles) continue; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
