Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Microsoft DirectShow Multimediaschnittstelle. 1.Grundlagen 1.1 VFW 1.2 WDM, KS, WMF 1.3 DirectShow - DirectX 1.4 Aufgaben von DirectShow 2.Architektur.

Ähnliche Präsentationen


Präsentation zum Thema: "Microsoft DirectShow Multimediaschnittstelle. 1.Grundlagen 1.1 VFW 1.2 WDM, KS, WMF 1.3 DirectShow - DirectX 1.4 Aufgaben von DirectShow 2.Architektur."—  Präsentation transkript:

1 Microsoft DirectShow Multimediaschnittstelle

2 1.Grundlagen 1.1 VFW 1.2 WDM, KS, WMF 1.3 DirectShow - DirectX 1.4 Aufgaben von DirectShow 2.Architektur 2.1 COM - kurze Einführung 2.2 Filter Graph Manager 3.Filter Graphen 3.1 Erstellung von Filter Graphen 3.2 Filter-Verbindungsprotokolle 3.3 Datenfluss-Protokolle 3.4 Synchronisation 4.Beispiele 5.Zusammenfassung Gliederung

3 1992 als Addon für Windows 3.1 eingeführt Aufgaben: Abspielen / Aufnahme / Kompression / Dekompression von Video- /Audiodaten Anfangs 16 Bit Architektur; mittlerweile teilweise 32 Bit. AVI Container Dateiformat Nachteile: VFW-Treiber: separate Treiber für WinNT/Win9x notwendig, keine standardisierten gerätespezifische Kommunikationsschnittstellen (z.B.: fehlende TVTuner Unterstützung), Treibermodell inkonsistent Unterstützung weniger Dateiformate nur teilweise 32 Bit Architektur keine Synchronisationsmechanismen AVI Container Dateiformat: begrenzt auf 2 GB, nicht streamingfähig, Synchronisation schwierig Neue Multimedia-/Treiberarchitektur und Dateiformat 1. Entwicklung von DirectShow 1. 1 VFW (Video for Windows) Warum wurde DirectShow entwickelt?

4 WDM (Windows Driver Model): Kompatibilität innerhalb der Windows-Betriebssysteme volle 32 Bit Unterstützung standardisierte Kommunikationsschnittstellen (Bsp.: TV-Tuner Unterstützung) KS (Kernel Streaming): Filter Architektur (Knoten, Pins) Datenaustausch innerhalb des Kernel Mode: keine Kernel-/User Mode Umschaltung geringe Latenzzeiten keine Datenkopie in Systemspeicher WMF (Windows Media Format): Kompression/Dekompression von Video/Audio mit MS MPEG4 Video/Audio Codec sowie MS Video Speech Codec. Streaming von Video-/Audiodaten über Netzwerk (geringe Netzwerkbandbreite) ASF Container Dateiformat (*.wmv, *.wma, *.asf): -streamingfähig, Synchronisationsmechanismen -Dateigröße nicht begrenzt -proprietäres Dateiformat vor ISO MPEG4 Standard entwickelt QuickTime Movie (MOV Format) als MPEG4 Standard vorgesehen 1. Entwicklung von DirectShow 1.2 WDM, KS, WMF 1. Entwicklung von DirectShow 1.2 WDM, KS, WMF

