Compartilhar via


Novos Segmentos

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Um segmento é um grupo de exemplos de mídia que compartilham uma hora de início, hora de parada e taxa de reprodução comuns. O método IPin::NewSegment sinaliza o início de um novo segmento. Ele fornece uma maneira de um filtro de origem informar filtros downstream que as informações de tempo e taxa foram alteradas. Por exemplo, se o filtro de origem procurar um novo ponto no fluxo, ele chamará NewSegment com a nova hora de início.

Alguns filtros downstream usam as informações do segmento quando processam amostras. Por exemplo, em um formato que usa compactação de interframe, se o tempo de parada cair em um quadro delta, o filtro de origem poderá precisar enviar exemplos adicionais após o tempo de parada. Isso permite que o decodificador decodifica o quadro delta final. Para determinar o quadro final correto, o decodificador refere-se ao tempo de parada do segmento. Como outro exemplo, os renderizadores de áudio usam a taxa de segmento junto com a taxa de amostragem de áudio para gerar a saída de áudio correta.

No modelo de push, o filtro de origem inicia a chamada NewSegment . No modelo de pull, isso é feito pelo filtro do analisador. Em ambos os casos, o filtro chama NewSegment no pin de entrada downstream, que propaga a chamada para o próximo filtro, até que a chamada atinja o renderizador. Os filtros devem serializar chamadas NewSegment com outras chamadas de streaming, como IMemInputPin::Receive.

O tempo de transmissão é redefinido para zero após cada novo segmento. Carimbos de data/hora em amostras entregues após o início do segmento a partir do zero.