Switch branches/tags
last-mozilla-central chromium-import-r15462 chromium-import-latest bsmedberg-static-xpcom-registration-base UPDATE_PACKAGING_R13 UPDATE_PACKAGING_R12 UPDATE_PACKAGING_R11 UPDATE_PACKAGING_R10 UPDATE_PACKAGING_R9 UPDATE_PACKAGING_R8 UPDATE_PACKAGING_R7 UPDATE_PACKAGING_R6 UPDATE_PACKAGING_R5 THUNDERBIRD_3_3a2_RELEASE THUNDERBIRD_3_3a2_BUILD1 THUNDERBIRD_3_3a1_RELEASE THUNDERBIRD_3_3a1_BUILD1 SEAMONKEY_2_1b2_RELEASE SEAMONKEY_2_1b2_BUILD2 SEAMONKEY_2_1b2_BUILD1 SEAMONKEY_2_1b1_RELEASE SEAMONKEY_2_1b1_BUILD2 SEAMONKEY_2_1b1_BUILD1 SEAMONKEY_2_1a3_RELEASE SEAMONKEY_2_1a3_BUILD2 SEAMONKEY_2_1a3_BUILD1 SEAMONKEY_2_1a2_RELEASE SEAMONKEY_2_1a2_BUILD2 SEAMONKEY_2_1a2_BUILD1 SEAMONKEY_2_1a1_RELEASE SEAMONKEY_2_1a1_BUILD1 SEAMONKEY_2_0a1_RELEASE SEAMONKEY_2_0a1_BUILD1 MOZILLA_1_9_a7_BASE MOZILLA_1_9_a6_BASE MOZILLA_1_9_a4_BASE GECKO_1_9_2_BASE GECKO_1_9_1_BASE FIREFOX_4_0b11_RELEASE FIREFOX_4_0b11_BUILD3 FIREFOX_4_0b11_BUILD2 FIREFOX_4_0b11_BUILD1 FIREFOX_4_0b10_RELEASE FIREFOX_4_0b10_BUILD1 FIREFOX_4_0b9_RELEASE FIREFOX_4_0b9_BUILD1 FIREFOX_4_0b8_RELEASE FIREFOX_4_0b8_BUILD1 FIREFOX_4_0b7_RELEASE FIREFOX_4_0b7_BUILD1 FIREFOX_4_0b6_RELEASE FIREFOX_4_0b6_BUILD2 FIREFOX_4_0b6_BUILD1 FIREFOX_4_0b5_RELEASE FIREFOX_4_0b5_BUILD1 FIREFOX_4_0b4_RELEASE FIREFOX_4_0b4_BUILD3 FIREFOX_4_0b4_BUILD2 FIREFOX_4_0b4_BUILD1 FIREFOX_4_0b3_RELEASE FIREFOX_4_0b3_BUILD3 FIREFOX_4_0b3_BUILD2 FIREFOX_4_0b3_BUILD1 FIREFOX_4_0b2_RELEASE FIREFOX_4_0b2_BUILD1 FIREFOX_4_0b1_RELEASE FIREFOX_4_0b1_BUILD2 FIREFOX_4_0b1_BUILD1 FIREFOX_3_7a5_RELEASE FIREFOX_3_7a5_BUILD1 FIREFOX_3_7a4_RELEASE FIREFOX_3_7a4_BUILD1 FIREFOX_3_7a3_RELEASE FIREFOX_3_7a3_BUILD1 FIREFOX_3_7a2_RELEASE FIREFOX_3_7a2_BUILD1 FIREFOX_3_7a1_RELEASE FIREFOX_3_7a1_BUILD1 FIREFOX_3_6a1_RELEASE FIREFOX_3_6a1_BUILD1 FIREFOX_3_1b2_RELEASE FIREFOX_3_1b2_BUILD2 FIREFOX_3_1b2_BUILD1 FIREFOX_3_1b1_RELEASE FIREFOX_3_1b1_BUILD1 FIREFOX_3_1a2_RELEASE FIREFOX_3_1a2_BUILD1 FIREFOX_3_1a1_RELEASE FIREFOX_3_1a1_BUILD2 FIREFOX_3_1a1_BUILD1 FENNEC_4_0b4_RELEASE FENNEC_4_0b4_BUILD1 FENNEC_4_0b3_RELEASE FENNEC_4_0b3_BUILD3 FENNEC_4_0b3_BUILD2 FENNEC_4_0b3_BUILD1 FENNEC_4_0b2_RELEASE FENNEC_4_0b2_BUILD4 FENNEC_4_0b2_BUILD3 FENNEC_4_0b2_BUILD2
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
include
lib
AUTHORS
CHANGES
COPYING
LICENSE
Makefile.in
README
README_MOZILLA
bug625773-r17780.patch
update.sh

README

-------------------------------------------------------------------------
             The Xiph.org Foundation's libtheora 1.2
-------------------------------------------------------------------------

*** What is Theora?

Theora is Xiph.Org's first publicly released video codec, intended
for use within the Foundation's Ogg multimedia streaming system.
Theora is derived directly from On2's VP3 codec, adds new features
while allow it a longer useful lifetime as an competitive codec.

The 1.0 release decoder supported all the new features, but the
encoder is nearly identical to the VP3 code.

The 1.1 release featured a completely rewritten encoder, offering
better performance and compression, and making more complete use
of the format's feature set.

The 1.2 release features significant additional improvements in
compression and performance. Files produced by newer encoders can
be decoded by earlier releases.

*** Where is Theora?

Theora's main site is www.theora.org.  Theora and related libraries
can be gotten from www.theora.org or the main Xiph.Org site at
www.xiph.org.  Development source is kept in an open subversion 
repository, see http://theora.org/svn/ for instructions.

-------------------------------------------------------------------------
Getting started with the code
-------------------------------------------------------------------------

*** What do I need to build the source?

Requirements summary:

  For libtheora:

      libogg 1.1 or newer.

  For example encoder:

      as above,

      libvorbis and libvorbisenc 1.0.1 or newer.
      (libvorbis 1.3.1 or newer for 5.1 audio)

  For creating a source distribution package:

      as above,

      Doxygen to build the API documentation,
      pdflatex and fig2dev to build the format specification
        (transfig package in Ubuntu).

  For the player only:

      as above,

      SDL (Simple Direct media Layer) libraries and headers,
      OSS audio driver and development headers.

The provided build system is the GNU automake/autoconf system, and
the main library, libtheora, should already build smoothly on any
system.  Failure of libtheora to build on a GNU-enabled system is
considered a bug; please report problems to theora-dev@xiph.org.

Windows build support is included in the win32 directory.

Project files for Apple XCode are included in the macosx directory.

There is also a more limited scons build.

*** How do I use the sample encoder?

The sample encoder takes raw video in YUV4MPEG2 format, as used by
lavtools, mjpeg-tools and other packages. The encoder expects audio,
if any, in a separate wave WAV file. Try 'encoder_example -h' for a 
complete list of options.

An easy way to get raw video and audio files is to use MPlayer as an
export utility.  The options " -ao pcm -vo yuv4mpeg " will export a
wav file named audiodump.wav and a YUV video file in the correct
format for encoder_example as stream.yuv.  Be careful when exporting
video alone; MPlayer may drop frames to 'keep up' with the audio
timer.  The example encoder can't properly synchronize input audio and
video file that aren't in sync to begin with.  

The encoder will also take video or audio on stdin if '-' is specified
as the input file name.

There is also a 'png2theora' example which accepts a set of image
files in that format.

*** How do I use the sample player?

The sample player takes an Ogg file on standard in; the file may be
audio alone, video alone or video with audio.

*** What other tools are available?

The programs in the examples directory are intended as tutorial source 
for developers using the library. As such they sacrifice features and 
robustness in the interests of comprehension and should not be 
considered serious applications.

If you're wanting to just use theora, consider the programs linked
from http://www.theora.org/. There is playback support in a number
of common free players, and plugins for major media frameworks.
Jan Gerber's ffmpeg2theora is an excellent encoding front end.

-------------------------------------------------------------------------
Troubleshooting the build process
-------------------------------------------------------------------------

*** Compile error, such as:

encoder_internal.h:664: parse error before `ogg_uint16_t'

This means you have version of libogg prior to 1.1. A *complete* new Ogg 
install, libs and headers is needed.

Also be sure that there aren't multiple copies of Ogg installed in
/usr and /usr/local; an older one might be first on the search path
for libs and headers.

*** Link error, such as:

undefined reference to `oggpackB_stream'

See above; you need libogg 1.1 or later.

*** Link error, such as:

undefined reference to `vorbis_granule_time'

You need libvorbis and libvorbisenc from the 1.0.1 release or later.

*** Link error, such as:

/usr/lib/libSDL.a(SDL_esdaudio.lo): In function `ESD_OpenAudio':
SDL_esdaudio.lo(.text+0x25d): undefined reference to `esd_play_stream'

Be sure to use an SDL that's built to work with OSS.  If you use an
SDL that is also built with ESD and/or ALSA support, it will try to
suck in all those extra libraries at link time too.  That will only
work if the extra libraries are also installed.

*** Link warning, such as:

libtool: link: warning: library `/usr/lib/libogg.la' was moved.
libtool: link: warning: library `/usr/lib/libogg.la' was moved.

Re-run theora/autogen.sh after an Ogg or Vorbis rebuild/reinstall