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