My Project
|
00001 /* 00002 Copyright (c) 2012, Broadcom Europe Ltd 00003 All rights reserved. 00004 00005 Redistribution and use in source and binary forms, with or without 00006 modification, are permitted provided that the following conditions are met: 00007 * Redistributions of source code must retain the above copyright 00008 notice, this list of conditions and the following disclaimer. 00009 * Redistributions in binary form must reproduce the above copyright 00010 notice, this list of conditions and the following disclaimer in the 00011 documentation and/or other materials provided with the distribution. 00012 * Neither the name of the copyright holder nor the 00013 names of its contributors may be used to endorse or promote products 00014 derived from this software without specific prior written permission. 00015 00016 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 00017 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00018 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00019 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY 00020 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00021 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00022 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00023 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00024 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00025 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00026 */ 00027 00028 #ifndef MMAL_IL_H 00029 #define MMAL_IL_H 00030 00037 #ifdef __cplusplus 00038 extern "C" { 00039 #endif 00040 00041 #include "interface/vmcs_host/khronos/IL/OMX_Core.h" 00042 #include "interface/vmcs_host/khronos/IL/OMX_Component.h" 00043 #include "interface/vmcs_host/khronos/IL/OMX_Video.h" 00044 #include "interface/vmcs_host/khronos/IL/OMX_Audio.h" 00045 #include "interface/vmcs_host/khronos/IL/OMX_Broadcom.h" 00046 00052 OMX_ERRORTYPE mmalil_error_to_omx(MMAL_STATUS_T status); 00053 00059 MMAL_STATUS_T mmalil_error_to_mmal(OMX_ERRORTYPE error); 00060 00066 uint32_t mmalil_buffer_flags_to_mmal(OMX_U32 flags); 00067 00073 OMX_U32 mmalil_buffer_flags_to_omx(uint32_t flags); 00074 00081 void mmalil_buffer_header_to_omx(OMX_BUFFERHEADERTYPE *omx, MMAL_BUFFER_HEADER_T *mmal); 00082 00088 void mmalil_buffer_header_to_mmal(MMAL_BUFFER_HEADER_T *mmal, OMX_BUFFERHEADERTYPE *omx); 00089 00090 00091 OMX_PORTDOMAINTYPE mmalil_es_type_to_omx_domain(MMAL_ES_TYPE_T type); 00092 MMAL_ES_TYPE_T mmalil_omx_domain_to_es_type(OMX_PORTDOMAINTYPE domain); 00093 uint32_t mmalil_omx_audio_coding_to_encoding(OMX_AUDIO_CODINGTYPE coding); 00094 OMX_AUDIO_CODINGTYPE mmalil_encoding_to_omx_audio_coding(uint32_t encoding); 00095 uint32_t mmalil_omx_video_coding_to_encoding(OMX_VIDEO_CODINGTYPE coding); 00096 OMX_VIDEO_CODINGTYPE mmalil_encoding_to_omx_video_coding(uint32_t encoding); 00097 uint32_t mmalil_omx_image_coding_to_encoding(OMX_IMAGE_CODINGTYPE coding); 00098 OMX_IMAGE_CODINGTYPE mmalil_encoding_to_omx_image_coding(uint32_t encoding); 00099 uint32_t mmalil_omx_coding_to_encoding(uint32_t encoding, OMX_PORTDOMAINTYPE domain); 00100 uint32_t mmalil_omx_color_format_to_encoding(OMX_COLOR_FORMATTYPE coding); 00101 OMX_COLOR_FORMATTYPE mmalil_encoding_to_omx_color_format(uint32_t encoding); 00102 uint32_t mmalil_omx_color_space_to_mmal(OMX_COLORSPACETYPE coding); 00103 OMX_COLORSPACETYPE mmalil_color_space_to_omx(uint32_t coding); 00104 uint32_t mmalil_omx_video_profile_to_mmal(OMX_U32 level, OMX_VIDEO_CODINGTYPE coding); 00105 OMX_U32 mmalil_video_profile_to_omx(uint32_t profile); 00106 uint32_t mmalil_omx_video_level_to_mmal(OMX_U32 level, OMX_VIDEO_CODINGTYPE coding); 00107 OMX_U32 mmalil_video_level_to_omx(uint32_t level); 00108 MMAL_VIDEO_RATECONTROL_T mmalil_omx_video_ratecontrol_to_mmal(OMX_VIDEO_CONTROLRATETYPE omx); 00109 OMX_VIDEO_CONTROLRATETYPE mmalil_video_ratecontrol_to_omx(MMAL_VIDEO_RATECONTROL_T mmal); 00110 00112 typedef union OMX_FORMAT_PARAM_TYPE { 00113 OMX_PARAM_U32TYPE common; 00114 00115 /* Video */ 00116 OMX_VIDEO_PARAM_AVCTYPE avc; 00117 OMX_VIDEO_PARAM_H263TYPE h263; 00118 OMX_VIDEO_PARAM_MPEG2TYPE mpeg2; 00119 OMX_VIDEO_PARAM_MPEG4TYPE mpeg4; 00120 OMX_VIDEO_PARAM_WMVTYPE wmv; 00121 OMX_VIDEO_PARAM_RVTYPE rv; 00122 00123 /* Audio */ 00124 OMX_AUDIO_PARAM_PCMMODETYPE pcm; 00125 OMX_AUDIO_PARAM_MP3TYPE mp3; 00126 OMX_AUDIO_PARAM_AACPROFILETYPE aac; 00127 OMX_AUDIO_PARAM_VORBISTYPE vorbis; 00128 OMX_AUDIO_PARAM_WMATYPE wma; 00129 OMX_AUDIO_PARAM_RATYPE ra; 00130 OMX_AUDIO_PARAM_SBCTYPE sbc; 00131 OMX_AUDIO_PARAM_ADPCMTYPE adpcm; 00132 OMX_AUDIO_PARAM_G723TYPE g723; 00133 OMX_AUDIO_PARAM_G726TYPE g726; 00134 OMX_AUDIO_PARAM_G729TYPE g729; 00135 OMX_AUDIO_PARAM_AMRTYPE amr; 00136 OMX_AUDIO_PARAM_GSMFRTYPE gsmfr; 00137 OMX_AUDIO_PARAM_GSMHRTYPE gsmhr; 00138 OMX_AUDIO_PARAM_GSMEFRTYPE gsmefr; 00139 OMX_AUDIO_PARAM_TDMAFRTYPE tdmafr; 00140 OMX_AUDIO_PARAM_TDMAEFRTYPE tdmaefr; 00141 OMX_AUDIO_PARAM_PDCFRTYPE pdcfr; 00142 OMX_AUDIO_PARAM_PDCEFRTYPE pdcefr; 00143 OMX_AUDIO_PARAM_PDCHRTYPE pdchr; 00144 OMX_AUDIO_PARAM_QCELP8TYPE qcelp8; 00145 OMX_AUDIO_PARAM_QCELP13TYPE qcelp13; 00146 OMX_AUDIO_PARAM_EVRCTYPE evrc; 00147 OMX_AUDIO_PARAM_SMVTYPE smv; 00148 OMX_AUDIO_PARAM_MIDITYPE midi; 00149 00150 } OMX_FORMAT_PARAM_TYPE; 00151 00159 OMX_INDEXTYPE mmalil_omx_audio_param_index(OMX_AUDIO_CODINGTYPE coding, OMX_U32 *size); 00160 00169 MMAL_FOURCC_T mmalil_omx_audio_param_to_format(MMAL_ES_FORMAT_T *format, 00170 OMX_AUDIO_CODINGTYPE coding, OMX_FORMAT_PARAM_TYPE *param); 00171 00180 OMX_AUDIO_CODINGTYPE mmalil_format_to_omx_audio_param(OMX_FORMAT_PARAM_TYPE *param, 00181 OMX_INDEXTYPE *param_index, MMAL_ES_FORMAT_T *format); 00182 00183 #ifdef __cplusplus 00184 } 00185 #endif 00186 00189 #endif /* MMAL_IL_H */