Mercurial > libavcodec.hg
comparison mjpegdec.h @ 5045:f0e079daad30 libavcodec
move MJpegDecodeContext declaration from mjpeg.h to mjpegdec.h
author | aurel |
---|---|
date | Sat, 19 May 2007 15:06:34 +0000 |
parents | 924fdd6175b1 |
children | 1d83e9c34641 |
comparison
equal
deleted
inserted
replaced
5044:924fdd6175b1 | 5045:f0e079daad30 |
---|---|
28 | 28 |
29 #ifndef MJPEGDEC_H | 29 #ifndef MJPEGDEC_H |
30 #define MJPEGDEC_H | 30 #define MJPEGDEC_H |
31 | 31 |
32 #include "avcodec.h" | 32 #include "avcodec.h" |
33 #include "bitstream.h" | |
34 #include "dsputil.h" | |
35 #include "mpegvideo.h" | |
36 | |
37 #define MAX_COMPONENTS 4 | |
38 | |
39 typedef struct MJpegDecodeContext { | |
40 AVCodecContext *avctx; | |
41 GetBitContext gb; | |
42 | |
43 int start_code; /* current start code */ | |
44 int buffer_size; | |
45 uint8_t *buffer; | |
46 | |
47 int16_t quant_matrixes[4][64]; | |
48 VLC vlcs[2][4]; | |
49 int qscale[4]; ///< quantizer scale calculated from quant_matrixes | |
50 | |
51 int org_height; /* size given at codec init */ | |
52 int first_picture; /* true if decoding first picture */ | |
53 int interlaced; /* true if interlaced */ | |
54 int bottom_field; /* true if bottom field */ | |
55 int lossless; | |
56 int ls; | |
57 int progressive; | |
58 int rgb; | |
59 int rct; /* standard rct */ | |
60 int pegasus_rct; /* pegasus reversible colorspace transform */ | |
61 int bits; /* bits per component */ | |
62 | |
63 int maxval; | |
64 int near; ///< near lossless bound (si 0 for lossless) | |
65 int t1,t2,t3; | |
66 int reset; ///< context halfing intervall ?rename | |
67 | |
68 int width, height; | |
69 int mb_width, mb_height; | |
70 int nb_components; | |
71 int component_id[MAX_COMPONENTS]; | |
72 int h_count[MAX_COMPONENTS]; /* horizontal and vertical count for each component */ | |
73 int v_count[MAX_COMPONENTS]; | |
74 int comp_index[MAX_COMPONENTS]; | |
75 int dc_index[MAX_COMPONENTS]; | |
76 int ac_index[MAX_COMPONENTS]; | |
77 int nb_blocks[MAX_COMPONENTS]; | |
78 int h_scount[MAX_COMPONENTS]; | |
79 int v_scount[MAX_COMPONENTS]; | |
80 int h_max, v_max; /* maximum h and v counts */ | |
81 int quant_index[4]; /* quant table index for each component */ | |
82 int last_dc[MAX_COMPONENTS]; /* last DEQUANTIZED dc (XXX: am I right to do that ?) */ | |
83 AVFrame picture; /* picture structure */ | |
84 int linesize[MAX_COMPONENTS]; ///< linesize << interlaced | |
85 int8_t *qscale_table; | |
86 DECLARE_ALIGNED_8(DCTELEM, block[64]); | |
87 ScanTable scantable; | |
88 DSPContext dsp; | |
89 | |
90 int restart_interval; | |
91 int restart_count; | |
92 | |
93 int buggy_avid; | |
94 int cs_itu601; | |
95 int interlace_polarity; | |
96 | |
97 int mjpb_skiptosod; | |
98 | |
99 int cur_scan; /* current scan, used by JPEG-LS */ | |
100 } MJpegDecodeContext; | |
33 | 101 |
34 int ff_mjpeg_decode_init(AVCodecContext *avctx); | 102 int ff_mjpeg_decode_init(AVCodecContext *avctx); |
35 int ff_mjpeg_decode_end(AVCodecContext *avctx); | 103 int ff_mjpeg_decode_end(AVCodecContext *avctx); |
36 int ff_mjpeg_decode_frame(AVCodecContext *avctx, | 104 int ff_mjpeg_decode_frame(AVCodecContext *avctx, |
37 void *data, int *data_size, | 105 void *data, int *data_size, |