Commit e1f9ab22 authored by Gildas Bazin's avatar Gildas Bazin

Add OpenMAX IL Video/Audio decoder.

This decoder will try to use OpenMAX IL components to decode video/audio.
Only 2 OpenMAX cores are currently looked for. The TI OMAP IL core (used for
instance on the N900) and the Bellagio IL core.
This decoder is disabled by default (use --enable-omxil) and for now has
a zero priority (use --codec omxil).
parent 08c14020
......@@ -2586,6 +2586,16 @@ then
VLC_ADD_PLUGIN([shine])
fi
dnl
dnl openmax il codec plugin
dnl
AC_ARG_ENABLE(omxil,
[ --enable-omxil openmax il codec module (default disabled)])
if test "${enable_omxil}" = "yes"
then
VLC_ADD_PLUGIN([omxil])
fi
dnl
dnl mad plugin
dnl
......@@ -4848,6 +4858,7 @@ AC_CONFIG_FILES([
modules/codec/Makefile
modules/codec/avcodec/Makefile
modules/codec/dmo/Makefile
modules/codec/omxil/Makefile
modules/codec/shine/Makefile
modules/codec/subtitles/Makefile
modules/codec/spudec/Makefile
......
SUBDIRS = dmo avcodec shine subtitles spudec wmafixed
SUBDIRS = dmo avcodec shine subtitles spudec wmafixed omxil
SOURCES_a52 = a52.c a52.h
SOURCES_dts = dts.c
SOURCES_flac = flac.c
......
SOURCES_omxil = omxil.c utils.c omxil.h omxil_utils.h \
OMX_Component.h OMX_Core.h OMX_Image.h OMX_IVCommon.h OMX_Types.h \
OMX_Audio.h OMX_ContentPipe.h OMX_Index.h OMX_Other.h OMX_Video.h
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*****************************************************************************
* omxil_utils.h: helper functions
*****************************************************************************
* Copyright (C) 2010 the VideoLAN team
* $Id$
*
* Authors: Gildas Bazin <gbazin@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU 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.
*****************************************************************************/
/*****************************************************************************
* Includes
*****************************************************************************/
#include "OMX_Core.h"
#include "OMX_Index.h"
#include "OMX_Component.h"
#include "OMX_Video.h"
#include "omxil_utils.h"
/*****************************************************************************
* defines
*****************************************************************************/
#define MAX_COMPONENTS_LIST_SIZE 32
/*****************************************************************************
* decoder_sys_t : omxil decoder descriptor
*****************************************************************************/
typedef struct OmxPort
{
bool b_valid;
OMX_U32 i_port_index;
OMX_HANDLETYPE omx_handle;
OMX_PARAM_PORTDEFINITIONTYPE definition;
es_format_t *p_fmt;
unsigned int i_frame_size;
unsigned int i_frame_stride;
unsigned int i_frame_stride_chroma_div;
unsigned int i_buffers;
OMX_BUFFERHEADERTYPE **pp_buffers;
struct fifo_t
{
vlc_mutex_t lock;
vlc_cond_t wait;
OMX_BUFFERHEADERTYPE *p_first;
OMX_BUFFERHEADERTYPE **pp_last;
int offset;
} fifo;
OmxFormatParam format_param;
OMX_BOOL b_reconfigure;
OMX_BOOL b_direct;
OMX_BOOL b_flushed;
} OmxPort;
struct decoder_sys_t
{
void *dll_handle;
OMX_HANDLETYPE omx_handle;
OMX_ERRORTYPE (*pf_init) (void);
OMX_ERRORTYPE (*pf_deinit) (void);
OMX_ERRORTYPE (*pf_get_handle) (OMX_HANDLETYPE *, OMX_STRING,
OMX_PTR, OMX_CALLBACKTYPE *);
OMX_ERRORTYPE (*pf_free_handle) (OMX_HANDLETYPE);
OMX_ERRORTYPE (*pf_component_enum)(OMX_STRING, OMX_U32, OMX_U32);
OMX_ERRORTYPE (*pf_get_roles_of_component)(OMX_STRING, OMX_U32 *, OMX_U8 **);
bool b_enc;
bool b_init;
vlc_mutex_t lock;
char ppsz_components[MAX_COMPONENTS_LIST_SIZE][OMX_MAX_STRINGNAME_SIZE];
unsigned int components;
struct OmxEvent *p_events;
struct OmxEvent **pp_last_event;
vlc_mutex_t mutex;
vlc_cond_t cond;
OmxPort *p_ports;
unsigned int ports;
OmxPort in;
OmxPort out;
bool b_error;
date_t end_date;
};
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment