Cannot make ARToolKit on Ubuntu 12.04 - gstreamer

I'm running Ubuntu 12.04 on an Asus eee PC and after following the ARToolKit tutorials, when I get to the make part after choosing GStreamer I get a lot of "undefined reference" errors in VideoGStreamer/video.c . Pastebin here:
http://pastebin.com/BHz60Wyb
I asked the same question at #gstreamer on freenode and they hint it could be a problem with ARToolKit. And then I saw this:
http://ubuntuforums.org/showpost.php?s=2260b48cec6cd38078e5f9f6d7beee47&p=12091315&postcount=3
Official ARToolKit support seems to be dead as for now, so that's why I'm asking this here.
Thank you for reading my sad story.
UPDATE: I found a patch made by Mr. Yoshinari Kameda that works with V4L2 + Ubuntu perfectly at http://www.kameda-lab.org/_local/imagelab.tsukuba.ac.jp/ubuntu1004+opencv21/ARToolKitk/index-e.html

-Download "freeglut3-dev" form Ubuntu Software center
-Download "libxmu-dev" form Ubuntu Software center
-Download "libXi-dev" form Ubuntu Software center
-Download "libglew1.5-dev" form Ubuntu Software center
**I don't know if the next two downloads are necessary**
-Download "GStreamer plugins for mms, wavpack, quicktime,
musepack" form Ubuntu Software center
-Download "GStreamer plugins for aac, xvid, mpeg2, faad" form Ubuntu
Software center
-Dowload "libgstreamer0.10-dev" form Ubuntu Software center
-Download "ARToolKit-2.72.1.tgz"
-unzip "ARToolKit-2.72.1.tgz"
-Download the scrpit "installARToolKit.sh" from this website:
github.com/enekochan/installation-scripts
-Run the script.
+Select option 6 "GStreamer Media Framework"
+Select n
+Select n
-Type the following commands:
+cd ARtoolkit/bin
+./simpleTest

Related

SDL_GetNumVideoDisplays() returns 1 when I have 2 monitors

Good evening.
I'm setting up my game project on a remote computer and am running into a problem with SDL. I'm using SDL 2.0 and I'm trying to figure out why SDL_GetNumVideoDisplays() returns 1 when I have 2 monitors hooked up to my PC. I'm running Ubuntu 14.04 LTS, and both monitors appear to be configured correctly just using the desktop as normal.
Would appreciate tips on where to look to troubleshoot this issue. Thanks.
Update 1 - ./configure for SDL2-2.0.4 source code:
Was looking for some mention of X11 in the configure script and saw the following:
checking for X11/extensions/Xext.h... yes
-- dynamic libX11 -> libX11.so.6
-- dynamic libX11ext -> libXext.so.6
checking for const parameter to XextAddDisplay... yes
checking for XGenericEvent... yes
checking for XkbKeycodeToKeysym in -lX11... yes
checking for X11/Xcursor/Xcursor.h... no
checking for X11/extensions/Xdbe.h... yes
checking for X11/extensions/Xinerama.h... no
checking for X11/extensions/XInput2.h... no
checking for X11/extensions/scrnsaver.h... no
checking for X11/extensions/shape.h... yes
checking for X11/extensions/xf86vmode.h... yes
and
X11 libraries : xdbe xshape xvidmode
My xrandr --version is:
xrandr program version 1.4.1
Server reports RandR version 1.4
xrandr --listactivemonitors doesn't seem to be supported on my install.
Update 2 - Reinstalled OS, completely wiping partition:
Things escalated quickly today when I decided just to take the nuclear option. Fortunately there was nothing on the disk I needed as I had freshly cloned my repo and hadn't made any changes worth committing.
After a day swapping between open and proprietary drivers and tinkering with my xorg.conf, I ended up nuking the disk and installing 16.04 LTS. I installed the SDL2 runtimes from the ubuntu repo, and I installed the SDL2 development source from the tar file on the SDL website. Ran my program again and it worked as expected.
I don't want to call this "solved" as I ended up nuking my OS, but I guess my problem is solved. I just wish I could figure out the information chain on how SDL is informed on how many displays there are.
checking for X11/extensions/Xinerama.h... no
That's probably what torpedoed you. Xinerama is used to query the output count/positions/topology:
The X server's client/server architecture allows the server to expose Xinerama information to the client regardless of whether the Xinerama infrastructure is active. RandR and NVidia's twinview utilize this feature to provide window managers and clients with information about the output layout relative to the framebuffer.
Installing libxinerama-dev & re-configureing probably would have cleared that up.

Qt camera example does not find the laptop's webcam

