From d564962e0fb6f4c57703f533aae0db3fe88e21b4 Mon Sep 17 00:00:00 2001 From: Casey Reas Date: Fri, 31 Aug 2012 19:04:59 +0000 Subject: [PATCH] Temporarily removing Movie examples --- .../video/examples/Movie/Frames/Frames.pde | 86 ------------------ .../Movie/Frames/data/DejaVuSans-24.vlw | Bin 62900 -> 0 bytes .../video/examples/Movie/Loop/Loop.pde | 28 ------ .../examples/Movie/Pixelate/Pixelate.pde | 50 ---------- .../video/examples/Movie/Reverse/Reverse.pde | 45 --------- .../video/examples/Movie/Scratch/Scratch.pde | 37 -------- .../video/examples/Movie/Speed/Speed.pde | 34 ------- .../Movie/Speed/data/DejaVuSans-24.vlw | Bin 62900 -> 0 bytes 8 files changed, 280 deletions(-) delete mode 100644 java/libraries/video/examples/Movie/Frames/Frames.pde delete mode 100644 java/libraries/video/examples/Movie/Frames/data/DejaVuSans-24.vlw delete mode 100644 java/libraries/video/examples/Movie/Loop/Loop.pde delete mode 100644 java/libraries/video/examples/Movie/Pixelate/Pixelate.pde delete mode 100644 java/libraries/video/examples/Movie/Reverse/Reverse.pde delete mode 100644 java/libraries/video/examples/Movie/Scratch/Scratch.pde delete mode 100644 java/libraries/video/examples/Movie/Speed/Speed.pde delete mode 100644 java/libraries/video/examples/Movie/Speed/data/DejaVuSans-24.vlw diff --git a/java/libraries/video/examples/Movie/Frames/Frames.pde b/java/libraries/video/examples/Movie/Frames/Frames.pde deleted file mode 100644 index e91673190..000000000 --- a/java/libraries/video/examples/Movie/Frames/Frames.pde +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Frames. - * by Andres Colubri - * - * Moves through the video one frame at the time by using the - * arrow keys. Because it estimates the frame counts using the - * framerate of the movie file, and also, many movie codecs don't - * actually support jumping to arbitrary frames, don't expect - * accurate results in most cases. - * - */ - -import processing.video.*; - -Movie movie; -int newFrame; -PFont font; - -void setup() { - size(320, 240, P2D); - background(0); - - movie = new Movie(this, "station.mov"); - newFrame = 0; - setFrame(newFrame); - - noLoop(); - - font = loadFont("DejaVuSans-24.vlw"); - textFont(font, 24); -} - -void movieEvent(Movie movie) { - movie.read(); -} - -void draw() { - image(movie, 0, 0, width, height); - fill(240, 20, 30); - - text(getFrame() + " / " + (getLength() - 1), 10, 30); -} - -void keyPressed() { - if (key == CODED) { - if (keyCode == LEFT) { - if (0 < newFrame) newFrame--; - } else if (keyCode == RIGHT) { - if (newFrame < getLength() - 1) newFrame++; - } - } - - setFrame(newFrame); -} - -int getFrame() { - return ceil(movie.time() * movie.frameRate) - 1; -} - -void setFrame(int n) { - movie.play(); - - float srcFramerate = movie.frameRate; - - // The duration of a single frame: - float frameDuration = 1.0 / srcFramerate; - - // We move to the middle of the frame by adding 0.5: - float where = (n + 0.5) * frameDuration; - - // Taking into account border effects: - float diff = movie.duration() - where; - if (diff < 0) { - where += diff - 0.25 * frameDuration; - } - - movie.jump(where); - - movie.pause(); - - redraw(); -} - -int getLength() { - return int(movie.duration() * movie.frameRate); -} diff --git a/java/libraries/video/examples/Movie/Frames/data/DejaVuSans-24.vlw b/java/libraries/video/examples/Movie/Frames/data/DejaVuSans-24.vlw deleted file mode 100644 index d05a95cb6b88a7c2a6131a2579197eace90d2a40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62900 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 M{5iALA%wU5|7uo-5&!@I diff --git a/java/libraries/video/examples/Movie/Loop/Loop.pde b/java/libraries/video/examples/Movie/Loop/Loop.pde deleted file mode 100644 index 8168d33ba..000000000 --- a/java/libraries/video/examples/Movie/Loop/Loop.pde +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Loop. - * - * Move the cursor across the screen to draw. - * Shows how to load and play a QuickTime movie file. - * - */ - -import processing.video.*; - -Movie movie; - -void setup() { - size(640, 480, P2D); - background(0); - // Load and play the video in a loop - movie = new Movie(this, "station.mov"); - movie.loop(); -} - -void movieEvent(Movie movie) { - movie.read(); -} - -void draw() { - tint(255, 20); - image(movie, mouseX-movie.width/2, mouseY-movie.height/2); -} diff --git a/java/libraries/video/examples/Movie/Pixelate/Pixelate.pde b/java/libraries/video/examples/Movie/Pixelate/Pixelate.pde deleted file mode 100644 index 2249a4a67..000000000 --- a/java/libraries/video/examples/Movie/Pixelate/Pixelate.pde +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Pixelate - * by Hernando Barragan. - * - * Load a QuickTime file and display the video signal - * using rectangles as pixels by reading the values stored - * in the current video frame pixels array. - */ - -import processing.video.*; - -int numPixels; -int blockSize = 10; -Movie myMovie; -color myMovieColors[]; - -void setup() { - size(640, 480, P2D); - noStroke(); - background(0); - myMovie = new Movie(this, "station.mov"); - myMovie.loop(); - numPixels = width / blockSize; - myMovieColors = new color[numPixels * numPixels]; -} - - -// Read new values from movie -void movieEvent(Movie m) { - m.read(); -} - - -// Display values from movie -void draw() { - myMovie.loadPixels(); - - for (int j = 0; j < numPixels; j++) { - for (int i = 0; i < numPixels; i++) { - myMovieColors[j*numPixels + i] = myMovie.get(i, j); - } - } - - for (int j = 0; j < numPixels; j++) { - for (int i = 0; i < numPixels; i++) { - fill(myMovieColors[j*numPixels + i]); - rect(i*blockSize, j*blockSize, blockSize-1, blockSize-1); - } - } -} \ No newline at end of file diff --git a/java/libraries/video/examples/Movie/Reverse/Reverse.pde b/java/libraries/video/examples/Movie/Reverse/Reverse.pde deleted file mode 100644 index c1308fd0a..000000000 --- a/java/libraries/video/examples/Movie/Reverse/Reverse.pde +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Reverse playback example. - * - * The Movie.speed() method allows to - * change the playback speed. Use negative - * values for backwards playback. Note that - * not all video formats support backwards - * playback. This depends on the underlying - * gstreamer plugins used by gsvideo. For - * example, the theora codec does support - * backward playback, but not so the H264 - * codec, at least in its current version. - * - */ - -import processing.video.*; - -Movie myMovie; -boolean speedSet = false; - -void setup() { - size(320, 240, P2D); - background(0); - myMovie = new Movie(this, "balloon.ogg"); - myMovie.play(); -} - -void movieEvent(Movie myMovie) { - myMovie.read(); -} - -void draw() { - if (!speedSet) { - // Setting the speed should be done only once, - // this is the reason for the if statement. - speedSet = true; - myMovie.jump(myMovie.duration()); - // -1 means backward playback at normal speed. - myMovie.speed(-1.0); - // Setting to play again, since the movie stop - // playback once it reached the end. - myMovie.play(); - } - image(myMovie, 0, 0, width, height); -} \ No newline at end of file diff --git a/java/libraries/video/examples/Movie/Scratch/Scratch.pde b/java/libraries/video/examples/Movie/Scratch/Scratch.pde deleted file mode 100644 index 4768b5e86..000000000 --- a/java/libraries/video/examples/Movie/Scratch/Scratch.pde +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Scratch. - * by Andres Colubri - * - * Move the cursor horizontally across the screen to set - * the position in the movie file. - */ - -import processing.video.*; - -Movie movie; - -void setup() { - size(640, 480, P2D); - background(0); - - movie = new Movie(this, "station.mov"); - - // Pausing the video at the first frame. - movie.play(); - movie.jump(0); - movie.pause(); -} - -void movieEvent(Movie movie) { - movie.read(); -} - -void draw() { - // A new time position is calculated using the current mouse location: - float f = constrain((float)mouseX / width, 0, 1); - float t = movie.duration() * f; - movie.play(); - movie.jump(t); - movie.pause(); - image(movie, 0, 0, width, height); -} \ No newline at end of file diff --git a/java/libraries/video/examples/Movie/Speed/Speed.pde b/java/libraries/video/examples/Movie/Speed/Speed.pde deleted file mode 100644 index cb904d1af..000000000 --- a/java/libraries/video/examples/Movie/Speed/Speed.pde +++ /dev/null @@ -1,34 +0,0 @@ -/** - * GSVideo movie speed example. - * - * Use the Movie.speed() method to change - * the playback speed. - * - */ - -import processing.video.*; - -Movie movie; - -void setup() { - size(320, 240, P2D); - background(0); - movie = new Movie(this, "balloon.ogg"); - movie.loop(); - - PFont font = loadFont("DejaVuSans-24.vlw"); - textFont(font, 24); -} - -void movieEvent(Movie movie) { - movie.read(); -} - -void draw() { - image(movie, 0, 0, width, height); - - float newSpeed = map(mouseX, 0, width, 0.1, 2); - movie.speed(newSpeed); - fill(240, 20, 30); - text(nfc(newSpeed, 2) + "X", width - 80, 30); -} diff --git a/java/libraries/video/examples/Movie/Speed/data/DejaVuSans-24.vlw b/java/libraries/video/examples/Movie/Speed/data/DejaVuSans-24.vlw deleted file mode 100644 index d05a95cb6b88a7c2a6131a2579197eace90d2a40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62900 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 M{5iALA%wU5|7uo-5&!@I