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