Recently I wrote about bino, a stereoscopic video player that is usable with linux and also supports quad buffered stereo. In the meanwhile the first stable version 1.0 has been released. Its main features are:
Support for 2D and stereoscopic 3D video in a wide variety of input formats and stereo layouts.
Support for many 3D output methods, including anaglyph glasses, shutter glasses, autostereoscopic displays, 3D TV sets, and distributed multi-display installations such as powerwalls or Virtual Reality installations.
The Gentoo way
For gentoo users here is my overlay including the ebuild:
During my last kernel upgrade I recognized that the iptables mirror target I published here, here and here and here does not work anymore with kernel version 2.6.37. There were some slight changes in kernel headers. You can download the newer version for 2.6.37 and probably future kernels here:
To build the module, boot the kernel you want to use the module with. Afterwards unpack the archive, run the compile.sh script and the install.sh script.
Now you may use the mirror target in place of the reject or drop target in the INPUT, FORWARD and PREROUTING chains, like this in your firewall script:
$IPTABLES -A INPUT -j MIRROR
Beware: The use of the mirror target may have strange results, i.e. if you want to connect to the iptables protected machine, you may end up connecting to the local machine without recognizing it. It also may use much bandwith. Worst case: if you have two machines using this module they may end up playing pingpong. So you have been warned, use with caution and at your own risk. For more information see: MIRROR target.
Downloads for older kernel versions are below. Notice the version numbering 2.6.25 works for kernels up to 2.6.27. 2.6.28 also works for 2.6.29 and 2.6.30 kernels. The 2.6.13 version of the module should work up to kernel version 2.6.16.
Starting with 2.6.36 tuxonice has been removed from zen-sources again. A few days ago the zen-sources-2.6.37_p20110325 ebuild appeared in the gentoo portage tree. Since I did not want to stick to my old 2.6.35 kernel I patched the brand new zen-sources-2.6.37_p20110325 with tuxonice. The official tuxonice patch from tuxonice.net did not work, so I had to slightly modify it to apply cleanly on zen-sources.
Suspend to RAM works at least on my Dell Precison M65 and my Desktop, as well as suspend to disk does. Well, I have to mention that I wanted to use BFS, the brain fuck scheduler, to increase performance. This resulted in tuxonice freezing during atomic copy when trying to hibernate, thus I had to use the CFS scheduler again.
Download the zen-sources 2.6.37_p20110325 patch here. Then apply the patch to the vanilla kernel sources avalable from kernel.org. Afterwards download my modified tuxonice patch from here:
and extract it in /usr/local/portage. Be sure to include the following line in your /etc/make.conf:
PORTDIR_OVERLAY=”/usr/local/portage”
If you want to use tuxonice include toi in your USE-flags. Then emerge zen-sources and build the kernel as you wish. It would be nice if this USE-flag and the ebuild modification find their way into the portage tree.
Tuxonice is not officially supported in current zen-sources. So If you’re using the files above, don’t report any bugs to zen-sources.org. You are on your own.
For my Precision M65 I used the following kernel config:
MPO stereo images, that were taken in example using Fujifilm FinePix Real 3D Cameras contain a field parallax in their exif data. The parallax value can be used by stereoscopic viewers like my stereoscopic image viewer SIV to adjust the 3D effect. By manipulating this value one can can customize the strength of the pop out effect and reduce the ghosting effect. This may lead to a more pleasuring viewing experience.
The parallax value can easily be displayed using exiftool:
exiftool -ee -Parallax DSCF0045.MPO
If you want to set the parallax value of an image, this is not that easy, since the value is stored in the exif data of the second embedded jpeg file in the MPO, which is not directly writable with exiftool. However one can find out the beginning of the second file with exiftool, extract the image and then set the parallax value. Afterwards on can put all together again using dd. Doing this manually is a quite awful task, so I wrote a little script for automating it:
#!/bin/bash #setparallax.sh #$1: MPO File $2: Parallax value
For determining the value that matches the visual requirements of your image you may use the parallax adjustment function of SIV (+/- key) and use the value on the OSD and printed out in the console. Perhaps some day I will add the functionality, to directly write the new parallax value to the MPO file, to SIV. However the setparallax script at least gives us the possibility to write the parallax value until then.
The current OpenSceneGraph ebuild in the Gentoo Portage tree does not install the OpenSceneGraph sample data set. These files include some sample models, fonts, bitmaps etc. used in the OpenSceneGraph examples and other applications. This is a problem for applications relying on the files to be available. In example my stereoscopic image viewer SIV relies on having the OpenSceneGraph sample dataset installed and fails to load the arial font from the dataset with the following error:
Download the modified ebuild and extract the archive into /usr/local/portage. Be sure to include the following line in your /etc/make.conf:
PORTDIR_OVERLAY=”/usr/local/portage”
If you want to use OpenSceneGraph with ffmpeg support, download the patch from bugs.gentoo.org and copy it to /etc/portage/patches/dev-games/openscenegraph-2.8.3/ as described there, to compile with ffmpeg-0.6. Otherwise the emerge will fail with:
/osgPlugins/ffmpeg/FFmpegAudioStream.hpp:18:9: error: cannot allocate an object of abstract type ‘osgFFmpeg::FFmpegAudioStream’
Now you can set the examples USE-Flag and emerge openscenegraph to get the example dataset.
If you have got flightgear installed, reinstall simgear afterwards, like the ebuild requests you to do:
emerge -1 dev-games/simgear
Depending on if you were upgrading or just reinstalling with the new ebuild it may be necessary to run revdep-rebuild to resolve issues with broken libraries. Hopefully the next ebuild in the portage tree will include the sample data set.
Wxwidgets support seems to be broken with the current version. When using the wxwidgets USE-Flag Openscenegraph fails to compile with, so include
=dev-games/openscenegraph-3.0.1 -wxwidgets
in your /etc/portage/package.use if you have enabled wxwidgets in your make.conf.
Starting xine with an overlay enabled X-server on nvidia graphics boards can lead to the problem that the xine window appears shortly and then disappears. The following error message can be found in the console when trying to play a dvd:
Dies ist xine (X11 gui) – Ein freier Video-Player v0.99.6. (c) 2000-2007 Das xine Team. libdvdread: Using libdvdcss version 1.2.10 for DVD access
libdvdread: Attempting to retrieve all CSS keys libdvdread: This can take a _long_ time, please be patient
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x00000141 libdvdread: Elapsed time 0 libdvdread: Found 1 VTS’s libdvdread: Elapsed time 0 No accelerated IMDCT transform found X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 150 (RENDER) Minor opcode of failed request: 4 (RenderCreatePicture) Serial number of failed request: 2155 Current serial number in output stream: 2165
Removing the “Overlay” Option from the xorg.conf and restarting the X-server fixes this problem. Yo may also include the line
Option “Overlay” “off”
into your screen section or device section of your xorg.conf.
Recently I basically got Flightgear to work with quad buffered stereo. The only thing that was still missing for having the Vusix VR920 head mounted display fully supported in the flight simulator was headtracking.
However, with my new headtracking driver, VR920 headtracking in Flightgear is possible at last. A good part of the work has been done by Anders Gidenstam who provided the original Nasal module, the headtracking protocol description and usage instructions for his webcam based headtracking solution for Flightgear.
to $FG_ROOT/Protocol. For me (gentoo system) this location is /usr/share/games/FlightGear/Protocol/, probably for many others it is /usr/share/FlightGear/Protocol/
Afterwards download unzip the modified Nasal module
to ~/.fgfs/Nasal. It is important to use your home directory and NOT i.e. /usr/share/games/FlightGear/Nasal/.
Then make sure that the vr920 headtracking driver runs in UDP mode. If running Flightgear on the same machine as the headtracking driver, which should be the usual case, just use 127.0.0.1 as destionation IP for the driver and use 4242 as destination port. These are the default settings of the driver.
Finally run Flightgear with these options: –generic=socket,in,<hz>,,<port>,udp,headtrack –prop:/sim/headtracking/enabled=1
If you also want to have quad buffered stereo with it (you need an nvidia quadro board, with assumably a pre G80 Chip or probably an ATI FireGL, never tried that, and a stereo enabled xserver) use the patch from FlightGear with quad buffered stereo. For instructions on how to get the xserver to work in stereoscopic mode see: Vuzix VR920 with Linux and active 3D stereo
For the described configuration you can use the following little startup script: