Udostępnij przez


Formaty danych KS i zakresy danych

Wyprowadzenia KS określają formaty danych i zakresy przy użyciu struktur KSDATAFORMAT i KSDATARANGE. Format danych określa pojedynczy atrybut strumienia danych, na przykład rozmiar próbkowania audio 16 bitów. Zakres danych określa wiele formatów, na przykład zakres próbkowania audio 16-24 bitów.

Minidriver zawiera tablicę struktur KSDATARANGE w każdej strukturze KSPIN_DESCRIPTOR, którą udostępnia. Formaty dostarczane przez firmę Microsoft są wyliczane w pliku ksmedia.h.

Struktura KSDATARANGE ma takie same elementy jak struktura KSDATAFORMAT; jednak minidriver może określać wartości wieloznaczników dla członków formatów głównych, podformatów i specyfikatorów KSDATARANGE.

Minidrivery używają rozszerzonych wersji tych struktur do definiowania wartości specyficznych dla nośnika. Aby dowiedzieć się, jak to działa w przechwytywaniu audio i wideo, zobacz: Formaty danych audio i zakresy danych oraz Wybieranie formatu strumienia.

Klienci używają następujących właściwości do wykonywania zapytań dotyczących obsługi formatów danych dla numerów PIN, które są tworzone przez daną fabrykę numerów PIN w filtrze:

  • KSPROPERTY_PIN_DATARANGES. Filtr KS zgłasza wszystkie zakresy danych obsługiwane przez wyprowadzenia utworzone przez fabrykę pinów. Obejmuje to każdy format danych, który pin może kiedykolwiek obsługiwać.

  • KSPROPERTY_PIN_CONSTRAINEDDATARANGES. Filtr KS zgłasza wszystkie zakresy danych obsługiwane przez wyprowadzenia utworzone przez fabrykę wyprowadzeń, biorąc pod uwagę bieżący wewnętrzny stan sterownika.

  • KSPROPERTY_PIN_PROPOSEDATAFORMAT. Klienci mogą używać tej właściwości do sprawdzania, czy piny utworzone przez fabrykę pinów obsługują określony format danych.

  • KSPROPERTY_PIN_DATAINTERSECTION. Klienci mogą używać tej właściwości do oferowania szeregu formatów danych.

Po utworzeniu wystąpienia pinu, klient trybu użytkownika może określić bieżący format danych lub zażądać zmiany formatu danych za pomocą żądań właściwości KSPROPSETID_Connection. Na przykład klient używa KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT, aby określić, czy pin obsługuje dany format danych. Klient używa KSPROPERTY_CONNECTION_DATAFORMAT do zmiany formatu danych.

Minidrivery KS i klienci mogą dynamicznie negocjować formaty danych. Gdy format danych strumienia zmieni się, minidriver określa flagę KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY w elemencie OptionsFlags elementu członkowskiego KSSTREAM_HEADER. Minidriver przekazuje nowy format danych, opisany w strukturze KSDATAFORMAT, w odpowiednim buforze danych.