Compartir a través de


Para entregar ejemplos comprimidos con el lector asincrónico

[La característica asociada a esta página, WINDOWS Media Format 11 SDK, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. Lector de origen y escritor receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector fuente y escritor receptor en lugar del SDK de Windows Media Format 11, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El lector asincrónico puede entregar muestras comprimidas de secuencias en archivos ASF. Las aplicaciones suelen entregar muestras comprimidas al copiar una secuencia de un archivo a otro. No es aconsejable volver a comprimir los datos que se han reconstruido a partir de una secuencia comprimida, ya que los datos se pierden en el proceso de codificación. Los medios digitales que se han comprimido más de una vez tendrán una disminución notable de la calidad.

El SDK de Windows Media Format no proporciona ningún método para descodificar datos después de extraerlos de un archivo ASF. Si recibe muestras comprimidas y más adelante quiere descomprimirlas, tendrá que proporcionar su propio código para hacerlo. Una manera de evitar esta limitación es escribir los ejemplos comprimidos en un nuevo archivo ASF y, a continuación, volver a leerlos en muestras normales y sin comprimir.

Para recibir ejemplos comprimidos con el lector asincrónico, realice los pasos siguientes.

  1. Implemente la devolución de llamada IWMReaderCallbackAdvanced::OnStreamSample . Esta devolución de llamada es básicamente idéntica en función a IWMReaderCallback::OnSample , salvo que entrega muestras por número de secuencia y las muestras siguen comprimidas.
  2. Antes de iniciar la reproducción, obtenga un puntero a la interfaz IWMReaderAdvanced del objeto lector llamando a IWMReader::QueryInterface.
  3. Configure el lector para entregar muestras comprimidas para la secuencia deseada mediante una llamada a IWMReaderAdvanced::SetReceiveStreamSamples.
  4. Repita el paso 3 para cada flujo para el que se desee la entrega de muestra comprimida.

Nota:

Las secuencias de imagen no son válidas para la entrega de flujos comprimidos. Si copia una secuencia de imagen de un archivo a otro, no funcionará en el nuevo archivo. Para copiar un flujo de imagen de un archivo a otro, recupere los ejemplos de flujo de imagen por número de salida e inclúyelos en el nuevo archivo como si incluyese una nueva secuencia de imágenes.

 

IWMReaderCallbackAdvanced (Interfaz)

Lectura de archivos con el lector asincrónico