2014-10-06 2 views
0

DirectShow 필터 용 IMediaSeeking 인터페이스에 대한 설명서를 읽었으며 동일한 의미로 약간 다른 의미를 사용하는 두 가지 방법이 있음을 확인했습니다.DirectShow IsUsingTimeFormat 대 GetTimeFormat

문제는 때 하나가 다른 대를 사용해야합니까?

IsUsingTimeFormat은 여분의 메모리 복사 작업이 필요하지 않지만 그 외에 다른 것을 선호하는 이유가 있습니까?

답변

1

주요 차이점은 원하는 작업입니다.

GetTimeFormat(...)은 사용중인 시간 형식을 전달하는 GUID 구조로 쓰고, 시간 형식을 얻는 데 성공하면 S_OK를 반환합니다.

반면에 IsUsingTimeFormat(...)을 사용하면 매개 변수를 통해 전달하는 GUID 구조가 사용중인 경우 필터를 쿼리하게됩니다.

어떤 GUID를 사용하고 있거나 필터에서 시간 형식의 GUID를 얻으려고하면 어떤 것을 사용 하시겠습니까?

+0

문서에서 알 수 있듯이 약간 다른 방식으로 거의 동일한 작업을 수행하는 두 가지 방법이 포함되어있는 것 같습니다. 숨겨진 이유가 있다면 궁금해서 .. –

1

의 차이는 right there mentioned in the documetnation이다 : 그것은 GUID를 복사 필요로하지 않기 때문에

이 방법은 약간 IMediaSeeking :: GetTimeFormat 방법보다 더 효율적입니다.

이 인터페이스는 20 주년을 축하하려고하며 그 당시에는 불필요한 GUID 복사본 몇 개가 약간의 차이를 만들었습니다 ... 인터페이스에는 서로 복제하는 다른 방법이 있습니다. 처음에는 최고의 디자인이 아니었고 호환성을 유지하기 위해 디자인 된대로 존재해야했습니다.

+0

그럴듯한 것 같습니다. MSDN은 추가 배경 정보를 활용할 수있는 일부 영역에서는 실제로 부족한 것처럼 보입니다. 특히 수십 년 동안 있었던 API의 경우 –