Libav
intrax8.h
Go to the documentation of this file.
1 /*
2  * This file is part of Libav.
3  *
4  * Libav is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * Libav is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with Libav; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #ifndef AVCODEC_INTRAX8_H
20 #define AVCODEC_INTRAX8_H
21 
22 #include "blockdsp.h"
23 #include "get_bits.h"
24 #include "idctdsp.h"
25 #include "intrax8dsp.h"
26 #include "mpegpicture.h"
27 
28 typedef struct IntraX8Context {
29  VLC *j_ac_vlc[4]; // they point to the static j_mb_vlc
32 
34 
35  // set by ff_intrax8_common_init
36  uint8_t *prediction_table; // 2 * (mb_w * 2)
40  int16_t (*block)[64];
41 
42  // set by the caller codec
46  int quant;
47  int dquant;
48  int qsum;
52 
53  // calculated per frame
58  uint8_t scratchpad[42]; // size of the block is fixed (8x8 plus padding)
59 
60  // changed per block
61  int edges;
62  int flat_dc;
66  int orient;
67  int est_run;
68 
69  // block props
70  int mb_x, mb_y;
73 
87  int16_t (*block)[64],
88  int block_last_index[12],
89  int mb_width, int mb_height);
90 
96 
109  GetBitContext *gb, int *mb_x, int *mb_y,
110  int quant, int halfpq,
111  int loopfilter, int lowdelay);
112 
113 #endif /* AVCODEC_INTRAX8_H */
int predicted_dc
Definition: intrax8.h:63
This structure describes decoded (raw) audio or video data.
Definition: frame.h:140
uint8_t * dest[3]
Definition: intrax8.h:57
Scantable.
Definition: idctdsp.h:29
IDCTDSPContext idsp
Definition: intrax8.h:44
uint8_t
int chroma_orient
Definition: intrax8.h:65
bitstream reader API header.
int loopfilter
Definition: intrax8.h:49
BlockDSPContext bdsp
Definition: intrax8.h:45
AVFrame * frame
Definition: intrax8.h:50
int * block_last_index
last nonzero coefficient in block
Definition: intrax8.h:39
void ff_intrax8_common_end(IntraX8Context *w)
Destroy IntraX8 frame structure.
Definition: intrax8.c:767
Definition: vlc.h:26
uint8_t scratchpad[42]
Definition: intrax8.h:58
VLC * j_ac_vlc[4]
Definition: intrax8.h:29
Picture.
Definition: mpegpicture.h:45
int ff_intrax8_decode_picture(IntraX8Context *w, Picture *pict, GetBitContext *gb, int *mb_x, int *mb_y, int quant, int halfpq, int loopfilter, int lowdelay)
Decode single IntraX8 frame.
Definition: intrax8.c:772
main external API structure.
Definition: avcodec.h:1409
int16_t(* block)[64]
Definition: intrax8.h:40
IntraX8DSPContext dsp
Definition: intrax8.h:43
int quant_dc_chroma
Definition: intrax8.h:54
ScanTable scantable[3]
Definition: intrax8.h:37
int ff_intrax8_common_init(AVCodecContext *avctx, IntraX8Context *w, IDCTDSPContext *idsp, int16_t(*block)[64], int block_last_index[12], int mb_width, int mb_height)
Initialize IntraX8 frame decoder.
Definition: intrax8.c:732
GetBitContext * gb
Definition: intrax8.h:51
int divide_quant_dc_luma
Definition: intrax8.h:55
int mb_width
Definition: intrax8.h:71
VLC * j_dc_vlc[3]
Definition: intrax8.h:31
AVCodecContext * avctx
Definition: intrax8.h:38
int raw_orient
Definition: intrax8.h:64
int divide_quant_dc_chroma
Definition: intrax8.h:56
int mb_height
Definition: intrax8.h:71
VLC * j_orient_vlc
Definition: intrax8.h:30
int use_quant_matrix
Definition: intrax8.h:33
uint8_t * prediction_table
Definition: intrax8.h:36