MMAL_3-15-2015
mmal_il.h
1 /*
2 Copyright (c) 2012, Broadcom Europe Ltd
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of the copyright holder nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef MMAL_IL_H
29 #define MMAL_IL_H
30 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 #include "interface/vmcs_host/khronos/IL/OMX_Core.h"
42 #include "interface/vmcs_host/khronos/IL/OMX_Component.h"
43 #include "interface/vmcs_host/khronos/IL/OMX_Video.h"
44 #include "interface/vmcs_host/khronos/IL/OMX_Audio.h"
45 #include "interface/vmcs_host/khronos/IL/OMX_Broadcom.h"
46 
52 OMX_ERRORTYPE mmalil_error_to_omx(MMAL_STATUS_T status);
53 
59 MMAL_STATUS_T mmalil_error_to_mmal(OMX_ERRORTYPE error);
60 
66 uint32_t mmalil_buffer_flags_to_mmal(OMX_U32 flags);
67 
73 OMX_U32 mmalil_buffer_flags_to_omx(uint32_t flags);
74 
81 void mmalil_buffer_header_to_omx(OMX_BUFFERHEADERTYPE *omx, MMAL_BUFFER_HEADER_T *mmal);
82 
88 void mmalil_buffer_header_to_mmal(MMAL_BUFFER_HEADER_T *mmal, OMX_BUFFERHEADERTYPE *omx);
89 
90 
91 OMX_PORTDOMAINTYPE mmalil_es_type_to_omx_domain(MMAL_ES_TYPE_T type);
92 MMAL_ES_TYPE_T mmalil_omx_domain_to_es_type(OMX_PORTDOMAINTYPE domain);
93 uint32_t mmalil_omx_audio_coding_to_encoding(OMX_AUDIO_CODINGTYPE coding);
94 OMX_AUDIO_CODINGTYPE mmalil_encoding_to_omx_audio_coding(uint32_t encoding);
95 uint32_t mmalil_omx_video_coding_to_encoding(OMX_VIDEO_CODINGTYPE coding);
96 OMX_VIDEO_CODINGTYPE mmalil_encoding_to_omx_video_coding(uint32_t encoding);
97 uint32_t mmalil_omx_image_coding_to_encoding(OMX_IMAGE_CODINGTYPE coding);
98 OMX_IMAGE_CODINGTYPE mmalil_encoding_to_omx_image_coding(uint32_t encoding);
99 uint32_t mmalil_omx_coding_to_encoding(uint32_t encoding, OMX_PORTDOMAINTYPE domain);
100 uint32_t mmalil_omx_color_format_to_encoding(OMX_COLOR_FORMATTYPE coding);
101 OMX_COLOR_FORMATTYPE mmalil_encoding_to_omx_color_format(uint32_t encoding);
102 uint32_t mmalil_omx_color_space_to_mmal(OMX_COLORSPACETYPE coding);
103 OMX_COLORSPACETYPE mmalil_color_space_to_omx(uint32_t coding);
104 uint32_t mmalil_omx_video_profile_to_mmal(OMX_U32 level, OMX_VIDEO_CODINGTYPE coding);
105 OMX_U32 mmalil_video_profile_to_omx(uint32_t profile);
106 uint32_t mmalil_omx_video_level_to_mmal(OMX_U32 level, OMX_VIDEO_CODINGTYPE coding);
107 OMX_U32 mmalil_video_level_to_omx(uint32_t level);
108 MMAL_VIDEO_RATECONTROL_T mmalil_omx_video_ratecontrol_to_mmal(OMX_VIDEO_CONTROLRATETYPE omx);
109 OMX_VIDEO_CONTROLRATETYPE mmalil_video_ratecontrol_to_omx(MMAL_VIDEO_RATECONTROL_T mmal);
110 MMAL_VIDEO_INTRA_REFRESH_T mmalil_omx_video_intrarefresh_to_mmal(OMX_VIDEO_INTRAREFRESHTYPE omx);
111 
113 typedef union OMX_FORMAT_PARAM_TYPE {
114  OMX_PARAM_U32TYPE common;
115 
116  /* Video */
117  OMX_VIDEO_PARAM_AVCTYPE avc;
118  OMX_VIDEO_PARAM_H263TYPE h263;
119  OMX_VIDEO_PARAM_MPEG2TYPE mpeg2;
120  OMX_VIDEO_PARAM_MPEG4TYPE mpeg4;
121  OMX_VIDEO_PARAM_WMVTYPE wmv;
122  OMX_VIDEO_PARAM_RVTYPE rv;
123 
124  /* Audio */
125  OMX_AUDIO_PARAM_PCMMODETYPE pcm;
126  OMX_AUDIO_PARAM_MP3TYPE mp3;
127  OMX_AUDIO_PARAM_AACPROFILETYPE aac;
128  OMX_AUDIO_PARAM_VORBISTYPE vorbis;
129  OMX_AUDIO_PARAM_WMATYPE wma;
130  OMX_AUDIO_PARAM_RATYPE ra;
131  OMX_AUDIO_PARAM_SBCTYPE sbc;
132  OMX_AUDIO_PARAM_ADPCMTYPE adpcm;
133  OMX_AUDIO_PARAM_G723TYPE g723;
134  OMX_AUDIO_PARAM_G726TYPE g726;
135  OMX_AUDIO_PARAM_G729TYPE g729;
136  OMX_AUDIO_PARAM_AMRTYPE amr;
137  OMX_AUDIO_PARAM_GSMFRTYPE gsmfr;
138  OMX_AUDIO_PARAM_GSMHRTYPE gsmhr;
139  OMX_AUDIO_PARAM_GSMEFRTYPE gsmefr;
140  OMX_AUDIO_PARAM_TDMAFRTYPE tdmafr;
141  OMX_AUDIO_PARAM_TDMAEFRTYPE tdmaefr;
142  OMX_AUDIO_PARAM_PDCFRTYPE pdcfr;
143  OMX_AUDIO_PARAM_PDCEFRTYPE pdcefr;
144  OMX_AUDIO_PARAM_PDCHRTYPE pdchr;
145  OMX_AUDIO_PARAM_QCELP8TYPE qcelp8;
146  OMX_AUDIO_PARAM_QCELP13TYPE qcelp13;
147  OMX_AUDIO_PARAM_EVRCTYPE evrc;
148  OMX_AUDIO_PARAM_SMVTYPE smv;
149  OMX_AUDIO_PARAM_MIDITYPE midi;
150 #ifdef OMX_AUDIO_CodingDDP_Supported
151  OMX_AUDIO_PARAM_DDPTYPE ddp;
152 #endif
153 #ifdef OMX_AUDIO_CodingDTS_Supported
154  OMX_AUDIO_PARAM_DTSTYPE dts;
155 #endif
156 
158 
166 OMX_INDEXTYPE mmalil_omx_audio_param_index(OMX_AUDIO_CODINGTYPE coding, OMX_U32 *size);
167 
174 OMX_AUDIO_CODINGTYPE mmalil_omx_audio_param_index_to_coding(OMX_INDEXTYPE index);
175 
182 MMAL_STATUS_T mmalil_omx_default_channel_mapping(OMX_AUDIO_CHANNELTYPE *channel_mapping, unsigned int nchannels);
183 
193  OMX_AUDIO_CODINGTYPE coding, OMX_FORMAT_PARAM_TYPE *param);
194 
203 OMX_AUDIO_CODINGTYPE mmalil_format_to_omx_audio_param(OMX_FORMAT_PARAM_TYPE *param,
204  OMX_INDEXTYPE *param_index, MMAL_ES_FORMAT_T *format);
205 
206 #ifdef __cplusplus
207 }
208 #endif
209 
212 #endif /* MMAL_IL_H */
MMAL_STATUS_T mmalil_error_to_mmal(OMX_ERRORTYPE error)
Definition: mmal_format.h:125
uint32_t mmalil_buffer_flags_to_mmal(OMX_U32 flags)
OMX_INDEXTYPE mmalil_omx_audio_param_index(OMX_AUDIO_CODINGTYPE coding, OMX_U32 *size)
Definition: mmal_il.h:113
MMAL_STATUS_T mmalil_omx_default_channel_mapping(OMX_AUDIO_CHANNELTYPE *channel_mapping, unsigned int nchannels)
void mmalil_buffer_header_to_mmal(MMAL_BUFFER_HEADER_T *mmal, OMX_BUFFERHEADERTYPE *omx)
uint32_t MMAL_FOURCC_T
Definition: mmal_types.h:92
OMX_AUDIO_CODINGTYPE mmalil_format_to_omx_audio_param(OMX_FORMAT_PARAM_TYPE *param, OMX_INDEXTYPE *param_index, MMAL_ES_FORMAT_T *format)
OMX_U32 mmalil_buffer_flags_to_omx(uint32_t flags)
Definition: mmal_buffer.h:69
void mmalil_buffer_header_to_omx(OMX_BUFFERHEADERTYPE *omx, MMAL_BUFFER_HEADER_T *mmal)
MMAL_ES_TYPE_T
Definition: mmal_format.h:44
OMX_ERRORTYPE mmalil_error_to_omx(MMAL_STATUS_T status)
OMX_AUDIO_CODINGTYPE mmalil_omx_audio_param_index_to_coding(OMX_INDEXTYPE index)
MMAL_STATUS_T
Definition: mmal_types.h:46
MMAL_FOURCC_T mmalil_omx_audio_param_to_format(MMAL_ES_FORMAT_T *format, OMX_AUDIO_CODINGTYPE coding, OMX_FORMAT_PARAM_TYPE *param)
union OMX_FORMAT_PARAM_TYPE OMX_FORMAT_PARAM_TYPE