Skip to content

roikr/preservation

Repository files navigation

tucan task:
setup up ubuntu - download 16.04.1, include fixes for 16.04.03
dd if= of= bs=1m
sudo apt-get install openssh-server
sudo apt-get install synergy
synergyc 10.0.0.12

editing remote files using sublime3 with rsub (https://wrgms.com/editing-files-remotely-via-ssh-on-sublimetext-3/):

install:
1. remote:
	sudo wget -O /usr/local/bin/rsub https://raw.github.com/aurora/rmate/master/rmate
	sudo chmod a+x /usr/local/bin/rsub

2. local:
	alt-shift-p install package -> rsub

usage:
1. local: 
	ssh ... -R 52698:localhost:52698

2. rsub file 

fixing mouse issues with synergyc
DISPLAY=:0.0 gsettings set org.gnome.settings-daemon.plugins.cursor active false
sudo service lightdm restart

testings kinectv2
install libfreenect2 
git clone https://github.com/OpenKinect/libfreenect2

sudo apt-get install build-essential cmake pkg-config libusb-1.0-0-dev libturbojpeg libjpeg-turbo8-dev libglfw3-dev beignet-dev libva-dev libjpeg-dev
(notice libturbojpeg and libjpeg-turbo8-dev)

mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 -DENABLE_VAAPI=0 (will conflict with gstreamer)
make -j4
make install

for installed packages: apt list --installed | grep jpeg

block audio device:
sudo rsub /etc/modprobe.d/blacklist.conf
blacklist snd_hda_codec_hdmi
blacklist snd-usb-audio

usb permission: 
sudo cp ./platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/

CONFLICT: on nuc, kinectv2 conflict with hdmi audio - so use miniport if you can't disable audio

openframeworks
git checkout 0.9.8:
git clone -b 0.9.8 --depth 1 https://github.com/openframeworks/openFrameworks.git  

follow openframeworks/openFrameworks#5144 to install_dep and compile (for 16.04.3):
cd scripts/apothecary
sudo ./apothecary -j 4 -t linux64 update poco

sudo ./install_dependencies.sh - skip -hwe-16.04
compileOF.sh -j4


preservation repository:
git clone https://github.com/roikr/preservation.git 
(uses local ofxKinectV2)


box2d and ofxBox2d
git clone -b stable --depth 1 https://github.com/roikr/ofxBox2d.git

issue fixed in my fork (branch stable):
1. ofxBox2dPolygon.cpp - when tesselating poly, need to ignore deg polygons to avoid box2d assert
2. ofxBox2dUtils - adjust OFX_BOX2D_SCALE
3. static body hold no transform and position so we should not draw based on it (walkaround - render super class ofPolyline)

startup:

add autostart.sh to startup application

https://askubuntu.com/questions/380741/how-to-auto-restart-a-crashed-app


crashes and disconnections:
1. popup regarding system problem (https://askubuntu.com/questions/133385/getting-system-program-problem-detected-pops-up-regularly-after-upgrade/369297):
ls /var/crash
sudo rm /var/crash/*
reinstall plymoth (https://askubuntu.com/questions/407131/why-is-plymouthd-crashing-on-startup)
2. uninstall zeitgeist (https://linuxaria.com/howto/how-to-remove-zeitgeist-in-ubuntu-and-why)
3. install last intel graphics driver (https://askubuntu.com/questions/777303/installing-intel-graphics-driver-in-ubuntu-16-04) 
4. tip to reset usb (http://www.ubuntubuzz.com/2016/06/reset-usb-20-ehci-usb-30-xhci-without-reboot-linux.html)


deprecated:
1. create new entry to autostart app
2. add delay - waiting for kinect driver loading
rsub ~/.config/autostart/preservation.desktop
X-GNOME-Autostart-Delay=30


gstreamer issues
1. in order to decode directly to gl memory we need gst-gl-plugins which are part of plugins bads
sudo apt-get install libgstreamer-plugins-bad1.0-dev

2. also we need to remove egl and gles2 by editing :
sudo rsub /usr/lib/x86_64-linux-gnu/gstreamer-1.0/include/gst/gl/gstglconfig.h
#define GST_GL_HAVE_GLES2 0
#define GST_GL_HAVE_PLATFORM_EGL 0
#define GST_GL_HAVE_GLEGLIMAGEOES 0

3. using gstreamer-plugins-bad1.8.3/tests/examples/gl/sdl/sdlshare.c to setup glx native display and context (using glfw native)

4. vaapi
sudo apt-get install gstreamer1.0-vaapi

testing hardware video decoding
DISPLAY=:0.0 gst-launch-1.0 -v filesrc location=feast.mp4 ! qtdemux ! h264parse ! avdec_h264 ! autovideosink
DISPLAY=:0.0 gst-launch-1.0 -v filesrc location=/home/ubuntu/feast.mp4 ! qtdemux ! h264parse ! vaapidecode ! autovideosink

DISPLAY=:0.0 gst-launch-1.0 -v mutlifilesrc loop=true location=/home/ubuntu/feast.mp4 ! qtdemux ! h264parse ! vaapidecode ! autovideosink

ffmpeg tut (http://hamelot.io/visualization/using-ffmpeg-to-convert-a-set-of-images-into-a-video/)
ffmpeg -r 25 -f image2 -s 1280x800 -start_number 0 -i circle_%05d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p normal.mp4

DISPLAY=:0.0 gst-launch-1.0 -e multifilesrc loop=true location=Normal_BG.mov ! qtdemux ! h264parse ! vaapidecode ! glimagesink sync=1 multifilesrc loop=true location=Normal_FG_rgb.mov ! qtdemux ! h264parse ! vaapidecode ! glimagesink sync=1 multifilesrc loop=true location=Normal_FG_a.mov ! qtdemux ! h264parse ! vaapidecode ! glimagesink sync=1 


DISPLAY=:0.0 gst-launch-1.0 -e multifilesrc loop=true location=Normal_BG.mov ! qtdemux ! h264parse ! vaapidecode ! glimagesink sync=1 multifilesrc loop=true location=Light_BG.mov ! qtdemux ! h264parse ! vaapidecode ! glimagesink sync=1 multifilesrc loop=true location=Dark_BG.mov ! qtdemux ! h264parse ! vaapidecode ! glimagesink sync=1