Bagikan melalui


Tentang Jenis Media (Microsoft Media Foundation)

Jenis media menjelaskan format aliran media. Di Microsoft Media Foundation, jenis media diwakili oleh antarmukaIMFMediaType. Antarmuka ini mewarisi antarmuka IMFAttributes. Detail jenis media ditentukan sebagai atribut.

Untuk membuat jenis media baru, panggil fungsiMFCreateMediaType. Fungsi ini mengembalikan penunjuk ke antarmukaIMFMediaType. Jenis media awalnya tidak memiliki atribut. Untuk mengatur detail format, atur atribut yang relevan.

Untuk daftar atribut jenis media, lihat Atribut Jenis Media.

Jenis Dan Subjenis Utama

Dua informasi penting untuk jenis media apa pun adalah jenis utama dan subjenisnya.

  • Jenis utama adalah GUID yang menentukan kategori keseluruhan data dalam aliran media. Jenis utama termasuk video dan audio. Untuk menentukan jenis utama, atur atribut MF_MT_MAJOR_TYPE. Metode IMFMediaType::GetMajorType mengembalikan nilai atribut ini.
  • Subjenis mendefinisikan format lebih lanjut. Misalnya, dalam jenis utama video, ada subjenis untuk RGB-24, RGB-32, YUY2, dan sebagainya. Dalam audio, ada audio PCM, audio titik mengambang IEEE, dan lainnya. Subjenis menyediakan lebih banyak informasi daripada jenis utama, tetapi tidak menentukan semuanya tentang format. Misalnya, subjenis video tidak menentukan ukuran gambar atau kecepatan bingkai. Untuk menentukan subjenis, atur atribut MF_MT_SUBTYPE.

Semua jenis media harus memiliki GUID jenis utama dan GUID subjenis. Untuk daftar GUID jenis utama dan subjenis, lihat GUID Jenis Media.

Mengapa Atribut?

Atribut memiliki beberapa keunggulan dibandingkan struktur format yang telah digunakan dalam teknologi sebelumnya seperti DirectShow dan Windows Media Format SDK.

  • Lebih mudah untuk mewakili nilai "tidak tahu" atau "tidak peduli". Misalnya, jika Anda menulis sebuah transformasi video, Anda mungkin sudah mengetahui format RGB dan YUV yang didukung oleh transformasi tersebut, tetapi Anda belum mengetahui dimensi bingkai video hingga Anda mendapatkannya dari sumber video. Demikian pula, Anda mungkin tidak peduli dengan detail tertentu, seperti warna dasar video. Dengan struktur format, setiap anggota harus diisi dengan beberapa nilai. Akibatnya, menjadi umum untuk menggunakan nol untuk menunjukkan nilai yang tidak diketahui atau default. Praktik ini dapat menyebabkan kesalahan jika komponen lain memperlakukan nol sebagai nilai yang sah. Dengan atribut, Anda cukup menghilangkan atribut yang tidak diketahui atau tidak relevan dengan komponen Anda.

  • Karena persyaratan telah berubah dari waktu ke waktu, struktur format diperluas dengan menambahkan data tambahan di akhir struktur. Misalnya, WAVEFORMATEXTENSIBLE memperluas WAVEFORMATEX struktur. Praktik ini rentan terhadap kesalahan, karena komponen harus melemparkan penunjuk struktur ke jenis struktur lainnya. Atribut dapat diperpanjang dengan aman.

  • Struktur format yang saling tidak kompatibel telah ditentukan. Misalnya, DirectShow mendefinisikan struktur VIDEOINFOHEADER dan struktur VIDEOINFOHEADER2. Atribut diatur secara independen satu sama lain, sehingga masalah ini tidak muncul.

Atribut Jenis Media

Jenis Media