코덱 DMO 구성
이 항목에서는 코덱 DMO를 구성하는 프로세스에 대해 설명합니다. 각 코덱에는 특정 프로시저가 있지만 모든 코덱에 공통된 정보는 여기에 설명되어 있습니다.
DMO 입력 및 출력 구성
모든 DMO는 특정 입력 및 출력 형식을 지원합니다. 입력에 대해 IMediaObject::GetInputType 을 호출하고 출력에 대해 IMediaObject::GetOutputType 을 호출하여 입력 및 출력에 대해 지원되는 형식을 검색할 수 있습니다. 두 메서드를 반복적으로 호출하고 각 호출을 통해 형식 인덱스를 증가시켜 지원되는 형식을 열거할 수 있습니다. 인덱스가 지원되는 최종 형식의 인덱스를 초과하면 호출은 DMO_E_NO_MORE_ITEMS 반환합니다.
비디오 코덱의 경우 지정된 미디어 하위 형식에 대해 하나의 출력 형식 또는 입력 형식만 열거됩니다. 오디오 코덱의 경우 지원되는 각 유형이 열거됩니다. 개별 코덱에 지원되는 형식에 대한 자세한 내용은 오디오 작업 및 비디오 작업을 참조하세요.
입력 및 출력 스트림에 대한 미디어 형식을 구성한 후 IMediaObject::SetInputType 및 IMediaObject::SetOutputType 을 각각 호출하여 설정합니다. 지정된 형식이 잘못된 경우 두 메서드 모두 DMO_E_TYPE_NOT_ACCEPTED 반환합니다.
인코딩을 위한 코덱 DMO 구성
모든 Windows Media 오디오 및 비디오 코덱은 다양한 인코딩 기능을 지원합니다. 이러한 기능은 일반적으로 IPropertyBag 인터페이스의 메서드를 사용하여 DMO에서 속성을 설정하여 구성됩니다. 일부 속성은 특수 코덱 인터페이스를 사용하여 구성됩니다. 이러한 인터페이스는 코덱 개체 섹션의 각 코덱에 대해 나열됩니다.
인코딩 DMO를 구성하기 위한 일반적인 작업 순서는 다음과 같습니다.
- IPropertyBag의 메서드를 사용하여 원하는 대로 코덱 기능을 구성합니다.
- 필요한 경우 코덱 DMO 인터페이스를 사용하여 추가 기능을 구성합니다.
- 입력 및 출력 형식을 구성합니다. 형식을 구성해야 하는 순서는 개별 코덱에 따라 다릅니다. 자세한 내용은 오디오 작업 및 비디오 작업을 참조하세요.
디코딩을 위한 코덱 DMO 구성
디코딩은 지원되는 디코더 기능이 적기 때문에 인코딩보다 간단합니다.
디코딩 DMO를 구성하기 위한 일반적인 작업 순서는 다음과 같습니다.
- IPropertyBag의 메서드를 사용하여 원하는 대로 디코더 기능을 구성합니다.
- 입력 형식을 인코더 출력에 사용되는 형식으로 설정합니다.
- 출력 형식을 구성합니다. 지원되는 출력 형식은 입력에 따라 다릅니다.
참고
인코더 출력에 사용된 것과 동일한 미디어 형식을 디코더 입력에 사용하는 것이 중요합니다. 이는 Windows Media 오디오 및 비디오 코덱이 추가 데이터와 함께 미디어 형식을 사용하기 때문입니다. 이 데이터는 DMO_MEDIA_TYPE 구조체의 pbFormat 멤버(일반적으로 VIDEOINFOHEADER 또는 WAVEFORMATEX)가 가리키는 구조체에 추가됩니다. 일부 형식의 경우 추가 데이터는 열거형 인코더 출력 형식의 일부입니다. 다른 형식에서는 이 데이터를 수동으로 추가해야 합니다. 확장 형식 데이터가 없으면 압축된 콘텐츠를 디코딩할 수 없습니다.
관련 항목