Bagikan melalui


Metode CDynamicOutputPin.ChangeMediaType

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Metode ChangeMediaType ini secara dinamis mengubah jenis media untuk koneksi. Perubahan dapat terjadi saat grafik filter sedang berjalan. Setelah metode ini dipanggil, sampel dengan jenis media lama tidak dapat dikirimkan. Penelepon harus memastikan bahwa tidak ada sampel lama yang tertunda.

Sintaks

HRESULT ChangeMediaType(
   const CMediaType *pmt
);

Parameter

Pmt

Penunjuk ke struktur AM_MEDIA_TYPE yang menentukan jenis media.

Nilai kembali

Mengembalikan nilai HRESULT . Nilai yang mungkin termasuk yang diperlihatkan dalam tabel berikut ini.

Menampilkan kode Deskripsi
S_OK
Berhasil.
E_FAIL
Kegagalan. Mungkin filter pemilik tidak memanggil CDynamicOutputPin::SetConfigInfo.
VFW_E_NOT_CONNECTED
Pin tidak tersambung.

Keterangan

Panggil metode CDynamicOutputPin::StartUsingOutputPin sebelum memanggil metode ini.

Metode ini pertama-tama memeriksa apakah pin input hilir dapat menerima format baru tanpa menyambungkan kembali. Ini meminta pin input untuk antarmuka IPinConnection . Jika pin input mendukung IPinConnection, metode memanggil metode IPinConnection::D ynamicQueryAccept dengan jenis media yang diusulkan. Jika pin input menerima jenis media baru, metode memanggil metode IPin::ReceiveConnection dan menegosiasikan ulang persyaratan alokator.

Di sisi lain, jika pin hilir tidak mendukung IPinConnection, atau jika menolak jenis media baru, metode memanggil metode CDynamicOutputPin::D ynamicReconnect untuk melakukan koneksi ulang dinamis.

Persyaratan

Persyaratan Nilai
Header
Amfilter.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)

Lihat juga

Kelas CDynamicOutputPin