AMF
AMF copied to clipboard
[Question]: What are the maximum specifications for the MJPEG decoder?
Question
What are the maximum specifications for the UVD MJPEG hardware decode engine, i.e. maximum frame width x height and maximum bytes per frame?
Observation
Passing compressed frames larger than ~3.7 MiB in size causes the following error traces:
2024 - 05 - 04 21 : 53 : 52.426 17B84[AMFDecodeEngineImplDX11] Error : ..\..\..\..\private\impl\components\DecoderUVD\DecodeEngines\DirectX\DirectX11\DecodeEngineDX11.cpp(1262) :Assertion failed : LoadCompressedBufferFromMemory() GetDecoderBuffer() failed
2024 - 05 - 04 21 : 53 : 52.427 17B84[AMFDecodeEngineImplDX11] Error : ..\..\..\..\private\impl\components\DecoderUVD\DecodeEngines\DirectX\DirectX11\DecodeEngineDX11.cpp(1012) :ERROR: LoadCompressedBufferFromMemory() failed
2024 - 05 - 04 21 : 53 : 52.427 17B84[AMFDecoderUVDImpl] Error : ..\..\..\..\private\impl\components\DecoderUVD\DecoderUVDImpl.cpp(1172) :AMF_ERROR 1 : AMF_FAIL : DecodeFrame() - Prepare<>DecodeBuffers failed
2024 - 05 - 04 21 : 53 : 52.427 17B84[AMF MFT AMFEngine] Error : ..\..\..\..\private\impl\mft\mft - framework\Engine.cpp(343) :AMFEngine(0)::SubmitInput() : SubmitInput() failed, AMF_RESULT(AMF_FAIL)
2024 - 05 - 04 21 : 53 : 52.427 17B84[AMFAsyncMFTBase] Error : ..\..\..\..\private\impl\mft\mft - framework\AsyncMFTBase.cpp(1103) :AsyncMFTBase(0)::ProcessInput() : SubmitInput() failed, AMF_RESULT(AMF_FAIL)
This happens with both the native AMF SDK using calls derived from SimpleDecoder, as well as with Media Foundation components which seem to call into the same code.
In my case, the frame dimensions were ~4000 x 3000px, but this doesn't seem like it should be unreasonable for modern hardware.
Hardware
- Windows 11
- Driver 24.4.1
- AMD Radeon 780M