Antarmuka IAMPushSource (strmif.h)

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan 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 Pengambilan Audio/Video 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.]

Antarmuka IAMPushSource menyinkronkan grafik filter yang merender sumber langsung. Sumber langsung adalah sumber yang mengalirkan data secara real time, seperti perangkat pengambilan atau siaran jaringan.

Filter sumber yang mengalirkan data langsung harus mengekspos antarmuka ini pada pin outputnya. Umumnya, aplikasi tidak boleh memanggil metode pada antarmuka ini; sebagai gantinya, gunakan antarmuka IAMGraphStreams .

Warisan

Antarmuka IAMPushSource mewarisi dari IAMLatency. IAMPushSource juga memiliki jenis anggota berikut:

Metode

Antarmuka IAMPushSource memiliki metode ini.

 
IAMPushSource::GetMaxStreamOffset

Metode GetMaxStreamOffset mengambil offset aliran maksimum yang dapat didukung filter.
IAMPushSource::GetPushSourceFlags

Metode GetPushSourceFlags mengambil kombinasi bendera yang menjelaskan perilaku filter.
IAMPushSource::GetStreamOffset

Metode GetStreamOffset mengambil offset yang digunakan filter saat menghasilkan stempel waktu.
IAMPushSource::SetMaxStreamOffset

Metode SetMaxStreamOffset menentukan offset aliran yang akan diizinkan dalam grafik filter.
IAMPushSource::SetPushSourceFlags

Metode SetPushSourceFlags menetapkan bendera yang menentukan perilaku filter. Saat ini, aplikasi tidak boleh memanggil metode ini, karena bendera permintaan tidak didukung dan aplikasi tidak boleh mengambil alih bendera yang ditetapkan oleh filter.
IAMPushSource::SetStreamOffset

Metode SetStreamOffset mengatur offset untuk stempel waktu yang dihasilkan oleh filter ini.

Keterangan

Filter Graph Manager menggunakan metode pada antarmuka ini untuk mengatasi dua masalah yang umumnya terjadi saat merender sumber langsung:

  • Latensi: Ketika grafik filter mencakup lebih dari satu sumber langsung, sumber sering memiliki latensi yang berbeda, yang dapat menyebabkannya tidak sinkron. Misalnya, jika pengambilan audio memiliki waktu latensi yang lebih lama daripada pengambilan video, audio akan tertinggal di belakang video kecuali grafik mengimbangi perbedaannya.
  • Pencocokan Laju: Saat filter perender terhubung ke sumber langsung, filter harus menyesuaikan tingkat konsumsi datanya agar sesuai dengan tingkat produksi filter sumber. Jika tidak, mungkin ada celah dalam data (jika perender berjalan lebih cepat dari sumbernya) atau data mungkin dihilangkan (jika sumber berjalan lebih cepat).
Untuk memperbaiki latensi, grafik filter memanggil IAMLatency::GetLatency pada setiap pin output yang mengekspos IAMPushSource antarmuka, dan menentukan latensi maksimum dalam grafik. Kemudian memanggil IAMPushSource::SetStreamOffset pada filter apa pun dengan latensi kurang dari maksimum, sehingga mereka akan menyesuaikan stempel waktu yang dihasilkan oleh offset yang benar.

Untuk melakukan pencocokan laju, grafik filter perlu menentukan apakah filter perender dapat mencocokkan laju jam dengan filter sumber. Metode IAMPushSource::GetPushSourceFlags mengembalikan serangkaian bendera yang menunjukkan apakah aman bagi perender untuk mencocokkan tarif dengan sumber.

Masalah ini tidak memengaruhi pengambilan ke file. Filter Penulis File bergantung pada stempel waktu pada sampel masuk untuk menulis file dengan benar; aliran kemudian disinkronkan selama pemutaran. Sedangkan untuk pencocokan tarif, data selalu ditulis ke file secepat mungkin.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header strmif.h (termasuk Dshow.h)

Lihat juga

Latensi IAM