for documentation:
- every distribution should have documentation for most dev-packages it contains. The documention for liblame for example should be named liblame-doc and so on. That's the first place to go.
- the next place to look at is the homepage of the creator of the lib. For qt for example that would be the trolltech doc here:
http://doc.trolltech.com/
- another good ressource to find code samples is google code:
http://code.google.com
I'm not experienced in all fields you listed, but here is what I know out of my head:
1) depends (libgnet, glibc, qt ...)
2) see above for qt, for gtk :
http://www.gtk.org/documentation.html and so on. It should be mentioned that qt is not only a gui framework, but contains wrappers for most low level things as well (threads, networking and so on).
3) depends (pthread in glibc)
4) depends (libcrypto)
5) most notably the libs of the ffmpeg project (libavcodec, libavformat, libavutil ...). For video playing there is also mplayer, which lets you embed it in your application (see -slave option). You can pass commands through a fifo buffer then.
Other interesting libs for video are libgstreamer and libxine.
6) no idea
7) glibc (or libc6 in debian). There is documentation included in every distro
8) and 9) heavily depends on your project.
10) see 5)
11) no idea
The reason why I've written "depends" is that there are usually multiple libs, that contain functions for the same purpose. Which one you use depends on your project because in linux, unlike windows, there is no common set of components or libraries, that you can assume to be there on every system. All distributions ship their own versions/configurations and so on. This is one of the biggest problems for developers and basically means, the fewer dependencies, the better. Every lib you link against creates a new dependency.
Hope that helps a bit