hvirtual/quicktime/ffmpeg/libavcodec/svq3.c File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define FULLPEL_MODE   1
#define HALFPEL_MODE   2
#define THIRDPEL_MODE   3
#define PREDICT_MODE   4
#define stride   16

Functions

static void svq3_luma_dc_dequant_idct_c (DCTELEM *block, int qp)
static void svq3_add_idct_c (uint8_t *dst, DCTELEM *block, int stride, int qp, int dc)
static void pred4x4_down_left_svq3_c (uint8_t *src, uint8_t *topright, int stride)
static void pred16x16_plane_svq3_c (uint8_t *src, int stride)
static int svq3_decode_block (GetBitContext *gb, DCTELEM *block, int index, const int type)
static void svq3_mc_dir_part (MpegEncContext *s, int x, int y, int width, int height, int mx, int my, int dxy, int thirdpel, int dir, int avg)
static int svq3_mc_dir (H264Context *h, int size, int mode, int dir, int avg)
static int svq3_decode_mb (H264Context *h, unsigned int mb_type)
static int svq3_decode_slice_header (H264Context *h)
static int svq3_decode_frame (AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size)

Variables

static const uint8_t svq3_scan [16]
static const uint8_t svq3_pred_0 [25][2]
static const int8_t svq3_pred_1 [6][6][5]
struct {
   uint8_t   run
   uint8_t   level
svq3_dct_tables [2][16]
static const uint32_t svq3_dequant_coeff [32]
AVCodec svq3_decoder


Detailed Description

svq3 decoder.

Definition in file svq3.c.


Define Documentation

#define FULLPEL_MODE   1

Definition at line 46 of file svq3.c.

Referenced by svq3_decode_mb().

#define HALFPEL_MODE   2

Definition at line 47 of file svq3.c.

Referenced by svq3_decode_mb(), and svq3_mc_dir().

#define PREDICT_MODE   4

Definition at line 49 of file svq3.c.

Referenced by svq3_decode_mb(), and svq3_mc_dir().

#define stride   16

#define THIRDPEL_MODE   3

Definition at line 48 of file svq3.c.

Referenced by svq3_decode_mb(), and svq3_mc_dir().


Function Documentation

static void pred16x16_plane_svq3_c ( uint8_t *  src,
int  stride 
) [static]

Definition at line 205 of file svq3.c.

References pred16x16_plane_compat_c().

Referenced by svq3_decode_frame().

Here is the call graph for this function:

static void pred4x4_down_left_svq3_c ( uint8_t *  src,
uint8_t *  topright,
int  stride 
) [static]

Definition at line 181 of file svq3.c.

References __attribute__(), LOAD_LEFT_EDGE, LOAD_TOP_EDGE, t0, t1, t2, and t3.

Referenced by svq3_decode_frame().

Here is the call graph for this function:

static void svq3_add_idct_c ( uint8_t *  dst,
DCTELEM block,
int  stride,
int  qp,
int  dc 
) [static]

Definition at line 145 of file svq3.c.

References cm, cropTbl, MAX_NEG_CROP, and svq3_dequant_coeff.

static int svq3_decode_block ( GetBitContext gb,
DCTELEM block,
int  index,
const int  type 
) [inline, static]

Definition at line 209 of file svq3.c.

References chroma_dc_scan, INVALID_VLC, level, luma_dc_zigzag_scan, run, svq3_dct_tables, svq3_get_ue_golomb(), svq3_scan, and zigzag_scan.

Referenced by svq3_decode_mb().

Here is the call graph for this function:

static int svq3_decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
uint8_t *  buf,
int  buf_size 
) [static]

Definition at line 788 of file svq3.c.

References MpegEncContext::adaptive_quant, alloc_tables, av_get_pict_type_char(), av_log(), AV_LOG_DEBUG, AV_LOG_ERROR, MpegEncContext::avctx, AVDISCARD_ALL, AVDISCARD_NONKEY, AVDISCARD_NONREF, H264Context::b_stride, B_TYPE, BE_32, H264Context::chroma_qp, MpegEncContext::context_initialized, MpegEncContext::current_picture, AVCodecContext::debug, DIAG_DOWN_LEFT_PRED, AVCodecContext::extradata, AVCodecContext::extradata_size, FF_DEBUG_PICT_INFO, ff_draw_horiz_band(), AVCodecContext::flags, MpegEncContext::flags, AVCodecContext::flags2, MpegEncContext::flags2, H264Context::frame_num, H264Context::frame_num_offset, AVCodecContext::frame_number, frame_start(), MpegEncContext::gb, get_bits(), get_bits1(), get_bits_count(), H264Context::halfpel_flag, AVCodecContext::has_b_frames, AVCodecContext::height, MpegEncContext::height, hl_decode_mb(), AVCodecContext::hurry_up, I_TYPE, init_get_bits(), MpegEncContext::last_picture, MpegEncContext::last_picture_ptr, MpegEncContext::low_delay, MpegEncContext::mb_height, MpegEncContext::mb_stride, MpegEncContext::mb_width, MpegEncContext::mb_x, MpegEncContext::mb_y, memcmp, MPV_common_init(), MPV_frame_end(), MpegEncContext::next_p_frame_damaged, MpegEncContext::next_picture, MpegEncContext::next_picture_ptr, H264Context::next_slice_index, NULL, P_TYPE, PART_NOT_AVAILABLE, MpegEncContext::pict_type, MpegEncContext::picture_number, PLANE_PRED8x8, H264Context::pred16x16, pred16x16_plane_svq3_c(), H264Context::pred4x4, pred4x4_down_left_svq3_c(), H264Context::prev_frame_num, H264Context::prev_frame_num_offset, AVCodecContext::priv_data, MpegEncContext::qscale, H264Context::s, s, scan8, show_bits(), GetBitContext::size_in_bits, skip_bits(), AVCodecContext::skip_frame, H264Context::slice_num, H264Context::slice_type, svq3_decode_mb(), svq3_decode_slice_header(), svq3_get_ue_golomb(), H264Context::thirdpel_flag, H264Context::unknown_svq3_flag, MpegEncContext::unrestricted_mv, AVCodecContext::width, and MpegEncContext::width.

