다음을 통해 공유


코덱 DMO 구성

이 항목에서는 코덱 DMO를 구성하는 프로세스에 대해 설명합니다. 각 코덱에는 특정 프로시저가 있지만 모든 코덱에 공통된 정보는 여기에 설명되어 있습니다.

DMO 입력 및 출력 구성

모든 DMO는 특정 입력 및 출력 형식을 지원합니다. 입력에 대해 IMediaObject::GetInputType 을 호출하고 출력에 대해 IMediaObject::GetOutputType 을 호출하여 입력 및 출력에 대해 지원되는 형식을 검색할 수 있습니다. 두 메서드를 반복적으로 호출하고 각 호출을 통해 형식 인덱스를 증가시켜 지원되는 형식을 열거할 수 있습니다. 인덱스가 지원되는 최종 형식의 인덱스를 초과하면 호출은 DMO_E_NO_MORE_ITEMS 반환합니다.

비디오 코덱의 경우 지정된 미디어 하위 형식에 대해 하나의 출력 형식 또는 입력 형식만 열거됩니다. 오디오 코덱의 경우 지원되는 각 유형이 열거됩니다. 개별 코덱에 지원되는 형식에 대한 자세한 내용은 오디오 작업비디오 작업을 참조하세요.

입력 및 출력 스트림에 대한 미디어 형식을 구성한 후 IMediaObject::SetInputTypeIMediaObject::SetOutputType 을 각각 호출하여 설정합니다. 지정된 형식이 잘못된 경우 두 메서드 모두 DMO_E_TYPE_NOT_ACCEPTED 반환합니다.

인코딩을 위한 코덱 DMO 구성

모든 Windows Media 오디오 및 비디오 코덱은 다양한 인코딩 기능을 지원합니다. 이러한 기능은 일반적으로 IPropertyBag 인터페이스의 메서드를 사용하여 DMO에서 속성을 설정하여 구성됩니다. 일부 속성은 특수 코덱 인터페이스를 사용하여 구성됩니다. 이러한 인터페이스는 코덱 개체 섹션의 각 코덱에 대해 나열됩니다.

인코딩 DMO를 구성하기 위한 일반적인 작업 순서는 다음과 같습니다.

  1. IPropertyBag의 메서드를 사용하여 원하는 대로 코덱 기능을 구성합니다.
  2. 필요한 경우 코덱 DMO 인터페이스를 사용하여 추가 기능을 구성합니다.
  3. 입력 및 출력 형식을 구성합니다. 형식을 구성해야 하는 순서는 개별 코덱에 따라 다릅니다. 자세한 내용은 오디오 작업비디오 작업을 참조하세요.

디코딩을 위한 코덱 DMO 구성

디코딩은 지원되는 디코더 기능이 적기 때문에 인코딩보다 간단합니다.

디코딩 DMO를 구성하기 위한 일반적인 작업 순서는 다음과 같습니다.

  1. IPropertyBag의 메서드를 사용하여 원하는 대로 디코더 기능을 구성합니다.
  2. 입력 형식을 인코더 출력에 사용되는 형식으로 설정합니다.
  3. 출력 형식을 구성합니다. 지원되는 출력 형식은 입력에 따라 다릅니다.

참고

인코더 출력에 사용된 것과 동일한 미디어 형식을 디코더 입력에 사용하는 것이 중요합니다. 이는 Windows Media 오디오 및 비디오 코덱이 추가 데이터와 함께 미디어 형식을 사용하기 때문입니다. 이 데이터는 DMO_MEDIA_TYPE 구조체의 pbFormat 멤버(일반적으로 VIDEOINFOHEADER 또는 WAVEFORMATEX)가 가리키는 구조체에 추가됩니다. 일부 형식의 경우 추가 데이터는 열거형 인코더 출력 형식의 일부입니다. 다른 형식에서는 이 데이터를 수동으로 추가해야 합니다. 확장 형식 데이터가 없으면 압축된 콘텐츠를 디코딩할 수 없습니다.

 

코덱 DMO 작업