The Goal: Create Pythonic binding for audio/video API of AVbin library
          documented at

01: Get AVbin and compile it

lib/AVbin - will contain AVbin source

$ mkdir lib
$ cd lib
$ git clone git://

$ cd AVbin
$ ./ linux-x86-32
# refer to README if your platform is different

02. Locate AVbin headers with API description and libraries with binary code

From README and filesystem inspection, the location is the following:

lib/AVbin/dist/linux-x86-32/  - compiled binary library
lib/AVbin/include/avbin.h   - header with API that we need to port to Python

03. Setup shiboken

You can install `shiboken` package on Ubuntu from PySide PPA.  There is always
the latest and greatest version.  For other systems it's probably easier to
compile it from source using

(sorry, can't say anything for Windows/Mac OS user right now)

$ shiboken --version
shiboken v1.0.10
Copyright (C) 2009-2011 Nokia Corporation and/or its subsidiary(-ies)

04. Inspect what shiboken need to generate the bindings

$ shiboken --help
  generator [options] header-file typesystem-file

Seems like `shiboken` thinks that it is named a `generator`. Anyway, it
requires header-file and typesystem-file to generate the bindings.

05. Create API mapping (mysteriously called 'typesystem')

Basically, you need an XML file that defines how your C++ functions calls and
types are converted to Python. This file is called 'typesystem file'.

$ cat typesystem.xml
<?xml version="1.0"?>

<!-- the name of the module as it will be imported from Python-->
<typesystem package='AVbin'>

$ shiboken lib/AVbin/include/avbin.h typesystem.xml 
Resolving typedefs...                        [OK]
Detecting inconsistencies in typesystem...   [OK]

	Cyclic dependency found! Graph can be found at /tmp/qt_temp.T13977
	No C++ classes found!

Done, 2 warnings (0 known issues)

It is not clear if C++ classes are not found in avbin.h or just don't defined,
so let's dig further.