데이터 단위 확장 사용(Microsoft Media Foundation)
Windows Media 오디오 및 비디오 코덱은 ASF(Advanced Systems Format) 컨테이너와 잘 작동하도록 설계되었습니다. ASF는 WMA(Windows Media Audio) 파일 및 WMV(Windows Media Video) 파일에 사용되는 구조화된 형식입니다. 스트리밍 데이터를 위해 설계된 확장 가능한 형식입니다. ASF 구조체의 특이한 특성 중 하나는 메타데이터를 개별 샘플에 연결하고 해당 데이터를 비트 스트림에 샘플에 포함하는 기능입니다. 이러한 방식으로 저장된 메타데이터의 항목을 데이터 단위 확장 또는 샘플 확장이라고 합니다.
데이터 단위 확장에는 인코더, 디코더 또는 플레이어 애플리케이션에 필요한 정보가 포함될 수 있습니다. Windows Media 9 시리즈 코덱에서 구현되는 대부분의 데이터 단위 확장 형식에는 미디어를 디코딩하고 렌더링하는 애플리케이션을 위한 데이터가 포함되어 있습니다. 예를 들어 원본 데이터에서 SMPTE 시간 코드를 데이터 단위 확장으로 추가하여 유지 관리할 수 있습니다. 그러나 다음 코덱 기능에는 데이터 단위 확장이 필요합니다.
- 강제 키 프레임 삽입
- 인터레이스된 비디오 인코딩
- 코덱에 직접 액세스할 때 데이터 단위 확장을 사용하는 데 어려움이 있는 것은 개체가 확장 데이터를 수신하는 메커니즘입니다. 이 기능은 이 기능을 지원하도록 설계된 버퍼 개체를 사용하여 Windows Media Format SDK의 개체에 의해 수행됩니다. Windows Media Format SDK를 사용하여 데이터 단위 확장이 필요한 코덱 기능을 활성화하는 것이 좋지만 이러한 기능은 독립 실행형 코덱 개체에서 작동하도록 할 수 있습니다.
코덱 개체에 확장 샘플 전달
Windows Media Format SDK는 INSSBuffer 인터페이스를 노출하는 버퍼 개체를 사용합니다. 최신 인터페이스는 INSSBuffer4입니다. 데이터 단위 확장이 있는 코덱 개체에 샘플을 전달하려면 IMediaBuffer 또는 IMFMediaBuffer 인터페이스 및 INSSBuffer 인터페이스를 구현하는 버퍼 개체를 사용해야 합니다. Windows Media Format SDK 또는 Microsoft Media Foundation에서 만든 버퍼 개체를 사용하여 이 작업을 수행하거나 요구 사항을 충족하는 고유한 버퍼 클래스를 만들 수 있습니다. 사용자 고유의 버퍼 클래스를 만들려면 INSSBuffer 인터페이스에 대한 메서드 프로토타입을 준수해야 합니다. 이러한 인터페이스 정의는 Windows Media Format SDK와 함께 설치된 wmsbuffer.h 헤더 파일에서 찾을 수 있습니다.
관련 항목