mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
rename vector_t to cavs_vector
Originally committed as revision 16641 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
2b3242253d
commit
e685e8eada
@ -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…
Reference in New Issue
Block a user