Bagikan melalui


Set Properti Perubahan Laju

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

Set properti Perubahan Laju memungkinkan filter sumber/pengurai MPEG-2 untuk mengubah laju pemutaran. Dekode MPEG-2 harus mendukung set properti ini. Navigator DVD dan Stream Buffer Engine keduanya menggunakan properti ini yang diatur untuk mengontrol laju pemutaran.

Label Nilai
GUID Set Properti AM_KSPROPSETID_TSRateChange

 

ID Properti Deskripsi
AM_RATE_CorrectTS Menginformasikan dekoder bahwa Navigator mengatur stempel waktu yang benar.
AM_RATE_ExactRateChange Kedaluwarsa.
AM_RATE_MaxFullDataRate Mengkueri dekoder untuk tingkat data maksimum dekoder.
AM_RATE_QueryFullFrameRate Mengkueri dekoder untuk kecepatan bingkai penuh maksimum dekoder.
AM_RATE_QueryLastRateSegPTS Mengkueri dekoder untuk waktu mulai segmen tarif yang ditetapkan baru-baru ini.
AM_RATE_SimpleRateChange Mengirim perubahan laju ke dekoder.
AM_RATE_Step Kedaluwarsa. Lihat Kumpulan Properti Langkah Bingkai.
AM_RATE_UseRateVersion Menentukan versi mekanisme perubahan tarif mana yang akan digunakan.

 

Keterangan

Dalam konteks set properti ini, laju mengukur laju di mana stempel waktu maju relatif terhadap jam referensi. Beri peringkat inversi kecepatan pemutaran. Misalnya, jika kecepatan pemutaran adalah 2x, stempel waktu harus meningkat pada tingkat normal 1/2. Ini diterjemahkan ke kecepatan pemutaran yang lebih cepat, karena sampel dirender lebih awal dari biasanya.

Sampel dikirim ke dekoder dengan stempel waktu yang sama dengan waktu presentasi pada kecepatan 1x. Dekoder harus menskalakan stempel waktu pada sampel output ke waktu presentasi yang benar untuk laju saat ini. Misalnya, jika laju 1/2 (artinya kecepatan pemutaran adalah 2x), dekoder harus menskalakan stempel waktu sebesar 1/2. Umumnya, hanya saya frame yang memiliki stempel waktu. Dekoder harus menginterpolasi stempel waktu untuk bingkai B dan P. Perhatikan bahwa selama pemutaran terbalik, stempel waktu terus meningkat - stempel waktu tidak pernah mundur.

Dua versi set properti Perubahan Tarif ditentukan, versi 1.0 dan versi 1.1. Perilaku default diberikan oleh versi 1.0. Vendor decoder didorong untuk mendukung versi 1.1, karena memberikan pengalaman pemutaran yang lebih lancar. Navigator DVD saat ini menggunakan versi 1.0. Stream Buffer Engine menggunakan versi 1.1.

Perubahan Tarif Versi 1.0

Set properti Perubahan Tarif versi 1.0 menentukan perilaku default untuk dekode MPEG-2.

Filter sumber memberi sinyal perubahan tarif dengan mengatur properti AM_RATE_SimpleRateChange . Data untuk properti ini adalah tarif baru, ditambah waktu mulai pada sampel input ketika laju berlaku. Dekoder mempertahankan antrean perubahan laju yang tertunda, diurutkan menurut waktu mulai.

Sebelum DVD Navigator berubah menjadi kecepatan non-1x, DVD Navigator mengirimkan semua sampel yang tertunda, untuk sementara mengatur laju ke 1,0, dan menghapus grafik. Kemudian menetapkan tarif baru. Semua perubahan tarif dijadwalkan untuk akhir VOBU saat ini (unit objek video). Perhatikan bahwa membersihkan grafik mengatur ulang waktu presentasi menjadi nol.

Navigator DVD beroperasi baik dalam mode halus atau dalam mode pemindaian. Dalam mode halus, ia mengirim setiap bingkai ke dekoder, termasuk bingkai B dan bingkai P. Navigator DVD menggunakan mode halus setiap kali kecepatan pemutaran lebih besar dari nol tetapi kurang dari laju data maksmimum dekoder. Jika kecepatan pemutaran kurang dari nol (pemutaran terbalik), atau melebihi laju data maksimum dekoder, Navigator DVD menggunakan mode pemindaian, di mana ia hanya mengirim bingkai I ke dekoder. Pada kecepatan yang sangat tinggi, mungkin melewati beberapa bingkai saya; misalnya, ini dapat mengirim setiap bingkai I lainnya.

Secara default, DVD Navigator mematikan suara aliran audio untuk tarif selain 1.0. Anda dapat mengubah ini dengan memanggil IDvdControl2::SetOption dengan bendera DVD_AudioDuringFFwdRew.

Perubahan Tarif Versi 1.1

Set properti Perubahan Tarif versi 1.1 mengikuti prinsip dasar yang sama dengan versi 1.0, dengan perbedaan berikut:

  • Filter sumber memberi sinyal dekoder untuk menggunakan versi 1.1 dengan mengatur properti AM_RATE_UseRateVersion . Jika tidak, dekoder harus menggunakan perilaku versi 1.0.
  • Filter sumber tidak menghapus grafik di antara perubahan laju. Oleh karena itu, stempel waktu meningkat secara monoton di seluruh batas perubahan laju, daripada mengatur ulang ke nol.
  • Alih-alih mengantre perubahan laju untuk waktu referensi tertentu, filter sumber dapat menentukan bahwa perubahan laju berlaku untuk sampel dekoder yang paling maju, yang didefinisikan sebagai sampel di kepala antrean keluar dekoder. Untuk melakukannya, filter sumber menggunakan properti AM_RATE_SimpleRateChange tetapi mengatur waktu mulai yang sama dengan -1.
  • Filter sumber dapat mengkueri dekoder untuk waktu mulai perubahan laju yang terakhir diantrekan. Ini menggunakan properti AM_RATE_QueryLastRateSegPTS untuk tujuan ini.
  • Filter sumber tidak menghilangkan sampel. Jika laju melebihi laju data maksimum dekoder, dekoder harus menghilangkan bingkai seperlunya.
  • Filter sumber tidak membisukan aliran audio, terlepas dari laju data maksimum dekoder audio. Dekoder audio dapat menghilangkan sampel jika kecepatan pemutaran melebihi laju maksimum dekoder. Namun, itu masih harus mempertahankan antrean perubahan tarif terjadwal.

Persyaratan

Persyaratan Nilai
Header
Dvdmedia.h

Lihat juga

Set Properti