VMR et OSD

Échanges entre les développeurs et les utilisateurs au sujet du développement logiciel de Pouchin TV Mod. Les participants sont présumés avoir des connaissances raisonnables en matière de programmation informatique.

VMR et OSD

Messagepar Gingko » 29 Déc 2008, 15:39

Bonjour

Je viens de placer dans le SVN une version (r159) qui inclut une réécriture des fonctions VMR (inclut maintenant VMR7 et VMR9) et une réécriture de l'OSD (maintenant compatible Vista avec VMR9).

Merci aux développeurs de tester.

(attention à certaines incompatibilités au niveau des raccourcis programmables)

Gingko
Gingko
․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․
Tuners utilisés, sur 3 ordis : • USB : AverMedia HDTV DVB-T Volar (2×) • PCI : Hauppauge Nova-DT Dual DVB-T • Express Card : AverMedia Digi Express 54
Avatar de l’utilisateur
Gingko
Administrateur du site et développeur
 
Messages: 1953
Enregistré le: 05 Aoû 2007, 12:57
Localisation: Pantin (IDF, 93)

Re: VMR et OSD

Messagepar lolo_32 » 29 Déc 2008, 19:23

Je viens de réécrire une grosse partie pour éviter ces problèmes de raccourcis.
Émetteur TNT: Toulouse - Pic du Midi
Cartes :
  • Hauppauge HVR-1300
  • HVR-900
  • EyeTV Diversity via les pilotes Pinnacle PCTV Dual DVB-T Diversity Stick (2001e)
Pouchin TV Mod : dernière version compilable et de développement
Avatar de l’utilisateur
lolo_32
Administrateur du site et développeur
 
Messages: 527
Enregistré le: 22 Juil 2007, 21:46
Localisation: Dans le pays du fois gras (Gers)

Re: VMR et OSD

Messagepar ronaldo1 » 30 Déc 2008, 23:59

Salut,
Je n'ai pu faire qu'un petit test sous Vista 64Bits hier soir.
Premier point, je n'ai pas pu compilé en 64Bits (je n'ai regardé pas pourquoi) donc j'ai compilé en 32Bits.
Deuxième point: Lors de mes premiers test je n'ai eu le son moins une seconde d'une seconde mais je n'ai pas eu d'image (Pouchinbad.log)
Troisième point: En redémarrant le PC ça à fonctionné à merveille, rien n'a pu empêcher PTVMod de fonctionner (PouchinGood.log) :wink:

Edit: La consommation µP de PouchinTv 32Bits + ffdshow 32 Bits sous Vista 64Bits est véritablement excessif (3 fois plus importante qu'en temps normal).
Fichiers joints
pouchinGood.log
(7.58 Kio) Téléchargé 21 fois
pouchinBad.log
(10.34 Kio) Téléchargé 21 fois
Avatar de l’utilisateur
ronaldo1
Modo
 
Messages: 231
Enregistré le: 19 Aoû 2007, 11:56

Re: VMR et OSD

Messagepar lolo_32 » 31 Déc 2008, 15:57

ronaldo1 a écrit:Salut,
Je n'ai pu faire qu'un petit test sous Vista 64Bits hier soir.
Premier point, je n'ai pas pu compilé en 64Bits (je n'ai regardé pas pourquoi) donc j'ai compilé en 32Bits.
Je viens de tester : je n'ai aucun problème pour compiler en 64 bits
ronaldo1 a écrit:Deuxième point: Lors de mes premiers test je n'ai eu le son moins une seconde d'une seconde mais je n'ai pas eu d'image (Pouchinbad.log)
Troisième point: En redémarrant le PC ça à fonctionné à merveille, rien n'a pu empêcher PTVMod de fonctionner (PouchinGood.log) :wink:

