Esempio n. 1
0
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;
}