Installation instructions for GPAC on GCC-powered platforms
last modified: December 2008

0 Foreword
	The output directory for all plugins and applications is gpac/bin/gcc 

	As of 0.2.2, GPAC cannot be compiled without ZLIB. You'd better make sure it is installed on your system (zlib is provided in gpac_extra_libs package)
	
I Extra lib installation
	It is recommended to install (source or package) all extra libs needed by gpac not installed on your system.
	Libraries found on the system are indicated as an output of the configure script


II GPAC compilation
	
	II.1 SDL Support
		GPAC can use SDL for audio/video output. If SDL is not installed on your system, you may indicate configure to build with a local copy:
		    --sdl-cfg=path/to/local/sdlcfg/
    (make sure to update the local sdl-cfg according to your needs)
		
  	If you can't get SDL and don't have OSS or WAV audio nor DirectX or X11 video support on your system, you won't be able to play any presentation with GPAC, 
  	but you can still use MP4Box.

	II.2 wxWidgets Support
		GPAC comes with a GUI player called Osmo4. To compile this player you will need wxWidgets 2.6.0 (2.5.2 should work) installed on your system. 
		Both unicode and ANSI versions of wxWidgets should be supported.
		If you don't use wxWidgets, you can always use GPAC command-line player MP4Client.

	II.3 MinGW DirectX support
		When building GPAC under MinGW, it is also possible to compile the DirectX plugin. You will need the MinGW versions of DX libs
		(available at http://alleg.sourceforge.net/files/). Get dx70_mgw or dx80_mgw (dx8 is provided in gpac_extra_libs package)
		copy the archive content in your MSys tree (for ex, /usr/local/DirectX) and configure gpac with the option --dxsdk-path=/usr/local/DirectX
		** you must keep include and lib folders under the same directory for the configure script to detect DirectX **
	
	II.4 Building GPAC
		go to root of gpac distribution
		./configure (--help for options) - you may need to "chmod +x" this file...
		make

		any fixes to configure are welcome :)

	II.5 Installing GPAC
		get root
		type "make install" in gpac/
		
		This will install MP4Client, Osmo4 if configured, MP4Box and all plugins as well as GPAC documentation man: MP4Box(1), MP4Client(1) and GPAC(1).
		type "make uninstall" to remove gpac from your system

	II.6 Installing GPAC SDK
		get root
		type "make install-lib" in gpac/

		This will install gpac base headers (<gpac/*.h>), gpac development headers (<gpac/internal/*.h> and libgpac_static - the static version of libgpac shared library.
		type "make uninstall-lib" to remove gpac from your system
		There is no documentation regarding headers/SDK for now, you will have to rely on function descriptions in each header.
				
III Running GPAC
	
	III.1 MP4Client
		MP4Client is a command-line interface to GPAC. Note that the player cannot work without video support
		
	 You need a GPAC configuration file to run MP4Client, and you will need it each time.
		
		First launch of MP4Client
			go to gpac/bin/gcc if not using the install.
			type MP4Client
			the prompt will ask for 
			1- GPAC plugin dir: enter the path from / to gpac/bin/gcc. This is skipped when using the install version of MP4Client (the plugin path is hardcoded to 
			the plugins install location on the system)
			2- Font directory: enter the path to a truetype font directory on your system (note that if you don't have compiled with freetype any directory will do)
			3- cache directory: any directory with write access
		You now have a valid config file for GPAC, more info on this try "man GPAC" or check gpac/doc/configuration.html.

		The config file is called ".gpacrc" and is located in the user home directory. You may run the client with a different config file by using the "-c" option.
		
		*If you don't see any output window, check the config file doesn't use gm_raw_out.so as a video renderer (or simply remove gm_raw_out.so).
		
		MINGW USERS: there are known and terrible bugs with MSys rxvt stdio buffering, do NOT use it to run MP4Client unless you want to understand
		these bugs. Use w32 CMD.exe instead. Other GPAC apps are no pb for MSys rxvt.

	III.2 Osmo4
		Osmo4 is the GUI frontend to GPAC. If you have installed Osmo4 on your system, the first launch of the player should ask you to locate a 
		directory with TrueType fonts and a cache directory for internet downloads if no configuration file is found.

	III.3 MP4Box
		MP4Box is a tool to encode, decode and manipulate MPEG-4 systems data. It does not need a configuration file.
		Help for MP4Box is available on GPAC web site, with man MP4Box (except on MinGW) and with 'MP4Box -h'
		
	III.4 Osmozilla
		Osmozilla is GPAC plugin for Mozilla-based browsers. It is by default installed to the user mozilla directory ~/.mozilla 
		To install the plugin on the system
		* get root
		* ./configure --mozdir=/path/to/mozilla
		    for example --mozdir=/usr/lib/mozilla-firefox
		* make -C applications/osmozilla install
		
		* OR you may copy by hand bin/gcc/nposmozilla.so to /usr/lib/moz**/plugins and bin/gcc/nposmozilla.xpt to /usr/lib/moz**/components

IV Configuration
	
	IV.0 Foreword
		All configuration information is described in gpac/doc/configuration.html, or man gpac.
	
	IV.1 OpenGL
		OpenGL is badly known for performing quite poorly as far as high data rate texturing is involved. This is a big issue when displaying a typical movie and you will likely find the GPAC 3D Rendering very slow on your system. If your GPU supports non power of 2 texturing or rectangular texturing (most Win32 drivers do)
		you shouldn't have any problem with video. Otherwise here are some tips to configure GPAC on your system:
		1- set the "BitmapCopyPixels" option on: some cards perform rather well at direct pixel transfer. If no improvement, set it off.
		2- set the "BitmapCopyPixels" option off and the "EmulatePOW2" option on. This will trick the GL texturing by using only Power Of 2 textures when converting from YUV to RGB. 
		3- If this does not improve video playback, you're only chance is through discussion forums & co to gather info about your system, your GL implementation and how to fine-tune it.
		
V Misc

		There is a demo 2D authoring tool called V4Studio. No makefiles available yet but should compile without pbs (only needs libgpac
		and wxWidgets ). It is not usable to design content but is a funny toy.
		
		
