Programmation Multimédia Cours de programmation DirectShow
71 pages
Français
Obtenez un accès à la bibliothèque pour le consulter en ligne
En savoir plus

Programmation Multimédia Cours de programmation DirectShow

-

Obtenez un accès à la bibliothèque pour le consulter en ligne
En savoir plus
71 pages
Français

Description

Master, Supérieur, Master
  • cours - matière : programmation
Programmation Multimédia Master d'Informatique 2004-2005 Page 1/71 Université de Reims Champagne-Ardennes Programmation Multimédia Cours de programmation DirectShow Pascal Mignot / Pascal Gardeur Partie 2: 1. Typologie et principes généraux sur les filtres 2. Installation de nouveaux filtres 3. Compression 4. Filtres de sortie 5. Périphériques matériels et interactions avec DirectShow 6. Enumération des filtres disponibles sur un système 7. Gestion des périphériques d'acquisition 8. Contrôle du rendu 9.
  • dv splitter
  • hwnd hwnd
  • fichier au format asf
  • file source
  • video decoder
  • fichier avi
  • capture
  • captures
  • filtres
  • filtre
  • audio

Sujets

Informations

Publié par
Nombre de lectures 102
Langue Français

Exrait

Programmation Multimédia Master d'Informatique 2004-2005

Programmation Multimédia
Cours de programmation DirectShow
Pascal Mignot / Pascal Gardeur

Partie 2:
1. Typologie et principes généraux sur les filtres
2. Installation de nouveaux filtres
3. Compression
4. Filtres de sortie
5. Périphériques matériels et interactions avec DirectShow
6. Enumération des filtres disponibles sur un système
7. Gestion des périphériques d'acquisition
8. Contrôle du rendu
9. Debug de DirectShow

Annexes

A : Montage Vidéo
B : Contrôle d'un caméscope numérique
C : Contrôle d'une carte Tuner TV
D : Contrôle d'un DVD

Reproduction et diffusion interdites.

Page 1/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005
Typologie et principes généraux sur les filtres


Nous présentons dans cette section une partie des filtres DirectShow les plus directement
utilisables.

L'installation de codecs et de filtres particuliers (cf le SDK) permet d'accroître le nombre
de filtres disponibles.

1) Filtres génériques

a) filtres sources

File Source (Async) (CLSID_AsyncReader)
Lecture de fichier asynchrone (bref classique)

File Source (URL) (CLSID_URLReader)
Lecture d'un flux depuis une URL.

b) filtres passants

Smart Tee (CLSID_SmartTee)
Duplication de l'entrée (une entrée, 2 sorties : capture et preview)

Infinite Pin Tee (CLSID_InfTee)
Duplication multiple de l'entrée (une entrée, n sorties)

Sample Grabber (CLSID_SampleGrabber)
Capture des échantillons (passant)

c) filtres de rendu

File Writer (CLSID_FileWriter)
Si le flux n'a pas été converti dans un format reconnaissable, il ne pourra pas être
relu (pour l'audio, utiliser wavDest; pour la vidéo, utiliser l'avi Muxer).

Null Renderer (CLSID_NullRenderer)
Equivalent de /dev/null dans un graphe.

2) Filtres de gestion audio

a) Parser/decoder


Page 2/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005
WAVE Parser (CLSID_WAVEParser)

ACM Wrapper (CLSID_ACMWrapper)
Le type de ce filtre est instancié à sa création (quel codec, codage/décodage)

Wave Dest (cf le SDK)
Permet de transformer un flux PCM/audio en flux .wav

b) Filtres transformants

DMO Wrapper (CLSID_DMOWrapperFilter)
Permet d'utiliser des Direct Media Objects dans un graphe

Remarques:
• les effets DirectSound (en rendu ou en capture) sont utilisables avec DirectShow
sous forme de DMO.
• lors de l'installation de certains produits (par exemple Sound Forge), les filtres
audio de l'application sont disponibles sous forme de filtre DirectShow.

