Partilhar via


Segmentos de envelope

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize 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âmetros consiste em um ou mais segmentos de envelope, definidos usando a estrutura MP_ENVELOPE_SEGMENT. Esta estrutura contém as seguintes informações:

  • Os horários de início e fim.
  • Os valores inicial e final.
  • O tipo de curva (linear, quadrada, e assim por diante).
  • Sinalizadores opcionais, descritos em breve.

O cliente adiciona segmentos de envelope a um parâmetro chamando o métodoIMediaParams::AddEnvelopee passando uma matriz de estruturas 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 sobre cada segmento de envelope, como um carro dirigindo sobre uma série de colinas. O métodoIMediaParams::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 forma:

  • 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. Pode ser o valor neutro ou o valor final do segmento anterior. O DMO ignora o valStart membro 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 pensar nesses sinalizadores como pegar o ponto inicial do segmento e movê-lo para cima ou para baixo, enquanto o valor final permanece fixo. O segmento vai "esticar" em conformidade.

Parâmetros de mídia