다음을 통해 공유


KS 데이터 형식 및 데이터 범위

KS 핀은 KSDATAFORMAT 및 KSDATARANGE 구조를 사용하여 데이터 형식 및 범위를 지정합니다. 데이터 형식은 데이터 스트림의 단일 특성(예: 16비트 오디오 샘플링 크기)을 지정합니다. 데이터 범위는 여러 형식(예: 16~24비트 오디오 샘플링 범위)을 지정합니다.

미니드라이버에는 제공하는 각 KSPIN_DESCRIPTOR 구조체에 KSDATARANGE 구조체 배열이 포함되어 있습니다. Microsoft에서 제공하는 형식은 ksmedia.h로 열거됩니다.

KSDATARANGE 구조체에는 KSDATAFORMAT 구조체와 동일한 멤버가 있습니다. 그러나 미니드라이버는 KSDATARANGE의 주 형식, 하위 형식 및 지정자 멤버에 대한 와일드카드 값을 지정할 수 있습니다.

미니드라이버에서 이러한 구조체의 확장 버전을 사용하여 미디어별 값을 정의합니다. 오디오 및 비디오 캡처에서 어떻게 작동하는지 알아보려면 오디오 데이터 형식 및 데이터 범위 및스트림 형식 선택을 참조하세요.

클라이언트는 다음 속성을 사용하여 필터에서 지정된 핀 팩터리에 의해 인스턴스화된 핀의 데이터 형식 지원을 쿼리합니다.

  • KSPROPERTY_PIN_DATARANGES. KS 필터는 핀 팩터리에서 인스턴스화된 핀에서 지원하는 모든 데이터 범위를 보고합니다. 여기에는 핀이 지원할 수 있는 모든 데이터 형식 포함됩니다.

  • KSPROPERTY_PIN_CONSTRAINEDDATARANGES. KS 필터는 현재 내부 드라이버 상태를 고려하여 핀 팩터리에서 인스턴스화된 핀에서 지원하는 모든 데이터 범위를 보고합니다.

  • KSPROPERTY_PIN_PROPOSEDATAFORMAT. 클라이언트는 이 속성을 사용하여 핀 팩터리에서 인스턴스화된 핀이 특정 데이터 형식을 지원하는지 쿼리할 수 있습니다.

  • KSPROPERTY_PIN_DATAINTERSECTION. 클라이언트는 이 속성을 사용하여 다양한 데이터 형식을 제공할 수 있습니다.

핀이 인스턴스화되면 사용자 모드 클라이언트는 현재 데이터 형식을 결정하거나 KSPROPSETID_Connection 속성 요청을 통해 데이터 형식 변경을 요청할 수 있습니다. 예를 들어 클라이언트는 KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT 사용하여 핀이 지정된 데이터 형식을 지원하는지 확인합니다. 클라이언트는 KSPROPERTY_CONNECTION_DATAFORMAT 사용하여 데이터 형식을 변경합니다.

KS 미니드라이버 및 클라이언트는 데이터 형식을 동적으로 협상할 수 있습니다. 스트림의 데이터 형식이 변경되면 미니 드라이버는 KSSTREAM_HEADER OptionsFlags 멤버에 KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY 플래그를 지정합니다. 미니 드라이버는 KSDATAFORMAT 구조에 설명된 새 데이터 형식 자체를 해당 데이터 버퍼에 전달합니다.