- 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
![](/skins/images/45C6C2D737ED71F4C51F0145C8CB1E9C/responsive_peak/images/icon_anonymous_message.png)
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