void packets_AuxiliaryVideoInfoFrame(u16 baseAddr, videoParams_t *videoParams) { u16 endTop = 0; u16 startBottom = 0; u16 endLeft = 0; u16 startRight = 0; LOG_TRACE(); if (videoParams_GetEncodingOut(videoParams) == RGB) { halFrameComposerAvi_RgbYcc(baseAddr + FC_BASE_ADDR, 0); } else if (videoParams_GetEncodingOut(videoParams) == YCC422) { halFrameComposerAvi_RgbYcc(baseAddr + FC_BASE_ADDR, 1); } else if (videoParams_GetEncodingOut(videoParams) == YCC444) { halFrameComposerAvi_RgbYcc(baseAddr + FC_BASE_ADDR, 2); } halFrameComposerAvi_ScanInfo(baseAddr + FC_BASE_ADDR, videoParams_GetScanInfo(videoParams)); if (dtd_GetHImageSize(videoParams_GetDtd(videoParams)) != 0 || dtd_GetVImageSize(videoParams_GetDtd(videoParams)) != 0) { u8 pic = (dtd_GetHImageSize(videoParams_GetDtd(videoParams)) * 10) % dtd_GetVImageSize(videoParams_GetDtd(videoParams)); halFrameComposerAvi_PicAspectRatio(baseAddr + FC_BASE_ADDR, (pic > 5) ? 2 : 1); /* 16:9 or 4:3 */ } else { halFrameComposerAvi_PicAspectRatio(baseAddr + FC_BASE_ADDR, 0); /* No Data */ } halFrameComposerAvi_IsItContent(baseAddr + FC_BASE_ADDR, videoParams_GetItContent( videoParams)); halFrameComposerAvi_QuantizationRange(baseAddr + FC_BASE_ADDR, videoParams_GetRgbQuantizationRange(videoParams)); halFrameComposerAvi_NonUniformPicScaling(baseAddr + FC_BASE_ADDR, videoParams_GetNonUniformScaling(videoParams)); if (dtd_GetCode(videoParams_GetDtd(videoParams)) != (u8) (-1)) { halFrameComposerAvi_VideoCode(baseAddr + FC_BASE_ADDR, dtd_GetCode( videoParams_GetDtd(videoParams))); } else { halFrameComposerAvi_VideoCode(baseAddr + FC_BASE_ADDR, 0); } if (videoParams_GetColorimetry(videoParams) == EXTENDED_COLORIMETRY) { /* ext colorimetry valid */ if (videoParams_GetExtColorimetry(videoParams) != (u8) (-1)) { halFrameComposerAvi_ExtendedColorimetry(baseAddr + FC_BASE_ADDR, videoParams_GetExtColorimetry(videoParams)); halFrameComposerAvi_Colorimetry(baseAddr + FC_BASE_ADDR, videoParams_GetColorimetry(videoParams)); /* EXT-3 */ } else { halFrameComposerAvi_Colorimetry(baseAddr + FC_BASE_ADDR, 0); /* No Data */ } } else { halFrameComposerAvi_Colorimetry(baseAddr + FC_BASE_ADDR, videoParams_GetColorimetry( videoParams)); /* NODATA-0/ 601-1/ 709-2/ EXT-3 */ } if (videoParams_GetActiveFormatAspectRatio(videoParams) != 0) { halFrameComposerAvi_ActiveFormatAspectRatio(baseAddr + FC_BASE_ADDR, videoParams_GetActiveFormatAspectRatio(videoParams)); halFrameComposerAvi_ActiveAspectRatioValid(baseAddr + FC_BASE_ADDR, 1); } else { halFrameComposerAvi_ActiveAspectRatioValid(baseAddr + FC_BASE_ADDR, 0); } if (videoParams_GetEndTopBar(videoParams) != (u16) (-1) || videoParams_GetStartBottomBar(videoParams) != (u16) (-1)) { if (videoParams_GetEndTopBar(videoParams) != (u16) (-1)) { endTop = videoParams_GetEndTopBar(videoParams); } if (videoParams_GetStartBottomBar(videoParams) != (u16) (-1)) { startBottom = videoParams_GetStartBottomBar(videoParams); } halFrameComposerAvi_HorizontalBars(baseAddr + FC_BASE_ADDR, endTop, startBottom); halFrameComposerAvi_HorizontalBarsValid(baseAddr + FC_BASE_ADDR, 1); } else { halFrameComposerAvi_HorizontalBarsValid(baseAddr + FC_BASE_ADDR, 0); } if (videoParams_GetEndLeftBar(videoParams) != (u16) (-1) || videoParams_GetStartRightBar(videoParams) != (u16) (-1)) { if (videoParams_GetEndLeftBar(videoParams) != (u16) (-1)) { endLeft = videoParams_GetEndLeftBar(videoParams); } if (videoParams_GetStartRightBar(videoParams) != (u16) (-1)) { startRight = videoParams_GetStartRightBar(videoParams); } halFrameComposerAvi_VerticalBars(baseAddr + FC_BASE_ADDR, endLeft, startRight); halFrameComposerAvi_VerticalBarsValid(baseAddr + FC_BASE_ADDR, 1); } else { halFrameComposerAvi_VerticalBarsValid(baseAddr + FC_BASE_ADDR, 0); } halFrameComposerAvi_OutPixelRepetition(baseAddr + FC_BASE_ADDR, (dtd_GetPixelRepetitionInput(videoParams_GetDtd(videoParams)) + 1) * (videoParams_GetPixelRepetitionFactor(videoParams) + 1) - 1); }
int videoParams_IsPixelRepetition(videoParams_t *params) { return params->mPixelRepetitionFactor > 0 || dtd_GetPixelRepetitionInput( &(params->mDtd)) > 0; }