Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1646 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  DirectShow sous Vista ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

DirectShow sous Vista ?

n°1519604
did-54
Posté le 25-02-2007 à 13:27:38  profilanswer
 

Bonjour,
 
Le problème n'est pas vraiment un problème lié à C++ mais je ne sais pas trop ou poster sinon.
 
Je développe actuellement un lecteur vidéo en C++ grâce à directshow. J'ai commencé ce projet sous XP avec VC2005, ca marchait pas trop mal puisque je pouvais lire des vidéos sans problème.  
Je suis passé sous Vista hier, et miracle, je n'ai plus le son !  
 
J'ai installé le PSDK que j'utilisais avant ainsi que le DirectX 9 SDK bien que sous Vista je sois sous DX10 évidemment.
 
Quelqu'un aurait une idée du pourquoi du comment je n'ai plus de son tout en ayant quand même l'image ? :( Il faudrait que j'utilise les headers de DX10 ? (je n'ai pas envie de me replonger dans du code de base, donc j'aimerais autant rester avec ceux de DX9 ... ).
 
Merci de votre aide :)
 
:hello:

mood
Publicité
Posté le 25-02-2007 à 13:27:38  profilanswer
 

n°1519628
karlkox
Posté le 25-02-2007 à 14:50:39  profilanswer
 

Pour isoler le problème et être sûr que ca vient bien de DirectX, utilise comme render audio le "AudioWaveOut Renderer" en l'ajoutant dans le filtre (cf CLSID_AudioRender), si ça ne fonctionne toujours pas, alors le problème ne vient pas de DirectX mais de la pile audio de Vista qui doit surement nécessiter une adaptation.

Message cité 1 fois
Message édité par karlkox le 25-02-2007 à 14:51:51
n°1519639
did-54
Posté le 25-02-2007 à 15:31:04  profilanswer
 

karlkox a écrit :

Pour isoler le problème et être sûr que ca vient bien de DirectX, utilise comme render audio le "AudioWaveOut Renderer" en l'ajoutant dans le filtre (cf CLSID_AudioRender), si ça ne fonctionne toujours pas, alors le problème ne vient pas de DirectX mais de la pile audio de Vista qui doit surement nécessiter une adaptation.


OK merci je vais regarder de ce coté là ;)

n°1519649
did-54
Posté le 25-02-2007 à 15:55:44  profilanswer
 

Je suis pas sur de faire les choses bien.  
 
Voilà comment je fais, en gros.

Code :
  1. CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph);
  2. CoCreateInstance(CLSID_AudioRender, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&pWaveRenderer);
  3. pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
  4. pGraph->QueryInterface(IID_IMediaEventEx, (void **)&pEvent);
  5. //pGraph->QueryInterface(IID_IBasicAudio, (void **)&pAudio);
  6. pGraph->QueryInterface(IID_IMediaPosition, (void **)&pPosition);
  7. pGraph->QueryInterface(IID_IVideoWindow,(void **)&pVideoWindow);
  8. pGraph->AddFilter(pWaveRenderer,NULL);


 
Ca ne fonctionne pas. D'ailleurs avant (sous XP) j'arrivais à lire un fichier mp3 ou autre, mais là il m'envoie bouler au moment ou je fais :
pGraph->RenderFile(_fileName, NULL);
 
 
Donc en résumé j'ai bien l'image, et renderFile marche quand j'essaye d'ouvrir une vidéo, mais ca ne fonctionne jamais avec le son.


Message édité par did-54 le 25-02-2007 à 15:56:16
n°1519662
karlkox
Posté le 25-02-2007 à 16:41:33  profilanswer
 

Code :
  1. pGraph->AddFilter(pWaveRenderer,L"AudioWaveOut Renderer" );

n°1519667
did-54
Posté le 25-02-2007 à 17:02:41  profilanswer
 