Edit: La consommation µP de PouchinTv 32Bits + ffdshow 32 Bits sous Vista 64Bits est véritablement excessif (3 fois plus importante qu'en temps normal).

Est-ce qu'il n'y a pas eu un problème d'incompatibilité avec un logiciel fonctionnant, ou ayant fonctionné pour le problème du deuxième point ? Est-ce que le problème s'est reproduit ?
Émetteur TNT: Toulouse - Pic du Midi
Cartes :
  • Hauppauge HVR-1300
  • HVR-900
  • EyeTV Diversity via les pilotes Pinnacle PCTV Dual DVB-T Diversity Stick (2001e)
Pouchin TV Mod : dernière version compilable et de développement
Avatar de l’utilisateur
lolo_32
Administrateur du site et développeur
 
Messages: 527
Enregistré le: 22 Juil 2007, 21:46
Localisation: Dans le pays du fois gras (Gers)

Re: VMR et OSD

Messagepar ronaldo1 » 31 Déc 2008, 17:21

Bonjour, en fait je n'utilise jamais Vista sauf pour faire des tests et à par Firefox rien y est installé. Ce que je présume après coup, c'est que la mise à jours de Vista (qui se faisait en même temps que le test) a dû perturber l'affichage de PouchinTv.

Je n'ai pas retesté depuis.
Avatar de l’utilisateur
ronaldo1
Modo
 
Messages: 231
Enregistré le: 19 Aoû 2007, 11:56

Re: VMR et OSD

Messagepar thorcyar » 02 Jan 2009, 14:38

salut à tous

ça compile bien ici en 64 bits, no souci.

En ce qui concerne l'osd, ça s'affiche, quand même un peu pixélisé (c.f. capture jointe : je suis en 1920x1200 sur le bureau, ça fait un peu étrange mais c'est quand même bien ;) )




1 bug : si on active l'osd dans les menus sans redémarrer, la barre des tâches ne se met plus à jour pour le volume (très mineur)

2eme inconvénient : le changement de volume en quelques sortes "lague" si l'osd est activé.
Fichiers joints
Sans titre.jpg
Sans titre.jpg (10.82 Kio) Vu 11606 fois
thorcyar
 
Messages: 50
Enregistré le: 04 Nov 2008, 18:42

Re: VMR et OSD

Messagepar Gingko » 02 Jan 2009, 21:38

thorcyar a écrit:En ce qui concerne l'osd, ça s'affiche, quand même un peu pixélisé (c.f. capture jointe : je suis en 1920x1200 sur le bureau, ça fait un peu étrange mais c'est quand même bien ;) )


Normal. L'OSD en VMR9 est dessiné sur une image qui a les dimensions natives de la vidéo (sauf en mode "étirer la vidéo"), et qui est donc dilatée au prorata. Je pourrais sans doute faire plus grand, au prix de consommer davantage de mémoire. Je vais y réfléchir.

Il est vrai aussi que je n'ai pas testé sur plus grand que 1280 x 1024.

thorcyar a écrit:1 bug : si on active l'osd dans les menus sans redémarrer, la barre des tâches ne se met plus à jour pour le volume (très mineur)


Je jetterai un oeil à ça. Ca ne doit pas être un très gros problème.

thorcyar a écrit:2eme inconvénient : le changement de volume en quelques sortes "lague" si l'osd est activé.


C'est à cause d'une temporisation explicite que j'ai été obligé d'introduire : si je laissais l'OSD de volume en VMR9 se mettre à jour à la même vitesse qu'avant, il arrivait que ça "casse" la vidéo.

Gingko
Gingko
․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․
Tuners utilisés, sur 3 ordis : • USB : AverMedia HDTV DVB-T Volar (2×) • PCI : Hauppauge Nova-DT Dual DVB-T • Express Card : AverMedia Digi Express 54
Avatar de l’utilisateur
Gingko
Administrateur du site et développeur
 
Messages: 1953
Enregistré le: 05 Aoû 2007, 12:57
Localisation: Pantin (IDF, 93)

Re: VMR et OSD

Messagepar MatMaul » 04 Jan 2009, 22:32

trop bien merci beaucoup :)
MatMaul
Administrateur du site et développeur
 
Messages: 147
Enregistré le: 03 Avr 2007, 03:16

Re: VMR et OSD

Messagepar MatMaul » 07 Jan 2009, 17:49

petite question : pourquoi t'utilise le mode renderless avec le vmr7 ?
si je comprend bien le code t'utilise l'allocator presenter par défaut donc vaudrait mieux utiliser le mode windowless non ?
je viens de tester en mode windowless et j'ai aucun pb.

patch :
Code: Tout sélectionner
Index: rendering.cpp
===================================================================
--- rendering.cpp   (revision 162)
+++ rendering.cpp   (working copy)
@@ -580,7 +580,6 @@
 
    virtual HRESULT      CreateAndAdd();
    virtual HRESULT      Configure();
-   virtual HRESULT      PrepareSurface();
    virtual HRESULT      InitDeinterlace();   //!< \todo Voir \p CVideoMixingRenderer::InitDeinterlace
    virtual HRESULT      InitControl();
 
@@ -801,52 +800,17 @@
          TEXT("L'interface de configuration VMR n'est pas disponible"),
          E_NOINTERFACE);
 
-   HRESULT hr = pVMRConfig->SetRenderingMode(VMRMode_Renderless);
+   HRESULT hr = pVMRConfig->SetRenderingMode(VMRMode_Windowless);
 
-   if (SUCCEEDED(hr) && use_vmr_deinterlace)
-      hr = pVMRConfig->SetNumberOfStreams(1);
-   return hr;
-}
-
-HRESULT CVideoMixingRenderer7::PrepareSurface()
-{
-   CComQIPtr<IVMRSurfaceAllocatorNotify> pNotify(*this);
-
-   if (!pNotify)
-      return erreur(
-         TEXT("L'interface IVMRSurfaceAllocatorNotify n'a pas été trouvée"),
-         E_NOINTERFACE);
-
-   CComPtr<IVMRSurfaceAllocator> pSurfAlloc;
-
-   HRESULT hr = pSurfAlloc.CoCreateInstance(CLSID_AllocPresenter, NULL, CLSCTX_INPROC_SERVER);
-
-   if (FAILED(hr))
-      return erreur(TEXT("L'interface IVMRSurfaceAllocator n'a pas été trouvée"), hr);
-
-   {
-      CComQIPtr<IVMRImagePresenterConfig> pPresConf(pSurfAlloc);
-
-      if (!pPresConf)
-         return erreur(
-            TEXT("L'interface IVMRImagePresenterConfig n'a pas été trouvée"),
-            E_NOINTERFACE);
-
-      hr = pPresConf->SetRenderingPrefs(
-            is_vista ?
-            RenderPrefs_AllowOffscreen :
-            (RenderPrefs_ForceOverlays | RenderPrefs_DoNotRenderColorKeyAndBorder)
-         );
-
-      if (FAILED(hr))
-         return erreur(TEXT("Échec de SetRenderingPrefs"), hr);
+   if (SUCCEEDED(hr)) {
+      hr = pVMRConfig->SetRenderingPrefs(
+         is_vista ?
+         RenderPrefs_AllowOffscreen :
+         (RenderPrefs_ForceOverlays | RenderPrefs_DoNotRenderColorKeyAndBorder)
+      );
+      if (SUCCEEDED(hr) && use_vmr_deinterlace)
+         hr = pVMRConfig->SetNumberOfStreams(1);
    }
-
-   hr = pNotify->AdviseSurfaceAllocator(0x118218, pSurfAlloc);
-   myprintf(TEXT("%?erreur AdviseSurfaceAllocator, hr=0x%08x\n"), FAILED(hr), hr);
-   hr = pSurfAlloc->AdviseNotify(pNotify);
-   myprintf(TEXT("%?erreur AdviseNotify, hr=0x%08x\n"), FAILED(hr), hr);
-
    return hr;
 }
 
Index: res.rc
===================================================================
--- res.rc   (revision 162)
+++ res.rc   (working copy)
@@ -176,7 +176,7 @@
     GROUPBOX        "Audio",IDC_STATIC,7,62,276,30
     CONTROL         "Utiliser l'AC3 par défaut",IDC_AC3_DEF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,75,262,10
     GROUPBOX        "Vidéo",IDC_STATIC,7,98,276,36
-    CONTROL         "Mode VMR7 “renderless”",IDC_USE_VMR7,"Button",BS_AUTORADIOBUTTON,14,108,120,10
+    CONTROL         "Mode VMR7 “windowless”",IDC_USE_VMR7,"Button",BS_AUTORADIOBUTTON,14,108,120,10
     CONTROL         "Mode VMR9 “windowless”",IDC_USE_VMR9,"Button",BS_AUTORADIOBUTTON,14,120,120,10
     CONTROL         "Utiliser l'OSD (On Screen Display\n = texte sur l'écran)",IDC_USE_OSD,
                     "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,161,110,120,17
MatMaul
Administrateur du site et développeur
 
Messages: 147
Enregistré le: 03 Avr 2007, 03:16

Re: VMR et OSD

Messagepar Gingko » 07 Jan 2009, 20:38

MatMaul a écrit:petite question : pourquoi t'utilise le mode renderless avec le vmr7 ?
si je comprend bien le code t'utilise l'allocator presenter par défaut donc vaudrait mieux utiliser le mode windowless non ?
je viens de tester en mode windowless et j'ai aucun pb.

Parce que c'est ce qui existait auparavant.

Je me suis attaché, en mode VMR7, à ne rien changer à l'existant, afin d'être sûr qu'en cas de problèmes avec le VMR9, l'utilisateur ait toujours la possibilité de se rabattre sur le mode de fonctionnement précédent.

Ceci étant dit, la manière dont j'ai implémenté la chose est maintenant éminemment extensible, ce qui veut dire qu'il est normalement possible, pour un coût de développement relativement minime (il suffit de créer les dérivations nécessaires à la classe CVideoMixingRenderer7), d'ajouter des modes de sortie supplémentaires, dont en particulier un mode VMR7 "windowless". J'ai même déjà réservé un code spécifique pour ça dans les items de configuration.

À terme, on pourrait même finir par décider avoir autant de modes de sortie qu'il y en a dans, par exemple, Media Player Classic ou Media Player Classic - Home Cinema.

Gingko
Gingko
․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․
Tuners utilisés, sur 3 ordis : • USB : AverMedia HDTV DVB-T Volar (2×) • PCI : Hauppauge Nova-DT Dual DVB-T • Express Card : AverMedia Digi Express 54
Avatar de l’utilisateur
Gingko
Administrateur du site et développeur
 
Messages: 1953
Enregistré le: 05 Aoû 2007, 12:57
Localisation: Pantin (IDF, 93)

Re: VMR et OSD

Messagepar MatMaul » 07 Jan 2009, 21:39

bin dans l'état actuel ca ma l'air strictement équivalent au windowless.
le renderless est utile quand on utilise un custom allocator presenter ce qui n'est pas le cas pour le moment.

je suis en train de rajouter l'EVR (bon ok c'est quasiment que du copier-coller du vmr9 :P) histoire qu'on supporte l'accélération matérielle sur vista quand pouchin aura le H264 de fonctionnel.
MatMaul
Administrateur du site et développeur
 
