Media SDKv1.0 Goes GA!

Today is a big day for Multimedia at AMD. I am pleased to announce the production release of the first Multimedia SDK. With this release developers can leverage the great software and hardware IP that we have developed over the years. So let’s do a quick recap of what’s inside the Media SDK and how it is useful for developers:

1. Media Foundation Transforms (MFT)

Media Foundation is a multimedia framework defined by Microsoft. Media Foundation is a replacement for the popular DirectShow multimedia framework from Microsoft. The Media SDK delivers software components -Media Foundation Transform (MFT)- that can be used by developers using Media Foundation to access the AMD Media accelerators – Video Coding Engine (VCE) and Unified Video Decoder (UVD) – for video encoding and decoding respectively.

In addition AMD has also developed a special GPU optimized MFT for video pre and post processing named the Video Quality (VQ) MFT. The VQ MFT allows developers to use video quality algorithms like dynamic contrast, noise reduction, edge enhancement and shake stabilization in their applications. These algorithms are a culmination of many years of R&D at AMD and now developers can use these features in their applications. The VQ MFT allows developers fine grained control of video processing in their applications. To get started take a look at the playbackVqWinStore sample in the Media SDK. Figure 1 below shows a screenshot of the sample. For more details on our video processing features I would recommend reading Al Porter’s blog.


 Figure 1 Screenshot of playbackVqWinStore sample in the Media SDK

2. AMF-DEM Library

On AMD APUs and dGPUs there is a direct physical connection between the display controller and the Video Coding Engine (VCE) known as Display Encode Mode (DEM). This feature allows developers to do screen capture and video encode in one shot and is ideal for low latency applications like wireless display and remote desktop. The Media SDK provides a C++ library named – AMF-DEM – to access this feature. Take a look at Nao Yoshikawa’s presentation to see how ArcSoft drastically reduced their CPU load of their application by using the AMF-DEM library. To explore this feature further you can get started with the screenCapture sample in the Media SDK.

3. Windows 8/8.1 App Store Ready

One of the cool features of the Media SDK is support for Windows 8/8.1 store applications. Developers can leverage the AMD media accelerators for video encoding and decoding and GPU shaders for video pre/post processing using the Media SDK. The cool thing is that developers can write their application in any of the languages supported by the Windows runtime like C++, Javascript, C# and Visual Basic and use the Media SDK features.

The Media SDK1.0 is optimized for Video Playback, Transcode, Video Conferencing, Wireless Display and Video Editing application use cases. The SDK provides targeted code samples for various end application use cases. This should make it easy for developers to use the SDK features in their applications.

Since we announced the public beta release in November we were fortunate to get some press coverage from the Semiaccurate web site. Please read my interview with Thomas Ryan on the Media SDK to get a perspective of AMD’s multimedia software strategy.

One of the exciting developments of this month was the announcement of Kaveri – AMD’s flagship APU product . Kaveri is the most powerful heterogeneous compute platform in the industry today and the first device to support HSA. The Media SDK is a pillar of AMD’s heterogeneous compute strategy whereby developers can easily leverage CPU, GPU and HW accelerators for media processing. With support for features like D3D to OpenCL inter-op and code samples for building optimal media processing pipelines, the Media SDK makes it easy for multimedia developers to leverage heterogeneous compute on AMD platforms like Kaveri.

At the APU13 conference in November 2013 we saw some great presentations on innovative uses of the Media SDK. Links to the presentations are shown below :

So what’s next ? We are actively working on the AMD Media Framework (AMF). AMF provides a cross platform C++ API for media processing. Higher level multimedia components like MFT are built on top of AMF. Developers have the option of either using industry standard APIs like MFT or the AMF API to access features and optimizations that they cannot get to via industry standard APIs . The strategy remains the same as we expand our support to additional operating systems – developers get a cross platform C++ API for media processing as well as components for higher level frameworks. With this two pronged approach we expect the Media SDK to be attractive to a wide range of developers.

I would like to close by thanking all of you who downloaded the Media SDK beta release and left useful feedback for us in the developer forum. Your feedback helped us in making a top quality GA release. So keep using the Media SDK and tell us how we can make it better.

Happy coding!

– Amit


Amit Mookerjee is a Senior Manager, Media Software Solutions at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites, and references to third party trademarks, are provided for convenience and illustrative purposes only. Unless explicitly stated, AMD is not responsible for the contents of such links, and no third party endorsement of AMD or any of its products is implied.


6 Responses

  1. mabaohong

    How can I insert audio stream to transport stream?
    Like this:
    mEncoder->SetProperty(DEM_OUTPUT_TYPE, AMFVariant(DEM_AV_TS));

    but I can’t get audio stream.Only h264 aud header(0x00 0x00 0x00 0x01 0x09 0x10).