-
Notifications
You must be signed in to change notification settings - Fork 5
Develop
glc consists of main application (glc), optional support code (glc-support), thread-safe buffer library (packetstream) and a library for doing magic with ELF (elfhacks). glc, packetstream and elfhacks are licenced under zlib-style licence. glc-support has currently code licenced under GPL.
Main application is divided into glc libraries (video capturing, processing and playback library), glc-hook (hook functions for capturing), glc-capture (tool for preloading glc-hook into applications) and glc-play (tool for playing or processing streams).
glc libraries can be used independently for adding video capture or playback support into applications. Headers are installed by default into /usr/include/glc.
Git is preferred way to acquire source code for development purposes. git clone git://github.com/nullkey/glc.git git clone git://github.com/nullkey/glc-support.git git clone git://github.com/nullkey/packetstream.git git clone git://github.com/nullkey/elfhacks.git
glc requires following libraries:
- libGL -- At least OpenGL 1.4 -capable rendering library
- libasound -- Recent ALSA libraries
- libX11 -- X11
- libXxf86vm -- X11 video mode extension
- libpng -- PNG library
cmake is required for building glc, elfhacks and packetstream. Both elfhacks and packetstream must be installed before compiling glc.
cmake supports out-of-source builds. To build and install glc (elfhacks and packetstream are built same way), one could do something like this:
tar -xzf glc-release.tar.gz
mkdir -p glc/build
cd glc/build
cmake ..
-DCMAKE_INSTALL_PREFIX:PATH="/usr"
-DCMAKE_BUILD_TYPE:STRING="Release"
-DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -msse -mmmx -fomit-frame-pointer"
make && make install
Note: on 64-bit environment a 32-bit versions of glc libraries are required for capturing 32-bit applications. To build 32-bit version create a separate build directory, add -DMLIBDIR="lib32" -DCMAKE_C_FLAGS_RELEASE:STRING="-m32 ..."
to cmake command options and continue build as usual. For example building 64-bit glc:
# NOTE build32
mkdir -p glc/build32
cd glc/build32
# NOTE lib32
# -DBINARIES:BOOL=OFF disables compiling glc-capture and glc-play binaries
cmake ..
-DCMAKE_INSTALL_PREFIX:PATH="/usr"
-DCMAKE_BUILD_TYPE:STRING="Release"
-DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -msse -mmmx -fomit-frame-pointer -m32"
-DBINARIES:BOOL=OFF
-DMLIBDIR="lib32"
make && make install
glc has zlib as primary licence. All code in packetstream and elfhacks is under zlib. All mandatory code in glc is under zlib. However there is GPL- and CDDL-licenced code included in glc source package. That code is however optional and can be disabled compile time for binary distributions.
QuickLZ (altough rewritten and a bit different algorithm, so technically it is just another RLE+LZ) implementation exists in glc/support/quicklz. It is licensed under GPL and can be disabled compile-time by giving cmake option -DQUICKLZ:BOOL=OFF. However author has stated that as long as the QuickLZ part can be easily identified as GPL code and optional at compile-time, it is OK to distribute it.
LZO implementation exists in glc/support/minilzo. It is licensed under GPL and can be disabled compile-time by giving cmake option -DLZO:BOOL=OFF.
LZJB implementation exists in glc/support/lzjb. It is licensed under CDDL and can be disabled compile-time by giving cmake option -DLZJB:BOOL=OFF.