Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

HEVC encoding, what am I doing wrong?

Dan_Haddix
Beginner
1,151 Views

I have an existing encoder that does QS H,264 and MPEG-2. I'm trying to add HEVC support. I read through the docs and looks at the sample code and I see that you have to load a plug-in to make it work. However when I add the code to my filter the call to MFXVideoUSER_Load returns MFX_ERR_NOT_FOUND. Here is the exact code I'm using

 

		// Setup Intel encoder
		mfxStatus status = MFX_ERR_NONE;
		mfxVersion version = {0, 1}; // We don't currently use any features not in 1.0 so no need to bump this

		CParameterIntelQSPreferences intel_prefs;
		mfxIMPL implementation_type = intel_prefs.GetPropertyInt( "ImplementationType" ) | intel_prefs.GetPropertyInt( "DirectXSurface" );

		// Initialize session
		status = m_mfxSession.Init(implementation_type, &version); // Auto selects hardware or software depending on system capabilities
		if (MFX_ERR_NONE > status)
		{
			LogX("IntelVideoEncoder: Could not initiate hardware encoder, system may not support it: %i", status );
			return E_FAIL;
		}

		
		mfxIMPL	 actualImplementation( MFX_IMPL_AUTO );
		if (MFX_ERR_NONE >  m_mfxSession.QueryIMPL( &actualImplementation ) )
		{
			LogX("IntelVideoEncoder: Could not initiate query implementation");
			return E_FAIL;
		}

		if ( MFX_ERR_NONE > m_mfxSession.QueryVersion( &version ) )
		{
			LogX("IntelVideoEncoder: Could not initiate query version");
			return E_FAIL;
		}

		// Load HEVC plugin
		if (m_videoCodec == MFX_CODEC_HEVC)
		{
			if (MFX_IMPL_BASETYPE(actualImplementation) != MFX_IMPL_SOFTWARE && version.Minor >= 15)
			{
				status = MFXVideoUSER_Load(m_mfxSession, &MFX_PLUGINID_HEVCE_HW, 1);
				if (MFX_ERR_NONE > status)
				{
					LogX("IntelVideoEncoder: Unable to load HEVC encoder: %i", status );
					return E_FAIL;
				}
			}
		}

I have a new i7-7700k with latest intel graphics drivers installed and I'm building against the latest SDK.

0 Kudos
3 Replies
Dan_Haddix
Beginner
1,151 Views

Anyone have any idea what's going wrong here?

0 Kudos
Dan_Haddix
Beginner
1,151 Views

No one can tell me what I'm doing wrong?

0 Kudos
Ramashankar
New Contributor III
1,151 Views

Hi Dan,

I think HEVC encoder plugin is missing on your system. Please note that HEVC decoder/encoder plugin are not available with all media sdk package. Refer this: https://software.intel.com/en-us/intel-media-server-studio/try-buy

 

0 Kudos
Reply