IAMTimelineObj::SetStartStop 메서드

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

참고

[더 이상 사용되지 않습니다. 이 API는 이후 Windows 릴리스에서 제거될 수 있습니다.]

 

메서드는 SetStartStop 개체의 부모를 기준으로 개체의 시작 및 중지 시간을 설정합니다.

구문

HRESULT SetStartStop(
   REFERENCE_TIME Start,
   REFERENCE_TIME Stop
);

매개 변수

시작

기존 시작 시간을 유지하기 위한 새로운 시작 시간(100나노초 단위 또는 –1)입니다.

중지

기존 중지 시간을 유지하기 위한 새로운 중지 시간(100나노초 단위 또는 –1)입니다.

반환 값

다음 HRESULT 값 중 하나를 반환합니다.

반환 코드 Description
S_OK
성공.
E_INVALIDARG
인수가 잘못되었습니다.
E_NOTIMPL
구현되지 않았습니다.

 

설명

트랙, 컴퍼지션 및 그룹은 이 메서드를 구현하지 않습니다. 이러한 개체의 경우 시작 시간은 항상 0이고 중지 시간은 포함된 개체의 최대 중지 시간입니다.

동일한 트랙 내의 원본 개체에서 겹치는 시간을 설정하지 마세요. 이렇게 하면 정의되지 않은 동작이 발생할 수 있습니다.

원본 개체의 경우 시작 및 중지 시간은 미디어 시작 및 미디어 중지 시간과 독립적입니다. 한 쌍의 값을 변경해도 다른 값은 변경되지 않습니다. 미디어 시작 및 중지 시간을 설정하려면 IAMTimelineSrc::SetMediaTimes 메서드를 호출합니다 . 자세한 내용은 DirectShow Editing Services의 시간을 참조하세요.

프레임 정확도 컷 및 전환을 얻으려면 시작중지 매개 변수를 프레임 경계로 설정합니다. IAMTimelineObj::FixTimes 메서드를 사용하여 시간 값을 가장 가까운 프레임 경계로 변환하거나 다음 함수를 사용하여 프레임 번호에서 참조 시간으로 변환할 수 있습니다.

REFERENCE_TIME inline FrameNumToTime(LONGLONG frame, double fps)
{
    double dt = (frame * 10000000 / fps);
    if (frame >= 0) 
    {
        dt += 0.5;    }
    else
    {
        dt -= 0.5;
    }
    return (REFERENCE_TIME)dt;
}

참고

헤더 파일 Qedit.h는 버전 7 이후의 Direct3D 헤더와 호환되지 않습니다.

 

참고

Qedit.h를 얻으려면 Windows Vista용 Microsoft Windows SDK 업데이트를 다운로드하고 3.0을 .NET Framework. Qedit.h는 Windows 7 및 .NET Framework 3.5 서비스 팩 1용 Microsoft Windows SDK 사용할 수 없습니다.

 

요구 사항

요구 사항
헤더
Qedit.h
라이브러리
Strmiids.lib

추가 정보

IAMTimelineObj 인터페이스

오류 및 성공 코드