Bagikan melalui


Metode IMFTransform::GetStreamIDs (mftransform.h)

Mendapatkan pengidentifikasi aliran untuk aliran input dan output pada transformasi Media Foundation (MFT) ini.

Sintaks

HRESULT GetStreamIDs(
  [in]  DWORD dwInputIDArraySize,
  [out] DWORD *pdwInputIDs,
  [in]  DWORD dwOutputIDArraySize,
  [out] DWORD *pdwOutputIDs
);

Parameter

[in] dwInputIDArraySize

Jumlah elemen dalam array pdwInputIDs .

[out] pdwInputIDs

Penunjuk ke array yang dialokasikan oleh pemanggil. Metode ini mengisi array dengan pengidentifikasi aliran input. Ukuran array harus setidaknya sama dengan jumlah aliran input. Untuk mendapatkan jumlah aliran input, panggil IMFTransform::GetStreamCount.

Jika penelepon melewati array yang lebih besar dari jumlah aliran input, MFT tidak boleh menulis nilai ke dalam entri array tambahan.

[in] dwOutputIDArraySize

Jumlah elemen dalam array pdwOutputIDs .

[out] pdwOutputIDs

Penunjuk ke array yang dialokasikan oleh pemanggil. Metode mengisi array dengan pengidentifikasi aliran output. Ukuran array harus setidaknya sama dengan jumlah aliran output. Untuk mendapatkan jumlah aliran output, panggil GetStreamCount.

Jika penelepon melewati array yang lebih besar dari jumlah aliran output, MFT tidak boleh menulis nilai ke dalam entri array tambahan.

Menampilkan nilai

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
Tidak diterapkan. Lihat Keterangan.
MF_E_BUFFERTOOSMALL
Satu atau kedua array terlalu kecil.

Keterangan

Pengidentifikasi aliran diperlukan karena beberapa MFT dapat menambahkan atau menghapus aliran, sehingga indeks aliran mungkin tidak unik. Oleh karena itu, metode IMFTransform yang beroperasi pada aliran mengambil pengidentifikasi streaming.

Metode ini dapat mengembalikan E_NOTIMPL jika kedua kondisi berikut ini benar:

  • Transformasi memiliki jumlah aliran tetap.
  • Aliran diberi nomor berturut-turut dari 0 hingga n – 1, di mana n adalah jumlah aliran input atau aliran output. Dengan kata lain, aliran input pertama adalah 0, yang kedua adalah 1, dan sebagainya; dan aliran output pertama adalah 0, yang kedua adalah 1, dan sebagainya.
Metode ini harus diimplementasikan jika salah satu kondisi berikut ini benar:
  • MFT dapat menambahkan atau menghapus aliran output.
  • MFT memungkinkan klien untuk menambahkan atau menghapus aliran input.
  • Pengidentifikasi aliran tidak berturut-turut.
Semua pengidentifikasi aliran input harus unik dalam MFT, dan semua pengidentifikasi aliran output harus unik. Namun, aliran input dan aliran output dapat berbagi pengidentifikasi yang sama.

Jika klien menambahkan aliran input, klien menetapkan pengidentifikasi, sehingga MFT harus mengizinkan pengidentifikasi arbitrer, selama mereka unik. Jika MFT membuat aliran output, MFT menetapkan pengidentifikasi.

Menurut konvensi, jika MFT memiliki tepat satu aliran input tetap dan satu aliran output tetap, MFT harus menetapkan pengidentifikasi 0 ke kedua aliran.

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

Persyaratan

   
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