Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-05-30 16:08:46 Vider le buffer vidéo ? (GSVideo + GLGraphics)

-[eM Tv]-
membre
Date d'inscription: 2011-09-04
Messages: 51

Vider le buffer vidéo ? (GSVideo + GLGraphics)



Bonjour,

j'utilise la librairie GSVideo pour passer d'une vidéo à l'autre au moyen d'une fonction keyPressed, dans le mode de rendu GLGRAPHICS.

lorsque je passe à ma seconde ou troisième vidéo, j'ai des images résiduelles des vidéos précédemment jouées qui s'intercalent aléatoirement au milieu des images de la vidéo qui devrait être affichée, créant des effets stroboscopiques (certes magnifiques mais pas du tout appropriés pour ce que je souhaite faire là).

j'ai trouvé une discussion à ce propos sur le forum processing :
http://forum.processing.org/topic/gsvid … -on-ubuntu
mais pour le moment, cela ne m'a pas permis de régler mon problème.

en gros, il faudrait que je trouve le moyen de vider le buffer lorsque je passe à ma nouvelle vidéo.

voilà mon code :

import codeanticode.glgraphics.*; // librairie GLGraphics
import codeanticode.gsvideo.*; // librairie video GLGraphics
import javax.media.opengl.*; // librairie openGL
import processing.opengl.*; // librairie openGL

GSMovie back; // declaration fichiers video

GLGraphicsOffScreen outputCanvas; 
GLTexture tex;
GLTexture outTex;                  // output texture
int outW = 1024;                   // offscreen buffer width
int outH = 768;                    // offscreen buffer height

void setup() {
  size(1024,768, GLConstants.GLGRAPHICS);
  frameRate(25);
 
  tex = new GLTexture(this);
  outputCanvas = new GLGraphicsOffScreen(this, outW, outH, true, 4); // 4 ?? A checker...
  outTex = new GLTexture(this);

}

void movieEvent(GSMovie back) {
  back.read();
}

void draw() {
  
 
  
outputCanvas.beginDraw();
outputCanvas.fill(0, 0);
outputCanvas.noStroke();
outputCanvas.rect(0, 0, width, height);
if (frameCount == 1) {
    background(0);     
  } 
if (tex.putPixelsIntoTexture()) {
image(tex, 0, 0);
} 

outputCanvas.endDraw();
 
outTex = outputCanvas.getTexture();
image(outTex, 0, 0);

}

void keyPressed() {
  if (key == '1') { 
  back = new GSMovie(this, "back_video1.mov");
  back.setPixelDest(tex);  
  back.loop();   
   }
   
  if (key == '2') {
  back = new GSMovie(this, "back_video2.mov");
  back.setPixelDest(tex);  
  back.loop();  
   }
   
}

Merci d'avance pour toute idée qui m'aiderait à résoudre ce problème...

(J'ai notamment essayé d'utiliser la fonction clear, cf http://glgraphics.sourceforge.net/refer … ture.html, mais sans obtenir le résultat que je recherche pour le moment...)

Hors ligne

 

#2 2013-01-20 21:53:11 Re : Vider le buffer vidéo ? (GSVideo + GLGraphics)

vaga
membre
Date d'inscription: 2013-01-20
Messages: 11

Re: Vider le buffer vidéo ? (GSVideo + GLGraphics)



salut eMTv a tu trouver une réponse en se qui concerne le buffer vidéo je ne parviens pas a me débarrasser de la dernière image de ma vidéo

Merci

Dernière modification par vaga (2013-01-20 22:16:40)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024