Mercurial > libavcodec.hg
comparison cavs.c @ 12356:1241c824de46 libavcodec
Move cavs dsp functions to their own struct
author | mru |
---|---|
date | Tue, 03 Aug 2010 20:59:00 +0000 |
parents | 7dd2a45249a9 |
children |
comparison
equal
deleted
inserted
replaced
12355:e25a985a550c | 12356:1241c824de46 |
---|---|
111 } | 111 } |
112 if(AV_RN64(bs)) { | 112 if(AV_RN64(bs)) { |
113 if(h->flags & A_AVAIL) { | 113 if(h->flags & A_AVAIL) { |
114 qp_avg = (h->qp + h->left_qp + 1) >> 1; | 114 qp_avg = (h->qp + h->left_qp + 1) >> 1; |
115 SET_PARAMS; | 115 SET_PARAMS; |
116 h->s.dsp.cavs_filter_lv(h->cy,h->l_stride,alpha,beta,tc,bs[0],bs[1]); | 116 h->cdsp.cavs_filter_lv(h->cy,h->l_stride,alpha,beta,tc,bs[0],bs[1]); |
117 h->s.dsp.cavs_filter_cv(h->cu,h->c_stride,alpha,beta,tc,bs[0],bs[1]); | 117 h->cdsp.cavs_filter_cv(h->cu,h->c_stride,alpha,beta,tc,bs[0],bs[1]); |
118 h->s.dsp.cavs_filter_cv(h->cv,h->c_stride,alpha,beta,tc,bs[0],bs[1]); | 118 h->cdsp.cavs_filter_cv(h->cv,h->c_stride,alpha,beta,tc,bs[0],bs[1]); |
119 } | 119 } |
120 qp_avg = h->qp; | 120 qp_avg = h->qp; |
121 SET_PARAMS; | 121 SET_PARAMS; |
122 h->s.dsp.cavs_filter_lv(h->cy + 8,h->l_stride,alpha,beta,tc,bs[2],bs[3]); | 122 h->cdsp.cavs_filter_lv(h->cy + 8,h->l_stride,alpha,beta,tc,bs[2],bs[3]); |
123 h->s.dsp.cavs_filter_lh(h->cy + 8*h->l_stride,h->l_stride,alpha,beta,tc, | 123 h->cdsp.cavs_filter_lh(h->cy + 8*h->l_stride,h->l_stride,alpha,beta,tc, |
124 bs[6],bs[7]); | 124 bs[6],bs[7]); |
125 | 125 |
126 if(h->flags & B_AVAIL) { | 126 if(h->flags & B_AVAIL) { |
127 qp_avg = (h->qp + h->top_qp[h->mbx] + 1) >> 1; | 127 qp_avg = (h->qp + h->top_qp[h->mbx] + 1) >> 1; |
128 SET_PARAMS; | 128 SET_PARAMS; |
129 h->s.dsp.cavs_filter_lh(h->cy,h->l_stride,alpha,beta,tc,bs[4],bs[5]); | 129 h->cdsp.cavs_filter_lh(h->cy,h->l_stride,alpha,beta,tc,bs[4],bs[5]); |
130 h->s.dsp.cavs_filter_ch(h->cu,h->c_stride,alpha,beta,tc,bs[4],bs[5]); | 130 h->cdsp.cavs_filter_ch(h->cu,h->c_stride,alpha,beta,tc,bs[4],bs[5]); |
131 h->s.dsp.cavs_filter_ch(h->cv,h->c_stride,alpha,beta,tc,bs[4],bs[5]); | 131 h->cdsp.cavs_filter_ch(h->cv,h->c_stride,alpha,beta,tc,bs[4],bs[5]); |
132 } | 132 } |
133 } | 133 } |
134 } | 134 } |
135 h->left_qp = h->qp; | 135 h->left_qp = h->qp; |
136 h->top_qp[h->mbx] = h->qp; | 136 h->top_qp[h->mbx] = h->qp; |
412 } | 412 } |
413 | 413 |
414 void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type) { | 414 void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type) { |
415 if(ff_cavs_partition_flags[mb_type] == 0){ // 16x16 | 415 if(ff_cavs_partition_flags[mb_type] == 0){ // 16x16 |
416 mc_part_std(h, 1, 8, 0, h->cy, h->cu, h->cv, 0, 0, | 416 mc_part_std(h, 1, 8, 0, h->cy, h->cu, h->cv, 0, 0, |
417 h->s.dsp.put_cavs_qpel_pixels_tab[0], | 417 h->cdsp.put_cavs_qpel_pixels_tab[0], |
418 h->s.dsp.put_h264_chroma_pixels_tab[0], | 418 h->s.dsp.put_h264_chroma_pixels_tab[0], |
419 h->s.dsp.avg_cavs_qpel_pixels_tab[0], | 419 h->cdsp.avg_cavs_qpel_pixels_tab[0], |
420 h->s.dsp.avg_h264_chroma_pixels_tab[0],&h->mv[MV_FWD_X0]); | 420 h->s.dsp.avg_h264_chroma_pixels_tab[0],&h->mv[MV_FWD_X0]); |
421 }else{ | 421 }else{ |
422 mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 0, 0, | 422 mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 0, 0, |
423 h->s.dsp.put_cavs_qpel_pixels_tab[1], | 423 h->cdsp.put_cavs_qpel_pixels_tab[1], |
424 h->s.dsp.put_h264_chroma_pixels_tab[1], | 424 h->s.dsp.put_h264_chroma_pixels_tab[1], |
425 h->s.dsp.avg_cavs_qpel_pixels_tab[1], | 425 h->cdsp.avg_cavs_qpel_pixels_tab[1], |
426 h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X0]); | 426 h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X0]); |
427 mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 4, 0, | 427 mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 4, 0, |
428 h->s.dsp.put_cavs_qpel_pixels_tab[1], | 428 h->cdsp.put_cavs_qpel_pixels_tab[1], |
429 h->s.dsp.put_h264_chroma_pixels_tab[1], | 429 h->s.dsp.put_h264_chroma_pixels_tab[1], |
430 h->s.dsp.avg_cavs_qpel_pixels_tab[1], | 430 h->cdsp.avg_cavs_qpel_pixels_tab[1], |
431 h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X1]); | 431 h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X1]); |
432 mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 0, 4, | 432 mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 0, 4, |
433 h->s.dsp.put_cavs_qpel_pixels_tab[1], | 433 h->cdsp.put_cavs_qpel_pixels_tab[1], |
434 h->s.dsp.put_h264_chroma_pixels_tab[1], | 434 h->s.dsp.put_h264_chroma_pixels_tab[1], |
435 h->s.dsp.avg_cavs_qpel_pixels_tab[1], | 435 h->cdsp.avg_cavs_qpel_pixels_tab[1], |
436 h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X2]); | 436 h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X2]); |
437 mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 4, 4, | 437 mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 4, 4, |
438 h->s.dsp.put_cavs_qpel_pixels_tab[1], | 438 h->cdsp.put_cavs_qpel_pixels_tab[1], |
439 h->s.dsp.put_h264_chroma_pixels_tab[1], | 439 h->s.dsp.put_h264_chroma_pixels_tab[1], |
440 h->s.dsp.avg_cavs_qpel_pixels_tab[1], | 440 h->cdsp.avg_cavs_qpel_pixels_tab[1], |
441 h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X3]); | 441 h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X3]); |
442 } | 442 } |
443 } | 443 } |
444 | 444 |
445 /***************************************************************************** | 445 /***************************************************************************** |
670 av_cold int ff_cavs_init(AVCodecContext *avctx) { | 670 av_cold int ff_cavs_init(AVCodecContext *avctx) { |
671 AVSContext *h = avctx->priv_data; | 671 AVSContext *h = avctx->priv_data; |
672 MpegEncContext * const s = &h->s; | 672 MpegEncContext * const s = &h->s; |
673 | 673 |
674 MPV_decode_defaults(s); | 674 MPV_decode_defaults(s); |
675 ff_cavsdsp_init(&h->cdsp, avctx); | |
675 s->avctx = avctx; | 676 s->avctx = avctx; |
676 | 677 |
677 avctx->pix_fmt= PIX_FMT_YUV420P; | 678 avctx->pix_fmt= PIX_FMT_YUV420P; |
678 | 679 |
679 h->luma_scan[0] = 0; | 680 h->luma_scan[0] = 0; |