Tentang Topologi
Topologi adalah objek yang mewakili bagaimana data mengalir dalam alur. Aplikasi membuat topologi untuk menggambarkan jalur yang diambil setiap aliran dari sumber media ke sink media. Aplikasi meneruskan topologi ke Sesi Media, dan Sesi Media menggunakan topologi untuk mengontrol aliran data.
Komponen pemrosesan data dalam alur (sumber media, transformasi, dan sink media) diwakili dalam topologi sebagai simpul. Aliran data dari satu komponen ke komponen lainnya diwakili oleh koneksi antara simpul. Jenis node berikut didefinisikan:
- Simpul sumber: Mewakili aliran media pada sumber media.
- Transformasi node: Mewakili transformasi Media Foundation (MFT).
- Simpul output: Mewakili sink aliran pada sink media.
- Simpul Tee: Mewakili fork dalam aliran. Simpul tee adalah pengecualian untuk aturan bahwa simpul mewakili objek alur. Tidak seperti jenis node lainnya, simpul tee hanya mengarahkan aliran data.
Topologi yang berfungsi harus berisi setidaknya satu simpul sumber yang terhubung ke simpul output, mungkin melalui satu atau beberapa node transformasi. Misalnya, diagram berikut menunjukkan topologi sederhana dengan satu aliran.
Untuk pemutaran file, simpul transformasi mungkin mewakili dekoder dan simpul output akan mewakili perender audio atau video. Untuk pengodean file, simpul transformasi akan mewakili encoder dan simpul output akan mewakili sink arsip, seperti sink file ASF.
Jika dua simpul terhubung, simpul yang menghasilkan data disebut simpul upstram , dan simpul yang menerima data disebut simpul hilir . Misalnya, dalam diagram sebelumnya, simpul sumber berada di hulu dari simpul transformasi.
Dalam sepasang simpul yang terhubung, titik koneksi pada simpul upstram disebut output. Titik koneksi pada simpul hilir disebut input. Diagram berikut menunjukkan sepasang simpul dengan titik koneksinya, dan aliran data di antaranya. Titik koneksi tidak direpresentasikan sebagai objek terpisah dalam topologi. Mereka ditentukan oleh nilai indeks pada objek simpul.
Simpul sumber tidak dapat memiliki input apa pun. Oleh karena itu, tidak boleh ada simpul apa pun di hulu dari simpul sumber. Demikian pula, simpul output tidak dapat memiliki output, dan tidak boleh ada simpul hilir dari simpul output. Rantai simpul dari simpul sumber ke simpul output disebut cabang topologi. Diagram pertama dalam topik ini menunjukkan topologi dengan satu cabang. Umumnya ada satu cabang per aliran. Untuk memutar file dengan satu aliran audio dan satu aliran video, misalnya, memerlukan topologi dengan dua cabang.
Topologi Parsial
Topologi lengkap atau lengkap berisi simpul untuk setiap objek alur yang diperlukan. Namun, aplikasi tidak selalu perlu membuat topologi penuh. Sebaliknya, ini menciptakan topologi parsial yang menghilangkan satu atau beberapa node transformasi.
Sesi Media menyelesaikan topologi dengan menggunakan objek yang disebut pemuat topologi. Pemuat topologi mengonversi topologi parsial menjadi topologi penuh dengan menyisipkan transformasi yang diperlukan. Proses konversi disebut menyelesaikan topologi.
Misalnya, untuk memutar aliran audio yang dikodekan, topologi harus memiliki dekoder antara simpul sumber dan output. Aplikasi ini membuat topologi parsial yang menghubungkan simpul sumber langsung ke simpul output, tanpa dekoder. Pemuat topologi memeriksa format aliran, menemukan dekoder yang tepat, dan menyisipkan node transformasi ke dalam topologi.
Diagram berikut menunjukkan topologi parsial yang dibuat oleh aplikasi.
Diagram berikutnya menunjukkan topologi lengkap setelah pemuat topologi menyelesaikannya. Dalam contoh ini, pemuat topologi telah menyisipkan simpul transformasi untuk dekoder.
Dalam versi Media Foundation saat ini, pemuat topologi mendukung topologi untuk pemutaran. Untuk pengodean file dan skenario lainnya, aplikasi harus membangun topologi penuh.
Aplikasi juga dapat membuat pemuat topologi dan menggunakannya secara langsung. Misalnya, Anda dapat menggunakan pemuat topologi untuk menyelesaikan topologi parsial lalu memodifikasi topologi lengkap sebelum memberikannya ke Sesi Media. Untuk membuat pemuat topologi, panggil MFCreateTopoLoader.
Topik terkait