Lines Matching refs:video

18 #include "mp4dec_lib.h" /* video decoder function prototypes */
42 PV_STATUS DecodeFrameCombinedMode(VideoDecData *video)
46 Vop *currVop = video->currVop;
47 BitstreamDecVideo *stream = video->bitstream;
48 int shortVideoHeader = video->shortVideoHeader;
49 int16 QP, *QPMB = video->QPMB;
50 uint8 *Mode = video->headerInfo.Mode;
51 int nTotalMB = video->nTotalMB;
52 int nMBPerRow = video->nMBPerRow;
72 oscl_memset(video->motX, 0, sizeof(MOT)*4*nTotalMB);
73 oscl_memset(video->motY, 0, sizeof(MOT)*4*nTotalMB);
83 if (video->shortVideoHeader)
85 if (video->advanced_INTRA)
87 if (video->modified_quant)
89 video->vlcDecCoeffIntra = &VlcDecTCOEFShortHeader_AnnexIT;
90 video->vlcDecCoeffInter = &VlcDecTCOEFShortHeader_AnnexT;
94 video->vlcDecCoeffIntra = &VlcDecTCOEFShortHeader_AnnexI;
95 video->vlcDecCoeffInter = &VlcDecTCOEFShortHeader;
100 if (video->modified_quant)
102 video->vlcDecCoeffInter = video->vlcDecCoeffIntra = &VlcDecTCOEFShortHeader_AnnexT;
106 video->vlcDecCoeffInter = video->vlcDecCoeffIntra = &VlcDecTCOEFShortHeader;
115 // oscl_memset(video->sliceNo, 0, sizeof(uint8)*nTotalMB);
116 QP = video->currVop->quantizer;
123 video->usePrevQP = 0; /* 04/27/01 */
127 if (video->modified_quant)
129 video->QP_CHR = MQ_chroma_QP_table[QP];
133 video->QP_CHR = QP; /* ANNEX_T */
146 /* we need video->mbnum in lower level functions */
147 video->mbnum = mbnum;
148 video->mbnum_row = PV_GET_ROW(mbnum, nMBPerRow);
149 video->mbnum_col = mbnum - video->mbnum_row * nMBPerRow;
151 video->sliceNo[mbnum] = (uint8) slice_counter;
155 status = GetMBheader(video, &QP);
159 VideoDecoderErrorDetected(video);
160 video->mbnum = mb_start;
171 status = GetMBData(video);
174 VideoDecoderErrorDetected(video);
175 video->mbnum = mb_start;
182 SkippedMBMotionComp(video); /* 08/04/05 */
184 // Motion compensation and put video->mblock->pred_block
195 /* have we reached the end of the video packet or vop? */
199 if (!video->slice_structure)
202 if (mbnum >= (int)(video->mbnum_row + 1)*video->nMBinGOB) /* 10/11/01 */
227 VideoDecoderErrorDetected(video);
228 ConcealPacket(video, mb_start, nTotalMB, slice_counter);
254 VideoDecoderErrorDetected(video);
255 ConcealPacket(video, mb_start, nTotalMB, slice_counter);
278 if (!video->slice_structure)
281 while ((status = PV_GobHeader(video)) == PV_FAIL)
289 mbnum = currVop->gobNumber * video->nMBinGOB;
294 while ((status = PV_H263SliceHeader(video, &mbnum)) == PV_FAIL)
307 while ((status = PV_ReadVideoPacketHeader(video, &mbnum)) == PV_FAIL)
321 if (mbnum > video->mbnum + 1)
323 ConcealPacket(video, video->mbnum, mbnum, slice_counter);
325 QP = video->currVop->quantizer;
345 PV_STATUS GetMBheader(VideoDecData *video, int16 *QP)
347 BitstreamDecVideo *stream = video->bitstream;
348 int mbnum = video->mbnum;
349 uint8 *Mode = video->headerInfo.Mode;
350 int x_pos = video->mbnum_col;
351 typeDCStore *DC = video->predDC + mbnum;
352 typeDCACStore *DCAC_row = video->predDCAC_row + x_pos;
353 typeDCACStore *DCAC_col = video->predDCAC_col;
363 VopType = video->currVop->predictionType;
390 if (!video->deblocking)
414 if (!video->shortVideoHeader)
416 video->acPredFlag[mbnum] = (uint8) BitstreamRead1Bits(stream);
420 if (video->advanced_INTRA)
424 video->acPredFlag[mbnum] = 0;
428 video->acPredFlag[mbnum] = 1;
431 video->mblock->direction = 0;
435 video->mblock->direction = 1;
441 video->acPredFlag[mbnum] = 0;
446 if ((MBtype & INTRA_MASK) && !video->shortVideoHeader)
448 video->acPredFlag[mbnum] = (uint8) BitstreamRead1Bits_INLINE(stream);
452 video->acPredFlag[mbnum] = 0;
462 video->headerInfo.CBP[mbnum] = (uint8)(CBPY << 2 | (CBPC & 3));
466 if (!video->modified_quant)
473 video->QP_CHR = *QP; /* ANNEX_T */
494 video->QP_CHR = MQ_chroma_QP_table[*QP];
526 PV_STATUS GetMBData(VideoDecData *video)
528 BitstreamDecVideo *stream = video->bitstream;
529 int mbnum = video->mbnum;
530 MacroBlock *mblock = video->mblock;
533 uint mode = video->headerInfo.Mode[mbnum];
534 uint CBP = video->headerInfo.CBP[mbnum];
535 typeDCStore *DC = video->predDC + mbnum;
536 int intra_dc_vlc_thr = video->currVop->intraDCVlcThr;
537 int16 QP = video->QPMB[mbnum];
539 int width = video->width;
550 int TotalMB = video->nTotalMB;
551 int MB_in_width = video->nMBPerRow;
553 int y_pos = video->mbnum_row;
554 int x_pos = video->mbnum_col;
560 if (video->postFilterType != PV_NO_POST_PROC)
563 pp_mod[0] = video->pstprcTypCur + (y_pos << 1) * (MB_in_width << 1) + (x_pos << 1);
567 pp_mod[4] = video->pstprcTypCur + (TotalMB << 2) + mbnum;
579 if (video->usePrevQP)
580 QP_tmp = video->QPMB[mbnum-1]; /* running QP 04/26/01 */
592 if (video->shortVideoHeader)
595 if (!video->advanced_INTRA)
609 VideoDecoderErrorDetected(video);
620 ncoeffs[comp] = VlcDequantH263IntraBlock_SH(video, comp, mblock->bitmapcol[comp], &mblock->bitmaprow[comp]);
632 ncoeffs[comp] = VlcDequantH263IntraBlock(video, comp,
649 if (video->postFilterType != PV_NO_POST_PROC)
653 MBlockIDCT(video);
658 status = PV_GetMBvectors(video, mode);
665 MBMotionComp(video, CBP);
666 c_comp = video->currVop->yChan + offset;
674 ncoeffs[comp] = VlcDequantH263InterBlock(video, comp, mblock->bitmapcol[comp], &mblock->bitmaprow[comp]);
682 if (video->postFilterType != PV_NO_POST_PROC)
691 if (video->postFilterType != PV_NO_POST_PROC)
697 video->QPMB[mbnum] = video->QP_CHR; /* ANNEX_T */
704 ncoeffs[4] = VlcDequantH263InterBlock(video, 4, mblock->bitmapcol[4], &mblock->bitmaprow[4]);
707 BlockIDCT(video->currVop->uChan + (offset >> 2) + (x_pos << 2), mblock->pred_block + 256, mblock->block[4], width >> 1, ncoeffs[4],
712 if (video->postFilterType != PV_NO_POST_PROC)
721 if (video->postFilterType != PV_NO_POST_PROC)
728 ncoeffs[5] = VlcDequantH263InterBlock(video, 5, mblock->bitmapcol[5], &mblock->bitmaprow[5]);
731 BlockIDCT(video->currVop->vChan + (offset >> 2) + (x_pos << 2), mblock->pred_block + 264, mblock->block[5], width >> 1, ncoeffs[5],
736 if (video->postFilterType != PV_NO_POST_PROC)
745 if (video->postFilterType != PV_NO_POST_PROC)
749 video->QPMB[mbnum] = QP; /* restore the QP values ANNEX_T*/
756 ncoeffs[comp] = VlcDequantH263InterBlock(video, comp, mblock->bitmapcol[comp], &mblock->bitmaprow[comp]);
764 if (video->postFilterType != PV_NO_POST_PROC)
773 if (video->postFilterType != PV_NO_POST_PROC)
782 ncoeffs[4] = VlcDequantH263InterBlock(video, 4, mblock->bitmapcol[4], &mblock->bitmaprow[4]);
785 BlockIDCT(video->currVop->uChan + (offset >> 2) + (x_pos << 2), mblock->pred_block + 256, mblock->block[4], width >> 1, ncoeffs[4],
790 if (video->postFilterType != PV_NO_POST_PROC)
799 if (video->postFilterType != PV_NO_POST_PROC)
806 ncoeffs[5] = VlcDequantH263InterBlock(video, 5, mblock->bitmapcol[5], &mblock->bitmaprow[5]);
809 BlockIDCT(video->currVop->vChan + (offset >> 2) + (x_pos << 2), mblock->pred_block + 264, mblock->block[5], width >> 1, ncoeffs[5],
814 if (video->postFilterType != PV_NO_POST_PROC)
823 if (video->postFilterType != PV_NO_POST_PROC)
835 video->usePrevQP = 1; /* should be set after decoding the first Coded 04/27/01 */