Witam.
Mam takie pytanie w jaki sposob programy obsluguja wszystkie dostepne kodeki zainstalowane w systemie? czy uzywaja tak jak jest w C++ Builderze komponentu windows media player ? czy po prostu pisze sie obsluge ladowania dll dla kazdego kodeku oddzielnie ?? wie ktos moze jak obsluzyc kodek xvid w swoim programie ?
robione jest to inaczej. zależnie od programu...
Zazwyczaj jest to tak że jeżeli program nie korzysta z kontrolki media playera to korzysta z DirectX i to DirectX sobie radzi ze wszystkim. Są też przypadki jak VLC czy MPlayer gdzie player sam w sobie ma kodeki.
całość opiera się na DirectShow, którego istotną częścią są tzw. filtry czyli komponenty COM implementujące odp. interfejsy np. do obsługi wideo, audio itp. Z grubsza mówiąc każdy taki filtr obsługuje określone przez twórcę klasy i podklasy formatów. Informacje o tym są dostępne (przez interfejsy), zaś inne składniki DirectShow (np. GraphBuilder) korzystają z nich i potrafią na podstawie np. filtru wejściowego (plik wideo w określonym formacie) i wyjściowego (renderer wideo na ekranie) zbudować automatycznie kompletny graf filtrów - coś na kształt układanki/domino, którą za programistę może odwalić platforma.