- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have a question regarding the function: 'CalculateDefaultBitrate' in sample_utils.cpp
mfxU16 CalculateDefaultBitrate(mfxU32 nCodecId, mfxU32 nTargetUsage, mfxU32 nWidth, mfxU32 nHeight, mfxF64 dFrameRate)
{
PartiallyLinearFNC fnc;
mfxF64 bitrate = 0;
switch (nCodecId)
{
case MFX_CODEC_AVC :
{
fnc.AddPair(0, 0);
fnc.AddPair(25344, 225);
fnc.AddPair(101376, 1000);
fnc.AddPair(414720, 4000);
fnc.AddPair(2058240, 5000);
break;
}
case MFX_CODEC_MPEG2:
{
fnc.AddPair(0, 0);
fnc.AddPair(414720, 12000);
break;
}
default:
{
fnc.AddPair(0, 0);
fnc.AddPair(414720, 12000);
break;
}
}
mfxF64 at = nWidth * nHeight * dFrameRate / 30.0;
//....
}
- What happes when my input framerate is higher then 30? We want to use this calculation function for framerates higher then 30.
- What are the X and Y values of the used PartiallyLinearFNC?
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Zack,
For #1, I did a simple experiment and have the following code:
unsigned long nWidth, nHeight;
double dFrameRate, at;
nWidth = 640;
nHeight = 480;
dFrameRate = 30.0;
at = nWidth * nHeight * dFrameRate / 30.0;
the results: dFrameRate = 30.0, output = 307200; dFrameRate = 31.0, output = 317440
So the final result should be the linear interpolation of the at after you applied PartiallyLinearFNC::at() function
For #2, are you asking how the function PartiallyLinearFNC::at() works?
Mark
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page