c) Filtres de rendu

Default Audio Renderer (WaveOut) (CLSID_AudioRender)

DirectSound Renderer (CLSID_DSoundRender)

d) Manipulation de flux au format Midi
MIDI Parser (cf doc)

Midi Renderer (CLSID_AVIMIDIRender)

e) Filtre de capture

Audio Capture (analogique micro/cd/midi)
CLSID_AudioInputMixerProperties

f) Utilisations classiques

• Lecture d'un fichier audio au format WAV
File Source Wave Parser Audio Renderer
• Lecture d'un fichier audio au format mp3
File Source MPeG1 Splitter ACM Wrapper Wave Parser Audio Renderer
Remarque: l'ACM Wrapper filter s'instancie comme un décodeur mp3.
Rappel: mp3 = MPeG1 audio layer 3
• Lecture d'un fichier audio au format midi
File Source Midi Parser Midi Renderer
• Capture audio

Page 3/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005


• Conversion d'un fichier wav en fichier mp3
File Source Wave Parser ACM Wrapper Wave Dest File Writer
Remarque: l'ACM Wrapper filter s'instancie comme un encodeur mp3.


3) Filtres de gestion vidéo

a) Gestions internes

Video Renderer (Video Mixing Renderer 7)

Video Mixing Renderer 9

Color Space Converter
Change le format de couleur (entre RGB8, RGB555, RGB565, RGB24, RGB32)

b) Format AVI

Lecture:
Avi Splitter (CLSID_AviSplitter)

AVI Decompressor (CLSID_AVIDec)
Instance d'un décodeur VCM

Ecriture:
AVI Compressor
Instance d'un encodeur VCM

AVI Mux (CLSID_AviDest)

Utilisations classiques:
• Lecture d'un fichier AVI (audio au format PCM)



Page 4/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005
• Changement du format d'un fichier AVI (l'audio restant au format PCM)



c) Format MPeG1 (svcd et super VideoCD)

MPEG-1 Stream Splitter
Sépare l'audio et la vidéo d'un flux mpeg1

MPEG-1 Video Decoder

MPEG-1 Audio Decoder

Remarque: le muxer et les encoder MPeG1 ne font par partie de DirectShow (installer les
codecs adéquats dans ce but).

Utilisation classique:
MPeG1
videoMPeG1 Video Decoder
File Stream
audioSource Splitter MPeG1
Audio Decoder


d) Format MPeG2 et DVD

MPEG-2 Demultiplexer (CLSID_MPEG2Demultiplexer)
Séparation d'un flux mpeg2

MPEG-2 Sections and Tables (CLSID_Mpeg2Data)
Données mpeg2 (caractéristique des services, droit d'abonnements, …)

MPEG-2 Splitter (CLSID_MMSPLITTER)

DVD Navigator

Remarque: le muxer et les encoder MPeG2 ne font par partie de DirectShow (installer les
codecs adéquats dans ce but).








Page 5/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005
Utilisation classique:



Voir en annexe pour plus de précision.

e) Format ASF

WM ASF Writer (CLSID_WMAsfWriter)
Ecriture dans un fichier au format ASF

WM ASF Reader (CLSID_WMAsfReader)
Lecture dans un fichier au format ASF

Utilisation classique:



f) Incrustation / Télétext / Sous-titres

Page 6/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005

Overlay Mixer (CLSID_OverlayMixer)

Overlay Mixer 2 (CLSID_OverlayMixer2)

World Standard Teletext Decoder (CLSID_WSTDecoder)

Synchronized Accessible Media Interchange (CC) Parser

Line 21 Decoder (DVD video/CC decoder)

4) Capture vidéo

a) Capture vidéo (caméra & webcam)

WDM Video Capture (CLSID_VideoInputDeviceCategory)

VFW Capture Filter (CLSID_VfwCapture)

