#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"
#include "simple_idct.h"
#include "dvdata.h"
Go to the source code of this file.
Data Structures | |
struct | DVVideoContext |
struct | dv_vlc_pair |
struct | BlockInfo |
struct | EncBlockInfo |
Defines | |
#define | ALT_BITSTREAM_READER |
#define | DV_ANCHOR_SIZE (2*12*27) |
#define | TEX_VLC_BITS 9 |
#define | DV_VLC_MAP_RUN_SIZE 64 |
#define | DV_VLC_MAP_LEV_SIZE 512 |
#define | SC(x, y) ((s[x] - s[y]) ^ ((s[x] - s[y]) >> 7)) |
Functions | |
static void | dv_build_unquantize_tables (DVVideoContext *s, uint8_t *perm) |
static int | dvvideo_init (AVCodecContext *avctx) |
static int | get_bits_left (GetBitContext *s) |
static int | get_bits_size (GetBitContext *s) |
static int | put_bits_left (PutBitContext *s) |
static void | dv_decode_ac (GetBitContext *gb, BlockInfo *mb, DCTELEM *block) |
static void | bit_copy (PutBitContext *pb, GetBitContext *gb) |
static void | dv_decode_video_segment (DVVideoContext *s, const uint8_t *buf_ptr1, const uint16_t *mb_pos_ptr) |
static av_always_inline int | dv_rl2vlc (int run, int l, int sign, uint32_t *vlc) |
static av_always_inline int | dv_rl2vlc_size (int run, int l) |
static av_always_inline PutBitContext * | dv_encode_ac (EncBlockInfo *bi, PutBitContext *pb_pool, PutBitContext *pb_end) |
static av_always_inline void | dv_set_class_number (DCTELEM *blk, EncBlockInfo *bi, const uint8_t *zigzag_scan, const int *weight, int bias) |
static av_always_inline int | dv_guess_dct_mode (DCTELEM *blk) |
static void | dv_guess_qnos (EncBlockInfo *blks, int *qnos) |
static void | dv_encode_video_segment (DVVideoContext *s, uint8_t *dif, const uint16_t *mb_pos_ptr) |
static int | dv_decode_mt (AVCodecContext *avctx, void *sl) |
static int | dv_write_pack (enum dv_pack_type pack_id, DVVideoContext *c, uint8_t *buf) |
static void | dv_format_frame (DVVideoContext *c, uint8_t *buf) |
static int | dvvideo_close (AVCodecContext *c) |
Variables | |
static void * | dv_anchor [DV_ANCHOR_SIZE] |
static RL_VLC_ELEM | dv_rl_vlc [1184] |
static struct dv_vlc_pair | dv_vlc_map [DV_VLC_MAP_RUN_SIZE][DV_VLC_MAP_LEV_SIZE] |
static const uint16_t | block_sizes [6] |
static const int | vs_total_ac_bits = (100 * 4 + 68*2) * 5 |
static const int | mb_area_start [5] = { 1, 6, 21, 43, 64 } |
#define DV_ANCHOR_SIZE (2*12*27) |
#define DV_VLC_MAP_LEV_SIZE 512 |
#define DV_VLC_MAP_RUN_SIZE 64 |
#define SC | ( | x, | |||
y | ) | ((s[x] - s[y]) ^ ((s[x] - s[y]) >> 7)) |
#define TEX_VLC_BITS 9 |
Definition at line 67 of file dv.c.
Referenced by dv_decode_ac(), dvvideo_init(), ff_msmpeg4_decode_block(), h263_decode_block(), init_2d_vlc_rl(), mdec_decode_block_intra(), mpeg1_decode_block_inter(), mpeg1_decode_block_intra(), mpeg1_fast_decode_block_inter(), mpeg2_decode_block_intra(), mpeg2_decode_block_non_intra(), mpeg2_fast_decode_block_intra(), mpeg2_fast_decode_block_non_intra(), and mpeg4_decode_block().
static void bit_copy | ( | PutBitContext * | pb, | |
GetBitContext * | gb | |||
) | [inline, static] |
static void dv_build_unquantize_tables | ( | DVVideoContext * | s, | |
uint8_t * | perm | |||
) | [static] |
static void dv_decode_ac | ( | GetBitContext * | gb, | |
BlockInfo * | mb, | |||
DCTELEM * | block | |||
) | [static] |
static int dv_decode_mt | ( | AVCodecContext * | avctx, | |
void * | sl | |||
) | [static] |
static void dv_decode_video_segment | ( | DVVideoContext * | s, | |
const uint8_t * | buf_ptr1, | |||
const uint16_t * | mb_pos_ptr | |||
) | [inline, static] |
static av_always_inline PutBitContext* dv_encode_ac | ( | EncBlockInfo * | bi, | |
PutBitContext * | pb_pool, | |||
PutBitContext * | pb_end | |||
) | [static] |
static void dv_encode_video_segment | ( | DVVideoContext * | s, | |
uint8_t * | dif, | |||
const uint16_t * | mb_pos_ptr | |||
) | [inline, static] |
static void dv_format_frame | ( | DVVideoContext * | c, | |
uint8_t * | buf | |||
) | [static] |
static av_always_inline int dv_guess_dct_mode | ( | DCTELEM * | blk | ) | [static] |
static void dv_guess_qnos | ( | EncBlockInfo * | blks, | |
int * | qnos | |||
) | [inline, static] |
static av_always_inline int dv_rl2vlc | ( | int | run, | |
int | l, | |||
int | sign, | |||
uint32_t * | vlc | |||
) | [static] |
static av_always_inline int dv_rl2vlc_size | ( | int | run, | |
int | l | |||
) | [static] |
static av_always_inline void dv_set_class_number | ( | DCTELEM * | blk, | |
EncBlockInfo * | bi, | |||
const uint8_t * | zigzag_scan, | |||
const int * | weight, | |||
int | bias | |||
) | [static] |
static int dv_write_pack | ( | enum dv_pack_type | pack_id, | |
DVVideoContext * | c, | |||
uint8_t * | buf | |||
) | [inline, static] |
Definition at line 1072 of file dv.c.
Referenced by dv_format_frame(), dv_inject_audio(), and dv_inject_metadata().
static int dvvideo_close | ( | AVCodecContext * | c | ) | [static] |
static int dvvideo_init | ( | AVCodecContext * | avctx | ) | [static] |
static int get_bits_left | ( | GetBitContext * | s | ) | [inline, static] |
static int get_bits_size | ( | GetBitContext * | s | ) | [inline, static] |
static int put_bits_left | ( | PutBitContext * | s | ) | [inline, static] |
const uint16_t block_sizes[6] [static] |
Initial value:
{ 112, 112, 112, 112, 80, 80 }
Definition at line 261 of file dv.c.
Referenced by dv_decode_video_segment(), and dv_encode_video_segment().
void* dv_anchor[DV_ANCHOR_SIZE] [static] |
RL_VLC_ELEM dv_rl_vlc[1184] [static] |
struct dv_vlc_pair dv_vlc_map[DV_VLC_MAP_RUN_SIZE][DV_VLC_MAP_LEV_SIZE] [static] |
Referenced by dv_rl2vlc(), dv_rl2vlc_size(), and dvvideo_init().
const int mb_area_start[5] = { 1, 6, 21, 43, 64 } [static] |
const int vs_total_ac_bits = (100 * 4 + 68*2) * 5 [static] |