Introduction
What is VideoPal?
VideoPal is a free (donationware) video player originaly designed to play HSBS (half side by side) 3D movies within the Oculus Rift. To do this the player needs to decode the video stream and apply a barrel warp filter in real time.

VideoPal does this by using an open source library for decoding (xuggler) and OpenGL (jOGL) for warping the content of the video using a fragment shader. However, even with these great libraries to help out, there is a lot of work behind the player, and a lot more to do!

If you wish to contribute financially to this project (100% optional) you can use the PayPal donate button at the bottom, all donations are welcome! Money will be used to add more developement-time to the project to sort out bugs and make new awesome features!

Features
Current Features
 Oculus Rift support.
 Frame smoothener.
 Supports a multitude of video formats (thanks Xuggler!)
 Filter to covert HSBS to Anaglyph (red/blue) video.
 Real time OpenGL shader editor.
 Extendable with new filters.
 Open source filters included.
"Wreck It Ralph"
Future features
 On-Screen video controls.
 Add head tracking information from the OR as a parameter to a filter.
 Allow user to move head without moving the video.
 Support audio with more than 2 channels.
"Bilbo"

Bugs
Known bugs (alpha)
If the movie has over 2 channels on its audiostream (i.e. 5.1 Sound), sound wont work, fast forward wont work, and the screen will lag a bit now and then. According to xuggle on stackoverlow, this can only be fixed by writing a new resamples that converts X channels to 2.

Key Shortcuts (very important for use within Oculus Rift)
For Oculus Rift
Each filter contains s own set of key-binded shortcuts. As these are not printed out right now.. here are the ones used in Oculus filters.

- LEFT_ARROW = Increase the space between the sides.
- RIGHT_ARROW = Decrease the space between the sides.
- CTRL+LEFT_ARROW = Fast increase the space between the sides.
- CTRL+RIGHT_ARROW = Fast decrease the space between the sides.
- SHIFT+LEFT_ARROR/RIGHT_ARROW = Increase/Decrease the width of the video.
- SHIFT+UP_ARROR/DOWN_ARROW = Increase/Decrease the height of the video.
- PLUS = Increase the size of the video.
- MINUS = Decrease the size of the video.
- CTRL+PLUS = Fast increase the size of the video.
- CTRL+MINUS = Fast decrease the size of the video.


Download
Read this first...
VideoPal is still in alpha stadium. It requires a good computer, a good graphics card and about a lot of RAM. It lacks all kinds of documentation and is currently best suited for developers. It requires Java 7 in order to run. It is dynamically linked to jOGL and Xuggler. It is not open source, but the filters are.

If you make a new cool filter, please share it back and I will add it to the site!

Installation prerequisite and used libraries information
Java 7 (required install)
Xuggler (included)
JogAmp (JOGL) (included)
Java 7 is required due to its new (beta) hotspot garbage collector. Without that, the movie would lag! You can get it here.
Excellent media framework! Xuggle is open source under GPL3 and LGPL3. You can download and replace any of the supplied librarys here.
OpenGL librarys for Java. Provied by JogAmp. For convenice the needed librarys are included, but if you want to you can get and replace them from here.

Windows 7 (64 bit) Instructions
Read all the above information first, or at least install Java 7 or else it wont work.
Download VideoPal.zip and extract to any directory.
Double click on "VideoPal Start" shortcut or start.bat to start player.

Developers
Filters
Each shader and its settings are contained within a filter. A filter is basically an XML-file with corresponding OpenGL fragment and vertex shaders. The XML-file contains parameters that will be sent into the shaders and are also used for a user settings panel. Each parameter in the XML file can be bound to keys for easy increase/decrease while in the Oculus.

The OpenGL shaders are programmable in real time, using a built-in editor. When saved they will automatically recomple and update. This allows for fast development when testing something new.

In the future - parameters for head tracking, mouse movements, etc will (hopefully) be added as parameters to the shaders.

The filters are open source and modifyable by anyone without restriction. However, if you make a cool filter, you are encurreged to let me know and also share it with the world.



Feature Details
Frame Smoothener
Many videos are decoded in 24 FPS. Since alot of graphics cards can dra a lot faster than that (my 1.5 year old graphics card can draw about 2000 FPS in 1080p), VideoPal uses a technice to fade each frame into the next. This produces a smoother version that is much easier on the eyes when viewed within the Oculus, but still dont look redicoules as many of the interpolating high Hz TV screens does. However, the FPS will not be over 60Hz as that is the cap of what the display can show, but future displays might support even higher framerate.

Contact
Author
Written by me, Johan Larsson aka. dac2k9. I am a computer scentist from Sweden. You can contact me at dac2009 at gmail dot com, I will also read the forums over at OculusRift.com. I hope you enjoy the player!