Bagikan melalui


Perilaku Jam Demux

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

Dalam mode pendorongan, Demultiplexer (demux) MPEG-2 mengekspos antarmuka IReferenceClock . Ini bertindak sebagai sumber langsung, sehingga akan dipilih sebagai jam referensi grafik secara default; lihat Sumber Langsung untuk informasi selengkapnya.

  • Untuk aliran transportasi, demux menyinkronkan jamnya ke aliran PCR yang sesuai dengan aliran audio atau video yang baru-baru ini dipetakan oleh aplikasi. Secara internal, demux melacak tabel PAT dan PMT. Ketika aplikasi memetakan PID aliran dasar ke pin output, demux mencari aliran PCR untuk PID tersebut dan menggunakan aliran PCR tersebut. (Saat ini, tidak ada cara bagi aplikasi untuk menentukan PCR PID secara langsung.)
  • Untuk aliran program, demux menyinkronkan jamnya ke aliran SCR.

Menyinkronkan jam filter ke aliran PCR atau SCR mencegah luapan data atau aliran bawah, yang dapat mengakibatkan jika jam grafik bervariasi dari jam aliran. Demux juga menerjemahkan nilai PES PTS ke dalam waktu referensi DirectShow, dan menggunakan nilai-nilai ini untuk memberi stempel waktu sampel media. Stempel waktu berlaku untuk batas bingkai berikutnya; tidak ada jaminan bahwa batas bingkai akan selaras dengan awal sampel media.

Demuks menjamin bahwa stempel waktu meningkat secara monoton. Ini berarti, misalnya, bahwa jika aliran transportasi mencakup segmen seperti komersial yang dibuat dengan jam yang berbeda dari program utama, demuks akan menyesuaikan stempel waktu presentasi untuk menyembunyikan penghentian waktu dari filter hilir.

Menggunakan Demultiplexer MPEG-2