This allows getting rid of a hack for conflicting symbol/define names. Signed-off-by: Martin Storsjö <martin@martin.st>tags/n0.11
| @@ -99,7 +99,7 @@ static void init_qexp(void){ | |||
| double v=128; | |||
| for(i=0; i<QROOT; i++){ | |||
| qexp[i]= lrintf(v); | |||
| ff_qexp[i]= lrintf(v); | |||
| v *= pow(2, 1.0 / QROOT); | |||
| } | |||
| } | |||
| @@ -443,7 +443,7 @@ av_cold int ff_snow_common_init(AVCodecContext *avctx){ | |||
| for(i=0; i<MAX_REF_FRAMES; i++) | |||
| for(j=0; j<MAX_REF_FRAMES; j++) | |||
| scale_mv_ref[i][j] = 256*(i+1)/(j+1); | |||
| ff_scale_mv_ref[i][j] = 256*(i+1)/(j+1); | |||
| s->avctx->get_buffer(s->avctx, &s->mconly_picture); | |||
| s->scratchbuf = av_malloc(s->mconly_picture.linesize[0]*7*MB_SIZE); | |||
| @@ -165,13 +165,9 @@ typedef struct SnowContext{ | |||
| }SnowContext; | |||
| /* Tables */ | |||
| extern const uint8_t * const obmc_tab[4]; | |||
| #ifdef __sgi | |||
| // Avoid a name clash on SGI IRIX | |||
| #undef qexp | |||
| #endif | |||
| extern uint8_t qexp[QROOT]; | |||
| extern int scale_mv_ref[MAX_REF_FRAMES][MAX_REF_FRAMES]; | |||
| extern const uint8_t * const ff_obmc_tab[4]; | |||
| extern uint8_t ff_qexp[QROOT]; | |||
| extern int ff_scale_mv_ref[MAX_REF_FRAMES][MAX_REF_FRAMES]; | |||
| /* C bits used by mmx/sse2/altivec */ | |||
| @@ -256,7 +252,7 @@ static inline void pred_mv(SnowContext *s, int *mx, int *my, int ref, | |||
| *mx = mid_pred(left->mx, top->mx, tr->mx); | |||
| *my = mid_pred(left->my, top->my, tr->my); | |||
| }else{ | |||
| const int *scale = scale_mv_ref[ref]; | |||
| const int *scale = ff_scale_mv_ref[ref]; | |||
| *mx = mid_pred((left->mx * scale[left->ref] + 128) >>8, | |||
| (top ->mx * scale[top ->ref] + 128) >>8, | |||
| (tr ->mx * scale[tr ->ref] + 128) >>8); | |||
| @@ -405,7 +401,7 @@ static av_always_inline void predict_slice(SnowContext *s, IDWTELEM *buf, int pl | |||
| int x, y, mb_x; | |||
| int block_size = MB_SIZE >> s->block_max_depth; | |||
| int block_w = plane_index ? block_size/2 : block_size; | |||
| const uint8_t *obmc = plane_index ? obmc_tab[s->block_max_depth+1] : obmc_tab[s->block_max_depth]; | |||
| const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+1] : ff_obmc_tab[s->block_max_depth]; | |||
| const int obmc_stride= plane_index ? block_size : 2*block_size; | |||
| int ref_stride= s->current_picture.linesize[plane_index]; | |||
| uint8_t *dst8= s->current_picture.data[plane_index]; | |||
| @@ -496,7 +492,7 @@ static inline void init_ref(MotionEstContext *c, uint8_t *src[3], uint8_t *ref[3 | |||
| /* bitstream functions */ | |||
| extern const int8_t quant3bA[256]; | |||
| extern const int8_t ff_quant3bA[256]; | |||
| #define QEXPSHIFT (7-FRAC_BITS+8) //FIXME try to change this to 0 | |||
| @@ -642,7 +638,7 @@ static inline void unpack_coeffs(SnowContext *s, SubBand *b, SubBand * parent, i | |||
| v=get_rac(&s->c, &b->state[0][context]); | |||
| if(v){ | |||
| v= 2*(get_symbol2(&s->c, b->state[context + 2], context-4) + 1); | |||
| v+=get_rac(&s->c, &b->state[0][16 + 1 + 3 + quant3bA[l&0xFF] + 3*quant3bA[t&0xFF]]); | |||
| v+=get_rac(&s->c, &b->state[0][16 + 1 + 3 + ff_quant3bA[l&0xFF] + 3*ff_quant3bA[t&0xFF]]); | |||
| xc->x=x; | |||
| (xc++)->coeff= v; | |||
| @@ -101,7 +101,7 @@ static const uint8_t obmc4[16]={ | |||
| //error:0.000000 | |||
| }; | |||
| const int8_t quant3bA[256]={ | |||
| const int8_t ff_quant3bA[256]={ | |||
| 0, 0, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, | |||
| 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, | |||
| 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, | |||
| @@ -120,13 +120,13 @@ const int8_t quant3bA[256]={ | |||
| 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, 1,-1, | |||
| }; | |||
| const uint8_t * const obmc_tab[4]= { | |||
| const uint8_t * const ff_obmc_tab[4]= { | |||
| obmc32, obmc16, obmc8, obmc4 | |||
| }; | |||
| /* runtime generated tables */ | |||
| uint8_t qexp[QROOT]; | |||
| int scale_mv_ref[MAX_REF_FRAMES][MAX_REF_FRAMES]; | |||
| uint8_t ff_qexp[QROOT]; | |||
| int ff_scale_mv_ref[MAX_REF_FRAMES][MAX_REF_FRAMES]; | |||
| #endif /* AVCODEC_SNOW_H */ | |||
| @@ -42,7 +42,7 @@ static av_always_inline void predict_slice_buffered(SnowContext *s, slice_buffer | |||
| int x, y, mb_x; | |||
| int block_size = MB_SIZE >> s->block_max_depth; | |||
| int block_w = plane_index ? block_size/2 : block_size; | |||
| const uint8_t *obmc = plane_index ? obmc_tab[s->block_max_depth+1] : obmc_tab[s->block_max_depth]; | |||
| const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+1] : ff_obmc_tab[s->block_max_depth]; | |||
| int obmc_stride= plane_index ? block_size : 2*block_size; | |||
| int ref_stride= s->current_picture.linesize[plane_index]; | |||
| uint8_t *dst8= s->current_picture.data[plane_index]; | |||
| @@ -95,7 +95,7 @@ static inline void decode_subband_slice_buffered(SnowContext *s, SubBand *b, sli | |||
| const int w= b->width; | |||
| int y; | |||
| const int qlog= av_clip(s->qlog + b->qlog, 0, QROOT*16); | |||
| int qmul= qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT); | |||
| int qmul= ff_qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT); | |||
| int qadd= (s->qbias*qmul)>>QBIAS_SHIFT; | |||
| int new_index = 0; | |||
| @@ -184,7 +184,7 @@ static void decode_q_branch(SnowContext *s, int level, int x, int y){ | |||
| static void dequantize_slice_buffered(SnowContext *s, slice_buffer * sb, SubBand *b, IDWTELEM *src, int stride, int start_y, int end_y){ | |||
| const int w= b->width; | |||
| const int qlog= av_clip(s->qlog + b->qlog, 0, QROOT*16); | |||
| const int qmul= qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT); | |||
| const int qmul= ff_qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT); | |||
| const int qadd= (s->qbias*qmul)>>QBIAS_SHIFT; | |||
| int x,y; | |||
| @@ -575,7 +575,7 @@ static int get_dc(SnowContext *s, int mb_x, int mb_y, int plane_index){ | |||
| Plane *p= &s->plane[plane_index]; | |||
| const int block_size = MB_SIZE >> s->block_max_depth; | |||
| const int block_w = plane_index ? block_size/2 : block_size; | |||
| const uint8_t *obmc = plane_index ? obmc_tab[s->block_max_depth+1] : obmc_tab[s->block_max_depth]; | |||
| const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+1] : ff_obmc_tab[s->block_max_depth]; | |||
| const int obmc_stride= plane_index ? block_size : 2*block_size; | |||
| const int ref_stride= s->current_picture.linesize[plane_index]; | |||
| uint8_t *src= s-> input_picture.data[plane_index]; | |||
| @@ -766,7 +766,7 @@ static int get_4block_rd(SnowContext *s, int mb_x, int mb_y, int plane_index){ | |||
| Plane *p= &s->plane[plane_index]; | |||
| const int block_size = MB_SIZE >> s->block_max_depth; | |||
| const int block_w = plane_index ? block_size/2 : block_size; | |||
| const uint8_t *obmc = plane_index ? obmc_tab[s->block_max_depth+1] : obmc_tab[s->block_max_depth]; | |||
| const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+1] : ff_obmc_tab[s->block_max_depth]; | |||
| const int obmc_stride= plane_index ? block_size : 2*block_size; | |||
| const int ref_stride= s->current_picture.linesize[plane_index]; | |||
| uint8_t *dst= s->current_picture.data[plane_index]; | |||
| @@ -939,7 +939,7 @@ static int encode_subband_c0run(SnowContext *s, SubBand *b, IDWTELEM *src, IDWTE | |||
| int t2= 2*FFABS(t) + (t<0); | |||
| put_symbol2(&s->c, b->state[context + 2], FFABS(v)-1, context-4); | |||
| put_rac(&s->c, &b->state[0][16 + 1 + 3 + quant3bA[l2&0xFF] + 3*quant3bA[t2&0xFF]], v<0); | |||
| put_rac(&s->c, &b->state[0][16 + 1 + 3 + ff_quant3bA[l2&0xFF] + 3*ff_quant3bA[t2&0xFF]], v<0); | |||
| } | |||
| } | |||
| } | |||
| @@ -1090,7 +1090,7 @@ static void iterative_me(SnowContext *s){ | |||
| //FIXME precalculate | |||
| { | |||
| int x, y; | |||
| memcpy(obmc_edged, obmc_tab[s->block_max_depth], b_w*b_w*4); | |||
| memcpy(obmc_edged, ff_obmc_tab[s->block_max_depth], b_w*b_w*4); | |||
| if(mb_x==0) | |||
| for(y=0; y<b_w*2; y++) | |||
| memset(obmc_edged[y], obmc_edged[y][0] + obmc_edged[y][b_w-1], b_w); | |||
| @@ -1286,7 +1286,7 @@ static void quantize(SnowContext *s, SubBand *b, IDWTELEM *dst, DWTELEM *src, in | |||
| const int w= b->width; | |||
| const int h= b->height; | |||
| const int qlog= av_clip(s->qlog + b->qlog, 0, QROOT*16); | |||
| const int qmul= qexp[qlog&(QROOT-1)]<<((qlog>>QSHIFT) + ENCODER_EXTRA_BITS); | |||
| const int qmul= ff_qexp[qlog&(QROOT-1)]<<((qlog>>QSHIFT) + ENCODER_EXTRA_BITS); | |||
| int x,y, thres1, thres2; | |||
| if(s->qlog == LOSSLESS_QLOG){ | |||
| @@ -1347,7 +1347,7 @@ static void dequantize(SnowContext *s, SubBand *b, IDWTELEM *src, int stride){ | |||
| const int w= b->width; | |||
| const int h= b->height; | |||
| const int qlog= av_clip(s->qlog + b->qlog, 0, QROOT*16); | |||
| const int qmul= qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT); | |||
| const int qmul= ff_qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT); | |||
| const int qadd= (s->qbias*qmul)>>QBIAS_SHIFT; | |||
| int x,y; | |||
| @@ -1538,7 +1538,7 @@ static int ratecontrol_1pass(SnowContext *s, AVFrame *pict) | |||
| const int h= b->height; | |||
| const int stride= b->stride; | |||
| const int qlog= av_clip(2*QROOT + b->qlog, 0, QROOT*16); | |||
| const int qmul= qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT); | |||
| const int qmul= ff_qexp[qlog&(QROOT-1)]<<(qlog>>QSHIFT); | |||
| const int qdiv= (1<<16)/qmul; | |||
| int x, y; | |||
| //FIXME this is ugly | |||