5 libam7xxx uses the linux kernel coding style:
6 http://kernel.org/doc/Documentation/CodingStyle
8 === Getting and compiling libam7xxx
10 libam7xxx depends on 'libusb-1.0' and optionally on 'libav' or 'ffmpeg' for
11 its example programs, the build system used is 'cmake'.
13 On a Debian based system, the dependencies can be installed with this command:
15 $ sudo aptitude install cmake \
22 With libav/ffmpeg version previous than 0.9 this patch is needed:
23 http://git.ao2.it/libam7xxx.git/blob_plain/refs/heads/debian:/debian/patches/0001-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch
25 The library and the example programs can be compiled following these steps:
27 $ git clone git://git.ao2.it/libam7xxx.git
34 After that the example programs can be found in the +bin/+ subdirectory.
38 The suggested way to hack on the project is:
42 $ cmake -D CMAKE_BUILD_TYPE=debug -D STRICT_COMPILATION_CHECKS=ON ../
45 If you want to check the code with the ''sparse'' static analysis tool you
50 $ cmake -D CMAKE_C_COMPILER=cgcc ../
53 And for a pre-release check with a different compiler, which never hurts:
57 $ cmake -D CMAKE_C_COMPILER=clang -D CMAKE_BUILD_TYPE=debug -D STRICT_COMPILATION_CHECKS=ON ../
62 If you want to build for MS Windows:
64 $ sudo aptitude install mingw-w64
67 $ wget -nv http://sourceforge.net/projects/libusbx/files/releases/1.0.11/Windows/libusbx-1.0.11-win.7z
68 $ 7z -olibusbx-1.0.11-win x libusbx-1.0.11-win.7z
69 $ wget -nv http://win32.libav.org/win32/libav-win32-20120521.7z
70 $ 7z x libav-win32-20120521.7z
72 -D GNU_HOST=i686-w64-mingw32 \
73 -D CMAKE_TOOLCHAIN_FILE=../cmake_modules/mingw_cross_toolchain.cmake \
74 -D CMAKE_INSTALL_PREFIX=libam7xxx-win/ \
75 -D LIBUSB_1_INCLUDE_DIR=libusbx-1.0.11-win/include/libusbx-1.0 \
76 -D LIBUSB_1_LIBRARY=libusbx-1.0.11-win/MinGW32/dll/libusb-1.0.dll \
77 -D FFMPEG_ROOT=$(pwd)/libav-win32-20120521/usr \
81 After that you will find libam7xxx.dll in lib/ and picoproj.exe in the bin/
86 You can run the test program under the http://valgrind.org/[valgrind]
87 dynamic analyzer by using a command like:
89 $ valgrind --leak-check=full --show-reachable=yes --track-origins=yes \
90 ./bin/picoproj -W 800 -H 480 -f my_image.jpg
94 $ valgrind --leak-check=full --show-reachable=yes --track-origins=yes \
95 ./bin/am7xxx-play -f x11grab -i :0