I'm using Debian Jessie and dmesg | grep video returns:
[ 22.280407] Linux video capture interface: v2.00
[ 22.790704] uvcvideo: Found UVC 1.00 device Lenovo EasyCamera (13d3:5170)
[ 22.796546] usbcore: registered new interface driver uvcvideo
The example compiles fine but upon launch i get a dialog telling me that the camera service is missing. I'm using Qt 5.5.0. This question points to a similar issue but it's for windows. Also I've installed Qt using the installer provided at it's web site. I've tested my webcam with Cheese application and it works but QCameraInfo::availableCameras() returns nothing.
I don't know if this is a definitive answer, but in my experience the dreaded "camera service is missing" comes down to exactly what the message says; for some reason the media back-end that Qt uses to get video input from a camera is broken or miss-configured in some way. In my case I had this problem in the following situations:
1. Building Qt from source
Qt build system SILENTLY DISABLES FEATURES if you don't have all the dependencies that it requires to include them in the build. Make sure to read this official article very carefully for your platform. I lost count of the times this has ruined my <insert favourite period of time such as day/week/year here >, and not only for the multimedia module...
2. Missing some gstreamer packages on my Ubuntu
I develop for Linux & Debian mostly, and on those platforms Qt depends on gstreamer backend. gstreamer is basically a plugin architecture in the core with every single feature added as plugins, and with endless possibilities of manual intervention through configuration files. See where is this is going? Clue: make sure you have all the plugins you want installed and configured properly. Here is a link to some gstreamer tools you can use. Same probably goes for other back-ends on other platforms.
And a pro tip in the end: Since both Qt5.5 gstreamer0.1 (old) and gstreamer1.0 (new) are supported as back-ends, and since Qt5.6 the new one is default. This will give you some room for experimenting, for example if the old does not work, you can try the new etc.
Hope this was useful!

VirtualBox Battle.net error

I recently installed windows 7 on VirtualBox and installed battle.net.
When I start battle.net I get this error: http://i.imgur.com/006cpRC.png
I googled a lot but I was not able to find an anwser :/
Also tried to put Windows 7 on VMWare but that resulted in me getting the same error.
Before this I tried downloading the driver for the GPU I have but then I get this error, http://i.imgur.com/kMacwB8.png
Hope you guys can help me :)
You may need to enable 3D acceleration on VirtualBox. By default it is disabled.
The steps to enable:
Right click the Windows 7 VM in Virtual Box and click Settings.
Click the Display category.
Check Enable 3D Acceleration and increase Video Memory as needed.
Install drivers:
While the VM is running, click Devices menu and then Install Guest Additions
Click Run VBoxWindowsAdditions.exe in the popup and run through the installer.
See: http://www.howtogeek.com/124479/how-to-enable-3d-acceleration-and-use-windows-aero-in-virtualbox/ for extra information.
Note that the article states the 3D acceleration is experimental and should run older games, but possibly not newer games. The article was written in 2012, so I'm not sure what the current state is. You should be able to tell if it's enabled by whether or not the Aero interface is usable.

openframeworks, addons, and mavericks on osx

I had developed an app in openframeworks for OSX Mountain Lion using the addons ofxUI, ofxFFT, and ofxXmlSettings.
It worked beautifully. But recently I switched over to OSX 10.9 and now my code still compiles but errors immediately upon running.
2014-03-23 19:33:24.489 etaBasement_debug[47594:507] -[__NSCFError _cocoaErrorStringWithKind:]: unrecognized selector sent to instance 0x7b61a060
I can't really find what I need on Google. If anyone knows how to fix this issue or if I need to give more information, please let me know.

Capture MacBook Pro iSight video with C++

I'd like to grab a frame from my MacBook Pro iSight in C++ and do some elaborations on it.
I already know how to do that in ObjC with QTKit, but is there any way to do the same thing in C++?
NOTE:
I tried to install OpenCV with macports, but the framework doesn't seem to support iSight cameras.
You could do that using OpenCV ( http://opencv.willowgarage.com/wiki/ )
And here is a sample code you can copy/paste to try it : http://www.geckogeek.fr/lire-le-flux-dune-webcam-camera-video-avec-opencv.html (article in french but code is in english)
You can also use the Integrating Vision Toolkit (http://ivt.sourceforge.net), which supports Mac OS X and Quicktime.
Here are the steps:
Install the Quicktime SDK, if you haven't yet.
Download the current version of the IVT and unpack the archive.
Set the flag 'USE_QUICKTIME = 0' to 'USE_QUICKTIME = 1' in IVT/src/Makefile.base
Run 'make' in IVT/src
Run 'make' in IVT/examples/CaptureApp
Run '../../files/make_app.sh CaptureApp captureapp' in IVT/examples/CaptureApp
Run the application, either by double clicking on the generated icon, or by typing 'open CaptureApp.app'.
If you have any questions, let me know (you can find my contact information on the IVT homepage). I also answer questions in the IVT Sourceforge forum usually quite fast.