|
|
|
@ -73,7 +73,7 @@ static inline int get_bs(cavs_vector *mvP, cavs_vector *mvQ, int b) { |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
void ff_cavs_filter(AVSContext *h, enum cavs_mb mb_type) { |
|
|
|
|
DECLARE_ALIGNED_8(uint8_t, bs)[8]; |
|
|
|
|
uint8_t bs[8]; |
|
|
|
|
int qp_avg, alpha, beta, tc; |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
@ -93,9 +93,9 @@ void ff_cavs_filter(AVSContext *h, enum cavs_mb mb_type) { |
|
|
|
|
if(!h->loop_filter_disable) { |
|
|
|
|
/* determine bs */ |
|
|
|
|
if(mb_type == I_8X8) |
|
|
|
|
*((uint64_t *)bs) = 0x0202020202020202ULL; |
|
|
|
|
memset(bs,2,8); |
|
|
|
|
else{ |
|
|
|
|
*((uint64_t *)bs) = 0; |
|
|
|
|
memset(bs,0,8); |
|
|
|
|
if(ff_cavs_partition_flags[mb_type] & SPLITV){ |
|
|
|
|
bs[2] = get_bs(&h->mv[MV_FWD_X0], &h->mv[MV_FWD_X1], mb_type > P_8X8); |
|
|
|
|
bs[3] = get_bs(&h->mv[MV_FWD_X2], &h->mv[MV_FWD_X3], mb_type > P_8X8); |
|
|
|
@ -109,7 +109,7 @@ void ff_cavs_filter(AVSContext *h, enum cavs_mb mb_type) { |
|
|
|
|
bs[4] = get_bs(&h->mv[MV_FWD_B2], &h->mv[MV_FWD_X0], mb_type > P_8X8); |
|
|
|
|
bs[5] = get_bs(&h->mv[MV_FWD_B3], &h->mv[MV_FWD_X1], mb_type > P_8X8); |
|
|
|
|
} |
|
|
|
|
if( *((uint64_t *)bs) ) { |
|
|
|
|
if(AV_RN64(bs)) { |
|
|
|
|
if(h->flags & A_AVAIL) { |
|
|
|
|
qp_avg = (h->qp + h->left_qp + 1) >> 1; |
|
|
|
|
SET_PARAMS; |
|
|
|
|