DirectShow DirectShow 레퍼런스 인터페이스 IGraphConfig [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
필터 그래프 매니저는, 그래프를 동적으로 생성 하는 IGraphConfig 를 공개한다. 이 인터페이스를 사용하면 애플리케이션 및 필터로부터, 스트림으로부터의 데이터를 잃지 않고 , 실행 상태에 있는 필터 그래프를 복구성 할 수 있다.
그래프를 동적으로 재생성 하는 가장 직접적인 방법은,IGraphConfig::Reconnect 메서드를 호출하는 방법이다. 그래프를 동적으로 재생성하기 위한 세세한 처리의 대부분은, 메서드측에서 실행한다. 독자적인 기법을 처리 할 필요가 있는 경우를 위해서(때문에),IGraphConfig 는 IGraphConfig::Reconfigure 메서드도 제공한다. 이 메서드는, 필터 그래프를 잠근 데다가, 애플리케이션측의 콜백 함수를 호출해, 그 함수가 그래프를 복구성 한다. 이 메서드에서는, 처리의 대부분을 애플리케이션측에서 실행한다. 더 자세한 정보는, 「동적 그래프 생성」을 참조할것.
필터를 추가 및 삭제하는 처리를 최적화하기 위해서, 필터 그래프는 필터의 캐쉬를 보관 유지한다. Reconnect 메서드의 호출에서는, 그래프로부터 삭제되는 필터를 캐쉬에 추가하도록(듯이) 지정할 수 있다. 또, 필요하게 될 것 같은 필터가 있는 경우는,IGraphConfig::AddFilterToCache 를 호출해 그 필터를 캐쉬에 직접 추가할 수도 있다. IGraphBuilder::Render 메서드,IGraphBuilder::RenderFile 메서드,IGraphBuilder::Connect 메서드는, 캐쉬내의 필터를 우선적으로 사용한다. 또,Reconnect 메서드에서는, 재접속에 캐쉬내의 필터만을 사용하도록(듯이) 지정할 수도 있다. 캐쉬에 보관 유지되고 있는 필터는, 실제로는 그래프의 일부에서는 없기 때문에 주의 해야 한다. 캐쉬내의 필터는, 핀에는 접속되지 않는 상태로 정지하고 있다.
IGraphConfig 인터페이스는,IUnknown 로부터 계승하는 메서드 이외에 이하의 메서드도 공개한다.
메서드 | 설명 |
Reconnect | 2 개의 핀의 사이의 동적인 재접속을 실행한다. |
Reconfigure | 필터 그래프를 잠그어, 애플리케이션 또는 필터의 콜백 함수를 호출해, 동적인 복구성을 실행한다. |
AddFilterToCache | 필터 캐쉬에 필터를 추가한다. |
RemoveFilterFromCache | 필터 캐쉬로부터 필터를 삭제한다. |
EnumCacheFilter | 필터 캐쉬내의 필터를 열거한다. |
GetStartTime | 필터 그래프가 마지막에 실행 상태에 바뀌었을 때에 사용된 기준 타임을 얻어온다. |
PushThroughData | 지정된 핀에 필터 그래프를 통해서 데이터를 인도한다. |
SetFilterFlags | 필터의 구성 정보를 설정한다. |
GetFilterFlags | 필터의 구성 정보를 얻어온다. |
RemoveFilterEx | 필터 그래프로부터 필터를 삭제한다. |