We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hi,
in my sketch i created a custom class, of which every created instance should load a video, and then display it on a different area on the screen.
now that i have created two instances, i only see one video which is playing at double framerate, maybe because the call to each of the two objects' display() function calls the read function on the same video.
i am not sure if i did everything correctly in the class constructor with PApplet parent etc. never really managed to understand that. i would like every video to be inside ('encapsulated') in its respective Channel-instance.
best regards, florian.
import hypermedia.video.*;
int newFrame = 0;
int movFrameRate = 25;
int videoX = 480;
int videoY = 270;
float vidScale = 0.7;
Channel c1, c2;
void setup() {
size(800, 450);
background(0);
frameRate(25);
c1 = new Channel(this, 1, "/Users/monopuce/Desktop/chan_klein_h264/A-01K.mov", 0, 0);
c2 = new Channel(this, 1, "/Users/monopuce/Desktop/chan_klein_h264/A-02K.mov", 400, 0);
}
void draw() {
background(0);
c1.display();
c2.display();
}
class Channel {
OpenCV clip; // Movie clip;
int vidX, vidY, vidXsize, vidYsize, screen;
float vidScale;
String filename;
Channel(PApplet parent, int clScreen, String clFilename, int vidX, int vidY){
screen = clScreen;
filename = clFilename;
vidX = 0; vidY = 0;
vidXsize = 480; vidYsize = 270;
vidScale = 0.7;
clip = new OpenCV( parent ); // clip = new Movie(parent, filename);
clip.movie( filename, int(vidXsize*vidScale), int(vidYsize*vidScale) );
}
void display(){
print(frameCount + " ");
clip.read();
image( clip.image(), vidX, vidY );
}
}
Answers
Sorry, made a mistake, bad variable handover to the class. i see the same video with double speed at two areas on screen. pretty sure the two instances of my class somehow address the same loaded video.
here's the updated code: