다음을 통해 공유


데이터 단위 확장 구성

ASF 파일에 기록된 샘플에는 미디어 샘플 자체 외에 추가 정보가 포함될 수 있습니다. 이 정보는 데이터 단위 확장을 사용하여 포함됩니다. 데이터 단위 확장에 대한 자세한 내용은 데이터 단위 확장을 참조하세요.

데이터 단위 확장을 사용하려면 프로필에서 스트림을 구성하여 허용해야 합니다. 스트림에 대한 데이터 단위 확장을 구성하려면 다음 단계를 수행합니다.

  1. IWMStreamConfigQueryInterface 메서드를 호출하여 IWMStreamConfig2 인터페이스에 대한 포인터를 가져옵니다.
  2. IWMStreamConfig2::AddDataUnitExtension을 호출하여 스트림에 대한 데이터 단위 확장 형식을 등록합니다.

IWMStreamConfig2::GetDataUnitExtensionCount를 호출하여 등록된 데이터 단위 확장 형식의 수를 검색하여 스트림에 대해 현재 등록된 모든 데이터 단위 확장 유형을 검사할 수 있습니다. 그런 다음 각각에 대해 IWMStreamConfig2::GetDataUnitExtension 호출을 사용하여 모든 형식을 반복할 수 있습니다.

스트림에 대해 구성된 경우 데이터 단위 확장에 크기가 할당됩니다. 많은 데이터 단위 확장 시스템은 일정한 크기(일반적으로 구조)인 데이터를 사용합니다. 그러나 크기를 0xFFFF 설정하여 데이터 단위 확장을 가변 크기로 구성할 수도 있습니다. 인코딩 시간에 할당된 각 데이터 단위 확장은 1바이트에서 65534바이트 사이의 모든 크기일 수 있습니다. 가변 크기 데이터 단위 확장은 동적 데이터 단위 확장이라고도 합니다.

동적 데이터 단위 확장을 사용하면 필요에 따라 확장 데이터를 연결할 수 있다는 장점이 있습니다. 집합 크기로 데이터 단위 확장을 정의하는 경우 일부 샘플에 대한 데이터가 없더라도 스트림의 모든 샘플에는 해당 크기의 확장 데이터가 포함되어야 합니다. 동적 데이터 단위 확장을 사용하면 일부 샘플에서 데이터 단위 확장을 생략하여 공간을 절약하고 대역폭 요구 사항을 줄일 수 있습니다. 그러나 데이터 단위 확장의 크기가 가변적인 경우 읽기 개체는 정적 크기에 대해 수신된 확장 데이터를 확인할 수 없습니다. 수신하는 확장 데이터가 유효하고 비트 스트림의 악의적인 왜곡이 아닌지 확인해야 합니다.

INSSBuffer3::SetProperty 메서드를 사용하여 샘플에서 개별 데이터 단위 확장을 설정해야 합니다. 자세한 내용은 데이터 단위 확장 설정을 참조하세요.

스트림 구성