--- encoder.c 2002/12/13 11:54:17 1.76.2.30 +++ encoder.c 2003/01/05 03:30:44 1.76.2.33 @@ -39,7 +39,7 @@ * MinChen * 14.04.2002 added FrameCodeB() * - * $Id: encoder.c,v 1.76.2.30 2002/12/13 11:54:17 syskin Exp $ + * $Id: encoder.c,v 1.76.2.33 2003/01/05 03:30:44 suxen_drol Exp $ * ****************************************************************************/ @@ -73,7 +73,7 @@ ****************************************************************************/ #define ENC_CHECK(X) if(!(X)) return XVID_ERR_FORMAT -#define SWAP(A,B) { void * tmp = A; A = B; B = tmp; } +#define SWAP(_T_,A,B) { _T_ tmp = A; A = B; B = tmp; } /***************************************************************************** * Local function prototypes @@ -713,9 +713,9 @@ pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); pEnc->bframenum_tail--; - SWAP(pEnc->current, pEnc->reference); + SWAP(FRAMEINFO *, pEnc->current, pEnc->reference); - SWAP(pEnc->current, pEnc->bframes[pEnc->bframenum_tail]); + SWAP(FRAMEINFO *, pEnc->current, pEnc->bframes[pEnc->bframenum_tail]); FrameCodeP(pEnc, &bs, &bits, 1, 0); bframes_count = 0; @@ -791,8 +791,8 @@ if (pEnc->bframenum_dx50bvop != -1) { - SWAP(pEnc->current, pEnc->reference); - SWAP(pEnc->current, pEnc->bframes[pEnc->bframenum_dx50bvop]); + SWAP(FRAMEINFO *, pEnc->current, pEnc->reference); + SWAP(FRAMEINFO *, pEnc->current, pEnc->bframes[pEnc->bframenum_dx50bvop]); if ((pEnc->mbParam.global & XVID_GLOBAL_DEBUG)) { image_printf(&pEnc->current->image, pEnc->mbParam.edged_width, pEnc->mbParam.height, 5, 100, "DX50 IVOP"); @@ -806,7 +806,7 @@ } else if (input_valid) { - SWAP(pEnc->current, pEnc->reference); + SWAP(FRAMEINFO *, pEnc->current, pEnc->reference); start_timer(); if (image_input @@ -832,7 +832,7 @@ } else if (pEnc->queue_size > 0) { - SWAP(pEnc->current, pEnc->reference); + SWAP(FRAMEINFO *, pEnc->current, pEnc->reference); image_swap(&pEnc->current->image, &pEnc->queue[pEnc->queue_head]); pEnc->queue_head = (pEnc->queue_head + 1) % pEnc->mbParam.max_bframes; @@ -985,7 +985,7 @@ pEnc->bframenum_tail--; pEnc->bframenum_dx50bvop = pEnc->bframenum_tail; - SWAP(pEnc->current, pEnc->bframes[pEnc->bframenum_dx50bvop]); + SWAP(FRAMEINFO *, pEnc->current, pEnc->bframes[pEnc->bframenum_dx50bvop]); if ((pEnc->mbParam.global & XVID_GLOBAL_DEBUG)) { image_printf(&pEnc->current->image, pEnc->mbParam.edged_width, pEnc->mbParam.height, 5, 100, "DX50 BVOP->PVOP"); } @@ -1066,8 +1066,8 @@ pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size,pEnc->current->quant); /* store frame into bframe buffer & swap ref back to current */ - SWAP(pEnc->current, pEnc->bframes[pEnc->bframenum_tail]); - SWAP(pEnc->current, pEnc->reference); + SWAP(FRAMEINFO *, pEnc->current, pEnc->bframes[pEnc->bframenum_tail]); + SWAP(FRAMEINFO *, pEnc->current, pEnc->reference); pEnc->bframenum_tail++; @@ -1147,7 +1147,7 @@ ENC_CHECK(pFrame->bitstream); ENC_CHECK(pFrame->image); - SWAP(pEnc->current, pEnc->reference); + SWAP(FRAMEINFO *, pEnc->current, pEnc->reference); pEnc->current->global_flags = pFrame->general; pEnc->current->motion_flags = pFrame->motion; @@ -1563,15 +1563,6 @@ BitstreamWriteVolHeader(bs, &pEnc->mbParam, pEnc->current); - /* XXX: move this stuff to BitstreamWriteVolHeader */ -#define DIVX501B481P "DivX501b481p" - if ((pEnc->mbParam.global & XVID_GLOBAL_PACKED)) { - BitstreamWriteUserData(bs, DIVX501B481P, strlen(DIVX501B481P)); - } - -#define XVID_ID "XviD" XVID_BS_VERSION - BitstreamWriteUserData(bs, XVID_ID, strlen(XVID_ID)); - set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); @@ -1608,7 +1599,8 @@ if ((pEnc->current->global_flags & XVID_REDUCED)) { image_deblock_rrv(&pEnc->current->image, pEnc->mbParam.edged_width, - pEnc->current->mbs, mb_width, mb_height, pEnc->mbParam.mb_width); + pEnc->current->mbs, mb_width, mb_height, pEnc->mbParam.mb_width, + 16, XVID_DEC_DEBLOCKY|XVID_DEC_DEBLOCKUV); } emms(); @@ -1848,7 +1840,8 @@ if ((pEnc->current->global_flags & XVID_REDUCED)) { image_deblock_rrv(&pEnc->current->image, pEnc->mbParam.edged_width, - pEnc->current->mbs, mb_width, mb_height, pEnc->mbParam.mb_width); + pEnc->current->mbs, mb_width, mb_height, pEnc->mbParam.mb_width, + 16, XVID_DEC_DEBLOCKY|XVID_DEC_DEBLOCKUV); } emms(); @@ -1932,8 +1925,8 @@ Bitstream * bs, uint32_t * pBits) { - int16_t dct_codes[6 * 64]; - int16_t qcoeff[6 * 64]; + DECLARE_ALIGNED_MATRIX(dct_codes, 6, 64, int16_t, CACHE_LINE); + DECLARE_ALIGNED_MATRIX(qcoeff, 6, 64, int16_t, CACHE_LINE); uint32_t x, y; IMAGE *f_ref = &pEnc->reference->image;