DirectShow

DirectShow (DS) – Microsoft sukurta programavimo sąsaja (SDK), skirta darbui su daugialypės terpės failais. Paketas yra paremtas COM (Component Object Model) technologija, gali būti naudojamas įvairiose Misrocoft programavimo kalbose. Palaiko pagrindinius failų formatus bei suteikia galimybę išplėsti formatų ratą pasinaudojant įvairiais filtrais, todėl gana dažnai yra naudojamas Microsoft Windows šeimos operacinėse sistemose.

Istorija 
ActiveMovie, kodiniu pavadinimu Quartz, yra DirectShow pagrindas, kuris buvo pradėtas kurti dar tada kai Windows 3.x buvo viena iš populiariausių operacinių sistemų. Paketą kurti pradėjo Geraint Davies kaip atsaką į Apple QuickTime garso bei vaizdo duomenų apdorojimo paketą. ActiveMovie pirmą kartą išleistas kaip priedas, skirtas Windows 95 operacinei sistemai. Tuo metu šį paketą buvo galima naudoti tik kaip Microsoft Internet Explorer naršyklės priedą. Buvo galima groti įvairius vaizdo bei garso failus. Vėliau, kartu su DirectX 5 versija ActiveMovie paketas buvo pervadintas DirectShow ir tapo DirectMedia SDK dalimi. Septintoje DirectX versijoje DirectShow buvo pridėtas į DirectX platinamąjį paketą. 2005 m. balandžio mėnesį DirectShow buvo perkeltas iš DirectX SDK paketo į Microsoft Platform SDK, tačiau vis tiek DirectX yra naudojamas išvesti apdorotą DirectShow informaciją (DirectX 7 versijoj naudojamas DirectDraw bei GDI bibliotekos, o DirectX 9 jau tik Direct3D biblioteka).

Veikimas 
Kai yra liepiama nuskaityti kokia nuoroda ar failas, DirectShow apdoroja šią nuorodą pagal tam tikrą grafą, kuris susideda iš įvairiausių duomenų apdorojimų filtrų (pvz., failo nuskaitymo). Filtrai gali būti tiek ir kitų sukurti, tiek ir savo rankomis parašyti. Grafus galima kurti tiek programiškai, tiek ir su Microsoft sukurta programa Graph Edit. Pastaruoju atveju programuotojui tereikės užkrauti sukurtą grafą iš grafo failo į savąjį DirectShow objektą. Duomenų išvedimas, kaip ir nuskaitymas turi būti nurodytas grafe. Grafo apdorojimo metu Windows operacinės sistemos registre yra ieškoma nurodytų filtrų įrašų, kurie yra vėliau sujungiami į tam tikrą seką, nurodytą grafe. Po to filtrai apdoroja informaciją tokia seka, kokia yra filtrų seka. Informacija yra pateikiama vartotojui, jei vartotojas pageidauja, jis gali atlikti įvairias operacijas susijusiąs su duomenų apdorojimu (pvz., gali sustabdyti filmuko rodymą arba pradėti jį rodyti vėl). Deja, yra labai sudėtinga modifikuoti jau vykdomą grafą, todėl dažniausiai yra sustabdomas grafas ir sukuriamas visiškai naujas grafas.Nors DirectShow yra gana lengva groti kokį nors failą, bet jei reikia daryti kokius nors labiau valdomus dalykus (pvz., gauti žinutes iš filmuko lango arba sukurti nuosavą filtrą), tenka pasukti galvą kaip tai padaryti. Būtent todėl DirectShow yra gana gerai žinomas programuotojų kaip viena iš sudėtingiausių Microsoft bibliotekų. Sudėtingumas pasireiškia tuo, kad yra gana sudėtinga grafe teisingai išdėstyti daugybę sudėtingų filtrų bei tuo, kad DirectShow nors ir naudoja COM technologiją, tačiau nevisiškai suderinama su jos standartais. Šie COM „taisyklių laužymai“ yra dokumentuoti paketo dokumentacijoje.

Programinė įranga