FFmpeg
|
4XM codec. More...
#include <inttypes.h>
#include "libavutil/avassert.h"
#include "libavutil/frame.h"
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "blockdsp.h"
#include "bswapdsp.h"
#include "bytestream.h"
#include "get_bits.h"
#include "internal.h"
Go to the source code of this file.
Data Structures | |
struct | CFrameBuffer |
struct | FourXContext |
Macros | |
#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 (int16_t block[64]) |
static av_cold void | init_vlcs (FourXContext *f) |
static void | init_mv (FourXContext *f, int linesize) |
static void | mcdc (uint16_t *dst, const uint16_t *src, int log2w, int h, int stride, int scale, unsigned dc) |
static int | decode_p_block (FourXContext *f, uint16_t *dst, const 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, int16_t *block) |
decode block and dequantize. More... | |
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 *got_frame, AVPacket *avpkt) |
static av_cold int | decode_end (AVCodecContext *avctx) |
static av_cold int | decode_init (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 |
4XM codec.
Definition in file 4xm.c.
#define BLOCK_TYPE_VLC_BITS 5 |
Definition at line 41 of file 4xm.c.
Referenced by decode_p_block(), and init_vlcs().
#define ACDC_VLC_BITS 9 |
Definition at line 42 of file 4xm.c.
Referenced by decode_i_block(), decode_i_frame(), and read_huffman_tables().
#define CFRAME_BUFFER_COUNT 100 |
Definition at line 44 of file 4xm.c.
Referenced by decode_end(), and decode_frame().
#define FIX_1_082392200 70936 |
Definition at line 156 of file 4xm.c.
Referenced by column_fidct_c(), idct(), and row_idct_c().
#define FIX_1_414213562 92682 |
Definition at line 157 of file 4xm.c.
Referenced by column_fidct_c(), idct(), and row_idct_c().
#define FIX_1_847759065 121095 |
Definition at line 158 of file 4xm.c.
Referenced by column_fidct_c(), idct(), and row_idct_c().
#define FIX_2_613125930 171254 |
Definition at line 159 of file 4xm.c.
Referenced by column_fidct_c(), idct(), and row_idct_c().
#define MULTIPLY | ( | var, | |
const | |||
) | (((var) * (const)) >> 16) |
Definition at line 287 of file 4xm.c.
Referenced by mcdc().
|
static |
Definition at line 163 of file 4xm.c.
Referenced by avcodec_dct_init(), and idct_put().
|
static |
Definition at line 248 of file 4xm.c.
Referenced by decode_init().
|
static |
Definition at line 265 of file 4xm.c.
Referenced by decode_p_frame().
|
inlinestatic |
Definition at line 294 of file 4xm.c.
Referenced by decode_p_block().
|
static |
Definition at line 342 of file 4xm.c.
Referenced by decode_p_frame().
|
static |
Definition at line 427 of file 4xm.c.
Referenced by decode_frame().
|
static |
decode block and dequantize.
Note this is almost identical to MJPEG.
Definition at line 495 of file 4xm.c.
Referenced by decode_i_mb().
|
inlinestatic |
Definition at line 550 of file 4xm.c.
Referenced by decode_i_frame(), and dv_decode_video_segment().
|
static |
Definition at line 596 of file 4xm.c.
Referenced by decode_i_frame().
|
static |
Definition at line 610 of file 4xm.c.
Referenced by decode_i_frame().
|
static |
Definition at line 707 of file 4xm.c.
Referenced by decode_i2_frame().
|
static |
Definition at line 715 of file 4xm.c.
Referenced by decode_frame().
|
static |
Definition at line 763 of file 4xm.c.
Referenced by decode_frame().
|
static |
|
static |
Definition at line 963 of file 4xm.c.
Referenced by decode_init().
|
static |
|
static |
Definition at line 46 of file 4xm.c.
Referenced by init_vlcs().
|
static |
Definition at line 70 of file 4xm.c.
Referenced by decode_p_block().
|
static |
Definition at line 77 of file 4xm.c.
Referenced by av_register_all(), chroma_mc_uni(), compare_mv_ref_idx(), decode_13(), decode_mode(), decode_packet(), derive_spatial_merge_candidates(), dwt_decode53(), dwt_decode97_float(), dwt_decode97_int(), dwt_encode53(), dwt_encode97_float(), dwt_encode97_int(), encode_frame(), fetch_diagonal_mv(), ff_mpeg1_encode_init(), ff_msmpeg4_decode_init(), ff_msmpeg4_decode_motion(), ff_msmpeg4_encode_motion(), ff_print_debug_info2(), fill_decode_caches(), filter_frame(), find_motion(), find_ref_mvs(), h263_get_modb(), h264_er_decode_mb(), init_mv(), init_mv_penalty_and_fcode(), mc_chroma_scaled(), mc_luma_scaled(), mpeg_er_decode_mb(), mv_read_header(), mv_read_packet(), mv_read_seek(), parse_audio_var(), parse_global_var(), 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(), vp56_decode_mv(), vp7_decode_mvs(), and vp8_mc_part().
|
static |
Definition at line 114 of file 4xm.c.
Referenced by decode_i_block(), and fill_tone_level_array().
AVCodec ff_fourxm_decoder |