다음을 통해 공유


새 ASF 파일의 ContentInfo 개체 초기화

MFCreateASFContentInfo 함수를 호출하여 빈 ContentInfo 개체를 만든 후 애플리케이션은 IMFASFContentInfo::SetProfile 호출하여 인코딩 프로필을 제공해야 합니다. 프로필을 만드는 방법에 대한 자세한 내용은 ASF 프로필 만들기참조하세요.

프로필에서 정보를 읽기 전에 SetProfile 메서드는 스트림 식별자 또는 미디어 유형을 확인하여 지정된 프로필 개체의 유효성을 검사해야 합니다. 프로필이 유효성 검사를 통과하면 파일 속성 개체, Stream 비트 전송률 속성 개체, Stream 속성 개체 및 상호 제외 개체와 같은 다양한 헤더 개체가 생성됩니다.

SetProfile 사전 등록 값과 같은 특정 속성에 대한 권장 값을 계산하고 설정합니다. 아직 설정되지 않은 경우 권장되는 사전 등록 값(밀리초)은 프로필의 스트림에 대해 지정된 누수 버킷의 최대 버퍼 창에 따라 달라집니다. 마찬가지로 최소 및 최대 데이터 패킷 크기도 설정됩니다. 권장 값은 특성을 통해 프로필에 설정된 패킷 크기를 재정의할 수 있습니다.

파일이 만들어지는 중이므로 파일 속성 개체의 Flags 필드로 표시되는 브로드캐스트 형식으로 분류됩니다. 데이터 패킷 수, 재생 기간 및 전송 기간과 같은 알 수 없는 특정 값은 0으로 설정됩니다. 이러한 값은 MF_PD_ASF_xxx 특성으로 표시되며 파일 만들기가 완료된 후 애플리케이션에서 업데이트해야 합니다.

지정한 프로필 개체는 ContentInfo 개체와 연결된 기존 프로필을 바꾸고, 참조된 헤더 개체를 제거하고, 사전 등록 및 데이터 패킷 크기와 같은 전역 파일 속성을 다시 설정합니다.

SetProfile 메서드는 ASF 데이터 개체를 나타내는 데이터 개체도 만듭니다. 데이터 패킷에 대한 정보가 포함된 ContentInfo 개체를 다시 사용하는 경우 SetProfile 실패하고 기존 ASF 데이터 개체와 이미 연결되어 있음을 나타내는 MF_E_ALREADY_INITIALIZED 오류가 반환됩니다. 기본적으로 새 ContentInfo 개체의 경우 데이터 패킷 수는 0으로 설정되고 데이터 개체 크기는 50바이트로 설정됩니다. 멀티플렉서에서 데이터 패킷을 생성하는 경우 멀티플렉서는 데이터 패킷 수와 같은 새 값을 반영하도록 ContentInfo 개체를 업데이트합니다. 데이터 패킷 생성에 대한 자세한 내용은 새 ASF 데이터 패킷 생성참조하세요.

모든 헤더 개체를 최종 ASF 헤더 개체에 추가한 후에는 IMFASFContentInfo::GetHeaderSize호출하여 총 헤더 크기를 검색할 수 있습니다. 이 크기에는 초기 데이터 개체 크기가 포함됩니다.

ContentInfo 개체에서 속성 설정

새 파일 대한 ASF 헤더 개체 작성