Método IMFRateControl::SetRate (mfidl.h)
Define a taxa de reprodução.
Sintaxe
HRESULT SetRate(
[in] BOOL fThin,
[in] float flRate
);
Parâmetros
[in] fThin
Se TRUE, os fluxos de mídia serão diluidos. Caso contrário, o fluxo não será afinado. Para fontes de mídia e demultiplexers, o objeto deve afinar os fluxos quando esse parâmetro for TRUE. Para transformações downstream, como decodificadores e multiplexadores, esse parâmetro é informativo; ele notifica o objeto de que os fluxos de entrada são afinados. Para obter informações, consulte Sobre o controle de taxa.
[in] flRate
A taxa de reprodução solicitada. Os valores positivos indicam a reprodução para frente, os valores negativos indicam a reprodução inversa e zero indica a eliminação (a origem fornece um único quadro).
Valor retornado
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
O objeto não dá suporte à reprodução inversa. |
|
O objeto não dá suporte ao afinamento. |
|
O objeto não dá suporte à taxa de reprodução solicitada. |
|
O objeto não pode ser alterado para a nova taxa enquanto estiver no estado em execução. |
Comentários
A Sessão de Mídia impede algumas transições entre os limites de taxa, dependendo do estado de reprodução atual:
Estado de reprodução | Avançar/Inverter | Avançar/Zero | Reverso/Zero |
---|---|---|---|
Executando | Não | Não | Não |
Em Pausa | Não | Sim | Não |
Parado | Sim | Sim | Sim |
Se não houver suporte para a transição, o método retornará MF_E_UNSUPPORTED_RATE_TRANSITION.
Quando uma fonte de mídia conclui uma chamada para SetRate, ela envia o evento MESourceRateChanged . Outros componentes de pipeline não enviam esse evento.
Se uma fonte de mídia alternar entre a reprodução fina e não fina, os fluxos enviarão um evento MEStreamThinMode para indicar a transição. Os eventos da fonte de mídia não são sincronizados com eventos dos fluxos de mídia. Depois de receber o evento MESourceRateChanged , você ainda poderá receber amostras que foram enfileiradas antes que o fluxo mude para o modo reduzido ou não reduzido. O evento MEStreamThinMode marca o ponto exato no fluxo em que a transição ocorre.
Quando a Sessão de Mídia conclui uma chamada para SetRate, ela envia o evento MESessionRateChanged .
Requisitos
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | mfidl.h |
Biblioteca | Mfuuid.lib |