DirectShow DirectShow 레퍼런스 인터페이스 IMediaSeeking   [목차열람] [주소복사] [슬롯비우기]
IMediaSeeking 인터페이스
 
Microsoft DirectX 9.0

IMediaSeeking 인터페이스

IMediaSeeking 인터페이스에는, 스트림내의 위치에 시크 하는 메서드와 재생 레이트를 설정하는 메서드가 포함된다. 필터 그래프 매니저는 이 인터페이스를 공개해, 각각의 필터도 똑같이 공개한다. 애플리케이션은 이 인터페이스에 관해서는 필터 그래프 매니저에 조회할 필요가 있다.

필터 그래프 매니저는,IMediaSeeking 호출을 그래프내의 각 렌더링 필터에 배포한다. 렌더링 필터는, 그 호출을 소스 필터에의 업 스트림에 보낸다. 이벤트의 이 순서에 의해 모든 스트림은 동기 된다. 배포되고 싶은 차이인가의 호출이 에러를 돌려주었을 경우, 필터 그래프 매니저는, 배포된 호출의 일부가 성공했을 경우에서도, 최초로 받은 에러값을 돌려준다. 이 예외에는, E_NOTIMPL 가 있다. 필터 그래프 매니저는, 배포된 모든 호출이 E_NOTIMPL 를 돌려주지 않는 이상 E_NOTIMPL 를 돌려주지 않는다.

그래프가 어느 상태 (실행중, 포즈, 정지중)에 있어도, 애플리케이션은 그래프를 시크 할 수 있다. 그래프가 실행중의 경우, 필터 그래프 매니저는 시크 커멘드를 발행하기 전에 그래프를 포즈 한다. 그 후, 그래프를 다시 실행한다. 모든 시크 조작은, 현재의 재생 레이트에는 의존하지 않는다. 시크 조작에 의해, 보류 상태의 미디어 데이터는 그래프로부터 플래시 된다.

타임을 지정하는 모든 IMediaSeeking 인수에 대해, 타임의 단위는 현재의 타임 포맷에 의존한다. 타임 포맷을 설정하려면 ,IMediaSeeking::SetTimeFormat 를 호출한다. 타임 포맷은, uuids.h 로 정의되고 있는 글로벌하게 일의의 식별자 (GUID)이다. 더 자세한 정보는, 「타임 포맷 GUID 」를 참조할것.

IMediaSeeking 인터페이스는,IUnknown 로부터 계승하는 메서드 이외에 이하의 메서드도 공개한다.

메서드 설명
GetCapabilities 스트림의 모든 시크 능력을 얻어온다.
CheckCapabilities 지정한 시크 능력을 스트림이 가지고 있을지 어떨지를 조회한다.
IsFormatSupported 지정한 타임 포맷이 시크 조작으로 지원 되고 있는지를 확인한다.
QueryPreferredFormat 시크 조작의 우선 타임 포맷을 얻어온다.
GetTimeFormat 현재 시크 조작으로 사용되고 있는 타임 포맷을 얻어온다.
IsUsingTimeFormat 시크 조작이 현재 지정한 타임 포맷을 사용하고 있는지를 확인한다.
SetTimeFormat 이후의 시크 조작의 타임 포맷을 설정한다.
GetDuration 스트림의 시간폭을 얻어온다.
GetStopPosition 스트림의 시간폭을 기준으로서 재생이 정지하는 타임을 얻어온다.
GetCurrentPosition 스트림의 합계 시간폭을 기준으로 하는, 현재의 위치를 얻어온다.
ConvertTimeFormat 1 개의 타임 포맷화등별의 타임 포맷으로 변환한다.
SetPositions 현재 위치와 정지 위치를 설정한다.
GetPositions 스트림의 합계 시간폭을 기준으로 하는, 현재의 위치와 정지 위치를 얻어온다.
GetAvailable 시크가 유효한 타임의 범위를 얻어온다.
SetRate 재생 레이트를 설정한다.
GetRate 재생 레이트를 얻어온다.
GetPreroll 시작 위치전에 큐에 들어가는 데이터의 양을 얻어온다.

참조

↑TOP