Messages: 147
Enregistré le: 03 Avr 2007, 03:16

Re: VMR et OSD

Messagepar lolo_32 » 07 Jan 2009, 21:43

Par contre, je me pose une petite question :
pourquoi les zones noires (sur le pourtour de certaines chaînes) qui étaient totalement noire en VMR7 sont simplement gris sombre avec le rendu VMR9 ?
Émetteur TNT: Toulouse - Pic du Midi
Cartes :
  • Hauppauge HVR-1300
  • HVR-900
  • EyeTV Diversity via les pilotes Pinnacle PCTV Dual DVB-T Diversity Stick (2001e)
Pouchin TV Mod : dernière version compilable et de développement
Avatar de l’utilisateur
lolo_32
Administrateur du site et développeur
 
Messages: 527
Enregistré le: 22 Juil 2007, 21:46
Localisation: Dans le pays du fois gras (Gers)

Re: VMR et OSD

Messagepar MatMaul » 07 Jan 2009, 21:50

MatMaul
Administrateur du site et développeur
 
Messages: 147
Enregistré le: 03 Avr 2007, 03:16

Re: VMR et OSD

Messagepar Gingko » 08 Jan 2009, 15:26

lolo_32 a écrit:Par contre, je me pose une petite question :
pourquoi les zones noires (sur le pourtour de certaines chaînes) qui étaient totalement noire en VMR7 sont simplement gris sombre avec le rendu VMR9 ?

