Bagikan melalui


Menerapkan Codec MFT

Topik ini menyediakan beberapa panduan untuk menerapkan dekoder atau encoder sebagai Transformasi Yayasan Media (MFT) .

Encoder

Negosiasi Format Encoder

Prosedur berikut digunakan untuk menginisialisasi encoder:

  1. Kueri MFT untuk antarmuka ICodecAPI .
  2. Panggil ICodecAPI::SetValue untuk mengatur properti pengodean.
  3. Panggil IMFTransform::SetOutputType untuk mengatur format pengodean.
  4. Panggil IMFTransform::GetInputAvailableType untuk mendapatkan daftar jenis input yang kompatibel. (Langkah ini mungkin dilewati.)
  5. Panggil IMFTransform::SetInputType untuk mengatur format input yang tidak dikompresi.

Setelah jenis output diatur di langkah 3, metode GetInputAvailableType harus mengembalikan daftar jenis input yang kompatibel dengan jenis output saat ini. Dengan kata lain, jenis apa pun yang dikembalikan oleh GetInputAvailableType pada titik ini harus valid untuk SetInputType.

Untuk dekode, urutan di mana jenis diatur dibalik: Jenis input diatur terlebih dahulu, diikuti oleh jenis output. Setelah jenis input diatur, metode IMFTransform::GetOutputAvailableType harus mengembalikan daftar jenis yang dapat diteruskan ke metode IMFTransform::SetOutputType .

Encoder dan dekoder harus mendukung NV12 sebagai format umum yang tidak dikompresi. Ini memastikan bahwa komponen alur dapat beroperasi dengan konversi colorspace minimal. Tentu saja, format lain juga dapat didukung.

Decoder

Dekode Transcode-Only

Beberapa dekoder dioptimalkan untuk transcoding (pendekodean dan kemudian pengodean ulang aliran) dan tidak cocok untuk digunakan selama pemutaran.

Jika MFT dekoder hanya ditujukan untuk transcoding, atur bendera MFT_ENUM_FLAG_TRANSCODE_ONLY saat Anda mendaftarkan MFT. (Lihat MFTRegister.)

Secara default, dekode transkode tidak dikembalikan oleh fungsi MFTEnumEx . Untuk menghitung dekode transkode, panggil MFTEnumEx dan atur bendera MFT_ENUM_FLAG_TRANSCODE_ONLY di parameter Bendera . Ketika digunakan dalam fungsi MFTEnumEx , bendera ini menghitung dekode transkode dan dekode lainnya.

MFT_ENUM_FLAG_TRANSCODE_ONLY MFTRegister MFT_ENUM_FLAG_TRANSCODE_ONLY MFTEnumEx Apakah MFT Dijumlahkan?
1 1 Ya
1 0 Tidak
0 1 Ya
0 0 Ya

 

Atribut Telecine

Sumber media mungkin melampirkan atribut telesin berikut ke sampel media yang dikirimkannya.

Atribut Deskripsi
MFSampleExtension_RepeatFirstField Setara dengan bendera "repeat first field" (RFF).
MFSampleExtension_BottomFieldFirst Inversi bendera "bidang atas pertama" (TFF).

 

Bendera ini memberikan petunjuk untuk perender video (EVR) yang disempurnakan saat melakukan deinterlacing. Dekoder harus menyebarluaskan bendera ini ke hilir dengan menyalinnya ke sampel output, sehingga mereka mencapai EVR.

Menulis MFT Kustom