Compartir a través de


Asignación de búferes para lectura de archivos

En el escenario de lectura de archivos más básico, los búferes usados para entregar muestras se asignan mediante el objeto de lectura (el objeto lector o el objeto de lector sincrónico). Sin embargo, puede asignar búferes usted mismo. Para obtener más información sobre las ventajas de asignar sus propios búferes, consulte Compatibilidad de ejemplo asignada por el usuario.

Para usar sus propios búferes para la lectura de archivos, realice los pasos siguientes.

  1. Implemente una devolución de llamada o devoluciones de llamada para que el lector llame cuando necesite un búfer. Si está leyendo ejemplos de salida, use IWMReaderAllocatorEx::AllocateForOutputEx. Si está leyendo ejemplos de secuencias, use IWMReaderAllocatorEx::AllocateForStreamEx. Incluya cualquier lógica para administrar los búferes que se adapten a la aplicación.
  2. Asigne un grupo de búferes que usará para la lectura de archivos.
  3. Configure el lector o el lector sincrónico para la lectura. Para obtener más información, vea Leer archivos con el lector asincrónico o leer archivos con el lector sincrónico.
  4. Antes de empezar a escribir, llame a IWMReaderAdvanced::SetAllocateForOutput o IWMReaderAdvanced::SetAllocateForStream para cada salida y secuencia para la que se asignan búferes mediante el objeto reader. Para el lector sincrónico, llame a IWMSyncReader2::SetAllocateForOutput o IWMSyncReader2::SetAllocateForStream en su lugar.
  5. Comience a leer el archivo.

El objeto de lectura realizará llamadas a la devolución de llamada del asignador adecuada y obtendrá ejemplos de la aplicación. La lógica de administración del búfer debe incluir una manera de indicar que un búfer está libre de volver a usarse. Normalmente, un búfer se vuelve a colocar en el grupo cuando se representa su contenido. En función de la aplicación, es posible que necesite solo unos pocos búferes en el grupo o en muchos.

Leer archivos ASF