140 |
const int maxIntra, /* maximum number if non-I frames */ |
const int maxIntra, /* maximum number if non-I frames */ |
141 |
const int intraCount, /* number of non-I frames after last I frame; 0 if we force P/B frame */ |
const int intraCount, /* number of non-I frames after last I frame; 0 if we force P/B frame */ |
142 |
const int bCount, /* number of B frames in a row */ |
const int bCount, /* number of B frames in a row */ |
143 |
const int b_thresh) |
const int b_thresh, |
144 |
|
const MACROBLOCK * const prev_mbs) |
145 |
{ |
{ |
146 |
uint32_t x, y, intra = 0; |
uint32_t x, y, intra = 0; |
147 |
int sSAD = 0; |
int sSAD = 0; |
185 |
if (bCount == 0) pMBs[x + y * pParam->mb_width].mvs[0] = zeroMV; |
if (bCount == 0) pMBs[x + y * pParam->mb_width].mvs[0] = zeroMV; |
186 |
else { /* extrapolation of the vector found for last frame */ |
else { /* extrapolation of the vector found for last frame */ |
187 |
pMBs[x + y * pParam->mb_width].mvs[0].x = |
pMBs[x + y * pParam->mb_width].mvs[0].x = |
188 |
(pMBs[x + y * pParam->mb_width].mvs[0].x * (bCount+1) ) / bCount; |
(prev_mbs[x + y * pParam->mb_width].mvs[0].x * (bCount+1) ) / bCount; |
189 |
pMBs[x + y * pParam->mb_width].mvs[0].y = |
pMBs[x + y * pParam->mb_width].mvs[0].y = |
190 |
(pMBs[x + y * pParam->mb_width].mvs[0].y * (bCount+1) ) / bCount; |
(prev_mbs[x + y * pParam->mb_width].mvs[0].y * (bCount+1) ) / bCount; |
191 |
} |
} |
192 |
|
|
193 |
MEanalyzeMB(pRef->y, pCurrent->y, x, y, pParam, pMBs, &Data); |
MEanalyzeMB(pRef->y, pCurrent->y, x, y, pParam, pMBs, &Data); |