#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 878 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 746 of file 4xm.c.
Referenced by decode_packet(), flac_decode_frame(), nut_read_packet(), and sipr_decoder_init().
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 508 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:
{ .name = "4xm", .type = AVMEDIA_TYPE_VIDEO, .id = CODEC_ID_4XM, .priv_data_size = sizeof(FourXContext), .init = decode_init, .close = decode_end, .decode = decode_frame, .capabilities = 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(), fill_decode_caches(), find_motion(), h263_get_modb(), init_mv(), init_mv_penalty_and_fcode(), pred_pskip_motion(), 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().