enumerasi _MFT_OUTPUT_STREAM_INFO_FLAGS (mftransform.h)

Menjelaskan aliran output pada transformasi Media Foundation (MFT).

Sintaks

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
} ;

Konstanta

 
MFT_OUTPUT_STREAM_WHOLE_SAMPLES
Nilai: 0x1
Setiap sampel media (antarmuka IMFSample ) data output dari MFT berisi unit data yang lengkap dan tidak terpecah. Definisi unit data tergantung pada jenis media: Untuk video yang tidak dikompresi, bingkai video; untuk data terkompresi, paket terkompresi; untuk audio yang tidak dikompresi, satu bingkai audio.

Untuk format audio yang tidak dikompresi, bendera ini selalu tersirat. (Valid untuk mengatur bendera, tetapi tidak diperlukan.) Bingkai audio yang tidak dikompresi tidak boleh menjangkau lebih dari satu sampel media.
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER
Nilai: 0x2
Setiap sampel output berisi tepat satu unit data, seperti yang didefinisikan untuk bendera MFT_OUTPUT_STREAM_WHOLE_SAMPLES.

Jika bendera ini ada, bendera MFT_OUTPUT_STREAM_WHOLE_SAMPLES juga harus ada.

MFT yang menghasilkan audio yang tidak dikompresi tidak boleh mengatur bendera ini. Untuk efisiensi, ini harus menghasilkan lebih dari satu bingkai audio pada satu waktu.
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE
Nilai: 0x4
Semua sampel output berukuran sama.
MFT_OUTPUT_STREAM_DISCARDABLE
Nilai: 0x8
MFT dapat membuang data output dari aliran output ini, jika diminta oleh klien. Untuk membuang output, atur bendera MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER di metode IMFTransform::P rocessOutput .
MFT_OUTPUT_STREAM_OPTIONAL
Nilai: 0x10
Aliran output ini bersifat opsional. Klien dapat membatalkan pilihan aliran dengan tidak mengatur jenis media atau dengan mengatur jenis media NULL . Ketika aliran opsional tidak dipilih, aliran tersebut tidak menghasilkan data output apa pun.
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES
Nilai: 0x100
MFT menyediakan sampel output untuk aliran ini, baik dengan mengalokasikannya secara internal atau dengan beroperasi langsung pada sampel input. MFT tidak dapat menggunakan sampel output yang disediakan oleh klien untuk aliran ini.

Jika bendera ini tidak diatur, MFT harus mengatur cbSize ke nilai bukan nol dalam struktur MFT_OUTPUT_STREAM_INFO , sehingga klien dapat mengalokasikan ukuran buffer yang benar. Untuk informasi selengkapnya, lihat IMFTransform::GetOutputStreamInfo. Bendera ini tidak dapat digabungkan dengan bendera MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES.
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES
Nilai: 0x200
MFT dapat menyediakan sampel output untuk aliran ini atau dapat menggunakan sampel yang dialokasikan klien. Bendera ini tidak dapat digabungkan dengan bendera MFT_OUTPUT_STREAM_PROVIDES_SAMPLES.

Jika MFT tidak mengatur bendera ini atau bendera MFT_OUTPUT_STREAM_PROVIDES_SAMPLES, klien harus mengalokasikan sampel untuk aliran output ini. MFT tidak akan menyediakan sampelnya sendiri.
MFT_OUTPUT_STREAM_LAZY_READ
Nilai: 0x400
MFT tidak mengharuskan klien memproses output untuk aliran ini. Jika klien terus mengirim data input tanpa mendapatkan output dari aliran ini, MFT hanya membuang input sebelumnya.
MFT_OUTPUT_STREAM_REMOVABLE
Nilai: 0x800
MFT dapat menghapus aliran output ini selama streaming. Bendera ini biasanya berlaku untuk demultiplexers, di mana data input berisi beberapa aliran yang dapat dimulai dan dihentikan selama streaming. Untuk informasi selengkapnya, lihat IMFTransform::P rocessOutput.

Keterangan

Sebelum klien mengatur jenis media pada MFT, satu-satunya bendera yang dijamin akurat adalah bendera MFT_OUTPUT_STREAM_OPTIONAL. Untuk semua bendera lainnya, klien harus terlebih dahulu mengatur jenis media pada setiap aliran non-opsional.

Bendera MFT_OUTPUT_STREAM_DISCARDABLE dan MFT_OUTPUT_STREAM_LAZY_READ menentukan perilaku yang berbeda tentang bagaimana MFT dapat membuang data output.

  • MFT_OUTPUT_STREAM_DISCARDABLE: MFT membuang data output hanya jika klien memanggil ProcessOutput dengan bendera MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER. MFT tidak pernah membuang data saat klien memanggil ProcessInput.
  • MFT_OUTPUT_STREAM_LAZY_READ: Jika klien terus memanggil ProcessInput tanpa mengumpulkan output dari aliran ini, MFT akhirnya membuang output. Jika semua aliran output memiliki bendera MFT_OUTPUT_STREAM_LAZY_READ, MFT tidak pernah menolak lebih banyak data input.
Jika tidak ada bendera ini yang diatur, MFT tidak pernah membuang data output.

Persyaratan

   
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Header mftransform.h

Lihat juga

MFT_OUTPUT_STREAM_INFO

Enumerasi Yayasan Media

Transformasi Media Foundation