My Project
/home/jvcleave/Desktop/RASPBERRY_PI/userland/interface/mmal/util/mmal_il.h
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 */
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines