291 |
if(pMB->mode == MODE_INTRA_Q) |
if(pMB->mode == MODE_INTRA_Q) |
292 |
BitstreamPutBits(bs, pMB->dquant, 2); |
BitstreamPutBits(bs, pMB->dquant, 2); |
293 |
|
|
294 |
|
// write interlacing |
295 |
|
if (pParam->global_flags & XVID_INTERLACING) |
296 |
|
{ |
297 |
|
BitstreamPutBit(bs, pMB->field_dct); |
298 |
|
} |
299 |
|
|
300 |
// code block coeffs |
// code block coeffs |
301 |
for(i = 0; i < 6; i++) |
for(i = 0; i < 6; i++) |
302 |
{ |
{ |
339 |
if(pMB->mode == MODE_INTER_Q) |
if(pMB->mode == MODE_INTER_Q) |
340 |
BitstreamPutBits(bs, pMB->dquant, 2); |
BitstreamPutBits(bs, pMB->dquant, 2); |
341 |
|
|
342 |
|
// interlacing |
343 |
|
if (pParam->global_flags & XVID_INTERLACING) |
344 |
|
{ |
345 |
|
BitstreamPutBit(bs, pMB->field_dct); |
346 |
|
DEBUG1("codep: field_dct: ", pMB->field_dct); |
347 |
|
|
348 |
|
// if inter block, write field ME flag |
349 |
|
if (pMB->mode == MODE_INTER || pMB->mode == MODE_INTER_Q) |
350 |
|
{ |
351 |
|
BitstreamPutBit(bs, pMB->field_pred); |
352 |
|
DEBUG1("codep: field_pred: ", pMB->field_pred); |
353 |
|
|
354 |
|
// write field prediction references |
355 |
|
if (pMB->field_pred) |
356 |
|
{ |
357 |
|
BitstreamPutBit(bs, pMB->field_for_top); |
358 |
|
BitstreamPutBit(bs, pMB->field_for_bot); |
359 |
|
} |
360 |
|
} |
361 |
|
} |
362 |
|
|
363 |
// code motion vector(s) |
// code motion vector(s) |
364 |
for(i = 0; i < (pMB->mode == MODE_INTER4V ? 4 : 1); i++) |
for(i = 0; i < (pMB->mode == MODE_INTER4V ? 4 : 1); i++) |
365 |
{ |
{ |