I'm using the H264Encoder DirectShow library and notice a problem only when HW is enabled. When I make the call to MFXVideoPP::QueryIOSurf() I see a trace statement in the output window: FRC Unsupported. The return status code, however, reveals no error. But encoding does not work and later on down the pipeline an MFX_ERR_ABORT is returned from the call to MFXVideoSession::SyncOperation().
Now if i change Init to choose MFX_IMPL_SOFTWARE explicitly this error goes away and the encoding works as expected (but of course we are looking to use the HW capabilities of the computer).
Searching for FRC shows this is FrameRateControl, however I don't know why that would come up.
Analyzer and Tracer logs are attached.
Name Version State
Intel(R) HD Graphics 4000 10.18.10.3958 Active
CPU: Intel(R) Core(TM) i5-3427U CPU @ 1.80GHz
OS: Microsoft Windows 8.1 Enterprise
Just in case anyone is interested this particular problem, and I think quite a few of other similar problems on this forum, were corrected by targetting latest version of the Media SDK API (1.13). I would recommend to Intel to udpate the sample applications (especially the DirectShow plugins sample) to update the target API version. Right now they are all requesting 1.1!
But none-the-less... thanks for a great product. The HW encoding is excellent.
Sorry to resurrect this thread. I also encounter exactly the same problem. Setting the SDK target to the latest version (e.g. 1.13) does not address the root cause of the problem, because that just enforces MFX_IMPL_SOFTWARE (it is likely that the Intel Graphics driver installed on your machine has an version earlier than 1.13, which makes the SDK picks the Software implementation instead of Hardware one).
I also use Intel(R) HD Graphics 4000 (MacBook Air Mid 2012).
Is it a driver issue? I tried to turn off FRC by adding MFX_EXTBUFF_VPP_FRAME_RATE_CONVERSION into m_tabDoNotUseAlg, but that did not help. I still see the message "FRC Unsupported" in the output window.
Can you please send us these following details to debug the issue you have reported above -
- System information - use system analyze present in the installed folder, under tools directory.
- Which FRC algorithm are you using?
- Are you using any samples, where you see this issue on your hardware?
- Which Media SDK version do you have?
Thanks for getting back. Attached is the system information file.
I did not use any FRC algorithm. In fact I even tried to turn them off by using MFX_EXTBUFF_VPP_DONOTUSE, just in case they are on by default. However in both case (with or without using MFX_EXTBUFF_VPP_DONOTUSE), I still see an output trace "FRC unsupported" when stepping through function QueryIOSurf(). I am not 100% sure if that is related to SyncOperation returning MFX_ERR_ABORT later on, but since Kenneth encoutered exactly the same thing, I would assume that is the case.
I am using h264_enc_filter sample in Intel Media Samples 188.8.131.52947 (that was the last version of the Samples before the DirectShow filters were taken out). My SDK is media_sdk_184.108.40.2069 in Intel INDE Package.
Pham is right, it did end up putting the encoder in MFX_IMPL_SOFTWARE. We did end up getting the encoder working well enough in HARDWARE mode, but we still saw the warning in the debug output. But ultimately I ended up dropping support for the DirectShow filter supplied with the samples pack, now that Intel has deprecated the DirectShow plugins (which is very upsetting news since DirectShow is so convenient to use on Windows for Media applications..... hint hint Intel).
It is not very clear from the thread that if you would like to use FRC or not.
If you are planning to use FRC, we can decouple the problem by testing FRC support through sample_vpp, If you still see similar issue then we can handle that problem separately.
If you are not planning to use FRC, please make sure the input and o/p frame rate is same and the VPP FRC related operations are not being used. If your VPP in params matches with output params, VPP should not be triggered.
m_bUseVPP = memcmp(&m_mfxParamsVPP.vpp.In, &m_mfxParamsVPP.vpp.Out, sizeof(mfxFrameInfo)) ? true : false;
Hope this helps. If you already gone through the above steps, then please send us a reproducer to your issue.
P.S. Since we have deprecated the support for these filter, directshow samples were never tested on windows 10 and with latest Media SDK version. So cannot guarantee them to work well.