Lendo de um fluxo

Você pode recuperar informações sobre um fluxo aberto usando a função AVIStreamInfo . Essa função preenche a estrutura AVISTREAMINFO com informações como o tipo de dados no fluxo, o método de compactação usado ao gravar dados de fluxo, o tamanho do buffer sugerido, a taxa de reprodução e uma descrição de texto do fluxo.

Alguns membros da estrutura AVISTREAMINFO também estão presentes na estrutura AVIFILEINFO . As informações na estrutura AVIFILEINFO se aplicam a todo o arquivo. As informações na estrutura AVISTREAMINFO são específicas para o fluxo acessado e têm precedência sobre as informações na estrutura AVIFILEINFO .

Se um fluxo tiver informações suplementares associadas a ele, você poderá recuperar essas informações usando a função AVIStreamReadData . Essa função retorna as informações em um buffer fornecido pelo aplicativo. Informações de fluxo suplementares podem incluir definições de configuração para os métodos de compactação e descompactação usados em um fluxo. Você pode obter o tamanho do buffer necessário usando a macro AVIStreamDataSize .

Você pode recuperar informações de formatação sobre um fluxo usando a função AVIStreamReadFormat . Essa função retorna uma estrutura específica do fluxo em um buffer fornecido pelo aplicativo. Para um fluxo de vídeo, o buffer contém informações de formatação em uma estrutura BITMAPINFO . Para um fluxo de áudio, o buffer contém informações de formatação em uma estrutura WAVEFORMATEX ou PCMWAVEFORMAT . Para outros tipos de fluxo, o manipulador de fluxo retorna informações específicas para o fluxo. Você pode determinar o tamanho do buffer necessário usando AVIStreamReadFormat e especificando um endereço de buffer NULL ou usando a macro AVIStreamFormatSize .

Você pode recuperar o conteúdo multimídia em um fluxo usando a função AVIStreamRead . Essa função copia dados brutos do fluxo para um buffer fornecido pelo aplicativo. Para fluxos de vídeo, essa função recupera as imagens com bitmapped que compõem o conteúdo do quadro. Para fluxos de áudio, essa função recupera exemplos de áudio de forma de onda que compõem o conteúdo do som. Você pode determinar o tamanho do buffer necessário usando AVIStreamRead e especificando um endereço de buffer NULL ou usando a macro AVIStreamSampleSize .

Alguns manipuladores de fluxo AVI introduzem atrasos associados à inicialização ou coordenação de software e hardware. Você pode informar esses manipuladores para se prepararem para streaming de dados usando a função AVIStreamBeginStreaming . Essa função permite que o manipulador de fluxo aloque e inicialize os recursos necessários. Para informar esses manipuladores quando o streaming for encerrado, use a função AVIStreamEndStreaming . Essa função permite que o manipulador de fluxo desaloque os recursos alocados para AVIStreamBeginStreaming.

A função AVIStreamRead não fornece serviços de descompactação. Para obter informações sobre como compactar e descompactar fluxos de áudio, consulte Gerenciador de Compactação de Áudio. Para obter informações sobre como compactar e descompactar fluxos de vídeo, consulte Gerenciador de Compactação de Vídeo. Para obter informações sobre como compactar e descompactar quadros individuais em um fluxo de vídeo, consulte Trabalhando com dados de vídeo compactados em um fluxo.

Operações de fluxo