Compartir a través de


Creación del objeto Splitter de ASF

El objeto divisor ASF es un objeto de capa WMContainer que analiza el objeto de datos ASF de un archivo de formato de sistemas avanzados (ASF). Para crear una nueva instancia del objeto divisor ASF, llame a la función MFCreateASFSplitter . Esta función devuelve un puntero a la interfaz IMFASFSplitter que representa un objeto divisor vacío.

Antes de que el divisor pueda comenzar a analizarse, la aplicación debe inicializar el divisor con información del objeto de encabezado ASF. Para inicializar el divisor, llame al método IMFASFSplitter::Initialize . Este método toma un puntero al objeto ContentInfo de ASF que contiene información de encabezado del archivo ASF que se va a analizar. La aplicación debe inicializar el objeto ContentInfo antes de pasarlo al divisor para que las características del archivo multimedia sean conocidas para la aplicación. El método Initialize del divisor extrae información de flujo del objeto ContentInfo, como números de flujo, por lo que el divisor puede analizar los paquetes de datos.

Ejemplo

En el ejemplo de código siguiente se muestra cómo crear un divisor e inicializarlo con un objeto ContentInfo existente.

// Create and initialize the ASF splitter.

HRESULT CreateASFSplitter (IMFASFContentInfo* pContentInfo, 
    IMFASFSplitter** ppSplitter)
{
    IMFASFSplitter *pSplitter = NULL;

    // Create the splitter object.
    HRESULT hr = MFCreateASFSplitter(&pSplitter);

    // Initialize the splitter to work with specific ASF data.
    if (SUCCEEDED(hr))
    {
        hr = pSplitter->Initialize(pContentInfo);
    }
    if (SUCCEEDED(hr))
    {
        // Return the object to the caller.
        *ppSplitter = pSplitter;
        (*ppSplitter)->AddRef();
    }
    SafeRelease(&pSplitter);
    return hr;
}

Nota

En este ejemplo se usa la función SafeRelease para liberar punteros de interfaz.

 

Divisor de ASF