Community
cancel
Showing results for 
Search instead for 
Did you mean: 
icecream123
Beginner
60 Views

How to fix FPS in Intel H.264 encoder ?

Hi All,

I try to set solid 30 fps in Intel H.264 Encoder:

mfxFrameInfo->FrameRateExtN = 30 and
mfxFrameInfo->FrameRateExtD = 1

But I could not have a solid encoder FPS as 30.

Do you have any good idea ?

Thanks
Best Regards,
0 Kudos
2 Replies
Eric_S_Intel
Employee
60 Views

Hi,

Can you explain the problem you are having with more detail? Theres not enough information here to understand the problem you are having.

- Is the encoder not initializing when you set those values?

- Can you print out the all the other values that you are trying to initialize the encoder with?

We would be happy to help once we understand what you are experiencing.
Thanks

Eric

icecream123
Beginner
60 Views

Hi Eric,

As below fragments, I had try to assign the frame rate as 30 FPS, do I need more update ?

HRESULT CEncVideoFilter::CheckInputType(const CMediaType* mtIn)
{
...
mfxU32 nFrameRateExtN(0), nFrameRateExtD(0);

sts = ConvertFrameRate(m_pTimeManager->GetFrameRate(), &nFrameRateExtN, &nFrameRateExtD);
CHECK_NOT_EQUAL(sts, MFX_ERR_NONE, sts);

nFrameRateExtN = 30; // set FPS as 30
nFrameRateExtD = 1;
m_mfxParamsVideo.mfx.FrameInfo.FrameRateExtN = nFrameRateExtN;
m_mfxParamsVideo.mfx.FrameInfo.FrameRateExtD = nFrameRateExtD;
...
}

void CConfigPropPage::UpdateDialogControls( mfxU32 codecID
, int nPresetDlgCombobox
, int nTGUsageDlgCombobox
, int nBitrateItem
, int nBitrateSpinItem)
{
...
mfxU32 fcExtN(0), fcExtD(0);
ConvertFrameRate( (mfxF64)statistics.frame_rate / 100.0
, &fcExtN
, &fcExtD);

fcExtN = 30; // set FPS as 30
fcExtD = 1;

vParam.mfx.FrameInfo.FrameRateExtN = fcExtN;
vParam.mfx.FrameInfo.FrameRateExtD = fcExtD;
..
}

HRESULT CDecVideoFilter::CheckInputType(const CMediaType *mtIn)
{
...
if (nVideoInfoSize == mtIn->cbFormat || MFX_ERR_NONE != sts)
{
pmfx->FrameInfo.CropH = (mfxU16)vih2.bmiHeader.biHeight;
pmfx->FrameInfo.CropW = (mfxU16)vih2.bmiHeader.biWidth;

pmfx->FrameInfo.Width = (pmfx->FrameInfo.CropW + 15) &~ 15;
pmfx->FrameInfo.Height = (pmfx->FrameInfo.CropH + 31) &~ 31;

pmfx->FrameInfo.FourCC = MFX_FOURCC_NV12;
pmfx->FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
m_mfxParamsVideo.IOPattern = MFX_IOPATTERN_OUT_SYSTEM_MEMORY;

ConvertFrameRate(m_pTimeManager->GetFrameRate(),
&pmfx->FrameInfo.FrameRateExtN,
&pmfx->FrameInfo.FrameRateExtD);

}

pmfx->FrameInfo.FrameRateExtN = 30; // set FPS as 30
pmfx->FrameInfo.FrameRateExtD = 0;
...
}

Thanks
Reply