Remarque: les périphériques de capture vidéo expose généralement une borne de
Capture et une borne de Preview. La borne de Preview peut dégrader ses performances de
façon à conserver la qualité de la borne de Capture.



Dans le cas où la borne de Preview n'est pas disponible, on utilise le filtre suivant. Ce
filtre peut être utilisé dans n'importe quel autre cadre similaire.

Smart Tee filter (CLSID_SmartTee)
Duplique l'entrée vidéo (une entree, deux sorties: capture + renderer)



b) Capture vidéo analogique

Deux filtres permettent de récupérer les données en provenance d'un tuner TV:

Page 7/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005
• TV Audio (CLSID_TVAudioFilter) audio analogique
• TV Tuner (CLSID_TVTunerFilter) vidéo analogique

WDM Analog Video Crossbar (TV tuner) (CLSID_CrossbarFilterPropertyPage)

A noter que des connections internes doivent être faites de façon à relier les entrées vidéo
et audio disponibles vers la sortie vidéo et audio du Crossbar.

Voir en annexe pour plus de précision.

c) Caméscope numérique

Les caméscopes numériques stockent les informations sous forme de flux (dvsd) qui
inclus l'audio et la vidéo sous forme interlacée. Le passage sous forme interlacée
(muxer/splitter) se fait avec les deux filtres suivants:

DV Splitter (CLSID_DVSplitter)

DV Muxer (CLSID_DVMux)

AVI type I et II:
Type II : fichier avi classique.
Type I : fichier DV.

video
AVI DV AVIType I Type IIsplitter splitter audio Mux


video
AVI DV AVIType II Type I
splitter audio Muxer Mux




Page 8/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005


Accès aux périphériques:
Instance d'un filtre WDM Video Capture de catégorie
"CLSID_VideoInputDeviceCategory" ou "AM_KSCATEGORY_RENDER".

Filtres de codage/décodage DV
DV Video Encoder (CLSID_DVVideoEnc)

DV Video Decoder (CLSID_DVVideoCodec)

Utilisations classiques:
• DV out (lecture d'une cassette numérique)

• DV in (enregistrement sur une cassette numérique)

Voir en annexe pour plus de précision.

d) Broadcast Driver Architecture (BDA)

Page 9/71 Université de Reims Champagne-Ardennes Programmation Multimédia Master d'Informatique 2004-2005


4. Propriétés
Les propriétés d'une grande partie des périphériques peuvent afficher une boite de
dialogue permettant de configurer le filtre.
La fonction suivante permet d'afficher l'interface de configuration du filtre (certaines
n'ont de sens qu'en mode debug).
HRESULT ShowPropertyDialog(IBaseFilter *Filter, HWND hwnd) {
ISpecifyPropertyPages *Prop;
HRESULT h = Filter->QueryInterface(IID_ISpecifyPropertyPages,
(void **)&Prop);
if FAILED(h) return h;
FILTER_INFO FilterInfo;
h = Filter->QueryFilterInfo(&FilterInfo);
IUnknown *FilterUnk = NULL;
Filter->QueryInterface(IID_IUnknown, (void **)&FilterUnk);

// Show the page.
CAUUID caGUID;
Prop->GetPages(&caGUID);
SAFE_RELEASE(Prop);
OleCreatePropertyFrame(
hwnd, // Parent window
0, 0, // Reserved
FilterInfo.achName, // Caption for the dialog box
1, // Number of objects (just the filter)
&FilterUnk, // Array of object pointers.
caGUID.cElems, // Number of property pages
caGUID.pElems, // Array of property page CLSIDs
0, // Locale identifier
0, NULL // Reserved
);

Page 10/71 Université de Reims Champagne-Ardennes

  • Accueil Accueil
  • Univers Univers
  • Livres Livres
  • Livres audio Livres audio
  • Presse Presse
  • BD BD
  • Documents Documents