Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : probleme directshow wmv [ Archives / DirectX ] (gwenp68)

mardi 28 mars 2006 à 16:42:06 | probleme directshow wmv

gwenp68

Bonjour, j'ai suivi attentivement les cours sur directshow sur labo-dotnet, et je commence a en comprendre le fonctionnement.. Néanmoins, j'ai 2 petits problemes. Quand j'ouvre un avi (exemple donné dans le cours) celui ci se ferme (sans planter, mais l'affichage disparait) au bout de qq secondes de film (film de 700Mo).. Mais ce n'est pas ma question principale. Ma question est : Avec l'avi je considere que j'arirve a relier les filtres entre eux, pas de pb, mais quand je tente avec un wmv (sans m'occuper du son) rien ne s'affiche. J'ai bien le petit DivxG400 bleu dans ma barre des taches qui se lance mais il switch puis disparait et rien ne s'affiche a l'ecran. Voici les filtres que j'ai mis dans la classe CLSID : ///Windows Media Source File public static readonly Guid WMSource = new Guid("{187463A0-5BB7-11D3-ACBE-0080C75E246E}"); ///WmVideo Decoder DMO public static readonly Guid WMVideoDecoderDMO = new Guid("{94297043-BD82-4DFD-B0DE-8177739C6D20}"); ///DivXG400 public static readonly Guid DivXG4000 = new Guid("{9D2935C7-3D8B-4EF6-B0D1-C14064698794}"); ///File Render public static readonly Guid VideoRender = new Guid("{B87BEB7B-8D29-423F-AE4D-6582C10175AC}"); Quand je fais un render media dans graphedit, j'ai ca : le source relié par le pin "Raw Video 1" (le 0 etant l'audio) relié au pin in du WMVideo Decoder DMO relié au pin in du DIvXG400 relié au pin in du video renderer.. (Désolé mais je trouve pas le moyen d'incorporer le screechot depuis mon pc...) Donc voici le code que j'ai implémenté : //////////////////////////////////////////////////////DEBUT////////////////////////////////////////////////////////// public void boule(IGraphBuilder graphBuilder, Type comtype, object comobj) { IGraphBuilder graphBuilder; DShowNET.IMediaControl mediaCtrl; DShowNET.IVideoWindow videoWin; Type comtype = null; object comobj = null; comtype = Type.GetTypeFromCLSID(Clsid.FilterGraph); if (!DsUtils.IsCorrectDirectXVersion()) // teste si la version de DirectX est OK { MessageBox.Show(this, "DirectX 9.0 n'est pas installé sur votre système", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Stop); this.Close(); } // déclaration du graphe de filtre comobj = Activator.CreateInstance(comtype); graphBuilder = (IGraphBuilder)comobj; comobj = null; //////////////////////////////////// jusque la koi de plus normal /////////////////////////////////////////////////// //Création des filtres IBaseFilter fileSource; comtype = Type.GetTypeFromCLSID(Clsid.WMSourceFile); comobj = Activator.CreateInstance(comtype); fileSource = (IBaseFilter)comobj; comobj = null; IBaseFilter wmvideodecoderdmo; comtype = Type.GetTypeFromCLSID(Clsid.WMVideoDecoderDMO); comobj = Activator.CreateInstance(comtype); wmvideodecoderdmo = (IBaseFilter)comobj; comobj = null; IBaseFilter divxg400; comtype = Type.GetTypeFromCLSID(Clsid.DivXG4000); comobj = Activator.CreateInstance(comtype); divxg400 = (IBaseFilter)comobj; comobj = null; IBaseFilter videorender; comtype = Type.GetTypeFromCLSID(Clsid.VideoRender); comobj = Activator.CreateInstance(comtype); videorender = (IBaseFilter)comobj; comobj = null; // ajout des filtres dans le graphe de filtres graphBuilder.AddSourceFilter("C:/boule[1].wmv", "File Source", out fileSource); //Avec ue autre video cela ne marche pas non plus... graphBuilder.AddFilter(wmvideodecoderdmo, "WMVideo Decoder DMO"); graphBuilder.AddFilter(divxg400, "DivX G400"); graphBuilder.AddFilter(videorender, "Video Render"); IEnumPins enumPins; IPin[] inPin = new IPin[1]; IPin[] outPin = new IPin[1]; int fetched; // source out fileSource.EnumPins(out enumPins); enumPins.Reset(); enumPins.Next(1, outPin, out fetched); enumPins.Next(1, outPin, out fetched); //comme la pin de sortie de la video est la seconde ?... // decoder wmv dmo in wmvideodecoderdmo.EnumPins(out enumPins); enumPins.Reset(); enumPins.Next(1, inPin, out fetched); // liaison graphBuilder.Connect(outPin[0], inPin[0]); //decoder out wmvideodecoderdmo.EnumPins(out enumPins); enumPins.Reset(); enumPins.Next(1, outPin, out fetched); //divxG400 in divxg400.EnumPins(out enumPins); enumPins.Reset(); enumPins.Next(1, inPin, out fetched); // liaison graphBuilder.Connect(outPin[0], inPin[0]); // divxg400 out divxg400.EnumPins(out enumPins); enumPins.Reset(); enumPins.Next(1, outPin, out fetched); // render in videorender.EnumPins(out enumPins); enumPins.Reset(); enumPins.Next(1, inPin, out fetched); // liaison graphBuilder.Connect(outPin[0], inPin[0]); //////////////////////////////////////La fin normale///////////////////////////////////////////////////////// videoWin = graphBuilder as DShowNET.IVideoWindow; videoWin.put_Owner(panel1.Handle); videoWin.SetWindowPosition(0, 0, panel1.Width, panel1.Height); videoWin.put_WindowStyle(0x40000000); // lecture du graphe mediaCtrl = (DShowNET.IMediaControl)graphBuilder; mediaCtrl.Run(); /////////////////////////////////////////////////////////FIN////////////////////////////////////////////////////////////// voila.. Alors la seule chose que je vois c les 2 pins de sortie du Video Source dont je ne connecte pas comme il faut la deuxieme, mais je vois pas... J'ai essayé de faire un tableau a 2 cases et de mettre le 2ieme pin ds la 2ieme case mais ca n'a rien changé.. Si qqun peut m'aider il est le bienvenu.. merci d'avance !!!!!!!!! gwenp68



