Compartir a través de


Creación del receptor de archivos ASF

El receptor de archivos ASF es una implementación de IMFMediaSink proporcionada por Media Foundation que una aplicación puede usar para archivar los datos multimedia de ASF en un archivo. Para obtener información sobre el modelo de objetos de los receptores multimedia de ASF y el uso general, vea Receptores multimedia de ASF.

Hay dos maneras de crear una instancia del receptor de archivos ASF. Puedes llamar a MFCreateASFMediaSink o MFCreateASFMediaSinkActivate.

Si llama a MFCreateASFMediaSink, debe especificar una secuencia de bytes para el archivo de salida en el que el receptor escribirá el contenido de ASF durante una sesión de codificación. La secuencia de bytes especificada debe tener funcionalidades de búsqueda y grabables; de lo contrario, se produce un error en la llamada MFCreateASFMediaSink con el código de error E_FAIL. Esta llamada crea un objeto receptor de archivos en proceso y devuelve un puntero a la interfaz IMFMediaSink del receptor de archivos.

Si llama a MFCreateASFMediaSinkActivate, debe especificar la dirección URL del archivo de salida en el que el receptor de archivos escribirá datos multimedia. En este caso, el receptor de archivos crea internamente la secuencia de bytes. La función devuelve un puntero a la interfaz IMFActivate del receptor de archivos. En

Considere mfCreateASFMediaSinkActivate en lugar de MFCreateASFMediaSink, cuando la topología de codificación esté diseñada de la siguiente manera:

  • La topología de codificación es para la ruta de acceso de medios protegida (PMP) y el receptor de archivos se usa fuera de proceso.

  • El nodo de salida de la topología se crea mediante el puntero devuelto al objeto activate del receptor de archivos y la aplicación realiza un seguimiento de las secuencias del receptor de archivos por números de secuencia.

    Nota

    Puede activar el receptor de archivos llamando a IMFActivate::ActivateObject. Sin embargo, no es necesario activar el objeto explícitamente. La sesión multimedia realiza un seguimiento del objeto de activación y activa el receptor de archivos automáticamente durante la sesión de codificación.

     

  • La información de la secuencia se configura en el objeto ContentInfo. Se desuso en la siguiente subsección.

Después de crear el receptor de archivos ASF, debe configurarse antes de compilar la topología. El receptor de archivos debe conocer la siguiente información para generar el archivo de salida.

  • Información básica de la secuencia
  • Información del modo de codificación
  • Metadatos

El receptor de archivos implementa el objeto ContentInfo de ASF y expone la interfaz IMFASFContentInfo para que una aplicación pueda usarla para establecer información relacionada con las secuencias y la codificación. Dependiendo de la función a la que llamó para crear el receptor de archivos, hay dos maneras de obtener una referencia a la interfaz IMFASFContentInfo .

  • Si llama a la función MFCreateASFMediaSink , la aplicación debe consultar la interfaz IMFASFContentInfo llamando a IMFMediaSink::QueryInterface en el receptor de archivos devuelto.
  • Si decide llamar a MFCreateASFMediaSinkActivate, esta función espera que tenga un objeto ContentInfo totalmente configurado antes de la llamada. Para ello, debe crear un objeto ContentInfo vacío llamando a MFCreateASFContentInfo y, a continuación, configúrelo con toda la información necesaria. Pase el objeto ContentInfo configurado al MFCreateASFMediaSinkActivate para recibir un puntero al objeto de activación del receptor. No se puede activar el receptor de archivos mediante el objeto de activación devuelto y, a continuación, cambiar cualquier secuencia o información de codificación.

Para obtener información sobre cómo configurar flujos de receptor y propiedades específicas, vea los temas siguientes:

Receptores de medios asf

Componentes de ASF de la capa de canalización

Compatibilidad con ASF en Media Foundation