Here is the call graph for this function:

static int svq3_decode_mb ( H264Context h,
unsigned int  mb_type 
) [static]

static int svq3_decode_slice_header ( H264Context h  )  [static]

static void svq3_luma_dc_dequant_idct_c ( DCTELEM block,
int  qp 
) [static]

Definition at line 109 of file svq3.c.

References offset, stride, and svq3_dequant_coeff.

static int svq3_mc_dir ( H264Context h,
int  size,
int  mode,
int  dir,
int  avg 
) [inline, static]

static void svq3_mc_dir_part ( MpegEncContext s,
int  x,
int  y,
int  width,
int  height,
int  mx,
int  my,
int  dxy,
int  thirdpel,
int  dir,
int  avg 
) [inline, static]


Variable Documentation

uint8_t level

Definition at line 94 of file svq3.c.

uint8_t run

struct { ... } svq3_dct_tables[2][16] [static]

Referenced by svq3_decode_block().

const uint32_t svq3_dequant_coeff[32] [static]

Initial value:

 {
   3881,  4351,  4890,  5481,  6154,  6914,  7761,  8718,
   9781, 10987, 12339, 13828, 15523, 17435, 19561, 21873,
  24552, 27656, 30847, 34870, 38807, 43747, 49103, 54683,
  61694, 68745, 77615, 89113,100253,109366,126635,141533
}

Definition at line 101 of file svq3.c.

Referenced by svq3_add_idct_c(), and svq3_luma_dc_dequant_idct_c().

const uint8_t svq3_pred_0[25][2] [static]

Initial value:

 {
  { 0, 0 },
  { 1, 0 }, { 0, 1 },
  { 0, 2 }, { 1, 1 }, { 2, 0 },
  { 3, 0 }, { 2, 1 }, { 1, 2 }, { 0, 3 },
  { 0, 4 }, { 1, 3 }, { 2, 2 }, { 3, 1 }, { 4, 0 },
  { 4, 1 }, { 3, 2 }, { 2, 3 }, { 1, 4 },
  { 2, 4 }, { 3, 3 }, { 4, 2 },
  { 4, 3 }, { 3, 4 },
  { 4, 4 }
}

Definition at line 67 of file svq3.c.

Referenced by svq3_decode_mb().

const int8_t svq3_pred_1[6][6][5] [static]

Initial value:

 {
  { { 2,-1,-1,-1,-1 }, { 2, 1,-1,-1,-1 }, { 1, 2,-1,-1,-1 },
    { 2, 1,-1,-1,-1 }, { 1, 2,-1,-1,-1 }, { 1, 2,-1,-1,-1 } },
  { { 0, 2,-1,-1,-1 }, { 0, 2, 1, 4, 3 }, { 0, 1, 2, 4, 3 },
    { 0, 2, 1, 4, 3 }, { 2, 0, 1, 3, 4 }, { 0, 4, 2, 1, 3 } },
  { { 2, 0,-1,-1,-1 }, { 2, 1, 0, 4, 3 }, { 1, 2, 4, 0, 3 },
    { 2, 1, 0, 4, 3 }, { 2, 1, 4, 3, 0 }, { 1, 2, 4, 0, 3 } },
  { { 2, 0,-1,-1,-1 }, { 2, 0, 1, 4, 3 }, { 1, 2, 0, 4, 3 },
    { 2, 1, 0, 4, 3 }, { 2, 1, 3, 4, 0 }, { 2, 4, 1, 0, 3 } },
  { { 0, 2,-1,-1,-1 }, { 0, 2, 1, 3, 4 }, { 1, 2, 3, 0, 4 },
    { 2, 0, 1, 3, 4 }, { 2, 1, 3, 0, 4 }, { 2, 0, 4, 3, 1 } },
  { { 0, 2,-1,-1,-1 }, { 0, 2, 4, 1, 3 }, { 1, 4, 2, 0, 3 },
    { 4, 2, 0, 1, 3 }, { 2, 0, 1, 4, 3 }, { 4, 2, 1, 0, 3 } },
}

Definition at line 79 of file svq3.c.

Referenced by svq3_decode_mb().

const uint8_t svq3_scan[16] [static]

Initial value:

{
 0+0*4, 1+0*4, 2+0*4, 2+1*4,
 2+2*4, 3+0*4, 3+1*4, 3+2*4,
 0+1*4, 0+2*4, 1+1*4, 1+2*4,
 0+3*4, 1+3*4, 2+3*4, 3+3*4,
}

Definition at line 60 of file svq3.c.

Referenced by svq3_decode_block().


Generated on Mon Apr 28 14:06:20 2008 for Cinelerra by  doxygen 1.5.5