diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2013-10-13 03:08:51 +0200 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2013-10-13 17:52:53 +0200 |
commit | 14ddbb477faef359983151b763fd8b20e578651b (patch) | |
tree | 3d1efbb11cd25df21681d00d38d927add8beca29 /libavcodec/cavs.c | |
parent | 71549a857b13edf4c4f95037de6ed5bb4c4bd4af (diff) | |
download | ffmpeg-14ddbb477faef359983151b763fd8b20e578651b.tar.gz |
cavs: K&R formatting cosmetics
Diffstat (limited to 'libavcodec/cavs.c')
-rw-r--r-- | libavcodec/cavs.c | 416 |
1 files changed, 225 insertions, 191 deletions
diff --git a/libavcodec/cavs.c b/libavcodec/cavs.c index 47eaa0b40a..2cf83e23e7 100644 --- a/libavcodec/cavs.c +++ b/libavcodec/cavs.c @@ -77,7 +77,7 @@ static inline int get_bs(cavs_vector *mvP, cavs_vector *mvQ, int b) if (b) { mvP += MV_BWD_OFFS; mvQ += MV_BWD_OFFS; - if ((abs(mvP->x - mvQ->x) >= 4) || (abs(mvP->y - mvQ->y) >= 4)) + if ((abs(mvP->x - mvQ->x) >= 4) || (abs(mvP->y - mvQ->y) >= 4)) return 1; } else { if (mvP->ref != mvQ->ref) @@ -376,84 +376,102 @@ void ff_cavs_modify_mb_i(AVSContext *h, int *pred_mode_uv) * ****************************************************************************/ -static inline void mc_dir_part(AVSContext *h, AVFrame *pic, - 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,cavs_vector *mv) +static inline void mc_dir_part(AVSContext *h, AVFrame *pic, 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, cavs_vector *mv) { - const int mx= mv->x + src_x_offset*8; - const int my= mv->y + src_y_offset*8; - const int luma_xy= (mx&3) + ((my&3)<<2); - uint8_t * src_y = pic->data[0] + (mx >> 2) + (my >> 2) * h->l_stride; - uint8_t * src_cb = pic->data[1] + (mx >> 3) + (my >> 3) * h->c_stride; - uint8_t * src_cr = pic->data[2] + (mx >> 3) + (my >> 3) * h->c_stride; - int extra_width = 0; - int extra_height= extra_width; - int emu=0; - const int full_mx= mx>>2; - const int full_my= my>>2; - const int pic_width = 16*h->mb_width; - const int pic_height = 16*h->mb_height; + const int mx = mv->x + src_x_offset*8; + const int my = mv->y + src_y_offset*8; + const int luma_xy = (mx & 3) + ((my & 3) << 2); + uint8_t *src_y = pic->data[0] + (mx >> 2) + (my >> 2) * h->l_stride; + uint8_t *src_cb = pic->data[1] + (mx >> 3) + (my >> 3) * h->c_stride; + uint8_t *src_cr = pic->data[2] + (mx >> 3) + (my >> 3) * h->c_stride; + int extra_width = 0; + int extra_height = extra_width; + const int full_mx = mx >> 2; + const int full_my = my >> 2; + const int pic_width = 16 * h->mb_width; + const int pic_height = 16 * h->mb_height; + int emu = 0; if (!pic->data[0]) return; - if(mx&7) extra_width -= 3; - if(my&7) extra_height -= 3; - - if( full_mx < 0-extra_width - || full_my < 0-extra_height - || full_mx + 16/*FIXME*/ > pic_width + extra_width - || full_my + 16/*FIXME*/ > pic_height + extra_height){ - h->vdsp.emulated_edge_mc(h->edge_emu_buffer, src_y - 2 - 2*h->l_stride, h->l_stride, - 16+5, 16+5/*FIXME*/, full_mx-2, full_my-2, pic_width, pic_height); - src_y= h->edge_emu_buffer + 2 + 2*h->l_stride; - emu=1; + if (mx & 7) + extra_width -= 3; + if (my & 7) + extra_height -= 3; + + if (full_mx < 0 - extra_width || + full_my < 0 - extra_height || + full_mx + 16 /* FIXME */ > pic_width + extra_width || + full_my + 16 /* FIXME */ > pic_height + extra_height) { + h->vdsp.emulated_edge_mc(h->edge_emu_buffer, + src_y - 2 - 2 * h->l_stride, h->l_stride, + 16 + 5, 16 + 5 /* FIXME */, + full_mx - 2, full_my - 2, + pic_width, pic_height); + src_y = h->edge_emu_buffer + 2 + 2 * h->l_stride; + emu = 1; } - qpix_op[luma_xy](dest_y, src_y, h->l_stride); //FIXME try variable height perhaps? + // FIXME try variable height perhaps? + qpix_op[luma_xy](dest_y, src_y, h->l_stride); - if(emu){ - h->vdsp.emulated_edge_mc(h->edge_emu_buffer, src_cb, h->c_stride, - 9, 9/*FIXME*/, (mx>>3), (my>>3), pic_width>>1, pic_height>>1); - src_cb= h->edge_emu_buffer; + if (emu) { + h->vdsp.emulated_edge_mc(h->edge_emu_buffer, src_cb, + h->c_stride, + 9, 9 /* FIXME */, + mx >> 3, my >> 3, + pic_width >> 1, pic_height >> 1); + src_cb = h->edge_emu_buffer; } - chroma_op(dest_cb, src_cb, h->c_stride, chroma_height, mx&7, my&7); - - if(emu){ - h->vdsp.emulated_edge_mc(h->edge_emu_buffer, src_cr, h->c_stride, - 9, 9/*FIXME*/, (mx>>3), (my>>3), pic_width>>1, pic_height>>1); - src_cr= h->edge_emu_buffer; + chroma_op(dest_cb, src_cb, h->c_stride, chroma_height, mx & 7, my & 7); + + if (emu) { + h->vdsp.emulated_edge_mc(h->edge_emu_buffer, src_cr, + h->c_stride, + 9, 9 /* FIXME */, + mx >> 3, my >> 3, + pic_width >> 1, pic_height >> 1); + src_cr = h->edge_emu_buffer; } - chroma_op(dest_cr, src_cr, h->c_stride, chroma_height, mx&7, my&7); + chroma_op(dest_cr, src_cr, h->c_stride, chroma_height, mx & 7, my & 7); } -static inline void mc_part_std(AVSContext *h,int chroma_height,int delta, - 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, cavs_vector *mv) +static inline void mc_part_std(AVSContext *h, int chroma_height, int delta, + 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, + cavs_vector *mv) { - qpel_mc_func *qpix_op= qpix_put; - h264_chroma_mc_func chroma_op= chroma_put; + qpel_mc_func *qpix_op = qpix_put; + h264_chroma_mc_func chroma_op = chroma_put; - dest_y += 2*x_offset + 2*y_offset*h->l_stride; - dest_cb += x_offset + y_offset*h->c_stride; - dest_cr += x_offset + y_offset*h->c_stride; - x_offset += 8*h->mbx; - y_offset += 8*h->mby; + dest_y += 2 * x_offset + 2 * y_offset*h->l_stride; + dest_cb += x_offset + y_offset*h->c_stride; + dest_cr += x_offset + y_offset*h->c_stride; + x_offset += 8 * h->mbx; + y_offset += 8 * h->mby; - if(mv->ref >= 0){ + if (mv->ref >= 0) { AVFrame *ref = h->DPB[mv->ref].f; mc_dir_part(h, ref, chroma_height, delta, 0, dest_y, dest_cb, dest_cr, x_offset, y_offset, qpix_op, chroma_op, mv); - qpix_op= qpix_avg; - chroma_op= chroma_avg; + qpix_op = qpix_avg; + chroma_op = chroma_avg; } - if((mv+MV_BWD_OFFS)->ref >= 0){ + if ((mv + MV_BWD_OFFS)->ref >= 0) { AVFrame *ref = h->DPB[0].f; mc_dir_part(h, ref, chroma_height, delta, 1, dest_y, dest_cb, dest_cr, x_offset, y_offset, @@ -461,39 +479,40 @@ static inline void mc_part_std(AVSContext *h,int chroma_height,int delta, } } -void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type) { - if(ff_cavs_partition_flags[mb_type] == 0){ // 16x16 +void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type) +{ + if (ff_cavs_partition_flags[mb_type] == 0) { // 16x16 mc_part_std(h, 8, 0, h->cy, h->cu, h->cv, 0, 0, - h->cdsp.put_cavs_qpel_pixels_tab[0], - h->h264chroma.put_h264_chroma_pixels_tab[0], - h->cdsp.avg_cavs_qpel_pixels_tab[0], - h->h264chroma.avg_h264_chroma_pixels_tab[0], - &h->mv[MV_FWD_X0]); - }else{ + h->cdsp.put_cavs_qpel_pixels_tab[0], + h->h264chroma.put_h264_chroma_pixels_tab[0], + h->cdsp.avg_cavs_qpel_pixels_tab[0], + h->h264chroma.avg_h264_chroma_pixels_tab[0], + &h->mv[MV_FWD_X0]); + } else { mc_part_std(h, 4, 0, h->cy, h->cu, h->cv, 0, 0, - h->cdsp.put_cavs_qpel_pixels_tab[1], - h->h264chroma.put_h264_chroma_pixels_tab[1], - h->cdsp.avg_cavs_qpel_pixels_tab[1], - h->h264chroma.avg_h264_chroma_pixels_tab[1], - &h->mv[MV_FWD_X0]); + h->cdsp.put_cavs_qpel_pixels_tab[1], + h->h264chroma.put_h264_chroma_pixels_tab[1], + h->cdsp.avg_cavs_qpel_pixels_tab[1], + h->h264chroma.avg_h264_chroma_pixels_tab[1], + &h->mv[MV_FWD_X0]); mc_part_std(h, 4, 0, h->cy, h->cu, h->cv, 4, 0, - h->cdsp.put_cavs_qpel_pixels_tab[1], - h->h264chroma.put_h264_chroma_pixels_tab[1], - h->cdsp.avg_cavs_qpel_pixels_tab[1], - h->h264chroma.avg_h264_chroma_pixels_tab[1], - &h->mv[MV_FWD_X1]); + h->cdsp.put_cavs_qpel_pixels_tab[1], + h->h264chroma.put_h264_chroma_pixels_tab[1], + h->cdsp.avg_cavs_qpel_pixels_tab[1], + h->h264chroma.avg_h264_chroma_pixels_tab[1], + &h->mv[MV_FWD_X1]); mc_part_std(h, 4, 0, h->cy, h->cu, h->cv, 0, 4, - h->cdsp.put_cavs_qpel_pixels_tab[1], - h->h264chroma.put_h264_chroma_pixels_tab[1], - h->cdsp.avg_cavs_qpel_pixels_tab[1], - h->h264chroma.avg_h264_chroma_pixels_tab[1], - &h->mv[MV_FWD_X2]); + h->cdsp.put_cavs_qpel_pixels_tab[1], + h->h264chroma.put_h264_chroma_pixels_tab[1], + h->cdsp.avg_cavs_qpel_pixels_tab[1], + h->h264chroma.avg_h264_chroma_pixels_tab[1], + &h->mv[MV_FWD_X2]); mc_part_std(h, 4, 0, h->cy, h->cu, h->cv, 4, 4, - h->cdsp.put_cavs_qpel_pixels_tab[1], - h->h264chroma.put_h264_chroma_pixels_tab[1], - h->cdsp.avg_cavs_qpel_pixels_tab[1], - h->h264chroma.avg_h264_chroma_pixels_tab[1], - &h->mv[MV_FWD_X3]); + h->cdsp.put_cavs_qpel_pixels_tab[1], + h->h264chroma.put_h264_chroma_pixels_tab[1], + h->cdsp.avg_cavs_qpel_pixels_tab[1], + h->h264chroma.avg_h264_chroma_pixels_tab[1], + &h->mv[MV_FWD_X3]); } } @@ -503,15 +522,21 @@ void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type) { * ****************************************************************************/ -static inline void scale_mv(AVSContext *h, int *d_x, int *d_y, cavs_vector *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; + *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, cavs_vector *mvP, - cavs_vector *mvA, cavs_vector *mvB, cavs_vector *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; @@ -524,10 +549,10 @@ static inline void mv_pred_median(AVSContext *h, cavs_vector *mvP, len_bc = abs(bx - cx) + abs(by - cy); len_ca = abs(cx - ax) + abs(cy - ay); len_mid = mid_pred(len_ab, len_bc, len_ca); - if(len_mid == len_ab) { + if (len_mid == len_ab) { mvP->x = cx; mvP->y = cy; - } else if(len_mid == len_bc) { + } else if (len_mid == len_bc) { mvP->x = ax; mvP->y = ay; } else { @@ -537,43 +562,45 @@ static inline void mv_pred_median(AVSContext *h, cavs_vector *mvP, } void ff_cavs_mv(AVSContext *h, enum cavs_mv_loc nP, enum cavs_mv_loc nC, - enum cavs_mv_pred mode, enum cavs_block size, int ref) { + enum cavs_mv_pred mode, enum cavs_block size, int ref) +{ 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->ref = ref; mvP->dist = h->dist[mvP->ref]; - if(mvC->ref == NOT_AVAIL) + if (mvC->ref == NOT_AVAIL) mvC = &h->mv[nP-5]; // set to top-left (mvD) - if((mode == MV_PRED_PSKIP) && - ((mvA->ref == NOT_AVAIL) || (mvB->ref == NOT_AVAIL) || - ((mvA->x | mvA->y | mvA->ref) == 0) || - ((mvB->x | mvB->y | mvB->ref) == 0) )) { + if (mode == MV_PRED_PSKIP && + (mvA->ref == NOT_AVAIL || + mvB->ref == NOT_AVAIL || + (mvA->x | mvA->y | mvA->ref) == 0 || + (mvB->x | mvB->y | mvB->ref) == 0)) { mvP2 = &un_mv; /* if there is only one suitable candidate, take it */ - } else if((mvA->ref >= 0) && (mvB->ref < 0) && (mvC->ref < 0)) { - mvP2= mvA; - } else if((mvA->ref < 0) && (mvB->ref >= 0) && (mvC->ref < 0)) { - mvP2= mvB; - } else if((mvA->ref < 0) && (mvB->ref < 0) && (mvC->ref >= 0)) { - mvP2= mvC; - } else if(mode == MV_PRED_LEFT && mvA->ref == ref){ - mvP2= mvA; - } else if(mode == MV_PRED_TOP && mvB->ref == ref){ - mvP2= mvB; - } else if(mode == MV_PRED_TOPRIGHT && mvC->ref == ref){ - mvP2= mvC; + } else if (mvA->ref >= 0 && mvB->ref < 0 && mvC->ref < 0) { + mvP2 = mvA; + } else if (mvA->ref < 0 && mvB->ref >= 0 && mvC->ref < 0) { + mvP2 = mvB; + } else if (mvA->ref < 0 && mvB->ref < 0 && mvC->ref >= 0) { + mvP2 = mvC; + } else if (mode == MV_PRED_LEFT && mvA->ref == ref) { + mvP2 = mvA; + } else if (mode == MV_PRED_TOP && mvB->ref == ref) { + mvP2 = mvB; + } else if (mode == MV_PRED_TOPRIGHT && mvC->ref == ref) { + mvP2 = mvC; } - if(mvP2){ + if (mvP2) { mvP->x = mvP2->x; mvP->y = mvP2->y; - }else + } else mv_pred_median(h, mvP, mvA, mvB, mvC); - if(mode < MV_PRED_PSKIP) { + if (mode < MV_PRED_PSKIP) { mvP->x += get_se_golomb(&h->gb); mvP->y += get_se_golomb(&h->gb); } @@ -589,36 +616,37 @@ void ff_cavs_mv(AVSContext *h, enum cavs_mv_loc nP, enum cavs_mv_loc nC, /** * initialise predictors for motion vectors and intra prediction */ -void ff_cavs_init_mb(AVSContext *h) { +void ff_cavs_init_mb(AVSContext *h) +{ int i; /* copy predictors from top line (MB B and C) into cache */ - for(i=0;i<3;i++) { - h->mv[MV_FWD_B2+i] = h->top_mv[0][h->mbx*2+i]; - h->mv[MV_BWD_B2+i] = h->top_mv[1][h->mbx*2+i]; + for (i = 0; i < 3; i++) { + h->mv[MV_FWD_B2 + i] = h->top_mv[0][h->mbx * 2 + i]; + h->mv[MV_BWD_B2 + i] = h->top_mv[1][h->mbx * 2 + i]; } - h->pred_mode_Y[1] = h->top_pred_Y[h->mbx*2+0]; - h->pred_mode_Y[2] = h->top_pred_Y[h->mbx*2+1]; + h->pred_mode_Y[1] = h->top_pred_Y[h->mbx * 2 + 0]; + h->pred_mode_Y[2] = h->top_pred_Y[h->mbx * 2 + 1]; /* clear top predictors if MB B is not available */ - if(!(h->flags & B_AVAIL)) { - h->mv[MV_FWD_B2] = un_mv; - h->mv[MV_FWD_B3] = un_mv; - h->mv[MV_BWD_B2] = un_mv; - h->mv[MV_BWD_B3] = un_mv; + if (!(h->flags & B_AVAIL)) { + h->mv[MV_FWD_B2] = un_mv; + h->mv[MV_FWD_B3] = un_mv; + h->mv[MV_BWD_B2] = un_mv; + h->mv[MV_BWD_B3] = un_mv; h->pred_mode_Y[1] = h->pred_mode_Y[2] = NOT_AVAIL; - h->flags &= ~(C_AVAIL|D_AVAIL); - } else if(h->mbx) { + h->flags &= ~(C_AVAIL | D_AVAIL); + } else if (h->mbx) { h->flags |= D_AVAIL; } - if(h->mbx == h->mb_width-1) //MB C not available + if (h->mbx == h->mb_width - 1) // MB C not available h->flags &= ~C_AVAIL; /* clear top-right predictors if MB C is not available */ - if(!(h->flags & C_AVAIL)) { + if (!(h->flags & C_AVAIL)) { h->mv[MV_FWD_C2] = un_mv; h->mv[MV_BWD_C2] = un_mv; } /* clear top-left predictors if MB D is not available */ - if(!(h->flags & D_AVAIL)) { + if (!(h->flags & D_AVAIL)) { h->mv[MV_FWD_D3] = un_mv; h->mv[MV_BWD_D3] = un_mv; } @@ -629,38 +657,39 @@ void ff_cavs_init_mb(AVSContext *h) { * macroblock address * @return 0 if end of frame is reached, 1 otherwise */ -int ff_cavs_next_mb(AVSContext *h) { +int ff_cavs_next_mb(AVSContext *h) +{ int i; h->flags |= A_AVAIL; - h->cy += 16; - h->cu += 8; - h->cv += 8; + h->cy += 16; + h->cu += 8; + h->cv += 8; /* copy mvs as predictors to the left */ - for(i=0;i<=20;i+=4) - h->mv[i] = h->mv[i+2]; + for (i = 0; i <= 20; i += 4) + h->mv[i] = h->mv[i + 2]; /* copy bottom mvs from cache to top line */ - h->top_mv[0][h->mbx*2+0] = h->mv[MV_FWD_X2]; - h->top_mv[0][h->mbx*2+1] = h->mv[MV_FWD_X3]; - h->top_mv[1][h->mbx*2+0] = h->mv[MV_BWD_X2]; - h->top_mv[1][h->mbx*2+1] = h->mv[MV_BWD_X3]; + h->top_mv[0][h->mbx * 2 + 0] = h->mv[MV_FWD_X2]; + h->top_mv[0][h->mbx * 2 + 1] = h->mv[MV_FWD_X3]; + h->top_mv[1][h->mbx * 2 + 0] = h->mv[MV_BWD_X2]; + h->top_mv[1][h->mbx * 2 + 1] = h->mv[MV_BWD_X3]; /* next MB address */ h->mbidx++; h->mbx++; - if(h->mbx == h->mb_width) { //new mb line - h->flags = B_AVAIL|C_AVAIL; + if (h->mbx == h->mb_width) { // New mb line + h->flags = B_AVAIL | C_AVAIL; /* clear left pred_modes */ h->pred_mode_Y[3] = h->pred_mode_Y[6] = NOT_AVAIL; /* clear left mv predictors */ - for(i=0;i<=20;i+=4) + for (i = 0; i <= 20; i += 4) h->mv[i] = un_mv; h->mbx = 0; h->mby++; /* re-calculate sample pointers */ h->cy = h->cur.f->data[0] + h->mby * 16 * h->l_stride; - h->cu = h->cur.f->data[1] + h->mby * 8 * h->c_stride; - h->cv = h->cur.f->data[2] + h->mby * 8 * h->c_stride; - if(h->mby == h->mb_height) { //frame end + h->cu = h->cur.f->data[1] + h->mby * 8 * h->c_stride; + h->cv = h->cur.f->data[2] + h->mby * 8 * h->c_stride; + if (h->mby == h->mb_height) { // Frame end return 0; } } @@ -673,26 +702,27 @@ int ff_cavs_next_mb(AVSContext *h) { * ****************************************************************************/ -void ff_cavs_init_pic(AVSContext *h) { +void ff_cavs_init_pic(AVSContext *h) +{ int i; /* clear some predictors */ - for(i=0;i<=20;i+=4) + for (i = 0; i <= 20; i += 4) h->mv[i] = un_mv; h->mv[MV_BWD_X0] = ff_cavs_dir_mv; set_mvs(&h->mv[MV_BWD_X0], BLK_16X16); h->mv[MV_FWD_X0] = ff_cavs_dir_mv; set_mvs(&h->mv[MV_FWD_X0], BLK_16X16); h->pred_mode_Y[3] = h->pred_mode_Y[6] = NOT_AVAIL; - h->cy = h->cur.f->data[0]; - h->cu = h->cur.f->data[1]; - h->cv = h->cur.f->data[2]; - h->l_stride = h->cur.f->linesize[0]; - h->c_stride = h->cur.f->linesize[1]; - h->luma_scan[2] = 8*h->l_stride; - h->luma_scan[3] = 8*h->l_stride+8; - h->mbx = h->mby = h->mbidx = 0; - h->flags = 0; + h->cy = h->cur.f->data[0]; + h->cu = h->cur.f->data[1]; + h->cv = h->cur.f->data[2]; + h->l_stride = h->cur.f->linesize[0]; + h->c_stride = h->cur.f->linesize[1]; + h->luma_scan[2] = 8 * h->l_stride; + h->luma_scan[3] = 8 * h->l_stride + 8; + h->mbx = h->mby = h->mbidx = 0; + h->flags = 0; } /***************************************************************************** @@ -706,23 +736,26 @@ void ff_cavs_init_pic(AVSContext *h) { * this data has to be stored for one complete row of macroblocks * and this storage space is allocated here */ -void ff_cavs_init_top_lines(AVSContext *h) { +void ff_cavs_init_top_lines(AVSContext *h) +{ /* alloc top line of predictors */ - h->top_qp = av_mallocz( h->mb_width); - h->top_mv[0] = av_mallocz((h->mb_width*2+1)*sizeof(cavs_vector)); - h->top_mv[1] = av_mallocz((h->mb_width*2+1)*sizeof(cavs_vector)); - h->top_pred_Y = av_mallocz( h->mb_width*2*sizeof(*h->top_pred_Y)); - h->top_border_y = av_mallocz((h->mb_width+1)*16); - h->top_border_u = av_mallocz( h->mb_width * 10); - h->top_border_v = av_mallocz( h->mb_width * 10); + h->top_qp = av_mallocz(h->mb_width); + h->top_mv[0] = av_mallocz((h->mb_width * 2 + 1) * sizeof(cavs_vector)); + h->top_mv[1] = av_mallocz((h->mb_width * 2 + 1) * sizeof(cavs_vector)); + h->top_pred_Y = av_mallocz(h->mb_width * 2 * sizeof(*h->top_pred_Y)); + h->top_border_y = av_mallocz((h->mb_width + 1) * 16); + h->top_border_u = av_mallocz(h->mb_width * 10); + h->top_border_v = av_mallocz(h->mb_width * 10); /* alloc space for co-located MVs and types */ - h->col_mv = av_mallocz( h->mb_width*h->mb_height*4*sizeof(cavs_vector)); - h->col_type_base = av_mallocz(h->mb_width*h->mb_height); - h->block = av_mallocz(64*sizeof(int16_t)); + h->col_mv = av_mallocz(h->mb_width * h->mb_height * 4 * + sizeof(cavs_vector)); + h->col_type_base = av_mallocz(h->mb_width * h->mb_height); + h->block = av_mallocz(64 * sizeof(int16_t)); } -av_cold int ff_cavs_init(AVCodecContext *avctx) { +av_cold int ff_cavs_init(AVCodecContext *avctx) +{ AVSContext *h = avctx->priv_data; ff_dsputil_init(&h->dsp, avctx); @@ -733,8 +766,8 @@ av_cold int ff_cavs_init(AVCodecContext *avctx) { h->cdsp.idct_perm); ff_init_scantable(h->dsp.idct_permutation, &h->scantable, ff_zigzag_direct); - h->avctx = avctx; - avctx->pix_fmt= AV_PIX_FMT_YUV420P; + h->avctx = avctx; + avctx->pix_fmt = AV_PIX_FMT_YUV420P; h->cur.f = av_frame_alloc(); h->DPB[0].f = av_frame_alloc(); @@ -744,29 +777,30 @@ av_cold int ff_cavs_init(AVCodecContext *avctx) { return AVERROR(ENOMEM); } - h->luma_scan[0] = 0; - h->luma_scan[1] = 8; - h->intra_pred_l[ INTRA_L_VERT] = intra_pred_vert; - h->intra_pred_l[ INTRA_L_HORIZ] = intra_pred_horiz; - h->intra_pred_l[ INTRA_L_LP] = intra_pred_lp; - h->intra_pred_l[ INTRA_L_DOWN_LEFT] = intra_pred_down_left; + h->luma_scan[0] = 0; + h->luma_scan[1] = 8; + h->intra_pred_l[INTRA_L_VERT] = intra_pred_vert; + h->intra_pred_l[INTRA_L_HORIZ] = intra_pred_horiz; + h->intra_pred_l[INTRA_L_LP] = intra_pred_lp; + h->intra_pred_l[INTRA_L_DOWN_LEFT] = intra_pred_down_left; h->intra_pred_l[INTRA_L_DOWN_RIGHT] = intra_pred_down_right; - h->intra_pred_l[ INTRA_L_LP_LEFT] = intra_pred_lp_left; - h->intra_pred_l[ INTRA_L_LP_TOP] = intra_pred_lp_top; - h->intra_pred_l[ INTRA_L_DC_128] = intra_pred_dc_128; - h->intra_pred_c[ INTRA_C_LP] = intra_pred_lp; - h->intra_pred_c[ INTRA_C_HORIZ] = intra_pred_horiz; - h->intra_pred_c[ INTRA_C_VERT] = intra_pred_vert; - h->intra_pred_c[ INTRA_C_PLANE] = intra_pred_plane; - h->intra_pred_c[ INTRA_C_LP_LEFT] = intra_pred_lp_left; - h->intra_pred_c[ INTRA_C_LP_TOP] = intra_pred_lp_top; - h->intra_pred_c[ INTRA_C_DC_128] = intra_pred_dc_128; - h->mv[ 7] = un_mv; - h->mv[19] = un_mv; + h->intra_pred_l[INTRA_L_LP_LEFT] = intra_pred_lp_left; + h->intra_pred_l[INTRA_L_LP_TOP] = intra_pred_lp_top; + h->intra_pred_l[INTRA_L_DC_128] = intra_pred_dc_128; + h->intra_pred_c[INTRA_C_LP] = intra_pred_lp; + h->intra_pred_c[INTRA_C_HORIZ] = intra_pred_horiz; + h->intra_pred_c[INTRA_C_VERT] = intra_pred_vert; + h->intra_pred_c[INTRA_C_PLANE] = intra_pred_plane; + h->intra_pred_c[INTRA_C_LP_LEFT] = intra_pred_lp_left; + h->intra_pred_c[INTRA_C_LP_TOP] = intra_pred_lp_top; + h->intra_pred_c[INTRA_C_DC_128] = intra_pred_dc_128; + h->mv[7] = un_mv; + h->mv[19] = un_mv; return 0; } -av_cold int ff_cavs_end(AVCodecContext *avctx) { +av_cold int ff_cavs_end(AVCodecContext *avctx) +{ AVSContext *h = avctx->priv_data; av_frame_free(&h->cur.f); |