Segmenty obálek

[Funkce přidružená k této stránce DirectShow je starší funkce. Byla nahrazena MediaPlayer, MMFMediaEnginea Audio/Video Capture v Media Foundation. Tyto funkce jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal MediaPlayer, MMFMediaEngine a Audio/Video Capture v Media Foundation místo DirectShow, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]

Křivka parametru se skládá z jednoho nebo více segmentů obálek definovaných pomocí MP_ENVELOPE_SEGMENT struktury. Tato struktura obsahuje následující informace:

  • Počáteční a koncové časy.
  • Počáteční a koncové hodnoty.
  • Typ křivky (lineární, čtvercový atd.).
  • Volitelné příznaky popsané krátce.

Klient přidá do parametru segmenty obálky voláním IMediaParams::AddEnvelope metoda a předání pole MP_ENVELOPE_SEGMENT struktur. Klient by měl před voláním metody seřadit segmenty do vzestupného časového pořadí. Vzhledem k tomu, že DMO zpracovává data, můžete si představit parametr, který cestuje přes jednotlivé segmenty obálky, jako je auto v řadě kopců. Metoda IMediaParams::GetParam vrátí nejnovější hodnotu.

Mezi nimi můžou být mezery mezi dvěma sousedními segmenty. Během mezer zachová parametr předchozí hodnotu následujícím způsobem:

  • Před prvním segmentem je hodnota neutrální hodnotou.
  • Mezi segmenty je hodnota koncovou hodnotou předchozího segmentu.
  • Za posledním segmentem zůstane hodnota na koncové hodnotě daného segmentu.
  • Pokud klient vyprázdní objekt DMO, hodnota se vrátí k neutrální hodnotě.

Segment můžete změnit nastavením některého z následujících příznaků:

  • MPF_ENVLP_BEGIN_CURRENTVAL. DMO používá nejnovější hodnotu parametru jako počáteční hodnotu segmentu. Může to být neutrální hodnota nebo koncová hodnota z předchozího segmentu. Objekt DMO ignoruje valStart člen struktury MP_ENVELOPE_SEGMENT.
  • MPF_ENVLP_BEGIN_NEUTRALVAL. DMO používá neutrální hodnotu parametru jako počáteční hodnotu segmentu. Ignoruje valStart .

Tyto příznaky si můžete představit jako uchopení počátečního bodu segmentu a jeho přesunutí nahoru nebo dolů, zatímco koncová hodnota zůstane pevná. Segment se odpovídajícím způsobem roztáhne.

parametry média