os/ossrv/genericopenlibs/liboil/tsrc/examples/jpeg/inc/jpeg.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description: 
sl@0
    15
*
sl@0
    16
*/
sl@0
    17
sl@0
    18
sl@0
    19
#ifndef _JPEG_DECODER_H_
sl@0
    20
#define _JPEG_DECODER_H_
sl@0
    21
sl@0
    22
#include <stdint.h>
sl@0
    23
sl@0
    24
#define JPEG_MARKER_STUFFED		0x00
sl@0
    25
#define JPEG_MARKER_TEM			0x01
sl@0
    26
#define JPEG_MARKER_RES			0x02
sl@0
    27
sl@0
    28
#define JPEG_MARKER_SOF_0		0xc0
sl@0
    29
#define JPEG_MARKER_SOF_1		0xc1
sl@0
    30
#define JPEG_MARKER_SOF_2		0xc2
sl@0
    31
#define JPEG_MARKER_SOF_3		0xc3
sl@0
    32
#define JPEG_MARKER_DEFINE_HUFFMAN_TABLES		0xc4
sl@0
    33
#define JPEG_MARKER_SOF_5		0xc5
sl@0
    34
#define JPEG_MARKER_SOF_6		0xc6
sl@0
    35
#define JPEG_MARKER_SOF_7		0xc7
sl@0
    36
#define JPEG_MARKER_JPG			0xc8
sl@0
    37
#define JPEG_MARKER_SOF_9		0xc9
sl@0
    38
#define JPEG_MARKER_SOF_10		0xca
sl@0
    39
#define JPEG_MARKER_SOF_11		0xcb
sl@0
    40
#define JPEG_MARKER_DEFINE_ARITHMETIC_CONDITIONING	0xcc
sl@0
    41
#define JPEG_MARKER_SOF_13		0xcd
sl@0
    42
#define JPEG_MARKER_SOF_14		0xce
sl@0
    43
#define JPEG_MARKER_SOF_15		0xcf
sl@0
    44
sl@0
    45
#define JPEG_MARKER_RST_0		0xd0
sl@0
    46
#define JPEG_MARKER_RST_1		0xd1
sl@0
    47
#define JPEG_MARKER_RST_2		0xd2
sl@0
    48
#define JPEG_MARKER_RST_3		0xd3
sl@0
    49
#define JPEG_MARKER_RST_4		0xd4
sl@0
    50
#define JPEG_MARKER_RST_5		0xd5
sl@0
    51
#define JPEG_MARKER_RST_6		0xd6
sl@0
    52
#define JPEG_MARKER_RST_7		0xd7
sl@0
    53
sl@0
    54
#define JPEG_MARKER_SOI			0xd8
sl@0
    55
#define JPEG_MARKER_EOI			0xd9
sl@0
    56
#define JPEG_MARKER_SOS			0xda
sl@0
    57
#define JPEG_MARKER_DEFINE_QUANTIZATION_TABLES		0xdb
sl@0
    58
#define JPEG_MARKER_DNL			0xdc
sl@0
    59
#define JPEG_MARKER_DEFINE_RESTART_INTERVAL		0xdd
sl@0
    60
#define JPEG_MARKER_DHP			0xde
sl@0
    61
#define JPEG_MARKER_EXP			0xdf
sl@0
    62
#define JPEG_MARKER_APP(x)		(0xe0 + (x))
sl@0
    63
#define JPEG_MARKER_JPG_(x)		(0xf0 + (x))
sl@0
    64
#define JPEG_MARKER_COMMENT                             0xfe
sl@0
    65
sl@0
    66
#define JPEG_MARKER_JFIF		JPEG_MARKER_APP(0)
sl@0
    67
sl@0
    68
#define JPEG_MARKER_IS_START_OF_FRAME(x) ((x)>=0xc0 && (x) <= 0xcf && (x)!=0xc4 && (x)!=0xc8 && (x)!=0xcc)
sl@0
    69
#define JPEG_MARKER_IS_APP(x) ((x)>=0xe0 && (x) <= 0xef)
sl@0
    70
#define JPEG_MARKER_IS_RESET(x) ((x)>=0xd0 && (x)<=0xd7)
sl@0
    71
sl@0
    72
sl@0
    73
typedef struct _JpegDecoder JpegDecoder;
sl@0
    74
sl@0
    75
sl@0
    76
JpegDecoder *jpeg_decoder_new(void);
sl@0
    77
void jpeg_decoder_free(JpegDecoder *dec);
sl@0
    78
int jpeg_decoder_addbits(JpegDecoder *dec, unsigned char *data, unsigned int len);
sl@0
    79
int jpeg_decoder_decode (JpegDecoder *dec);
sl@0
    80
int jpeg_decoder_get_image_size(JpegDecoder *dec, int *width, int *height);
sl@0
    81
int jpeg_decoder_get_component_size(JpegDecoder *dec, int id,
sl@0
    82
	int *width, int *height);
sl@0
    83
int jpeg_decoder_get_component_subsampling(JpegDecoder *dec, int id,
sl@0
    84
	int *h_subsample, int *v_subsample);
sl@0
    85
int jpeg_decoder_get_component_ptr(JpegDecoder *dec, int id,
sl@0
    86
	unsigned char **image, int *rowstride);
sl@0
    87
sl@0
    88
unsigned char *jpeg_decoder_get_argb_image (JpegDecoder *dec);
sl@0
    89
int jpeg_decode_argb (uint8_t *data, int length, uint32_t **image,
sl@0
    90
    int *width, int *height);
sl@0
    91
sl@0
    92
#endif
sl@0
    93