Hi guys,
I am working on Hardware decoding, the decoder gets initialized fine with MFX_IMPL_HARDWARE2|MFX_IMPL_VIA_D3D9 and i am using vpp for the colourspace conversion NV12->RGB4. My system configuration is i7-2600k and I am using 2013 R2 SDK. Everything is working fine except for the CPU usage which is about 32% throughout the decoding process and i am decoding @25fps 1920*1080.
Here is how i am setting up the VPP structure
m_VPPParams.vpp.In.FourCC = MFX_FOURCC_NV12;
m_VPPParams.vpp.In.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
m_VPPParams.vpp.In.CropX = 0;
m_VPPParams.vpp.In.CropY = 0;
m_VPPParams.vpp.In.CropW = 1920;
m_VPPParams.vpp.In.CropH = 1080;
m_VPPParams.vpp.In.PicStruct = MFX_PICSTRUCT_FIELD_TFF;
m_VPPParams.vpp.In.FrameRateExtN = 240000;
m_VPPParams.vpp.In.FrameRateExtD = 9600;
// width must be a multiple of 16
// height must be a multiple of 16 in case of frame picture and a multiple of 32 in case of field picture
m_VPPParams.vpp.In.Width = MSDK_ALIGN16(m_VPPParams.vpp.In.CropW);
m_VPPParams.vpp.In.Height =
(MFX_PICSTRUCT_PROGRESSIVE == m_VPPParams.vpp.In.PicStruct) ?
MSDK_ALIGN16(m_VPPParams.vpp.In.CropH) :
MSDK_ALIGN32(m_VPPParams.vpp.In.CropH);
// Output data
m_VPPParams.vpp.Out.FourCC = MFX_FOURCC_RGB4;
m_VPPParams.vpp.Out.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
m_VPPParams.vpp.Out.CropX = 0;
m_VPPParams.vpp.Out.CropY = 0;
m_VPPParams.vpp.Out.CropW = m_VPPParams.vpp.In.CropW ;
m_VPPParams.vpp.Out.CropH = m_VPPParams.vpp.In.CropH ;
m_VPPParams.vpp.Out.PicStruct = MFX_PICSTRUCT_FIELD_TFF;
m_VPPParams.vpp.Out.FrameRateExtN = 240000;
m_VPPParams.vpp.Out.FrameRateExtD = 9600;
m_VPPParams.vpp.Out.Width = MSDK_ALIGN16(m_VPPParams.vpp.Out.CropW);
m_VPPParams.vpp.Out.Height =(MFX_PICSTRUCT_PROGRESSIVE == m_VPPParams.vpp.Out.PicStruct) ?
MSDK_ALIGN16(m_VPPParams.vpp.Out.CropH) :
MSDK_ALIGN32(m_VPPParams.vpp.Out.CropH);
m_VPPParams.IOPattern = MFX_IOPATTERN_IN_SYSTEM_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY;
m_VPPParams.AsyncDepth = 1;