locked
IMFMediaEngine::TransferVideoFrame returns HRESULT hr = 0xc00d36b4 : The data specified for the media type is invalid, inconsistent, or not supported by this object

    Question

  • I'm trying to integrate IMFMediaEngine in my application to be able to play movies.

    What i'm getting is just audio and each time when calling IMFMediaEngine::TransferVideoFrame returns HRESULT hr = 0xc00d36b4 : The data specified for the media type is invalid, inconsistent, or not supported by this object.

    1.The target texture format that triggers this error is DXGI_FORMAT_R8G8B8A8_UNORM.

    2.If I'm using DXGI_FORMAT_B8G8R8A8_UNORM for target texture then I get E_NOINTERFACE answer .

    3. Even MEPlaybackNative example fails with HRESULT hr = E_FAIL.

    I'm using Windows 8.1 with Visual Studio 2013. And Here is the code:

    Please if anyone had this problem and cand help I would apreciate, Thanks a lot!

    The source files are located in src/d3d_wrapper (wrapper for d3d11 functions and movie engine); src/portable is a stripped version of the portable module necesary to run this build and, finaly, my_app.cpp is the file where actualy is invoked the movie player instance and where is running the loop of the app.

    To start the movie player do Left Click (you will notice how the sound is ok but the transfer frame function fails), to stop / destroy the movie do Right Click.

    The movie resource is located in res/intro.mp4.

    Here is a download link for the sample:

    http://www.2shared.com/file/BmYe4MBT/MoviePlayer-Sample.html

    The file is MoviePlayer-Sample.zip(it has almost 13 MB size) and the password for the zip is cho5er5



    • Edited by iuliul Tuesday, March 4, 2014 6:46 PM
    Wednesday, February 19, 2014 9:50 PM

All replies

  • I'll ask our DX guys to check on this.

    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.

    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.

    Thursday, February 20, 2014 1:40 PM
    Moderator
  • Hello,

    What is your source? Does it decode to RGB or a YUV variant?

    -James


    Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Thursday, February 20, 2014 9:39 PM
    Moderator
  • Hy James, thanks for your reply. My source is decoding to RGB.
    Thursday, February 20, 2014 9:45 PM
  • Hello,

    The error 0xc00d36b4 equates to MF_E_INVALIDMEDIATYPE. This will occur if the media type of the audio of video is not supported. This can happen if you are using a compressed audio format such as mu law or a law, etc. This check occurs when the output device is opened. Make sure the media types of your source are fully supported. If you feel that they should be supported please post the entire media type (i.e. all media type information including format information) and I will take a look.

    I hope this helps,

    James


    Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Friday, February 21, 2014 1:54 AM
    Moderator
  • Hy, James!

    Sorry for my late response I didn't had the chance to answer until today.

    I've managed to make a sample Visual Studio 2013 project witch you should be able to run it and better to check what I'm doing wrong. 

    The source files are located in src/d3d_wrapper (wrapper for d3d11 functions and movie engine);  src/portable is a stripped version of the portable module necesary to run this build and, finaly, my_app.cpp is the file where actualy is invoked the movie player instance and where is running the loop of the app.

    To start the movie player do Left Click (you will notice how the sound is ok but the transfer frame function fails), to stop / destroy the movie do Right Click.

    The movie resource is located in res/intro.mp4.

    Here is a download link for the sample:

    http://www.2shared.com/file/BmYe4MBT/MoviePlayer-Sample.html

    The file is MoviePlayer-Sample.zip(it has almost 13 MB size) and the password for the zip is cho5er5

    Thanks again!
     

    Wednesday, February 26, 2014 1:13 PM
  • Hy, James !

    I was able to run "Media engine native" sample code and the movie played normal (with both video and sound) only if I'm forcing device creation with driver type D3D_DRIVER_TYPE_WARP, but still it will not work with D3D_DRIVER_TYPE_HARDWARE.

    My Video Device is NVidia GeForce GT 220 (driver version 331.65 and Direct3D API Version 10.1)

    Thursday, March 6, 2014 8:39 PM