Segmentos de envelope
[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.]
Uma curva de parâmetro consiste em um ou mais segmentos de envelope, definidos usando a estrutura MP_ENVELOPE_SEGMENT . Essa estrutura contém as seguintes informações:
- Os horários de início e término.
- Os valores iniciais e finais.
- O tipo de curva (linear, quadrado e assim por diante).
- Sinalizadores opcionais, descritos em breve.
O cliente adiciona segmentos de envelope a um parâmetro chamando o método IMediaParams::AddEnvelope e passando uma matriz de estruturas de MP_ENVELOPE_SEGMENT . O cliente deve classificar os segmentos em ordem de tempo crescente antes de chamar o método . À medida que o DMO processa dados, você pode imaginar o parâmetro viajando por cada segmento de envelope, como um carro dirigindo por uma série de colinas. O método IMediaParams::GetParam retorna o valor mais recente.
Dois segmentos adjacentes podem ter uma lacuna entre eles. Durante as lacunas, o parâmetro mantém seu valor anterior, da seguinte maneira:
- Antes do primeiro segmento, o valor é o valor neutro.
- Entre segmentos, o valor é o valor final do segmento anterior.
- Após o último segmento, o valor permanece no valor final desse segmento.
- Se o cliente liberar o DMO, o valor será revertido para o valor neutro.
Você pode alterar um segmento definindo um dos seguintes sinalizadores:
- MPF_ENVLP_BEGIN_CURRENTVAL. O DMO usa o valor mais recente do parâmetro como o valor inicial para o segmento. Esse pode ser o valor neutro ou o valor final do segmento anterior. O DMO ignora o membro valStart da estrutura MP_ENVELOPE_SEGMENT .
- MPF_ENVLP_BEGIN_NEUTRALVAL. O DMO usa o valor neutro do parâmetro como o valor inicial para o segmento. Ele ignora valStart.
Você pode considerar esses sinalizadores como agarrando o ponto de partida do segmento e movendo-o para cima ou para baixo, enquanto o valor final permanece fixo. O segmento será "estendido" adequadamente.
Tópicos relacionados