Je ne constate pas ce problème, je crains que ça soit difficile à trouver.

Peut-être que l'image OSD incrustée (de dimensions égale à celle de la vidéo), qui a un fond transparent chez moi, ne l'est que partiellement chez toi, mais je ne sais pas pourquoi.

Normalement, c'est la constante colorKey qui détermine cette transparence.

Gingko
Gingko
․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․ ․
Tuners utilisés, sur 3 ordis : • USB : AverMedia HDTV DVB-T Volar (2×) • PCI : Hauppauge Nova-DT Dual DVB-T • Express Card : AverMedia Digi Express 54
Avatar de l’utilisateur
Gingko
Administrateur du site et développeur
 
Messages: 1953
Enregistré le: 05 Aoû 2007, 12:57
Localisation: Pantin (IDF, 93)

Re: VMR et OSD

Messagepar MatMaul » 08 Jan 2009, 15:40

non c'est beaucoup plus "simple" que ca cf le lien que j'ai posté.
ca n'a rien à voir avec pouchin c'est un pb récurrent avec le vmr9, cf le lien pour les différentes solutions.

avec une nvidia c'est simple, MAJ des drivers puis :
NVIDIA Control Panel -> Video & Television -> Adjust video color settings -> Select "With the NVIDIA settings" -> Advanced tab -> Set Dynamic Range to "Full (0-255)".
MatMaul
Administrateur du site et développeur
 
Messages: 147
Enregistré le: 03 Avr 2007, 03:16

Suivante

Retourner vers Développement

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron