rename vector_t to cavs_vector

Originally committed as revision 16641 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Stefan Gehrer 16 years ago
parent 2b3242253d
commit e685e8eada
  1. 27
      libavcodec/cavs.c
  2. 16
      libavcodec/cavs.h
  3. 6
      libavcodec/cavsdata.h
  4. 10
      libavcodec/cavsdec.c

@ -37,7 +37,7 @@
*
****************************************************************************/
static inline int get_bs(vector_t *mvP, vector_t *mvQ, int b) {
static inline int get_bs(cavs_vector *mvP, cavs_vector *mvQ, int b) {
if((mvP->ref == REF_INTRA) || (mvQ->ref == REF_INTRA))
return 2;
if( (abs(mvP->x - mvQ->x) >= 4) || (abs(mvP->y - mvQ->y) >= 4) )
@ -327,7 +327,7 @@ static inline void mc_dir_part(AVSContext *h,Picture *pic,int square,
int chroma_height,int delta,int list,uint8_t *dest_y,
uint8_t *dest_cb,uint8_t *dest_cr,int src_x_offset,
int src_y_offset,qpel_mc_func *qpix_op,
h264_chroma_mc_func chroma_op,vector_t *mv){
h264_chroma_mc_func chroma_op,cavs_vector *mv){
MpegEncContext * const s = &h->s;
const int mx= mv->x + src_x_offset*8;
const int my= mv->y + src_y_offset*8;
@ -382,7 +382,7 @@ static inline void mc_part_std(AVSContext *h,int square,int chroma_height,int de
uint8_t *dest_y,uint8_t *dest_cb,uint8_t *dest_cr,
int x_offset, int y_offset,qpel_mc_func *qpix_put,
h264_chroma_mc_func chroma_put,qpel_mc_func *qpix_avg,
h264_chroma_mc_func chroma_avg, vector_t *mv){
h264_chroma_mc_func chroma_avg, cavs_vector *mv){
qpel_mc_func *qpix_op= qpix_put;
h264_chroma_mc_func chroma_op= chroma_put;
@ -447,14 +447,15 @@ void ff_cavs_inter(AVSContext *h, enum mb_t mb_type) {
*
****************************************************************************/
static inline void scale_mv(AVSContext *h, int *d_x, int *d_y, vector_t *src, int distp) {
static inline void scale_mv(AVSContext *h, int *d_x, int *d_y, cavs_vector *src, int distp) {
int den = h->scale_den[src->ref];
*d_x = (src->x*distp*den + 256 + (src->x>>31)) >> 9;
*d_y = (src->y*distp*den + 256 + (src->y>>31)) >> 9;
}
static inline void mv_pred_median(AVSContext *h, vector_t *mvP, vector_t *mvA, vector_t *mvB, vector_t *mvC) {
static inline void mv_pred_median(AVSContext *h, cavs_vector *mvP,
cavs_vector *mvA, cavs_vector *mvB, cavs_vector *mvC) {
int ax, ay, bx, by, cx, cy;
int len_ab, len_bc, len_ca, len_mid;
@ -481,11 +482,11 @@ static inline void mv_pred_median(AVSContext *h, vector_t *mvP, vector_t *mvA, v
void ff_cavs_mv(AVSContext *h, enum mv_loc_t nP, enum mv_loc_t nC,
enum mv_pred_t mode, enum block_t size, int ref) {
vector_t *mvP = &h->mv[nP];
vector_t *mvA = &h->mv[nP-1];
vector_t *mvB = &h->mv[nP-4];
vector_t *mvC = &h->mv[nC];
const vector_t *mvP2 = NULL;
cavs_vector *mvP = &h->mv[nP];
cavs_vector *mvA = &h->mv[nP-1];
cavs_vector *mvB = &h->mv[nP-4];
cavs_vector *mvC = &h->mv[nC];
const cavs_vector *mvP2 = NULL;
mvP->ref = ref;
mvP->dist = h->dist[mvP->ref];
@ -655,15 +656,15 @@ void ff_cavs_init_pic(AVSContext *h) {
void ff_cavs_init_top_lines(AVSContext *h) {
/* alloc top line of predictors */
h->top_qp = av_malloc( h->mb_width);
h->top_mv[0] = av_malloc((h->mb_width*2+1)*sizeof(vector_t));
h->top_mv[1] = av_malloc((h->mb_width*2+1)*sizeof(vector_t));
h->top_mv[0] = av_malloc((h->mb_width*2+1)*sizeof(cavs_vector));
h->top_mv[1] = av_malloc((h->mb_width*2+1)*sizeof(cavs_vector));
h->top_pred_Y = av_malloc( h->mb_width*2*sizeof(*h->top_pred_Y));
h->top_border_y = av_malloc((h->mb_width+1)*16);
h->top_border_u = av_malloc((h->mb_width)*10);
h->top_border_v = av_malloc((h->mb_width)*10);
/* alloc space for co-located MVs and types */
h->col_mv = av_malloc( h->mb_width*h->mb_height*4*sizeof(vector_t));
h->col_mv = av_malloc( h->mb_width*h->mb_height*4*sizeof(cavs_vector));
h->col_type_base = av_malloc(h->mb_width*h->mb_height);
h->block = av_mallocz(64*sizeof(DCTELEM));
}

@ -142,7 +142,7 @@ DECLARE_ALIGNED_8(typedef, struct) {
int16_t y;
int16_t dist;
int16_t ref;
} vector_t;
} cavs_vector;
struct dec_2dvlc {
int8_t rltab[59][3];
@ -186,9 +186,9 @@ typedef struct {
D is the macroblock to the top-left (0)
the same is repeated for backward motion vectors */
vector_t mv[2*4*3];
vector_t *top_mv[2];
vector_t *col_mv;
cavs_vector mv[2*4*3];
cavs_vector *top_mv[2];
cavs_vector *col_mv;
/** luma pred mode cache
0: -- B2 B3
@ -236,9 +236,9 @@ extern const int_fast8_t ff_left_modifier_l[8];
extern const int_fast8_t ff_top_modifier_l[8];
extern const int_fast8_t ff_left_modifier_c[7];
extern const int_fast8_t ff_top_modifier_c[7];
extern const vector_t ff_cavs_intra_mv;
extern const vector_t ff_cavs_un_mv;
extern const vector_t ff_cavs_dir_mv;
extern const cavs_vector ff_cavs_intra_mv;
extern const cavs_vector ff_cavs_un_mv;
extern const cavs_vector ff_cavs_dir_mv;
static inline void modify_pred(const int_fast8_t *mod_table, int *mode) {
*mode = mod_table[*mode];
@ -253,7 +253,7 @@ static inline void set_intra_mode_default(AVSContext *h) {
h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
}
static inline void set_mvs(vector_t *mv, enum block_t size) {
static inline void set_mvs(cavs_vector *mv, enum block_t size) {
switch(size) {
case BLK_16X16:
mv[MV_STRIDE ] = mv[0];

@ -90,14 +90,14 @@ const uint16_t ff_cavs_dequant_mul[64] = {
/** marks block as unavailable, i.e. out of picture
or not yet decoded */
const vector_t ff_cavs_un_mv = {0,0,1,NOT_AVAIL};
const cavs_vector ff_cavs_un_mv = {0,0,1,NOT_AVAIL};
/** marks block as "no prediction from this direction"
e.g. forward motion vector in BWD partition */
const vector_t ff_cavs_dir_mv = {0,0,1,REF_DIR};
const cavs_vector ff_cavs_dir_mv = {0,0,1,REF_DIR};
/** marks block as using intra prediction */
const vector_t ff_cavs_intra_mv = {0,0,1,REF_INTRA};
const cavs_vector ff_cavs_intra_mv = {0,0,1,REF_INTRA};
#define EOB 0,0,0

@ -59,9 +59,9 @@ static inline void store_mvs(AVSContext *h) {
h->col_mv[(h->mby*h->mb_width + h->mbx)*4 + 3] = h->mv[MV_FWD_X3];
}
static inline void mv_pred_direct(AVSContext *h, vector_t *pmv_fw,
vector_t *col_mv) {
vector_t *pmv_bw = pmv_fw + MV_BWD_OFFS;
static inline void mv_pred_direct(AVSContext *h, cavs_vector *pmv_fw,
cavs_vector *col_mv) {
cavs_vector *pmv_bw = pmv_fw + MV_BWD_OFFS;
int den = h->direct_den[col_mv->ref];
int m = col_mv->x >> 31;
@ -77,8 +77,8 @@ static inline void mv_pred_direct(AVSContext *h, vector_t *pmv_fw,
pmv_bw->y = m-(((den+(den*col_mv->y*pmv_bw->dist^m)-m-1)>>14)^m);
}
static inline void mv_pred_sym(AVSContext *h, vector_t *src, enum block_t size) {
vector_t *dst = src + MV_BWD_OFFS;
static inline void mv_pred_sym(AVSContext *h, cavs_vector *src, enum block_t size) {
cavs_vector *dst = src + MV_BWD_OFFS;
/* backward mv is the scaled and negated forward mv */
dst->x = -((src->x * h->sym_factor + 256) >> 9);

Loading…
Cancel
Save