Codec uygulaması

Windows Media Ses ve Video codec bileşenleri COM nesneleri olarak uygulanır. Genellikle bir codec bileşeni, bir com nesnesi çifti olarak uygulanır: biri kodlayıcı için, diğeri de kod çözücü için. Kodlayıcının bir sınıf tanımlayıcısı (CLSID) vardır ve kod çözücü farklı bir CLSID'ye sahiptir. Örneğin, Windows Media Audio 9 codec bileşeninin kodlayıcı bölümünde sabit CLSID_CWMAEncMediaObjectile temsil edilen bir CLSID bulunur ve aynı codec bileşeninin kod çözücü kısmı CLSID_CWMADecMediaObjectsabiti tarafından temsil edilen bir CLSID'ye sahiptir.

Bazı durumlarda, tek bir COM nesnesine birden fazla kodlayıcı eklenir. Örneğin, Windows Media Video 9 kodlayıcı ve Windows Media Video 9.1 kodlayıcı aynı COM nesnesinin bir parçasıdır. Sonuç olarak, her ikisi de sabit CLSID_CWMV9EncMediaObjectile temsil edilen aynı CLSID'ye sahiptir. Benzer şekilde, bazı COM nesneleri birden fazla kod çözücü içerir.

Her kodlayıcı veya kod çözücü nesnesi IMediaObject arabirimini kullanıma sunar; böylece nesnenin Bir DirectX Medya Nesnesi (DMO) ve IMFTransform arabirimi olarak kullanılabilir, böylece nesne Media Foundation Dönüşümü (MFT) olarak kullanılabilir.

Çoğu kodlayıcı için, kodlayıcıyı DMO veya MFT olarak kullanmanızdan bağımsız olarak kodlayıcının bir örneğini oluşturmak için aynı CLSID'yi kullanırsınız. Örneğin, Windows Media Video 9 kodlayıcının bir örneğini oluşturmak için, kodlayıcıyı DMO veya MFT olarak kullanmayı amaçlayıp amaçlamadığınızdan bağımsız olarak CLSID_CWMV9EncMediaObjectkullanırsınız. Benzer şekilde, çoğu kod çözücü için, kod çözücüsü DMO veya MFT olarak kullanmanızdan bağımsız olarak her kod çözücü tek bir CLSID'ye sahiptir.

Not

Önceki deyimde hem DMO hem de MFT için tek bir CLSID kullanmayla ilgili bazı özel durumlar vardır. Örneğin, MPEG-4 Bölüm 2 kod çözücüsü DMO olarak hareket ederken bir CLSID'ye ve MFT olarak davrandığında farklı bir CLSID'ye sahiptir.

 

Temel arabirimlere ek olarak, her kodlayıcı veya kod çözücü nesnesi, codec özellikleriyle çalışmak için IPropertyBag ve IPropertyStore iki benzer arabirim uygular. IPropertyBag kullanılan ve her özelliği özellik adı içeren bir dize değeriyle tanımlayan kodlayıcı ve kod çözücü nesnelerinin eski sürümleri. IPropertyStore, benzersiz bir özellik anahtarı değeriyle özellikleri tanımlayan daha yeni bir arabirimdir. MFT'ler için destek sağlamak üzere IPropertyStore desteği eklendi. IPropertyBag özellik adı dizelerinin çoğu, IPropertyStore özellik anahtarı GUID' ve GUID'lerin çoğuna karşılık gelen IPropertyBag ad dizesi vardır.

Bu belgede özellik anahtarı sabiti özellikleri listelenir, ancak her girdi uygun olduğunda IPropertyBag ile kullanılmak üzere özellik adı dize sabitini içerir.

windows media codec bileşenleri