This file is indexed.

/usr/share/doc/libam7xxx0.1-doc/HACKING.asciidoc is in libam7xxx0.1-doc 0.1.6-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
== Hacking libam7xxx

=== Coding style

libam7xxx uses the linux kernel coding style:
http://kernel.org/doc/Documentation/CodingStyle

=== Getting and compiling libam7xxx

libam7xxx depends on 'libusb-1.0' and optionally on 'libav' or 'ffmpeg' for
its example programs, the build system used is 'cmake'.

On a Debian based system, the dependencies can be installed with this command:

  $ sudo aptitude install cmake \
                          libusb-1.0-0-dev \
                          libavformat-dev \
                          libavcodec-dev \
                          libavdevice-dev \
                          libswscale-dev

With libav/ffmpeg version previous than 0.9 this patch is needed:
http://git.ao2.it/libam7xxx.git/blob_plain/refs/heads/debian:/debian/patches/0001-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch

The library and the example programs can be compiled following these steps:

  $ git clone git://git.ao2.it/libam7xxx.git
  $ cd libam7xxx
  $ mkdir build
  $ cd build
  $ cmake ../
  $ make

After that the example programs can be found in the +bin/+ subdirectory.

=== Debug builds

The suggested way to hack on the project is:

  $ mkdir build
  $ cd build
  $ cmake -D CMAKE_BUILD_TYPE=debug -D STRICT_COMPILATION_CHECKS=ON ../
  $ make

If you want to check the code with the ''sparse'' static analysis tool you
can run:

  $ mkdir build
  $ cd build
  $ cmake -D CMAKE_C_COMPILER=cgcc ../
  $ make

And for a pre-release check with a different compiler, which never hurts:

  $ mkdir build
  $ cd build
  $ cmake -D CMAKE_C_COMPILER=clang -D CMAKE_BUILD_TYPE=debug -D STRICT_COMPILATION_CHECKS=ON ../
  $ make

=== Cross Builds

If you want to build for MS Windows:

  $ sudo aptitude install mingw-w64
  $ mkdir build
  $ cd build
  $ wget -nv http://download.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.18/libusb-1.0.18-win.7z
  $ 7z -olibusb-1.0.18-win x libusb-1.0.18-win.7z
  $ wget -nv http://win32.libav.org/releases/libav-10.1-win32.7z
  $ 7z -olibav-10.1-win32 x libav-10.1-win32.7z
  $ cmake  \
          -D GNU_HOST=i686-w64-mingw32 \
          -D CMAKE_TOOLCHAIN_FILE=../cmake_modules/mingw_cross_toolchain.cmake \
          -D CMAKE_INSTALL_PREFIX=libam7xxx-win/ \
          -D LIBUSB_1_INCLUDE_DIR=libusb-1.0.18-win/include/libusb-1.0 \
          -D LIBUSB_1_LIBRARY=libusb-1.0.18-win/MinGW32/dll/libusb-1.0.dll \
          -D FFMPEG_ROOT=$(pwd)/libav-10.1-win32/win32/usr \
          ../
  $ make

After that you will find libam7xxx.dll in lib/ and picoproj.exe in the bin/
directory.

=== Valgrind

You can run the test program under the http://valgrind.org/[valgrind]
dynamic analyzer by using a command like:

  $ valgrind --leak-check=full --show-reachable=yes --track-origins=yes \
    ./bin/picoproj -W 800 -H 480 -f my_image.jpg

or, for am7xxx-play:

  $ valgrind --leak-check=full --show-reachable=yes --track-origins=yes \
    ./bin/am7xxx-play -f x11grab -i :0