5 1. Entwicklung von DirectShow 1.3 DirectShow - DirectX 1. Entwicklung von DirectShow 1.3 DirectShow - DirectX DirectShow seit 1996 Bestandteil von DirectX DirectX: - Sammlung von Komponenten für verschiedene multimediale Bereiche - Schnittstellen für effiziente Kommunikation von Software mit Hardware - Hardwareunabhängige Funktionsbibliothek (bei fehlender Hardware- unterstützung Verwendung von Softwareemulationen (optimierte Softwareroutinen mittels Assemblercode)

6 1. Entwicklung von DirectShow 1.4 Aufgaben von DirectShow 1. Entwicklung von DirectShow 1.4 Aufgaben von DirectShow 2. DES (DirectShow Editing Service) 1. Hauptaufgaben

7 2. Architektur

8

9 Programmablauf für DirectShow Applikationen Applikation Filter Graph Manager Source Filter (Bsp.: File Source) Transform Filter (Bsp.: AVI Parser) Transform Filter (Bsp.: Video Decod.) Rendering Filter (Bsp.: Video Render) Transform Filter (Bsp.: Audio Decod.) Rendering Filter (Bsp.: Audio Render) Play() MethodeStop Event Filter Graph

10 2. Architektur 2.1 COM - kurze Einführung 2. Architektur 2.1 COM - kurze Einführung

11 2. Architektur 2.2 Filter Graph Manager 2. Architektur 2.2 Filter Graph Manager Zentrales Objekt von DirectShow Erstellen und Kontrolle von Filter Graphen Synchronisation Ereigniss-Behandlung über Ereigniss-Warteschlange (z.B.: Filter Status, Play…)

12 3. Filter Graphen 3.1 Erstellung von Filter Graphen 3. Filter Graphen 3.1 Erstellung von Filter Graphen IGraphBuilder (Filter Graph Manager)::RenderFile SourceFilter einfügen; IGraphBuilder::Render IGraphBuilder (Filter Graph Manager)::Render Rendering Filter einfügen; IGraphBuilder::Connect IGraphBuilder (Filter Graph Manager)::Connect - Direkte Verbindung der Pins probieren - Filter aus dem Cache probieren - vorhandene Filter im Filter Graphen probieren - Filter über Windows-Registrierung suchen und probieren Filter in Kategorien unterteilt (Source Filter, Transform Filter, Rendering Filter) Jeder Filter wird mit Major-/SubType und Prioritätswert in Registry eingetragen Abbruch nach bestimmter Anzahl von Versuchen kein Deadlock

13 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (MediaType Vermittlung) 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (MediaType Vermittlung)

14 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (Transport Vermittlung) 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (Transport Vermittlung)

15 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (Speicherverwaltung Vermittlung) 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (Speicherverwaltung Vermittlung)

16 3. Filter Graphen 3.3 Datenfluss (Streaming Protokoll) 3. Filter Graphen 3.3 Datenfluss (Streaming Protokoll) Memory Allocator 1Memory Allocator 2 Source Filter Transform FilterRendering Filter FillBuffer() Transform GetBuffer()Release()GetBuffer()

17 3. Filter Graphen 3.3 Datenfluss (Control Protokoll) 3. Filter Graphen 3.3 Datenfluss (Control Protokoll) Pause-Zustand: Initialisierungsphase für Datenstreaming (z.B.: Threadgenerierung) Datenpufferung jeder Rendering Filter erhält ein Media Sample schnellere Reaktion auf Run – Befehl Source-/Transform-Filter ignorieren Zustandsänderung Pause/Running Ausnahme Live Source Filter

18 3. Filter Graphen 3.3 Datenfluss (Ausgewählte Protokolle) 3. Filter Graphen 3.3 Datenfluss (Ausgewählte Protokolle) EndOfStream: Seeking/Flushing:

19 3. Filter Graphen 3.4 Synchronisation (Grundlagen) 3. Filter Graphen 3.4 Synchronisation (Grundlagen) Zeitgeber (ReferenceClock COM-Objekt); Zugriff über IReferenceClock Interface Pro Filter Graph eine ReferenceClock Synchronisation aller Filter im Filter Graph mit ReferenceClock

20 3. Filter Graphen 3.4 Synchronisation (Auswahl der ReferenceClock) 3. Filter Graphen 3.4 Synchronisation (Auswahl der ReferenceClock) Manuelle ReferenceClock-Auswahl: Automatische ReferenceClock-Auswahl: Filter Graph Manager sucht ReferenceClock-Implementationen in Filtern in Upstream- Reihenfolge (beginnend bei Rendering Filter) erste gefundene ReferenceClock (in Filter) wird übernommen keine ReferenceClock gefunden Filter Graph Manager stellt interne ReferenceClock auf Basis der System-Uhrzeit zur Verfügung

21 4. Beispiele //Schnittstellenzeiger definieren IGraphBuilder *pGraph; IMediaControl *pMediaControl; IMediaEvent *pEvent; CoInitialize(NULL); //COM-Laufzeitumgebung initialisieren //Filter Graph Manager Objekt erstellen+IGraphBuilder Schnittstellenzeiger erzeugen CoCreateInstance(CLSID_FilterGraph, …, …,IID_IGraphBuilder, (void **)&pGraph); pGraph->RenderFile(Beispiel.mpg, NULL); //Graph vollautomatisch erstellen pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); pMediaControl->Run(); //Graph starten //Warten auf Beendigung des Graphen pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); pMediaControl->Release(); pEvent->Release(); pGraph->Release(); //Schnittstellenzeiger freigeben CoUninitialize(); //COM- Laufzeitumgebung freigeben

22 Zusammenfassung Zusammenfassung Was ist DirectShow ? (Entstehung, Hauptaufgaben) Architektur Filter Graph Manager als Hauptbestandteil von DirectShow Filter Graphen: Erstellung, Verbindungsprotokolle, Datenflussprotokolle, Buffer-Management, Synchronisation Quellen DirectShow SDK Dokumentation Programming Microsoft DirectShow for Digital Video and Television / Mark D. Pesce. Microsoft MSDN Bibliothek Suchmaschinen (Google) / Internet VorteileNachteile gut dokumentiert modulare Struktur wiederverwendbare Komponenten (Filter) abhängig von Microsoft-Betriebssystemen Windows-Programmierung notwendig


Herunterladen ppt "Microsoft DirectShow Multimediaschnittstelle. 1.Grundlagen 1.1 VFW 1.2 WDM, KS, WMF 1.3 DirectShow - DirectX 1.4 Aufgaben von DirectShow 2.Architektur."

Ähnliche Präsentationen


Google-Anzeigen