Where can I get MF SDK?

Where can I get MF SDK

People are talking about it's existance and there is docs on it on MSDN, but where is that SDK Am I missing something



Answer this question

Where can I get MF SDK?

  • eng_mohamed_nagah

    Hello Igor,   

    We have started documenting about Media Foundation on MSDN and you can find it here: http://windowssdk.msdn.microsoft.com/library/default.asp url=/library/en-us/MedFound/html/0d355ad1-d674-432e-809a-9fb27ac5f610.asp

    The Media Foundation SDK (documentation, samples etc) also gets shipped as part of the Windows SDK (or what used to be known as Platform SDK). Windows SDK gets shipped as part of the Windows Vista CTP drops. In order to get these drops you have to be a Windows Vista Technical Beta Tester.

    Thanks,
    Prakash Channagiri


  • DBRICHARD

    The Media Foundation documentation is now here: http://msdn2.microsoft.com/en-us/library/ms694197.aspx. I'm not sure why MSDN doesn't have a redirect.

    mmdeviceapi.h should be installed with the SDK in the Include folder. Are you saying that you don't have this header

    Incidentally, the APIs in mmdeviceapi.h are documented here: http://msdn2.microsoft.com/en-us/library/ms678710.aspx, not in Media Foundation.

    ----------------------------------------------------------------------------
    Mike Wasson, SDK Documentation
    This posting is provided "AS IS" with no warranties, and confers no rights. You assume all risk for your use.

    (c) 2007 Microsoft Corporation. All rights reserved.



  • d72e4d

    Thanks,

    OK, so it's with Windows Vista CTP SDK...

    I've downloaded it installed and now checking.

    Could you ask developer of Core Audio API services the following question:

    What is wrong with that code (I removed check for error conditions):

    #include <Mmdeviceapi.h>

    #include <Audioclient.h>

    #include <Audiopolicy.h>

    ...

    IMMDeviceEnumerator* pEnumerator;

    HRESULT hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_INPROC_SERVER, __uuidof(IMMDeviceEnumerator), // IID_IMMDeviceEnumerator,(void**)&pEnumerator);

    IMMDevice* pDevice;

    hr = pEnumerator->GetDefaultAudioEndpoint(eRender, eConsole, &pDevice);

    IAudioClient* pClient;

    hr = pDevice->Activate(__uuidof(IAudioClient), // IID_IAudioClient

    CLSCTX_INPROC_SERVER, NULL, (void **)&pClient);

    It always fails at pDevice->Activate returned result E_NOINTERFACE

    This is an example from MSDN and it looks exactly the same:

    http://windowssdk.msdn.microsoft.com/library/default.asp url=/library/en-us/CoreAud/htm/renderingastream.asp

    I'm talking about February Vista CTP...

    Thanx


  • RobGiorgi

    Igor,

    My recommendation would be to wait until the next CTP build comes out (it should happen shortly). The code should definitely work in that build.

    Thanks,
    Prakash Channagiri


  • imanish11111

    Dear Prakash:

    the web: http://windowssdk.msdn.microsoft.com/library/default.asp url=/library/en-us/MedFound/html/0d355ad1-d674-432e-809a-9fb27ac5f610.asp.

    is not exist now.

    And I think that MF SDK is part of Vista SDK,right

    I had download Vista SDK,but I still can't get MF SDK in it
    event "Mmdeviceapi.h",I can't find it.

    where have it's detail

    Tks.

    Richard.



  • spebby

    OK,

    Could we use exact Vista versions:

    On Vista 5308 CTP this just dosn't work...

    What version # should I expect this to work


  • Ron L

    Hi Igor,

    Can you try the following piece of code to see if it works The only addition is the "CoInitialize(NULL);" call at the beginning of the program. Hopefully this should fix your problem.

    Thanks,
    Prakash Channagiri

    #include <stdio.h>
    #include <wtypes.h>
    #include <winerror.h>
    #include <mmreg.h>
    #include <mmdeviceapi.h>
    #include <audioclient.h>
    #include <mmdeviceapi.h>

    #define EXIT_ON_ERROR(hres) \
    if (FAILED(hres)) { goto Exit; }
    #define SAFE_RELEASE(punk) \
    if ((punk) != NULL) \
    { (punk)->Release(); (punk) = NULL; }

    void main()
    {
    CoInitialize(NULL);

    IMMDeviceEnumerator* pEnumerator = NULL;

    HRESULT hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_INPROC_SERVER,
    __uuidof(IMMDeviceEnumerator), // IID_IMMDeviceEnumerator,
    (void**)&pEnumerator);
    EXIT_ON_ERROR(hr)

    printf("Sucessfully created enumerator\n");

    IMMDevice* pDevice = NULL;

    hr = pEnumerator->GetDefaultAudioEndpoint(eRender, eConsole, &pDevice);
    EXIT_ON_ERROR(hr)

    IAudioClient* pClient = NULL;

    hr = pDevice->Activate(__uuidof(IAudioClient), // IID_IAudioClient
    CLSCTX_INPROC_SERVER, NULL, (void **)&pClient);
    if (hr == E_NOINTERFACE)
    {
    printf("Activate call fails with E_NOINTERFACE!\n");
    }
    EXIT_ON_ERROR(hr)

    printf("Successfully created IAudioClient object\n");

    Exit:
    SAFE_RELEASE(pEnumerator)
    SAFE_RELEASE(pDevice)
    SAFE_RELEASE(pClient)
    }


  • Cefa68000

    C'mon, sure I have CoInitilaize....

    It just doesn't work on my system... Does this works on yours


  • Noah Nadeau

    Hi Igor,

    As I said earlier try with the next CTP release. The version number will be (most probably) 5384. This hasnt been released yet but it is expected to go out soon.

    Thanks,
    Prakash Channagiri


  • Where can I get MF SDK?