Tag: Windows API

NVIDIA H.264 Encoder Media Foundation Transform’s REGDB_E_CLASSNOTREG

For already years Nvidia’s H.264 video encoder Media Foundation Transform has been broken giving REGDB_E_CLASSNOTREG “Class not registered” failure in certain circumstances, like main display is not the one connected to Nvidia video adapter. As simple as this: CoInitialize(NULL); MFStartup(MF_VERSION); class __declspec(uuid(“{60F44560-5A20-4857-BFEF-D29773CB8040}”)) CFoo; // NVIDIA H.264 Encoder MFT CComPtr<IMFTransform> pTransform; const HRESULT nCoCreateInstanceResult = pTransform.CoCreateInstance(__uuidof(CFoo));…

Read the full article

Greetings from H.265 / HEVC Video Decoder Media Foundation Transform

H.265 / HEVC Video Decoder Media Foundation has been around for a while, but using Media Foundation overall one step off straightforward basic paths is like walking a minefield. A twenty-liner below hits memory access violation inside IMFTransform::GetInputStreamInfo “Exception thrown at 0x6D1E71E7 (hevcdecoder.dll) in MfHevcDecoder01.exe: 0xC0000005: Access violation reading location 0x00000000.”: #include “stdafx.h” #include <mfapi.h>…

Read the full article

Microsoft AAC Encoder’s MF_E_TRANSFORM_NEED_MORE_INPUT after MFT_OUTPUT_STATUS_SAMPLE_READY

Media Foundation AAC Encoder is a pure MFT, as opposed to legacy DSP’s which are made dual DMO/MFT interfaced and presumably have higher chances for smaller artifacts. The transform is synchronous and is supposed to be simpler inside: fully passive and drives by input/output calls. Nevertheles, advertising MFT_OUTPUT_STATUS_SAMPLE_READY via IMFTransform::GetOutputStatus call, if might falsely indicate…

Read the full article

Effects of IMFVideoProcessorControl2::EnableHardwareEffects

IMFVideoProcessorControl2::EnableHardwareEffects method: Enables effects that were implemented with IDirectXVideoProcessor::VideoProcessorBlt. […] Specifies whether effects are to be enabled. TRUE specifies to enable effects. FALSE specifies to disable effects. All right, it is apparently not IDirectXVideoProcessor and MSDN link behind the identifier takes one to correct Direct3D 11 API method: ID3D11VideoContext::VideoProcessorBlt. Worse news is that having the…

Read the full article