다음을 통해 공유


봉투 세그먼트

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

매개 변수 곡선은 MP_ENVELOPE_SEGMENT 구조를 사용하여 정의된 하나 이상의 봉투 세그먼트로 구성됩니다. 이 구조체에는 다음 정보가 포함됩니다.

  • 시작 및 종료 시간입니다.
  • 시작 및 끝 값입니다.
  • 곡선 형식(선형, 정사각형 등)입니다.
  • 곧 설명된 선택적 플래그입니다.

클라이언트는 IMediaParams::AddEnvelope 메서드를 호출하고 MP_ENVELOPE_SEGMENT 구조체 배열을 전달하여 매개 변수에 봉투 세그먼트를 추가합니다. 클라이언트는 메서드를 호출하기 전에 세그먼트를 오름차순으로 정렬해야 합니다. DMO가 데이터를 처리할 때 일련의 언덕을 주행하는 자동차와 같이 각 봉투 세그먼트를 이동하는 매개 변수를 상상할 수 있습니다. IMediaParams::GetParam 메서드는 가장 최근 값을 반환합니다.

인접한 두 세그먼트 사이에 간격이 있을 수 있습니다. 간격 동안 매개 변수는 다음과 같이 이전 값을 유지합니다.

  • 첫 번째 세그먼트 이전의 값은 중립 값입니다.
  • 세그먼트 간에 값은 이전 세그먼트의 끝 값입니다.
  • 마지막 세그먼트 이후의 값은 해당 세그먼트의 끝 값으로 유지합니다.
  • 클라이언트가 DMO를 플러시하면 값이 중립 값으로 되돌아갑니다.

다음 플래그 중 하나를 설정하여 세그먼트를 변경할 수 있습니다.

  • MPF_ENVLP_BEGIN_CURRENTVAL. DMO는 매개 변수의 최신 값을 세그먼트의 시작 값으로 사용합니다. 중립 값이거나 이전 세그먼트의 끝 값일 수 있습니다. DMO는 MP_ENVELOPE_SEGMENT 구조체의 valStart 멤버를 무시합니다.
  • MPF_ENVLP_BEGIN_NEUTRALVAL. DMO는 매개 변수의 중립 값을 세그먼트의 시작 값으로 사용합니다. valStart를 무시합니다.

끝 값이 고정된 상태로 유지되는 동안 이러한 플래그는 세그먼트의 시작점을 잡고 위 또는 아래로 이동하는 것으로 생각할 수 있습니다. 세그먼트는 그에 따라 "늘이기"합니다.

미디어 매개 변수