Metode IMFTransform::GetInputAvailableType (mftransform.h)

Mendapatkan jenis media yang tersedia untuk aliran input pada transformasi Media Foundation (MFT) ini.

Sintaks

HRESULT GetInputAvailableType(
  [in]  DWORD        dwInputStreamID,
  [in]  DWORD        dwTypeIndex,
  [out] IMFMediaType **ppType
);

Parameter

[in] dwInputStreamID

Pengidentifikasi aliran input. Untuk mendapatkan daftar pengidentifikasi aliran, panggil IMFTransform::GetStreamIDs.

[in] dwTypeIndex

Indeks jenis media yang akan diambil. Jenis media diindeks dari nol dan dikembalikan dalam perkiraan urutan preferensi.

[out] ppType

Menerima penunjuk ke antarmuka IMFMediaType .

Nilai kembali

Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
E_NOTIMPL
MFT tidak memiliki daftar jenis input yang tersedia.
MF_E_INVALIDSTREAMNUMBER
Pengidentifikasi aliran tidak valid.
MF_E_NO_MORE_TYPES
Parameter dwTypeIndex berada di luar rentang.
MF_E_TRANSFORM_TYPE_NOT_SET
Anda harus mengatur jenis output sebelum mengatur jenis input.

Keterangan

MFT mendefinisikan daftar jenis media yang tersedia untuk setiap aliran input dan mengurutkannya berdasarkan preferensi. Metode ini menghitung jenis media yang tersedia untuk aliran input. Untuk menghitung jenis yang tersedia, tambahkan dwTypeIndex hingga metode mengembalikan MF_E_NO_MORE_TYPES.

Mengatur jenis media pada satu aliran mungkin mengubah jenis yang tersedia untuk aliran lain, atau mengubah urutan preferensi. Namun, MFT tidak diperlukan untuk memperbarui daftar jenis yang tersedia secara dinamis. Satu-satunya cara terjamin untuk menguji apakah Anda dapat mengatur jenis input tertentu adalah dengan memanggil IMFTransform::SetInputType.

Dalam beberapa kasus, MFT tidak dapat mengembalikan daftar jenis input hingga satu atau beberapa jenis output diatur. Jika demikian, metode mengembalikan MF_E_TRANSFORM_TYPE_NOT_SET.

MFT tidak diperlukan untuk menerapkan metode ini. Namun, sebagian besar MFTs harus menerapkan metode ini, kecuali jenis yang didukung sederhana dan dapat ditemukan melalui fungsi MFTGetInfo .

Jika MFT_UNIQUE_METHOD_NAMES didefinisikan sebelum menyertakan mftransform.h, metode ini diganti namanya menjadi MFTGetInputAvailableType. Lihat Membuat Objek DMO/MFT Hibrid.

Untuk encoder, setelah jenis output diatur, GetInputAvailableType harus mengembalikan daftar jenis input yang kompatibel dengan jenis output saat ini. Ini berarti bahwa semua jenis yang dikembalikan oleh GetInputAvailableType setelah jenis output diatur harus berupa jenis yang valid untuk SetInputType.

Encoder harus menolak jenis input jika atribut jenis media input dan jenis media output tidak cocok, seperti pengaturan resolusi dengan MF_MT_FRAME_SIZE, pengaturan rentang nominal dengan MF_MT_VIDEO_NOMINAL_RANGE, atau pengaturan kecepatan bingkai dengan MF_MT_FRAME_SIZE

Catatan Implementasi

Jika MFT menyimpan jenis media secara internal, MFT harus mengembalikan klon jenis media, bukan penunjuk ke jenis aslinya. Jika tidak, pemanggil dapat memodifikasi jenis dan mengubah status internal MFT.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header mftransform.h
Pustaka Mfuuid.lib

Lihat juga

IMFTransform

Transformasi Media Foundation