Directly Accessing Media Foundation Objects

The ltmfPlay object implements the GetSubObject function so you can access Media Foundation specific objects directly.

Suppose for example, you wanted to access to the ltmfPlay object's video processor in order to get its attribute store.

In C++, you would do the following:

IltmfPlay *pPlay; // initialized elsewhere 
HRESULT hr; 
IUnknown *pUnk; 
IMFTransform *pTransform; 
// call the play object to retrieve the FilterGraph 
hr = m_player->GetSubObject(ltmfPlay_Object_SelVideoProcessor, &pUnk); 
if (SUCCEEDED(hr)) 
{ 
   // retrieve the IMFTransform interface 
   hr = pUnk->QueryInterface(IID_IMFTransform, (void**)&pTransform); 
   if (SUCCEEDED(hr)) 
   { 
      // get the attribute store 
      IMFAttributes *pAttributes = NULL; 
      pTransform->GetAttributes(&pAttributes); 
      // do what you want with the attribute store 
      pAttributes->Release(); 
      pTransform->Release(); 
   } 
   pUnk->Release(); 
} 

Help Version 20.0.2020.2.17
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Media Foundation C API Help