Lines Matching refs:pd
932 bool VideoBaseDecoder::DecodePicture (VkParserPictureData* pd)
937 if (!pd->pCurrPic)
942 vkPicBuffBase* pVkPicBuff = GetPic(pd->pCurrPic);
947 << "\t\t progressive: " << (bool)pd->progressive_frame
949 "\t\t field: " << (bool)pd->field_pic_flag << std::endl
951 "\t\t\t bottom_field: " << (bool)pd->bottom_field_flag
953 "\t\t\t second_field: " << (bool)pd->second_field
955 "\t\t\t top_field: " << (bool)pd->top_field_first << std::endl
957 "\t\t repeat_first: " << pd->repeat_first_field
960 "\t\t ref_pic: " << (bool)pd->ref_pic_flag
967 decodePictureInfo.flags.progressiveFrame = pd->progressive_frame;
968 decodePictureInfo.flags.fieldPic = pd->field_pic_flag; // 0 = frame picture, 1 = field picture
969 decodePictureInfo.flags.repeatFirstField = pd->repeat_first_field; // For 3:2 pulldown (number of additional fields, 2 = frame doubling, 4 = frame tripling)
970 decodePictureInfo.flags.refPic = pd->ref_pic_flag; // Frame is a reference frame
973 if (pd->field_pic_flag)
975 decodePictureInfo.flags.bottomField = pd->bottom_field_flag; // 0 = top field, 1 = bottom field (ignored if field_pic_flag=0)
976 decodePictureInfo.flags.secondField = pd->second_field; // Second field of a complementary field pair
977 decodePictureInfo.flags.topFieldFirst = pd->top_field_first; // Frame pictures only
979 if (!pd->second_field)
996 return DecodePicture(pd, pVkPicBuff, &decodePictureInfo);
1000 bool VideoBaseDecoder::DecodePicture (VkParserPictureData* pd,
1006 if (!pd->pCurrPic)
1010 const deUint32 PicIdx = GetPicIdx(pd->pCurrPic);
1028 cachedParameters->pd = *pd;
1029 if (pd->sideDataLen > 0)
1031 cachedParameters->pd.pSideData = new deUint8[pd->sideDataLen];
1032 deMemcpy(cachedParameters->pd.pSideData, pd->pSideData, pd->sideDataLen);
1042 pCurrFrameDecParams->numSlices = pd->numSlices;
1043 pCurrFrameDecParams->firstSliceIndex = pd->firstSliceIndex;
1044 pCurrFrameDecParams->bitstreamDataOffset = pd->bitstreamDataOffset;
1045 pCurrFrameDecParams->bitstreamDataLen = pd->bitstreamDataLen;
1046 pCurrFrameDecParams->bitstreamData = pd->bitstreamData;
1060 const VkParserH264PictureData* const pin = &pd->CodecSpecific.h264;
1070 cachedParameters->decodedPictureInfo.videoFrameType = 0; // pd->CodecSpecific.h264.slice_type;
1072 cachedParameters->decodedPictureInfo.viewId = pd->CodecSpecific.h264.mvcext.view_id;
1082 h264PictureInfo->sliceCount = pd->numSlices;
1085 DE_ASSERT(pd->firstSliceIndex == 0); // No slice and MV modes are supported yet
1086 h264PictureInfo->pSliceOffsets = pd->bitstreamData->GetStreamMarkersPtr(pd->firstSliceIndex, maxSliceCount);
1087 DE_ASSERT(maxSliceCount == pd->numSlices);
1090 currPicFlags.is_intra = (pd->intra_pic_flag != 0);
1092 if (pd->field_pic_flag) {
1095 if (pd->bottom_field_flag) {
1100 if (pd->second_field) {
1104 if (pd->ref_pic_flag) {
1108 if (!pd->field_pic_flag) {
1112 h264StandardPictureInfo->PicOrderCnt[pd->bottom_field_flag] = pin->CurrFieldOrderCnt[pd->bottom_field_flag];
1117 pd, pin->dpb, maxDpbInputSlots, h264DpbReferenceList,
1122 DE_ASSERT(!pd->ref_pic_flag || (setupReferenceSlot.slotIndex >= 0));
1154 const VkParserHevcPictureData* const pin = &pd->CodecSpecific.hevc;
1178 pDecodePictureInfo->videoFrameType = 0; // pd->CodecSpecific.hevc.SliceType;
1179 if (pd->CodecSpecific.hevc.mv_hevc_enable) {
1180 pDecodePictureInfo->viewId = pd->CodecSpecific.hevc.nuh_layer_id;
1185 pPictureInfo->sliceSegmentCount = pd->numSlices;
1187 DE_ASSERT(pd->firstSliceIndex == 0); // No slice and MV modes are supported yet
1188 pPictureInfo->pSliceSegmentOffsets = pd->bitstreamData->GetStreamMarkersPtr(pd->firstSliceIndex, maxSliceCount);
1189 DE_ASSERT(maxSliceCount == pd->numSlices);
1216 pCurrFrameDecParams->numGopReferenceSlots = FillDpbH265State(pd, pin, pDpbRefList, pStdPictureInfo,
1221 DE_ASSERT(!pd->ref_pic_flag || (setupReferenceSlot.slotIndex >= 0));
1860 deUint32 VideoBaseDecoder::FillDpbH264State (const VkParserPictureData * pd,
1873 deUint32 num_ref_frames = pd->CodecSpecific.h264.pStdSps->GetStdH264Sps()->max_num_ref_frames;
1919 << (int32_t)GetPicIdx(pd->pCurrPic)
1922 << (int32_t)GetPicIdx(pd->pCurrPic) << std::endl
1959 << (int32_t)GetPicIdx(pd->pCurrPic) << " : " << numUsedRef
1979 int8_t currPicIdx = GetPicIdx(pd->pCurrPic);
2010 int32_t frameNumDiff = ((int32_t)pd->CodecSpecific.h264.frame_num - refOnlyDpbIn[dpbIdx].FrameIdx);
2025 // get freed right after usage. if (pd->ref_pic_flag) {
2026 int8_t currPicDpbSlot = AllocateDpbSlotForCurrentH264(GetPic(pd->pCurrPic),
2027 currPicFlags, pd->current_dpb_id);
2066 dpbIdx, dpbSlot, pd->progressive_frame);
2075 << (pd->ref_pic_flag ? "REFERENCE" : "NON-REFERENCE")
2106 << (int32_t)GetPicIdx(pd->pCurrPic)
2113 deUint32 VideoBaseDecoder::FillDpbH265State (const VkParserPictureData* pd,
2159 int8_t currPicIdx = GetPicIdx(pd->pCurrPic);
2312 int8_t dpbSlot = AllocateDpbSlotForCurrentH265(GetPic(pd->pCurrPic),
2313 true /* isReference */, pd->current_dpb_id);
2317 DE_ASSERT(pd->ref_pic_flag);