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.

(Potentially) malformed video file crashing hardware decoder

Ilya_K_3
Beginner
639 Views

So, I managed to produce (with the help of Evolve) a video file that causes the decoding library to crash. I'm not too familiar with it, but the file crashes both Evolve (which uses DirectShow -> Windows codecs -> Media SDK for thumbnailing) and Windows Media Player when attempting to play it. However, ffmpeg-based players (both VLC and MPV) can play it just fine.

I'm not familiar with either Media SDK itself or the internals of the MOV container, so I'm just going to post the file here and hope someone more knowledgeable can identify the issue and fix it: https://yadi.sk/d/q46JXUqaisb6B

System info: Windows 8.1 64-bit, i5-4670K CPU (Haswell), latest Intel graphics drivers.

0 Kudos
7 Replies
Harshdeep_B_Intel
639 Views

Hi IIya,

Can you please check the version of Windows Media Player you are using and update to latest. As I was able to play content file "crasher.mov" on latest windows media player successfully. Also, you mentioned that you created this video with help of Evolve and during decode Evolve app crashed. It looks more like a bug with Evolve, please contact and direct this to evolve team, as they will be able to a provide a workaround solution on the issue.

Thanks,

 

0 Kudos
Ilya_K_3
Beginner
639 Views

I've got Windows 8.1 with all the latest updates here. Looking at the backtrace, the crash is in mfx_mft_mjpgvd_32.dll (Intel Hardware M-JPEG Decoder MFT), which is part of the Media SDK. Disabling that specific MFT in registry (by renaming HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\MediaFoundation\Transforms\00c69f81-0524-48c0-a353-4dd9d54f9a6e) makes the video playable in WMP (presumably using Microsoft's default codecs). I feel like that points strongly towards to that specific MFT being the culprit.

0 Kudos
Harshdeep_B_Intel
639 Views

Hi IIya,

Ok, Can you please follow below steps and run the simple command. This will help to rootcause if issue is with mjpeg hw decoder.

  • Download and install MediaSDK for windows from INDE here: https://software.intel.com/en-us/intel-inde
  • Follow quick installation guide to install MediaSDK for Windows: https://software.intel.com/en-us/articles/quick-installation-guide-for-media-sdk-on-windows-with-intel-inde
  • Download and install media samples (ver 6.0.0.68) from here: https://software.intel.com/en-us/media-client-solutions-support/code-samples
  • Verify and check if you have latest drivers installed. Latest version (15.36.24.64.4264)

Now, run the command line: "sample_decode.exe jpeg -i inputfile.MJPG -o outputfile.yuv -hw"

Sample_decode is available in samples folder <installed path>/_bin/.

Let me know result of this test.

Thanks,

0 Kudos
Ilya_K_3
Beginner
639 Views

The video decodes with sample_decode:

Decoding Sample Version 6.0.0.68
Input video     JPEG
Output format   YUV420
Resolution      960x608
Crop X,Y,W,H    0,0,960,600
Frame rate      30.00
Memory type             system
MediaSDK impl           hw_d3d11
MediaSDK version        1.16

Decoding started
Frame number:    1, fps: 12.913, fread_fps: 1208.992, fwrite_fps: 79.734
Decoding finished

However, this seems to only produce a single frame (while the video has multiple), and Windows Media Player still crashes when opening it. Interestingly enough, the builtin Windows 8.1 "Videos" app plays the file successfully.

0 Kudos
Harshdeep_B_Intel
639 Views
Hello Again, Thank you for running the test. This confirms no issue with mjpeg hw decoder. Here recorded input video is really short hence only single frame, try using any other long mjpeg clip and you will see multiple frames. I tried with Windows Media player (WMP) on my end on the same system configuration as yours and did not see the crash. I suggest reinstalling WMP and updating to latest to resolve crash with WMP on your system. Thanks,
0 Kudos
Ilya_K_3
Beginner
639 Views

The video actually has more than 1 frame, which means it's still decoded incorrectly. Also, don't we eliminate the actual MFT code from the pipeline when doing this? To me it seems like the MFT code is what's causing the crash, potentially because the video isn't decoding correctly in the first place.

0 Kudos
Harshdeep_B_Intel
639 Views

Hello Again.

I suspect the issue could be with original input video container (crasher.mov) format. A single frame may be because demuxing did not happen correctly. So, please let me know results to suggestions made in previous comment:

  • Try using any other long correct test mjpeg clip, were you able to successfully decode other mjpep clip with sample_decode with same command line?
  • I suggest reinstalling WMP and updating to latest to resolve crash with WMP on your system.

Thanks,

0 Kudos
Reply