Bagikan melalui


Model Penarikan

[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.]

Di antarmuka IMemInputPin , filter upstream menentukan data apa yang akan dikirim, dan mendorong data ke filter hilir. Untuk beberapa filter, model penarikan lebih tepat. Di sini, filter hilir meminta data dari filter upstram. Sampel masih melakukan perjalanan hilir, dari pin output hingga pin input, tetapi filter hilir memulai aliran data. Jenis koneksi ini menggunakan antarmuka IAsyncReader .

Penggunaan umum untuk model penarikan ada dalam pemutaran file. Misalnya, dalam grafik pemutaran AVI, filter Sumber File Asinkron melakukan operasi pembacaan file generik dan mengirimkan data sebagai aliran byte, tanpa informasi format. Filter Pemisah AVI membaca header AVI dan mengurai aliran ke dalam sampel video dan audio. Pemisah AVI dapat menentukan data apa yang dibutuhkannya lebih baik daripada filter Sumber File Asinkron, dan oleh karena itu menggunakan IAsyncReader alih-alih IMemInputPin.

Untuk meminta data dari pin output, pin input memanggil salah satu metode berikut:

Metode pertama adalah asinkron, untuk mendukung beberapa bacaan yang tumpang tindih. Yang lain sinkron.

Secara teori, filter apa pun dapat mendukung IAsyncReader, tetapi dalam praktiknya dirancang untuk filter sumber yang terhubung ke filter pengurai. Pengurai bertindak sangat mirip dengan filter sumber dalam model pendorongan. Saat dijeda, ia membuat utas streaming yang menarik data dari koneksi IAsyncReader dan mendorongnya ke hilir. Pin output menggunakan IMemInputPin, dan grafik lainnya menggunakan model dorong standar.

Aliran Data di Grafik Filter