Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[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.]
Metoda IMediaParamInfo::GetParamInfo zwraca strukturę MP_PARAMINFO opisujący parametr. Ta struktura zawiera następujące informacje:
- Element członkowski mpType wskazuje typ danych wartości parametru. W celu zwiększenia wydajności wszystkie parametry są implementowane jako 32-bitowe wartości zmiennoprzecinkowe. Wyliczenie MP_TYPE określa, czy należy interpretować wartość jako liczbę całkowitą, wartość zmiennoprzecinkową, wartość logiczną lub wyliczenie (seria całkowita).
- Element mopCaps wskazuje krzywe obsługiwane przez ten parametr. Jeśli typ danych to Wartość logiczna lub wyliczenie, jedyną krzywą obsługiwaną przez parametr jest "Jump".
- Składowe mpdMinValue i mpdMaxValue definiują minimalne i maksymalne wartości dla tego parametru. Wszystkie krzywe dla tego parametru muszą należeć do tego zakresu.
- Element członkowski mpdNeutralValue jest wartością domyślną parametru.
- Element członkowski szLabel jest nazwą parametru, a element członkowski szUnitText jest nazwą jednostki miary parametru. Przykłady mogą obejmować wartości "Volume" i "Decibels" lub "Frequency" i "kHz". Oba ciągi są angielskie i nigdy nie są zlokalizowane. Funkcja DMO może udostępniać zlokalizowane wersje za pomocą metody IMediaParamInfo::GetParamText.
Informacje dotyczące każdego parametru pozostają stałe przez cały okres istnienia dmo. W związku z tym klient może wykonywać zapytania dotyczące tych informacji raz, a następnie buforować je.
formaty czasu
Klient musi sygnaturę czasową danych wejściowych, aby funkcja DMO mogła obliczyć odpowiednie wartości parametrów. Domyślnie sygnatury czasowe reprezentują jednostki o wartości 100 nanosekund, nazywane również czasu odniesienia. Ta jednostka czasowa nie jest jednak wygodna dla każdej aplikacji, więc DMO ma możliwość obsługi innych formatów czasu. Formaty czasu są identyfikowane przez identyfikator GUID.
| identyfikator GUID | Opis |
|---|---|
| GUID_TIME_REFERENCE | Czas odwołania |
| GUID_TIME_MUSIC | Liczba części na kwartał (PPQN) |
| GUID_TIME_SAMPLES | Przykłady na sekundę |
Strony trzecie są zachęcane do definiowania własnych formatów czasu zgodnie z potrzebami. Jednak wszystkie obiekty DMO muszą obsługiwać czas odniesienia. Zapewnia to standardowy plan bazowy, którego mogą używać wszyscy. Aby określić, ile formatów czasu obsługuje dmO, wywołaj metodę IMediaParamInfo::GetNumTimeFormats. Aby wyliczyć obsługiwane formaty, wywołaj metodę IMediaParamInfo::GetSupportedTimeFormat.
Aby ustawić format czasu, wywołaj IMediaParams::SetTimeFormat. Ta metoda określa identyfikator GUID formatu czasu i dane czasu , czyli liczbę jednostek na znacznik zegara. Jeśli na przykład format czasu to próbki na sekundę, a dane czasu to 32, wartość sygnatury czasowej 10 odpowiada 320 próbkom.
Tematy pokrewne