_MFT_OUTPUT_STREAM_INFO_FLAGS 열거형(mftransform.h)

MFT(Media Foundation 변환)의 출력 스트림에 대해 설명합니다.

Syntax

typedef enum _MFT_OUTPUT_STREAM_INFO_FLAGS {
  MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x1,
  MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x2,
  MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 0x4,
  MFT_OUTPUT_STREAM_DISCARDABLE = 0x8,
  MFT_OUTPUT_STREAM_OPTIONAL = 0x10,
  MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 0x100,
  MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 0x200,
  MFT_OUTPUT_STREAM_LAZY_READ = 0x400,
  MFT_OUTPUT_STREAM_REMOVABLE = 0x800
} ;

상수

 
MFT_OUTPUT_STREAM_WHOLE_SAMPLES
값: 0x1
MFT의 출력 데이터의 각 미디어 샘플(IMFSample 인터페이스)에는 완전하고 끊어지지 않은 데이터 단위가 포함되어 있습니다. 데이터 단위의 정의는 미디어 유형에 따라 달라집니다. 압축되지 않은 비디오의 경우 비디오 프레임; 압축된 데이터, 압축된 패킷의 경우 압축되지 않은 오디오의 경우 단일 오디오 프레임입니다.

압축되지 않은 오디오 형식의 경우 이 플래그는 항상 암시됩니다. 플래그를 설정하는 것은 유효하지만 필수는 아닙니다. 압축되지 않은 오디오 프레임은 두 개 이상의 미디어 샘플에 걸쳐서는 안 됩니다.
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER
값: 0x2
각 출력 샘플에는 MFT_OUTPUT_STREAM_WHOLE_SAMPLES 플래그에 정의된 대로 정확히 하나의 데이터 단위가 포함됩니다.

이 플래그가 있는 경우 MFT_OUTPUT_STREAM_WHOLE_SAMPLES 플래그도 있어야 합니다.

압축되지 않은 오디오를 출력하는 MFT는 이 플래그를 설정하면 안 됩니다. 효율성을 위해 한 번에 둘 이상의 오디오 프레임을 출력해야 합니다.
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE
값: 0x4
모든 출력 샘플의 크기는 동일합니다.
MFT_OUTPUT_STREAM_DISCARDABLE
값: 0x8
MFT는 클라이언트에서 요청하는 경우 이 출력 스트림의 출력 데이터를 삭제할 수 있습니다. 출력을 취소하려면 IMFTransform::P rocessOutput 메서드에서 MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER 플래그를 설정합니다.
MFT_OUTPUT_STREAM_OPTIONAL
값: 0x10
이 출력 스트림은 선택 사항입니다. 클라이언트는 미디어 형식을 설정하지 않거나 NULL 미디어 형식을 설정하여 스트림을 선택 취소할 수 있습니다. 선택적 스트림이 선택 취소되면 출력 데이터가 생성되지 않습니다.
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES
값: 0x100
MFT는 내부적으로 할당하거나 입력 샘플에서 직접 작동하여 이 스트림에 대한 출력 샘플을 제공합니다. MFT는 이 스트림에 대해 클라이언트에서 제공하는 출력 샘플을 사용할 수 없습니다.

이 플래그가 설정되지 않은 경우 MFT는 클라이언트가 올바른 버퍼 크기를 할당할 수 있도록 MFT_OUTPUT_STREAM_INFO 구조에서 cbSize를 0이 아닌 값으로 설정해야 합니다. 자세한 내용은 IMFTransform::GetOutputStreamInfo를 참조하세요. 이 플래그는 MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES 플래그와 결합할 수 없습니다.
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES
값: 0x200
MFT는 이 스트림에 대한 출력 샘플을 제공하거나 클라이언트가 할당하는 샘플을 사용할 수 있습니다. 이 플래그는 MFT_OUTPUT_STREAM_PROVIDES_SAMPLES 플래그와 결합할 수 없습니다.

MFT가 이 플래그 또는 MFT_OUTPUT_STREAM_PROVIDES_SAMPLES 플래그를 설정하지 않은 경우 클라이언트는 이 출력 스트림에 대한 샘플을 할당해야 합니다. MFT는 자체 샘플을 제공하지 않습니다.
MFT_OUTPUT_STREAM_LAZY_READ
값: 0x400
MFT는 클라이언트가 이 스트림에 대한 출력을 처리할 필요가 없습니다. 클라이언트가 이 스트림에서 출력을 가져오지 않고 입력 데이터를 계속 보내면 MFT는 이전 입력을 삭제합니다.
MFT_OUTPUT_STREAM_REMOVABLE
값: 0x800
MFT는 스트리밍 중에 이 출력 스트림을 제거할 수 있습니다. 이 플래그는 일반적으로 입력 데이터에 스트리밍 중에 시작 및 중지할 수 있는 여러 스트림이 포함된 demultiplexers에 적용됩니다. 자세한 내용은 IMFTransform::P rocessOutput을 참조하세요.

설명

클라이언트가 MFT에서 미디어 형식을 설정하기 전에 정확하게 보장되는 유일한 플래그는 MFT_OUTPUT_STREAM_OPTIONAL 플래그입니다. 다른 모든 플래그의 경우 클라이언트는 먼저 선택 사항이 아닌 모든 스트림에서 미디어 형식을 설정해야 합니다.

MFT_OUTPUT_STREAM_DISCARDABLE 및 MFT_OUTPUT_STREAM_LAZY_READ 플래그는 MFT가 출력 데이터를 삭제하는 방법에 대한 다양한 동작을 정의합니다.

  • MFT_OUTPUT_STREAM_DISCARDABLE: MFT는 클라이언트가 MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER 플래그를 사용하여 ProcessOutput 을 호출하는 경우에만 출력 데이터를 삭제합니다. MFT는 클라이언트가 ProcessInput을 호출할 때 데이터를 삭제하지 않습니다.
  • MFT_OUTPUT_STREAM_LAZY_READ: 클라이언트가 이 스트림에서 출력을 수집하지 않고 ProcessInput 을 계속 호출하는 경우 MFT는 결국 출력을 삭제합니다. 모든 출력 스트림에 MFT_OUTPUT_STREAM_LAZY_READ 플래그가 있는 경우 MFT는 더 많은 입력 데이터를 거부하지 않습니다.
이러한 플래그 중 어느 것도 설정되지 않은 경우 MFT는 출력 데이터를 삭제하지 않습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
머리글 mftransform.h

참고 항목

MFT_OUTPUT_STREAM_INFO

Media Foundation 열거형

Media Foundation 변환