Defines | |
#define | GET_PTS_DIFF(a, b) ((a - b + 8192) & 0x1FFF) |
Functions | |
static void | rv34_pred_mv (RV34DecContext *r, int block_type, int subblock_no, int dmv_no) |
motion vector prediction | |
static int | calc_add_mv (RV34DecContext *r, int dir, int val) |
Calculate motion vector component that should be added for direct blocks. | |
static void | rv34_pred_b_vector (int A[2], int B[2], int C[2], int A_avail, int B_avail, int C_avail, int *mx, int *my) |
Predict motion vector for B-frame macroblock. | |
static void | rv34_pred_mv_b (RV34DecContext *r, int block_type, int dir) |
motion vector prediction for B-frames | |
static void | rv34_pred_mv_rv3 (RV34DecContext *r, int block_type, int dir) |
motion vector prediction - RV3 version | |
static void | rv34_mc (RV34DecContext *r, const int block_type, const int xoff, const int yoff, int mv_off, const int width, const int height, int dir, const int thirdpel, qpel_mc_func(*qpel_mc)[16], h264_chroma_mc_func(*chroma_mc)) |
generic motion compensation function | |
static void | rv34_mc_1mv (RV34DecContext *r, const int block_type, const int xoff, const int yoff, int mv_off, const int width, const int height, int dir) |
static void | rv34_mc_2mv (RV34DecContext *r, const int block_type) |
static void | rv34_mc_2mv_skip (RV34DecContext *r) |
static int | rv34_decode_mv (RV34DecContext *r, int block_type) |
Decode motion vector differences and perform motion vector reconstruction and motion compensation. | |
Variables | |
static const uint8_t | part_sizes_w [RV34_MB_TYPES] = { 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2 } |
macroblock partition width in 8x8 blocks | |
static const uint8_t | part_sizes_h [RV34_MB_TYPES] = { 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2 } |
macroblock partition height in 8x8 blocks | |
static const uint8_t | avail_indexes [4] = { 5, 6, 9, 10 } |
availability index for subblocks | |
static const int | chroma_coeffs [3] = { 0, 3, 5 } |
static const int | num_mvs [RV34_MB_TYPES] = { 0, 0, 1, 4, 1, 1, 0, 0, 2, 2, 2, 1 } |
number of motion vectors in each macroblock type |
#define GET_PTS_DIFF | ( | a, | |||
b | ) | ((a - b + 8192) & 0x1FFF) |
static int calc_add_mv | ( | RV34DecContext * | r, | |
int | dir, | |||
int | val | |||
) | [static] |
Calculate motion vector component that should be added for direct blocks.
Definition at line 476 of file rv34.c.
Referenced by rv34_decode_mv().
static int rv34_decode_mv | ( | RV34DecContext * | r, | |
int | block_type | |||
) | [static] |
Decode motion vector differences and perform motion vector reconstruction and motion compensation.
Definition at line 763 of file rv34.c.
Referenced by rv34_decode_mb_header().
static void rv34_mc | ( | RV34DecContext * | r, | |
const int | block_type, | |||
const int | xoff, | |||
const int | yoff, | |||
int | mv_off, | |||
const int | width, | |||
const int | height, | |||
int | dir, | |||
const int | thirdpel, | |||
qpel_mc_func(*) | qpel_mc[16], | |||
h264_chroma_mc_func * | chroma_mc | |||
) | [inline, static] |
generic motion compensation function
r | decoder context | |
block_type | type of the current block | |
xoff | horizontal offset from the start of the current block | |
yoff | vertical offset from the start of the current block | |
mv_off | offset to the motion vector information | |
width | width of the current partition in 8x8 blocks | |
height | height of the current partition in 8x8 blocks | |
dir | motion compensation direction (i.e. from the last or the next reference frame) | |
thirdpel | motion vectors are specified in 1/3 of pixel | |
qpel_mc | a set of functions used to perform luma motion compensation | |
chroma_mc | a set of functions used to perform chroma motion compensation |
Definition at line 627 of file rv34.c.
Referenced by rv34_mc_1mv(), rv34_mc_2mv(), and rv34_mc_2mv_skip().
static void rv34_mc_1mv | ( | RV34DecContext * | r, | |
const int | block_type, | |||
const int | xoff, | |||
const int | yoff, | |||
int | mv_off, | |||
const int | width, | |||
const int | height, | |||
int | dir | |||
) | [static] |
static void rv34_mc_2mv | ( | RV34DecContext * | r, | |
const int | block_type | |||
) | [static] |
static void rv34_mc_2mv_skip | ( | RV34DecContext * | r | ) | [static] |
static void rv34_pred_b_vector | ( | int | A[2], | |
int | B[2], | |||
int | C[2], | |||
int | A_avail, | |||
int | B_avail, | |||
int | C_avail, | |||
int * | mx, | |||
int * | my | |||
) | [inline, static] |
Predict motion vector for B-frame macroblock.
Definition at line 490 of file rv34.c.
Referenced by rv34_pred_mv_b().
static void rv34_pred_mv | ( | RV34DecContext * | r, | |
int | block_type, | |||
int | subblock_no, | |||
int | dmv_no | |||
) | [static] |
motion vector prediction
Motion prediction performed for the block by using median prediction of motion vectors from the left, top and right top blocks but in corner cases some other vectors may be used instead.
Definition at line 422 of file rv34.c.
Referenced by rv34_decode_mv().
static void rv34_pred_mv_b | ( | RV34DecContext * | r, | |
int | block_type, | |||
int | dir | |||
) | [static] |
motion vector prediction for B-frames
Definition at line 510 of file rv34.c.
Referenced by rv34_decode_mv().
static void rv34_pred_mv_rv3 | ( | RV34DecContext * | r, | |
int | block_type, | |||
int | dir | |||
) | [static] |
motion vector prediction - RV3 version
Definition at line 564 of file rv34.c.
Referenced by rv34_decode_mv().
const uint8_t avail_indexes[4] = { 5, 6, 9, 10 } [static] |
availability index for subblocks
Definition at line 413 of file rv34.c.
Referenced by rv34_pred_mv(), and rv34_pred_mv_rv3().
const int chroma_coeffs[3] = { 0, 3, 5 } [static] |
const int num_mvs[RV34_MB_TYPES] = { 0, 0, 1, 4, 1, 1, 0, 0, 2, 2, 2, 1 } [static] |
number of motion vectors in each macroblock type
Definition at line 757 of file rv34.c.
Referenced by tgv_decode_inter().
const uint8_t part_sizes_h[RV34_MB_TYPES] = { 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2 } [static] |
macroblock partition height in 8x8 blocks
Definition at line 410 of file rv34.c.
Referenced by rv34_pred_mv().
const uint8_t part_sizes_w[RV34_MB_TYPES] = { 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2 } [static] |
macroblock partition width in 8x8 blocks
Definition at line 407 of file rv34.c.
Referenced by rv34_pred_mv().