Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Koderie audio i wideo w systemie Windows Media są implementowane jako obiekty COM. Zazwyczaj koder jest implementowany jako para obiektów COM: jeden dla kodera i jeden dla dekodera. Koder ma identyfikator klasy (CLSID), a dekoder ma inny identyfikator CLSID. Na przykład część kodera kodera kodera codec windows Media Audio 9 ma identyfikator CLSID reprezentowany przez stałą CLSID_CWMAEncMediaObject, a część dekodera tego samego kodera ma identyfikator CLSID reprezentowany przez stałą CLSID_CWMADecMediaObject.
W niektórych przypadkach w jednym obiekcie COM znajduje się więcej niż jeden koder. Na przykład koder Windows Media Video 9 i koder Windows Media Video 9.1 są częścią tego samego obiektu COM. W związku z tym oba mają ten sam identyfikator CLSID, który jest reprezentowany przez stałą CLSID_CWMV9EncMediaObject. Podobnie niektóre obiekty COM zawierają więcej niż jeden dekoder.
Każdy obiekt kodera lub dekodera uwidacznia interfejsIMediaObject, dzięki czemu obiekt może być używany jako obiekt nośnika DirectX (DMO) i interfejs IMFTransform, dzięki czemu obiekt może być używany jako transformacja programu Media Foundation (MFT).
W przypadku większości koderów, niezależnie od tego, czy używasz kodera jako dmo, czy MFT, użyjesz tego samego identyfikatora CLSID, aby utworzyć wystąpienie kodera. Aby na przykład utworzyć wystąpienie kodera windows Media Video 9, należy użyć CLSID_CWMV9EncMediaObject, niezależnie od tego, czy zamierzasz używać kodera jako DMO, czy MFT. Podobnie w przypadku większości dekodatorów każdy dekoder ma jeden identyfikator CLSID niezależnie od tego, czy używasz dekodera jako dmo, czy MFT.
Nuta
Istnieją pewne wyjątki od powyższej instrukcji dotyczące używania pojedynczego identyfikatora CLSID zarówno dla DMO, jak i MFT. Na przykład dekoder MPEG-4 Part 2 ma jeden CLSID, gdy działa jako DMO i inny CLSID, gdy działa jako MFT.
Oprócz podstawowych interfejsów każdy obiekt kodera lub dekodera implementuje dwa podobne interfejsy do pracy z właściwościami kodera, IPropertyBag i IPropertyStore. Starsze wersje kodera i obiektów dekodera używane IPropertyBag, który identyfikuje każdą właściwość według wartości ciągu zawierającej nazwę właściwości. IPropertyStore to nowszy interfejs identyfikujący właściwości z unikatową wartością klucza właściwości. Dodano obsługę IPropertyStore w celu zapewnienia obsługi MFTs. Większość ciągów nazw właściwości IPropertyBag IPropertyBag ma odpowiednie IPropertyStore identyfikator GUID klucza właściwości, a większość identyfikatorów GUID ma odpowiedni ciąg nazwy IPropertyBag z kilkoma wyjątkami.
Ta dokumentacja zawiera listę właściwości według stałej klucza właściwości, ale każdy wpis zawiera stałą ciągu nazwy właściwości do użycia z IPropertyBag w razie potrzeby.