AVStream의 데이터 범위 교집합

데이터 형식은 연결의 일부 측면을 설명하는 단일 매개 변수 집합입니다. 예를 들어 오디오 데이터 형식은 초당 X 샘플 및 샘플당 Y비트에서 특정 형식의 오디오를 지정할 수 있습니다.

데이터 범위는 유효한 매개 변수 시퀀스를 지정합니다. instance 경우 오디오 데이터 범위는 초당 A-B 샘플 및 샘플당 C-D 비트에서 특정 형식의 오디오를 지정할 수 있습니다.

미니드라이버에서는 해당 KSPIN_DESCRIPTOR 구조의 DataRanges 멤버에서 특정 핀에 대해 지원하는 데이터 범위 목록을 제공합니다.

AVStream에서 미니 드라이버는 KSPIN_DESCRIPTOR_EXIntersectHandler 멤버에서 미니드라이버 제공 콜백 루틴에 대한 포인터를 제공하여 자체 데이터 범위 교차 처리기를 제공할 수 있습니다. AVStream이 범위를 교차하도록 하려면 이 멤버를 NULL로 설정합니다. 콜백 루틴을 정의하는 방법에 대한 자세한 내용은 AVStrMiniIntersectHandlerEx 를 참조하세요.

미니드라이버가 교차 처리기를 제공하는 경우 교차를 만들어야 할 때 미니 드라이버는 주 형식, 하위 폼 및 지정자와 일치하는 두 개의 데이터 범위를 받습니다. 또한 데이터 범위의 필수 특성이 일치합니다.

범위가 교차하고 충분한 버퍼 공간이 AVStrMiniIntersectHandlerEx 콜백 루틴의 Data 매개 변수에 제공된 경우 교집합 루틴은 교차에서 형식을 선택하고 Data가 가리키는 버퍼의 호출자에게 반환합니다.

두 데이터 범위가 교차하지 않으면 처리기는 STATUS_NO_MATCH 반환합니다.

미니드라이버에서 AVStrMiniPinSetDataFormat 디스패치를 지정한 경우 AVStream은 이 디스패치를 호출하여 AVStream이 핀에 특정 형식을 설정하고 있음을 미니드라이버에 알릴 수 있습니다. KSPIN_DISPATCH 구조체의 SetDataFormat 멤버에서 AVStrMiniPinSetDataFormat 콜백 루틴에 대한 포인터를 제공합니다. 스트림 클래스의 클라이언트인 미니드라이버에서는 AVStrMiniPinSetDataFormat 대신 SRB_SET_DATA_FORMAT 받습니다.

미니 드라이버는 AVStrMiniPinSetDataFormat에서 STATUS_NO_MATCH 반환하여 제안된 형식을 거부할 수 있습니다.

핀을 만들기 전에 AVStrMiniPinSetDataFormat 에 대한 초기 호출 외에도 미니 드라이버는 핀이 RUN 상태로 전환되기 직전에 두 번째 AVStrMiniPinSetDataFormat 호출을 받을 수 있습니다. AVStream 또는 스트림 클래스 클라이언트가 비디오 캡처 미니드라이버이고 이러한 알림을 수신하는 경우 이 디스패치에는 실제 표면 매개 변수가 포함됩니다. 가능하면 미니드라이버가 이 두 번째 형식 변경에 실패하지 않아야 합니다. 두 번째 디스패치 호출이 발생한다고 가정하지 마세요.

미니 드라이버는 마지막으로 성공한 AVStrMiniPinSetDataFormat 디스패치에 포함된 형식으로 데이터를 캡처해야 합니다.