Udostępnij za pośrednictwem


Segmenty kopert

[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Krzywa parametrów składa się z co najmniej jednego segmentu koperty zdefiniowanego przy użyciu struktury MP_ENVELOPE_SEGMENT. Ta struktura zawiera następujące informacje:

  • Czasy rozpoczęcia i zakończenia.
  • Wartości początkowe i końcowe.
  • Typ krzywej (liniowy, kwadratowy itd.).
  • Opcjonalne flagi, opisane wkrótce.

Klient dodaje segmenty kopert do parametru, wywołując IMediaParams::AddEnvelope metodę i przekazując tablicę struktur MP_ENVELOPE_SEGMENT. Klient powinien sortować segmenty w kolejności rosnącej czasu przed wywołaniem metody . Ponieważ DMO przetwarza dane, można sobie wyobrazić parametr podróżujący po każdym segmencie koperty, jak samochód jeżdżąc po serii wzgórz. Metoda IMediaParams::GetParam zwraca najnowszą wartość.

Dwie sąsiadujące segmenty mogą mieć między sobą lukę. Podczas przerw parametr zachowuje poprzednią wartość w następujący sposób:

  • Przed pierwszym segmentem wartość jest wartością neutralną.
  • Między segmentami wartość jest końcową wartością poprzedniego segmentu.
  • Po ostatnim segmencie wartość pozostaje na wartości końcowej tego segmentu.
  • Jeśli klient opróżni funkcję DMO, wartość zostanie przywrócona do wartości neutralnej.

Segment można zmienić, ustawiając jedną z następujących flag:

  • MPF_ENVLP_BEGIN_CURRENTVAL. Funkcja DMO używa najnowszej wartości parametru jako wartości początkowej dla segmentu. Może to być wartość neutralna lub wartość końcowa z poprzedniego segmentu. Obiekt DMO ignoruje element valStart struktury MP_ENVELOPE_SEGMENT.
  • MPF_ENVLP_BEGIN_NEUTRALVAL. Funkcja DMO używa neutralnej wartości parametru jako wartości początkowej dla segmentu. Ignoruje valStart.

Te flagi można traktować jako chwytanie punktu początkowego segmentu i przenoszenie go w górę lub w dół, podczas gdy wartość końcowa pozostaje stała. Segment będzie "rozciągnąć" odpowiednio.

parametry nośnika