#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "dsputil.h"
#include "get_bits.h"
#include "bytestream.h"
Go to the source code of this file.
Data Structures | |
| struct | CFrameBuffer |
| struct | FourXContext |
Defines | |
| #define | BLOCK_TYPE_VLC_BITS 5 |
| #define | ACDC_VLC_BITS 9 |
| #define | CFRAME_BUFFER_COUNT 100 |
| #define | FIX_1_082392200 70936 |
| #define | FIX_1_414213562 92682 |
| #define | FIX_1_847759065 121095 |
| #define | FIX_2_613125930 171254 |
| #define | MULTIPLY(var, const) (((var)*(const)) >> 16) |
| #define | LE_CENTRIC_MUL(dst, src, scale, dc) |
Functions | |
| static void | idct (DCTELEM block[64]) |
| static av_cold void | init_vlcs (FourXContext *f) |
| static void | init_mv (FourXContext *f) |
| static void | mcdc (uint16_t *dst, uint16_t *src, int log2w, int h, int stride, int scale, unsigned dc) |
| static void | decode_p_block (FourXContext *f, uint16_t *dst, uint16_t *src, int log2w, int log2h, int stride) |
| static int | decode_p_frame (FourXContext *f, const uint8_t *buf, int length) |
| static int | decode_i_block (FourXContext *f, DCTELEM *block) |
| decode block and dequantize. | |
| static void | idct_put (FourXContext *f, int x, int y) |
| static int | decode_i_mb (FourXContext *f) |
| static const uint8_t * | read_huffman_tables (FourXContext *f, const uint8_t *const buf, int buf_size) |
| static int | mix (int c0, int c1) |
| static int | decode_i2_frame (FourXContext *f, const uint8_t *buf, int length) |
| static int | decode_i_frame (FourXContext *f, const uint8_t *buf, int length) |
| static int | decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt) |
| static av_cold void | common_init (AVCodecContext *avctx) |
| static av_cold int | decode_init (AVCodecContext *avctx) |
| static av_cold int | decode_end (AVCodecContext *avctx) |
Variables | |
| static const uint8_t | block_type_tab [2][4][8][2] |
| static const uint8_t | size2index [4][4] |
| static const int8_t | mv [256][2] |
| static const uint8_t | dequant_table [64] |
| static VLC | block_type_vlc [2][4] |
| AVCodec | ff_fourxm_decoder |
Definition in file 4xm.c.
| #define ACDC_VLC_BITS 9 |
Definition at line 37 of file 4xm.c.
Referenced by decode_i_block(), decode_i_frame(), and read_huffman_tables().
| #define BLOCK_TYPE_VLC_BITS 5 |
| #define CFRAME_BUFFER_COUNT 100 |
| #define FIX_1_847759065 121095 |
Definition at line 152 of file 4xm.c.
Referenced by ff_fdct248_islow(), ff_jpeg_fdct_islow(), idct(), j_rev_dct(), j_rev_dct4(), and row_fdct().
| #define MULTIPLY | ( | var, | |||
| const | ) | (((var)*(const)) >> 16) |
Definition at line 155 of file 4xm.c.
Referenced by fdct_ifast(), fdct_ifast248(), ff_fdct248_islow(), ff_jpeg_fdct_islow(), idct(), j_rev_dct(), j_rev_dct4(), and row_fdct().
| static av_cold void common_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 876 of file 4xm.c.
Referenced by decode_init(), ff_h264_decode_init(), and ff_msmpeg4_decode_init().
| static av_cold int decode_end | ( | AVCodecContext * | avctx | ) | [static] |
| static int decode_frame | ( | AVCodecContext * | avctx, | |
| void * | data, | |||
| int * | data_size, | |||
| AVPacket * | avpkt | |||
| ) | [static] |
Definition at line 744 of file 4xm.c.
Referenced by decode_frame(), decode_packet(), flac_decode_frame(), nut_read_packet(), and sipr_decode_frame().
| static int decode_i2_frame | ( | FourXContext * | f, | |
| const uint8_t * | buf, | |||
| int | length | |||
| ) | [static] |
| static int decode_i_block | ( | FourXContext * | f, | |
| DCTELEM * | block | |||
| ) | [static] |
decode block and dequantize.
Note this is almost identical to MJPEG.
Definition at line 459 of file 4xm.c.
Referenced by decode_i_mb().
| static int decode_i_frame | ( | FourXContext * | f, | |
| const uint8_t * | buf, | |||
| int | length | |||
| ) | [static] |
| static int decode_i_mb | ( | FourXContext * | f | ) | [static] |
| static av_cold int decode_init | ( | AVCodecContext * | avctx | ) | [static] |
| static void decode_p_block | ( | FourXContext * | f, | |
| uint16_t * | dst, | |||
| uint16_t * | src, | |||
| int | log2w, | |||
| int | log2h, | |||
| int | stride | |||
| ) | [static] |
| static int decode_p_frame | ( | FourXContext * | f, | |
| const uint8_t * | buf, | |||
| int | length | |||
| ) | [static] |
| static void idct_put | ( | FourXContext * | f, | |
| int | x, | |||
| int | y | |||
| ) | [inline, static] |
Definition at line 503 of file 4xm.c.
Referenced by decode_frame(), decode_i_frame(), decode_mb(), dsputil_init_sh4(), and dv_decode_video_segment().
| static void init_mv | ( | FourXContext * | f | ) | [static] |
| static av_cold void init_vlcs | ( | FourXContext * | f | ) | [static] |
| static void mcdc | ( | uint16_t * | dst, | |
| uint16_t * | src, | |||
| int | log2w, | |||
| int | h, | |||
| int | stride, | |||
| int | scale, | |||
| unsigned | dc | |||
| ) | [inline, static] |
| static int mix | ( | int | c0, | |
| int | c1 | |||
| ) | [static] |
| static const uint8_t* read_huffman_tables | ( | FourXContext * | f, | |
| const uint8_t *const | buf, | |||
| int | buf_size | |||
| ) | [static] |
const uint8_t block_type_tab[2][4][8][2] [static] |
Initial value:
{
{
{
{ 0,1}, { 2,2}, { 6,3}, {14,4}, {30,5}, {31,5}, { 0,0}
},{
{ 0,1}, { 0,0}, { 2,2}, { 6,3}, {14,4}, {15,4}, { 0,0}
},{
{ 0,1}, { 2,2}, { 0,0}, { 6,3}, {14,4}, {15,4}, { 0,0}
},{
{ 0,1}, { 0,0}, { 0,0}, { 2,2}, { 6,3}, {14,4}, {15,4}
}
},{
{
{ 1,2}, { 4,3}, { 5,3}, {0,2}, {6,3}, {7,3}, {0,0}
},{
{ 1,2}, { 0,0}, { 2,2}, {0,2}, {6,3}, {7,3}, {0,0}
},{
{ 1,2}, { 2,2}, { 0,0}, {0,2}, {6,3}, {7,3}, {0,0}
},{
{ 1,2}, { 0,0}, { 0,0}, {0,2}, {2,2}, {6,3}, {7,3}
}
}
}
Definition at line 41 of file 4xm.c.
Referenced by init_vlcs().
VLC block_type_vlc[2][4] [static] |
const uint8_t dequant_table[64] [static] |
Initial value:
{
16, 15, 13, 19, 24, 31, 28, 17,
17, 23, 25, 31, 36, 63, 45, 21,
18, 24, 27, 37, 52, 59, 49, 20,
16, 28, 34, 40, 60, 80, 51, 20,
18, 31, 48, 66, 68, 86, 56, 21,
19, 38, 56, 59, 64, 64, 48, 20,
27, 48, 55, 55, 56, 51, 35, 15,
20, 35, 34, 32, 31, 22, 15, 8,
}
Definition at line 108 of file 4xm.c.
Referenced by decode_i_block(), and fill_tone_level_array().
Initial value:
{
"4xm",
AVMEDIA_TYPE_VIDEO,
CODEC_ID_4XM,
sizeof(FourXContext),
decode_init,
NULL,
decode_end,
decode_frame,
CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("4X Movie"),
}
const int8_t mv[256][2] [static] |
Definition at line 72 of file 4xm.c.
Referenced by decode_13(), dwt_decode53(), dwt_decode97(), dwt_encode53(), dwt_encode97(), encode_frame(), fetch_diagonal_mv(), ff_mpeg1_encode_init(), ff_print_debug_info(), h263_get_modb(), init_mv(), init_mv_penalty_and_fcode(), pred_spatial_direct_motion(), svq1_motion_inter_4v_block(), svq1_motion_inter_block(), svq3_mc_dir(), vc1_apply_p_h_loop_filter(), vc1_apply_p_v_loop_filter(), vp56_decode_4mv(), and vp56_decode_mv().
const uint8_t size2index[4][4] [static] |
Initial value:
{
{-1, 3, 1, 1},
{ 3, 0, 0, 0},
{ 2, 0, 0, 0},
{ 2, 0, 0, 0},
}
Definition at line 65 of file 4xm.c.
Referenced by decode_p_block().
1.5.8