다음을 통해 공유


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

KS 핀은 KSDATAFORMATKSDATARANGE 구조를 사용하여 데이터 형식 및 범위를 지정합니다. 데이터 형식은 데이터 스트림의 단일 특성(예: 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 구조에 설명된 새 데이터 형식 자체를 해당 데이터 버퍼에 전달합니다.