1 2 /* 3 * Copyright (C) Texas Instruments - http://www.ti.com/ 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 /* ============================================================================= 22 * Texas Instruments OMAP(TM) Platform Software 23 * (c) Copyright Texas Instruments, Incorporated. All Rights Reserved. 24 * 25 * Use of this software is controlled by the terms and conditions found 26 * in the license agreement under which this software has been supplied. 27 * =========================================================================== */ 28 /** 29 * @file OMX_JpegEnc_CustomCmd.h 30 * 31 * This is an header file for an Jpeg encoder that is fully compliant with the OMX specification. 32 * This is the file that the application that uses OMX would include in its code. 33 * 34 * @path $(CSLPATH)\ 35 * 36 * @rev 0.1 37 */ 38 /* -------------------------------------------------------------------------- */ 39 40 #ifndef OMX_JPEGENC_CUSTOMCMD_H 41 #define OMX_JPEGENC_CUSTOMCMD_H 42 43 44 /*------- Program Header Files ----------------------------------------*/ 45 #include <OMX_Component.h> 46 47 /*------- Structures ----------------------------------------*/ 48 49 50 typedef struct JPEGENC_CUSTOM_HUFFMAN_TABLE { 51 52 OMX_U32 lum_dc_vlc[12]; 53 OMX_U32 lum_ac_vlc[16][16]; 54 OMX_U32 chm_dc_vlc[12]; 55 OMX_U32 chm_ac_vlc[16][16]; 56 OMX_U8 lum_dc_codelens[16]; 57 OMX_U16 lum_dc_ncodes; 58 OMX_U8 lum_dc_symbols[12]; 59 OMX_U16 lum_dc_nsymbols; 60 OMX_U8 lum_ac_codelens[16]; 61 OMX_U16 lum_ac_ncodes; 62 OMX_U8 lum_ac_symbols[162]; 63 OMX_U16 lum_ac_nsymbols; 64 OMX_U8 chm_dc_codelens[16]; 65 OMX_U16 chm_dc_ncodes; 66 OMX_U8 chm_dc_symbols[12]; 67 OMX_U16 chm_dc_nsymbols; 68 OMX_U8 chm_ac_codelens[16]; 69 OMX_U16 chm_ac_ncodes; 70 OMX_U8 chm_ac_symbols[162]; 71 OMX_U16 chm_ac_nsymbols; 72 }JPEGENC_CUSTOM_HUFFMAN_TABLE; 73 74 typedef struct JPEGENC_CUSTOM_HUFFMANTTABLETYPE { 75 OMX_U32 nSize; 76 OMX_VERSIONTYPE nVersion; 77 OMX_U32 nPortIndex; 78 JPEGENC_CUSTOM_HUFFMAN_TABLE sHuffmanTable; 79 }JPEGENC_CUSTOM_HUFFMANTTABLETYPE; 80 81 typedef struct JPEG_APPTHUMB_MARKER { 82 OMX_BOOL bMarkerEnabled; /* Boolean flag to enable/disable this marker on its whole */ 83 OMX_U8 *pMarkerBuffer; /* This pointer must point to the marker buffer allocated by application */ 84 OMX_U32 nMarkerSize; /* This variable holds the size of the marker buffer */ 85 OMX_U32 nThumbnailWidth; /* This variable holds the thumbnail's width value (0 = No thumbnail) */ 86 OMX_U32 nThumbnailHeight; /* This variable holds the thumbnail's height value (0 = No thumbnail) */ 87 } JPEG_APPTHUMB_MARKER; 88 89 typedef struct JPEG_APP13_MARKER { 90 OMX_BOOL bMarkerEnabled; /* Boolean flag to enable/disable this marker on its whole */ 91 OMX_U8 *pMarkerBuffer; /* This pointer must point to the marker buffer allocated by application */ 92 OMX_U32 nMarkerSize; /* This variable holds the size of the marker buffer */ 93 } JPEG_APP13_MARKER; 94 95 #endif /* OMX_JPEGENC_CUSTOMCMD_H */ 96 97