locked
'Windows Media SDK' and 'Media Format' questions. RRS feed

  • Question

  • Hello.

    I have just started experimenting with 'Media Format' in C++ and I want to ask the following:

    1) Is 'Windows Media SDK' discontinued ? I can't find it on microsoft.com and links to it send me to an irrelevant page. Also, a version of it that I have downloaded had some problems.
    2) Is 'Media Format' the replacement of it ?
    3) Do I need to install sth on the client machine for an app using 'Media Format' to work or all the necessary code is already in my exe and the OS ?
    4) Why the following code gives me 'dwMTCount' = 0 ?

    hr = MFTranscodeGetAudioOutputAvailableTypes(
            MFAudioFormat_WMAudio_Lossless
            MFT_ENUM_FLAG_ALL,
            NULL,
            &pAvailableTypes
    );
    if (FAILED(hr)) goto DOOMED;
    // Get the number of elements in the list.
    hr = pAvailableTypes->GetElementCount( &dwMTCount );
    if (FAILED(hr)) goto DOOMED;

    It does the same for MFAudioFormat_PCM, MFAudioFormat_WMASPDIF, MFAudioFormat_MP3, etc, but it returns non-zero for MFAudioFormat_WMAudioV9 and MFAudioFormat_WMAudioV8.
    Does this have to do sth with the 'Field of Use Restrictions' ??? If yes why MS locks these formats ??? Does it have to do anything with Intellectual Property Protection ? How is making the life of a developer miserable helping with that ???
    For unlocking MSDN says : "If you create a topology directly, set the MFT_FIELDOFUSE_UNLOCK_Attribute as an attribute on the topology."
    Attributes have values, right ? What value am I supposed to use ?

    5) After trying both 'Media Format' and 'Windows Media SDK' I realized that a match between them (in the encoding types area) is:
    MFAudioFormat_WMAudioV8 = Windows Media Audio 9.2
    MFAudioFormat_WMAudioV9 = Windows Media Audio 10 Professional
    MFAudioFormat_MSP1 = Windows Media Audio Voice 9
    ...respectively. (They returned the same 'Media Types' or 'Encoding Types/Settings' or whatever name you want to give them...)

    Why V8 matches with 9.2 and V9 With V10 ??? I mean, why don't the version number agree ?

    6) Is there any 'Media Format' samples showing how to enumerate and use the existing VBR media types ? I only found out how to enumerate CBR media types with MFTranscodeGetAudioOutputAvailableTypes. I think that the MF samples are not enough.

    Any answer to any of the above would be greatly appreciated.
    Thanks in advance!
    • Moved by Rob Pan Tuesday, January 31, 2012 7:38 AM (From:Visual C++ MFC and ATL)
    Saturday, January 28, 2012 2:58 PM

Answers

  • (1) Windows Media related SDKs still exist and the documentation is still available on MSDN.  However, these APIs will not be receving updates in the future and it is not recommended to continue developing applications using them.

    (2) Media Foundation is the replacement for the Windows Media Format SDK.

    (3) Media Foundation binaries will already be present on computers running Windows Vista or later.  You do not need to include (and should not include) any MF binaries in your project.

    (4) The WMAudio encoder does not enumerate lossless audio types by default, it must be configured for VBR encoding and the VBR quality setting must be set to 1.

    (5) WMA could be labelled based upon the codec version, the Windows Media Player version it shipped with, or the Windows Media Encoder version it shipped with.  It just ended up looking wrong in MF because someone decided to use something other than the advertised codec version.

    (6) To do this, you need to configure the encoder's property store before using it (QueryInterface for IPropertyStore on the encoder).  Use MFPKEY_VBRENABLED to enable VBR, and MFPKEY_DESIRED_VBRQUALITY to set the desired VBR quality.  I do not think there are any samples of this.

    • Marked as answer by Kostas0 Monday, February 20, 2012 6:49 PM
    Saturday, February 18, 2012 2:36 AM

All replies

  • Hi,

     

    According to your description, do you mean Windows Media Format  SDK? The newest version of Windows Media Format  SDK is Windows Media Format  11 SDK. I suggest you can check this link to get http://msdn.microsoft.com/en-us/windows/bb190307.aspx  

     

    In addition, there is another forum named Media Foundation Development for Windows Desktop. I will move your thread to the correct forum for better support. Thanks for your understanding.

     

    Best Regards,
    Rob


    Rob Pan [MSFT]
    MSDN Community Support | Feedback to us
    Tuesday, January 31, 2012 7:37 AM
  • Yes, by 'Media Format' I mean the 'Windows Media Format  SDK'.

    By the way, a link for 'Windows Media Encoder 9 Series SDK' is finally working again :
    http://msdn.microsoft.com/en-us/windows/bb190307.aspx

    And thanks for moving my question to the right forum. I had a problem finding the right place. As far as I understand there are MANY forums here. A well structured tree-like navigation structure to the forums might be of better help.

    EDIT:
    When I said "By the way, a link for 'Windows Media Encoder 9 Series SDK' is finally working again" I was wrong.
    Actually, it was this that was missing from microsoft.com not the SDK.

    • Edited by Kostas0 Monday, February 20, 2012 6:53 PM
    Tuesday, January 31, 2012 11:37 AM
  • (1) Windows Media related SDKs still exist and the documentation is still available on MSDN.  However, these APIs will not be receving updates in the future and it is not recommended to continue developing applications using them.

    (2) Media Foundation is the replacement for the Windows Media Format SDK.

    (3) Media Foundation binaries will already be present on computers running Windows Vista or later.  You do not need to include (and should not include) any MF binaries in your project.

    (4) The WMAudio encoder does not enumerate lossless audio types by default, it must be configured for VBR encoding and the VBR quality setting must be set to 1.

    (5) WMA could be labelled based upon the codec version, the Windows Media Player version it shipped with, or the Windows Media Encoder version it shipped with.  It just ended up looking wrong in MF because someone decided to use something other than the advertised codec version.

    (6) To do this, you need to configure the encoder's property store before using it (QueryInterface for IPropertyStore on the encoder).  Use MFPKEY_VBRENABLED to enable VBR, and MFPKEY_DESIRED_VBRQUALITY to set the desired VBR quality.  I do not think there are any samples of this.

    • Marked as answer by Kostas0 Monday, February 20, 2012 6:49 PM
    Saturday, February 18, 2012 2:36 AM
  • Thank you VERY much !
    Monday, February 20, 2012 6:49 PM