Ca ne change rien :(

n°1519673
karlkox
Posté le 25-02-2007 à 17:26:56  profilanswer
 

Les vidéos fonctionnent avec tes players ? Utilise GSPot pour voire le graphe qu'il produit pour le rendering, ça te permettra de savoir lesquels sont utilisés.

n°1519675
did-54
Posté le 25-02-2007 à 17:28:03  profilanswer
 

Toutes les videos marchent, et je viens de me rendre compte qu'il lit correctement les .wav
 
Je vais regarder ce qu'est GSPot.

n°1519676
did-54
Posté le 25-02-2007 à 17:31:33  profilanswer
 

Gspot plante au chargement, enfin il me dit qu'il a fait planter DirectShow.
J'ai quand meme réussi à tester un fichier, mais je ne vois pas en quoi ca m'aide... Au niveau du son c'est du MP3...
 
Je viens de tester avec les wma et ca fonctionne aussi. J'ai pas le codec mp3 ou quoi ? :D
 


Message édité par did-54 le 25-02-2007 à 17:39:12
n°1519678
karlkox
Posté le 25-02-2007 à 17:41:09  profilanswer
 

C'est pas bon signe, si GSpot plante c'est que le support DirectShow est soit à adapter spécifiquement sous Vista soit qu'il faut passer par une autre API qui doit surement exister.
Dans GSpot, en bas à droite, tu as "GSPOT" --> "1" pour la vidéo et l'audio, clique sur le "2" de l'audio, tu devrais avoir à droite le graphe utilisé et le device audio utilisé et le "3" pour jouer l'audio.
Winamp utilise son propre moteur et ne passe pas par DirectShow ;)


Message édité par karlkox le 25-02-2007 à 17:41:58
mood
Publicité
Posté le 25-02-2007 à 17:41:09  profilanswer
 

n°1519682
did-54
Posté le 25-02-2007 à 17:50:15  profilanswer
 

Je ne vois pas ca, enfin en bas j'ai la partie "proposed codecs" etc mais il me dit que le rendering est désactivé dans les options. Quand j'essaye d'activer il me dit que DirectShow a planté.
Le codec mis en cause selon lui est "Unknown codec #7".
 

n°1519683
did-54
Posté le 25-02-2007 à 17:51:22  profilanswer
 

Ce que je comprends pas, c'est pourquoi seulement l'audio foire. Encore ca serait audio et vidéo, je dis pas, mais là...

n°1519687
karlkox
Posté le 25-02-2007 à 18:16:50  profilanswer
 

Ca vient du fait qu'il existe des codecs audio ET vidéo, windows utilise ceux dont il dépend selon le fourcc du contenu du média donc un codec vidéo peut tres bien fonctionner malgré le fait que le codec audio, lui, soit défaillant.
Sinon, tu as bien téléchargé la dernière version ? Il s'agit d'une mise à jour majeure.

n°1519690
did-54
Posté le 25-02-2007 à 18:21:19  profilanswer
 

Si tu parles de GSpot en effet j'ai pas la dernière, j'ai pris la premiere venue sur google mais ils ont sorti une vista compliant y'a 3 jours.


Message édité par did-54 le 25-02-2007 à 18:29:13
n°1519695
did-54
Posté le 25-02-2007 à 18:32:30  profilanswer
 

Je viens donc de tester et en Audio il me met MPEG-1  Layer 3 et stat "Codec not installed" ...
J'ai peur de comprendre :D Ca veut dire que j'ai rien pour décoder du mp3 ?


Message édité par did-54 le 25-02-2007 à 18:58:53
n°1519712
karlkox
Posté le 25-02-2007 à 20:00:49  profilanswer
 

Tout à fait  :D  
Installe ffdshow, il a tout ce qu'il faut pour l'audio et la vidéo ;)

n°1519714
did-54
Posté le 25-02-2007 à 20:08:21  profilanswer
 

Ca fonctionne ! :)
Quelle problème de merde :| M'enfin le principal c'est que ca roule maintenant. Merci beaucoup du coup de main en tout cas :)
 

n°1519729
karlkox
Posté le 25-02-2007 à 20:57:35  profilanswer
 

Au plaisir  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  DirectShow sous Vista ?

 

Sujets relatifs
[Résolu] modification d'une struct managée par un filtre directshow[OpenGL] ARB extensions & win vista beta
quelle sera la place de DotNet dans windows Vista ?[DirectShow] CLSID_VideoMixingRenderer
[Delphi] directshowConfigurer filtre directshow directement depuis le graph?
atl, directshow, devcppConflit direct3d - directshow dans visual C++ 6 et directX SDK 9b
[DirectShow] problème lorsque je détruit mon grapheDirectshow, graphes de filtres connectés "à la main" ...
Plus de sujets relatifs à : DirectShow sous Vista ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR