Blame media/libtheora/README

Packit f0b94e
-------------------------------------------------------------------------
Packit f0b94e
             The Xiph.org Foundation's libtheora 1.2
Packit f0b94e
-------------------------------------------------------------------------
Packit f0b94e
Packit f0b94e
*** What is Theora?
Packit f0b94e
Packit f0b94e
Theora is Xiph.Org's first publicly released video codec, intended
Packit f0b94e
for use within the Foundation's Ogg multimedia streaming system.
Packit f0b94e
Theora is derived directly from On2's VP3 codec, adds new features
Packit f0b94e
while allow it a longer useful lifetime as an competitive codec.
Packit f0b94e
Packit f0b94e
The 1.0 release decoder supported all the new features, but the
Packit f0b94e
encoder is nearly identical to the VP3 code.
Packit f0b94e
Packit f0b94e
The 1.1 release featured a completely rewritten encoder, offering
Packit f0b94e
better performance and compression, and making more complete use
Packit f0b94e
of the format's feature set.
Packit f0b94e
Packit f0b94e
The 1.2 release features significant additional improvements in
Packit f0b94e
compression and performance. Files produced by newer encoders can
Packit f0b94e
be decoded by earlier releases.
Packit f0b94e
Packit f0b94e
*** Where is Theora?
Packit f0b94e
Packit f0b94e
Theora's main site is www.theora.org.  Theora and related libraries
Packit f0b94e
can be gotten from www.theora.org or the main Xiph.Org site at
Packit f0b94e
www.xiph.org.  Development source is kept in an open subversion 
Packit f0b94e
repository, see http://theora.org/svn/ for instructions.
Packit f0b94e
Packit f0b94e
-------------------------------------------------------------------------
Packit f0b94e
Getting started with the code
Packit f0b94e
-------------------------------------------------------------------------
Packit f0b94e
Packit f0b94e
*** What do I need to build the source?
Packit f0b94e
Packit f0b94e
Requirements summary:
Packit f0b94e
Packit f0b94e
  For libtheora:
Packit f0b94e
Packit f0b94e
      libogg 1.1 or newer.
Packit f0b94e
Packit f0b94e
  For example encoder:
Packit f0b94e
Packit f0b94e
      as above,
Packit f0b94e
Packit f0b94e
      libvorbis and libvorbisenc 1.0.1 or newer.
Packit f0b94e
      (libvorbis 1.3.1 or newer for 5.1 audio)
Packit f0b94e
Packit f0b94e
  For creating a source distribution package:
Packit f0b94e
Packit f0b94e
      as above,
Packit f0b94e
Packit f0b94e
      Doxygen to build the API documentation,
Packit f0b94e
      pdflatex and fig2dev to build the format specification
Packit f0b94e
        (transfig package in Ubuntu).
Packit f0b94e
Packit f0b94e
  For the player only:
Packit f0b94e
Packit f0b94e
      as above,
Packit f0b94e
Packit f0b94e
      SDL (Simple Direct media Layer) libraries and headers,
Packit f0b94e
      OSS audio driver and development headers.
Packit f0b94e
Packit f0b94e
The provided build system is the GNU automake/autoconf system, and
Packit f0b94e
the main library, libtheora, should already build smoothly on any
Packit f0b94e
system.  Failure of libtheora to build on a GNU-enabled system is
Packit f0b94e
considered a bug; please report problems to theora-dev@xiph.org.
Packit f0b94e
Packit f0b94e
Windows build support is included in the win32 directory.
Packit f0b94e
Packit f0b94e
Project files for Apple XCode are included in the macosx directory.
Packit f0b94e
Packit f0b94e
There is also a more limited scons build.
Packit f0b94e
Packit f0b94e
*** How do I use the sample encoder?
Packit f0b94e
Packit f0b94e
The sample encoder takes raw video in YUV4MPEG2 format, as used by
Packit f0b94e
lavtools, mjpeg-tools and other packages. The encoder expects audio,
Packit f0b94e
if any, in a separate wave WAV file. Try 'encoder_example -h' for a 
Packit f0b94e
complete list of options.
Packit f0b94e
Packit f0b94e
An easy way to get raw video and audio files is to use MPlayer as an
Packit f0b94e
export utility.  The options " -ao pcm -vo yuv4mpeg " will export a
Packit f0b94e
wav file named audiodump.wav and a YUV video file in the correct
Packit f0b94e
format for encoder_example as stream.yuv.  Be careful when exporting
Packit f0b94e
video alone; MPlayer may drop frames to 'keep up' with the audio
Packit f0b94e
timer.  The example encoder can't properly synchronize input audio and
Packit f0b94e
video file that aren't in sync to begin with.  
Packit f0b94e
Packit f0b94e
The encoder will also take video or audio on stdin if '-' is specified
Packit f0b94e
as the input file name.
Packit f0b94e
Packit f0b94e
There is also a 'png2theora' example which accepts a set of image
Packit f0b94e
files in that format.
Packit f0b94e
Packit f0b94e
*** How do I use the sample player?
Packit f0b94e
Packit f0b94e
The sample player takes an Ogg file on standard in; the file may be
Packit f0b94e
audio alone, video alone or video with audio.
Packit f0b94e
Packit f0b94e
*** What other tools are available?
Packit f0b94e
Packit f0b94e
The programs in the examples directory are intended as tutorial source 
Packit f0b94e
for developers using the library. As such they sacrifice features and 
Packit f0b94e
robustness in the interests of comprehension and should not be 
Packit f0b94e
considered serious applications.
Packit f0b94e
Packit f0b94e
If you're wanting to just use theora, consider the programs linked
Packit f0b94e
from http://www.theora.org/. There is playback support in a number
Packit f0b94e
of common free players, and plugins for major media frameworks.
Packit f0b94e
Jan Gerber's ffmpeg2theora is an excellent encoding front end.
Packit f0b94e
Packit f0b94e
-------------------------------------------------------------------------
Packit f0b94e
Troubleshooting the build process
Packit f0b94e
-------------------------------------------------------------------------
Packit f0b94e
Packit f0b94e
*** Compile error, such as:
Packit f0b94e
Packit f0b94e
encoder_internal.h:664: parse error before `ogg_uint16_t'
Packit f0b94e
Packit f0b94e
This means you have version of libogg prior to 1.1. A *complete* new Ogg 
Packit f0b94e
install, libs and headers is needed.
Packit f0b94e
Packit f0b94e
Also be sure that there aren't multiple copies of Ogg installed in
Packit f0b94e
/usr and /usr/local; an older one might be first on the search path
Packit f0b94e
for libs and headers.
Packit f0b94e
Packit f0b94e
*** Link error, such as:
Packit f0b94e
Packit f0b94e
undefined reference to `oggpackB_stream'
Packit f0b94e
Packit f0b94e
See above; you need libogg 1.1 or later.
Packit f0b94e
Packit f0b94e
*** Link error, such as:
Packit f0b94e
Packit f0b94e
undefined reference to `vorbis_granule_time'
Packit f0b94e
Packit f0b94e
You need libvorbis and libvorbisenc from the 1.0.1 release or later.
Packit f0b94e
Packit f0b94e
*** Link error, such as:
Packit f0b94e
Packit f0b94e
/usr/lib/libSDL.a(SDL_esdaudio.lo): In function `ESD_OpenAudio':
Packit f0b94e
SDL_esdaudio.lo(.text+0x25d): undefined reference to `esd_play_stream'
Packit f0b94e
Packit f0b94e
Be sure to use an SDL that's built to work with OSS.  If you use an
Packit f0b94e
SDL that is also built with ESD and/or ALSA support, it will try to
Packit f0b94e
suck in all those extra libraries at link time too.  That will only
Packit f0b94e
work if the extra libraries are also installed.
Packit f0b94e
Packit f0b94e
*** Link warning, such as:
Packit f0b94e
Packit f0b94e
libtool: link: warning: library `/usr/lib/libogg.la' was moved.
Packit f0b94e
libtool: link: warning: library `/usr/lib/libogg.la' was moved.
Packit f0b94e
Packit f0b94e
Re-run theora/autogen.sh after an Ogg or Vorbis rebuild/reinstall
Packit f0b94e