Segmen Amplop
[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.]
Kurva parameter terdiri dari satu atau beberapa segmen amplop, yang ditentukan menggunakan struktur MP_ENVELOPE_SEGMENT. Struktur ini berisi informasi berikut:
- Waktu mulai dan berakhir.
- Nilai awal dan akhir.
- Jenis kurva (linear, persegi, dan sebagainya).
- Bendera opsional, dijelaskan segera.
Klien menambahkan segmen amplop ke parameter dengan memanggil metode IMediaParams::AddEnvelope dan meneruskan array struktur MP_ENVELOPE_SEGMENT. Klien harus mengurutkan segmen ke dalam urutan waktu naik sebelum memanggil metode . Saat DMO memproses data, Anda dapat membayangkan parameter yang berjalan di atas setiap segmen amplop, seperti mobil yang mengemudi di atas serangkaian bukit. Metode IMediaParams::GetParam mengembalikan nilai terbaru.
Dua segmen yang berdekatan dapat memiliki kesenjangan di antara mereka. Selama kesenjangan, parameter mempertahankan nilai sebelumnya, sebagai berikut:
- Sebelum segmen pertama, nilainya adalah nilai netral.
- Di antara segmen, nilainya adalah nilai akhir dari segmen sebelumnya.
- Setelah segmen terakhir, nilai tetap berada di nilai akhir segmen tersebut.
- Jika klien menghapus DMO, nilai kembali ke nilai netral.
Anda dapat mengubah segmen dengan mengatur salah satu bendera berikut:
- MPF_ENVLP_BEGIN_CURRENTVAL. DMO menggunakan nilai parameter terbaru sebagai nilai awal untuk segmen . Ini mungkin nilai netral, atau nilai akhir dari segmen sebelumnya. DMO mengabaikan valStart anggota struktur MP_ENVELOPE_SEGMENT.
- MPF_ENVLP_BEGIN_NEUTRALVAL. DMO menggunakan nilai netral parameter sebagai nilai awal untuk segmen . Ini mengabaikan valStart.
Anda dapat menganggap bendera ini sebagai mengambil titik awal segmen dan memindahkannya ke atas atau ke bawah, sementara nilai akhir tetap diperbaiki. Segmen akan "meregang" sesuai.
Topik terkait