Partager via


Segments d’enveloppe

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Une courbe de paramètre se compose d’un ou plusieurs segments d’enveloppe, définis à l’aide de la structure MP_ENVELOPE_SEGMENT . Cette structure contient les informations suivantes :

  • Heures de début et de fin.
  • Valeurs de début et de fin.
  • Type de courbe (linéaire, carré, etc.).
  • Indicateurs facultatifs, décrits sous peu.

Le client ajoute des segments d’enveloppe à un paramètre en appelant la méthode IMediaParams::AddEnvelope et en transmettant un tableau de structures MP_ENVELOPE_SEGMENT . Le client doit trier les segments dans l’ordre temporel croissant avant d’appeler la méthode . À mesure que le DMO traite les données, vous pouvez imaginer le paramètre se déplaçant sur chaque segment d’enveloppe, comme une voiture conduisant sur une série de collines. La méthode IMediaParams::GetParam retourne la valeur la plus récente.

Deux segments adjacents peuvent avoir un espace entre eux. Pendant les intervalles, le paramètre conserve sa valeur précédente, comme suit :

  • Avant le premier segment, la valeur est la valeur neutre.
  • Entre les segments, la valeur est la valeur de fin du segment précédent.
  • Après le dernier segment, la valeur reste à la valeur de fin de ce segment.
  • Si le client vide le DMO, la valeur revient à la valeur neutre.

Vous pouvez modifier un segment en définissant l’un des indicateurs suivants :

  • MPF_ENVLP_BEGIN_CURRENTVAL. Le DMO utilise la valeur la plus récente du paramètre comme valeur de départ pour le segment. Il peut s’agir de la valeur neutre ou de la valeur de fin du segment précédent. Le DMO ignore le membre valStart de la structure MP_ENVELOPE_SEGMENT .
  • MPF_ENVLP_BEGIN_NEUTRALVAL. Le DMO utilise la valeur neutre du paramètre comme valeur de départ pour le segment. Il ignore valStart.

Vous pouvez considérer ces indicateurs comme saisir le point de départ du segment et le déplacer vers le haut ou vers le bas, tandis que la valeur de fin reste fixe. Le segment « s’étire » en conséquence.

Paramètres multimédias