다음을 통해 공유


출력 형식 할당

일부 코덱은 디지털 미디어 데이터를 압축되지 않은 여러 형식으로 압축 해제할 수 있습니다. 비동기 판독기 또는 동기 판독기를 사용하여 특정 출력에 대해 지원되는 모든 형식을 찾을 수 있습니다.

출력에 사용 가능한 모든 형식을 검사하려면 다음 단계를 수행합니다. 이러한 프로시저는 비동기 판독기와 동기 판독기 모두에 대해 동일합니다. 인터페이스 이름이 다른 경우 동기 판독기 메서드는 비동기 판독기의 메서드 다음에 괄호로 나열됩니다.

  1. 판독기 개체를 만들고 읽을 파일을 로드합니다. 자세한 내용은 읽기 권한자 만들기 및 파일 열기 (또는 동기 판독기 만들기 및 파일 열기)를 참조하세요.

  2. 사용 가능한 형식을 찾으려는 출력을 결정합니다. 사용할 출력을 아직 모르는 경우 출력 번호를 식별하려면의 절차를 사용하여 파일의 출력을 식별할 수 있습니다.

  3. IWMReader::GetOutputFormatCount(또는 IWMSyncReader::GetOutputFormatCount)를 호출하여 원하는 출력에 사용할 수 있는 총 형식 수를 검색합니다.

  4. 사용 가능한 형식을 한 번에 하나씩 반복하여 각각에 대해 다음 단계를 수행합니다.

    • IWMReader::GetOutputFormat(또는 IWMSyncReader::GetOutputFormat)을 호출하여 현재 출력 형식에 대한 IWMOutputMediaProps 인터페이스를 검색합니다.

    • IWMMediaProps::GetMediaType을 두 차례 호출하여 출력 형식에 대한 WM_MEDIA_TYPE 구조를 검색합니다. 구조체의 크기를 가져오는 첫 번째 호출을 한 다음, 메모리를 할당하고 두 번째 호출에서 할당된 메모리에 포인터를 전달합니다.

    • 출력 형식의 미디어 하위 형식을 WM_MEDIA_TYPE.subtype으로 찾습니다.

    • 비디오의 경우 현재 하위 형식이 출력에 사용할 형식인 경우 루프를 중단합니다. 그렇지 않으면 다음 반복으로 이동합니다.

      오디오의 경우 WAVEFORMATEX 구조의 값을 요구 사항에 검사 합니다. WM_MEDIA_TYPE.pbFormat 은 오디오 출력에 대한 WAVEFORMATEX 구조를 가리킵니다.

  5. 원하는 출력을 찾았으면 IWMReader::SetOutputProps(또는 IWMSyncReader::SetOutputProps)를 호출하여 판독기에서 사용하도록 설정합니다. 루프의 첫 번째 단계에서 가져온 IWMOutputMediaProps 인터페이스에 대한 포인터를 전달해야 합니다.

IWMMediaProps 인터페이스

IWMOutputMediaProps 인터페이스

IWMReader 인터페이스

IWMSyncReader 인터페이스

출력 작업