1
/*****************************************************************************
2
* omxil_utils.h: helper functions
3
*****************************************************************************
4
* Copyright (C) 2010 the VideoLAN team
5
* $Id: e4aad8d72eacb590360b4f0ebb63fcc3758485ad $
7
* Authors: Gildas Bazin <gbazin@videolan.org>
9
* This program is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation; either version 2 of the License, or
12
* (at your option) any later version.
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22
*****************************************************************************/
24
/*****************************************************************************
26
*****************************************************************************/
28
#include "OMX_Index.h"
29
#include "OMX_Component.h"
30
#include "OMX_Video.h"
32
#include "omxil_utils.h"
34
/*****************************************************************************
36
*****************************************************************************/
37
#define MAX_COMPONENTS_LIST_SIZE 32
39
/*****************************************************************************
40
* decoder_sys_t : omxil decoder descriptor
41
*****************************************************************************/
42
typedef struct OmxPort
46
OMX_HANDLETYPE omx_handle;
47
OMX_PARAM_PORTDEFINITIONTYPE definition;
50
unsigned int i_frame_size;
51
unsigned int i_frame_stride;
52
unsigned int i_frame_stride_chroma_div;
54
unsigned int i_buffers;
55
OMX_BUFFERHEADERTYPE **pp_buffers;
62
OMX_BUFFERHEADERTYPE *p_first;
63
OMX_BUFFERHEADERTYPE **pp_last;
69
OmxFormatParam format_param;
71
OMX_BOOL b_reconfigure;
80
OMX_HANDLETYPE omx_handle;
82
OMX_ERRORTYPE (*pf_init) (void);
83
OMX_ERRORTYPE (*pf_deinit) (void);
84
OMX_ERRORTYPE (*pf_get_handle) (OMX_HANDLETYPE *, OMX_STRING,
85
OMX_PTR, OMX_CALLBACKTYPE *);
86
OMX_ERRORTYPE (*pf_free_handle) (OMX_HANDLETYPE);
87
OMX_ERRORTYPE (*pf_component_enum)(OMX_STRING, OMX_U32, OMX_U32);
88
OMX_ERRORTYPE (*pf_get_roles_of_component)(OMX_STRING, OMX_U32 *, OMX_U8 **);
94
char psz_component[OMX_MAX_STRINGNAME_SIZE];
95
char ppsz_components[MAX_COMPONENTS_LIST_SIZE][OMX_MAX_STRINGNAME_SIZE];
96
unsigned int components;
98
struct OmxEvent *p_events;
99
struct OmxEvent **pp_last_event;
113
int i_nal_size_length; /* Length of the NAL size field for H264 */