Cette discussion est classé dans : out, enumpins, comobj, graphbuilder, comtype


Répondre à ce message

Sujets en rapport avec ce message

Aide pour construire un graphe avec directshow [ par fabpan ] Bonjour,Depuis quelque temps je tente de réaliser un graph de filtres avec la librairie de Directshowlib (2005) malheureusement cela ne donne rien car Crypter une chaine de texte [ par Kaneda_Shotaro ] Bonjour j'essaye de crypter du texte avec cette classe : public static class Cryptage    {        public static byte[] EncryptString(string txt, s fichier blob [ par verbeyst ] J'essaie de faire un transfert de fichiers sous le format blob binary large object vers une db sql server. Après un certain temps de transfert je reç Problème sur oDoc.Utility.GetEntity(out out1, out out2, s); [ par Difre1732 ] Bonjour, Quand je veux récupérer l'objet entité, il me retoure que mon objet est un objet COM mais de valeur NULL, à côté de ça, il me retourne le tab erreur de strings [ par rhodan51 ] j'ai recopié l'exemple d'un bouquin mais il m'apparait une erreur lors de la compilation :[quote]chaine.cs(7,20): error CS1502: La méthode surchargée Console.WriteLine ou Console.Out.WriteLine ??? [ par rhodan51 ] dans le bouquin qui me sert à apprendre le C#, l'auteur utilise Console.Out.WriteLine pour écrire du texte en mode console. Mais en regardant divers c System.Net.WebClient gestion d'un time out [ par ultima_93 ] Bonjour jaimerai savoir si il y'a une commande sur System.Net.WebClient afin d'augmenter le time out car je fais une requete et la reponse qu'elle me WebServices en csharp : erreur out of range ! [ par zigxag ] Bonjour,Je sollicite votre aide car je ne trouve pas ce qu'il ne va pas dans mon code source. J'ai une fonction qui appelle un service web. Voici ma f Attributs directionnels [ par Lutinore ] Salut, y'a t'il une différence entre ses définitions COM !?[ Guid( "56a868b1-0ad4-11ce-b03a-0020af0ba770" ) ][ InterfaceType( ComInterfaceType.Interfa decodage c# [ par jesaipa_1 ] Slt a tous, je n'arrive pas a comprendre ces declaration qui sont en csharp et donc je n'arrive pas a les codées correctement en csharpquelqu'un pourr


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.