Sequencer 원본 정보

시퀀서 원본을 사용하면 애플리케이션이 원본 간에 원활한 전환을 통해 미디어 소스 컬렉션을 순차적으로 재생할 수 있습니다. 시퀀서 원본은 다음 시나리오에 사용할 수 있습니다.

  • 한 미디어 원본에서 다음 미디어 원본으로 원활하게 전환하는 재생 목록을 만듭니다.
  • 여러 원본에서 스트림을 동시에 재생합니다. 예를 들어 한 파일의 오디오를 다른 파일의 비디오와 함께 재생합니다.
  • 연속 재생 목록 항목에서 다른 미디어 원본의 스트림 간에 전환합니다. 예를 들어 재생 목록에는 동일한 비디오 원본을 공유하는 항목이 있을 수 있지만 각 항목에는 다른 오디오 원본이 포함될 수 있습니다.

재생 목록의 각 요소에 대해 애플리케이션은 별도의 토폴로지를 만듭니다. 이러한 토폴로지의 미디어 원본을 시퀀서 원본과 구분하기 위해 네이티브 소스라고 합니다. 재생하는 동안 토폴로지의 전체 시퀀스를 프레젠테이션이라고 하며 시퀀스 내의 각 토폴로지를 세그먼트라고 합니다.

재생은 재생, 일시 중지 및 중지와 같은 전송 컨트롤을 제공하는 미디어 세션에 의해 제어됩니다. 또한 미디어 세션은 프레젠테이션 시간을 관리하고 애플리케이션에 이벤트를 보냅니다. (시퀀서 원본의 이벤트는 미디어 세션을 통해 애플리케이션으로 전달됩니다.)

재생 목록을 만들기 위해 애플리케이션은 하나 이상의 재생 토폴로지를 만들고 원하는 재생 순서로 시퀀서 원본에 큐에 넣습니다. 내부적으로 시퀀서 소스는 원본 노드가 네이티브 소스 대신 시퀀서 원본을 가리키도록 토폴로지를 수정합니다. 애플리케이션은 원래 토폴로지 대신 수정된 토폴로지들을 미디어 세션으로 보냅니다. 이를 통해 시퀀서 소스는 네이티브 원본을 집계하고 미디어 세션과 통신할 수 있습니다.

세그먼트 간의 원활한 전환을 달성하기 위해 시퀀서 소스는 각 세그먼트를 미리 등록합니다. 한 세그먼트가 재생 중이고 다음 세그먼트를 재생하기 전에 시퀀서 소스는 프레젠테이션 설명자가 포함된 MENewPresentation 이벤트를 실행합니다. 애플리케이션은 이 프레젠테이션 설명자를 사용하여 프레젠테이션의 다음 세그먼트에 대한 토폴로지를 가져와 미디어 세션에서 토폴로지를 큐에 대기합니다.

다음 그림에서는 시퀀서 원본을 통한 재생 목록 항목의 데이터 흐름을 보여 줍니다. 애플리케이션은 원본 확인자를 사용하여 네이티브 원본을 만들고, 각 세그먼트에 대한 토폴로지를 빌드하고, 시퀀서 원본에서 토폴로지를 큐에 대기합니다.

imfmediasession, imfsequencersource 및 imfmediasource로 이어지는 재생 목록 세그먼트의 데이터 흐름을 보여 주는 다이어그램

재생 목록을 만드는 방법

토폴로지

Sequencer 원본 사용

Sequencer 원본