📄 agl_video_render.cpp
字号:
/*
*
* INTEL CORPORATION PROPRIETARY INFORMATION
* This software is supplied under the terms of a license agreement or
* nondisclosure agreement with Intel Corporation and may not be copied
* or disclosed except in accordance with the terms of that agreement.
* Copyright(c) 2006-2007 Intel Corporation. All Rights Reserved.
*
*/
#include "agl_video_render.h"
#ifdef UMC_ENABLE_AGL_VIDEO_RENDER
#include <umc_video_data.h>
#include <ipps.h>
namespace UMC
{
#define MODULE "AGLVideoRender:"
#define FUNCTION "<Undefined Function>"
#define DBG_SET(msg) VIDEO_DRV_DBG_SET (MODULE, FUNCTION, msg)
AGLVideoRender::AGLVideoRender(void)
{
#undef FUNCTION
#define FUNCTION "AGLVideoRender"
DBG_SET("+");
DBG_SET("-");
}
/* -------------------------------------------------------------------------- */
AGLVideoRender::~AGLVideoRender(void)
{
#undef FUNCTION
#define FUNCTION "~AGLVideoRender"
DBG_SET("+");
Close();
DBG_SET("-");
}
/* -------------------------------------------------------------------------- */
Status AGLVideoRender::Init(MediaReceiverParams* pInit)
{
#undef FUNCTION
#define FUNCTION "Init"
DBG_SET("+");
Status umcRes = UMC_OK;
VideoRenderParams* pParams = DynamicCast<VideoRenderParams>(pInit);
UnifiedVideoRenderParams UnifiedParams;
AGLVideoDrvParams DrvParams;
VideoDrvVideoMemInfo sMemInfo;
if (NULL == pParams)
{
umcRes = UMC_ERR_NULL_PTR;
}
if (UMC_OK == umcRes)
{
// NOTE: next Init will be removed in future.
if (NONE == pParams->out_data_template.GetColorFormat())
umcRes = m_OutDataTemplate.Init(pParams->info.width,
pParams->info.height,
pParams->color_format);
else
m_OutDataTemplate = pParams->out_data_template;
/* Checking color format to be used. */
switch (m_OutDataTemplate.GetColorFormat())
{
case RGB24:
break;
default:
umcRes = UMC_ERR_INVALID_STREAM;
break;
}
}
if (UMC_OK == umcRes)
{
/* Copying parameters specified in <pInit> to <UnifiedParams>. */
UnifiedParams = *pParams;
/* Setting AGL driver specification. */
UnifiedParams.m_pDrvSpec = (VideoDrvSpec*) &AGLVideoDrvSpec;
DrvParams.common.img_width = m_OutDataTemplate.GetWidth();
DrvParams.common.img_height = m_OutDataTemplate.GetHeight();
DrvParams.common.win_rect.x = pParams->disp.left;
DrvParams.common.win_rect.y = pParams->disp.top;
DrvParams.common.win_rect.w = pParams->disp.right - pParams->disp.left;
DrvParams.common.win_rect.h = pParams->disp.bottom - pParams->disp.top;
UnifiedParams.m_pDrvParams = &DrvParams;
/* Setting video memory specification. */
UnifiedParams.m_VideoMemType = VideoDrvVideoMemInternal;
sMemInfo.m_pVideoMem = NULL;
sMemInfo.m_nMemSize = 0;
sMemInfo.m_nAlignment = VIDEO_DRV_ALIGN_BYTE;
sMemInfo.m_nPitch = align_value<size_t>(m_OutDataTemplate.GetWidth() * 3,
sMemInfo.m_nAlignment);
sMemInfo.m_nBufSize = sMemInfo.m_nPitch * m_OutDataTemplate.GetHeight();
UnifiedParams.m_pVideoMemInfo = &sMemInfo;
}
if (UMC_OK == umcRes)
{
umcRes = UnifiedVideoRender::Init(&UnifiedParams);
}
DBG_SET("-");
return umcRes;
}
/* -------------------------------------------------------------------------- */
} // namespace UMC
#endif // defined(UMC_ENABLE_AGL_VIDEO_RENDER)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -