media/libtheora/README

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 -------------------------------------------------------------------------
michael@0 2 The Xiph.org Foundation's libtheora 1.2
michael@0 3 -------------------------------------------------------------------------
michael@0 4
michael@0 5 *** What is Theora?
michael@0 6
michael@0 7 Theora is Xiph.Org's first publicly released video codec, intended
michael@0 8 for use within the Foundation's Ogg multimedia streaming system.
michael@0 9 Theora is derived directly from On2's VP3 codec, adds new features
michael@0 10 while allow it a longer useful lifetime as an competitive codec.
michael@0 11
michael@0 12 The 1.0 release decoder supported all the new features, but the
michael@0 13 encoder is nearly identical to the VP3 code.
michael@0 14
michael@0 15 The 1.1 release featured a completely rewritten encoder, offering
michael@0 16 better performance and compression, and making more complete use
michael@0 17 of the format's feature set.
michael@0 18
michael@0 19 The 1.2 release features significant additional improvements in
michael@0 20 compression and performance. Files produced by newer encoders can
michael@0 21 be decoded by earlier releases.
michael@0 22
michael@0 23 *** Where is Theora?
michael@0 24
michael@0 25 Theora's main site is www.theora.org. Theora and related libraries
michael@0 26 can be gotten from www.theora.org or the main Xiph.Org site at
michael@0 27 www.xiph.org. Development source is kept in an open subversion
michael@0 28 repository, see http://theora.org/svn/ for instructions.
michael@0 29
michael@0 30 -------------------------------------------------------------------------
michael@0 31 Getting started with the code
michael@0 32 -------------------------------------------------------------------------
michael@0 33
michael@0 34 *** What do I need to build the source?
michael@0 35
michael@0 36 Requirements summary:
michael@0 37
michael@0 38 For libtheora:
michael@0 39
michael@0 40 libogg 1.1 or newer.
michael@0 41
michael@0 42 For example encoder:
michael@0 43
michael@0 44 as above,
michael@0 45
michael@0 46 libvorbis and libvorbisenc 1.0.1 or newer.
michael@0 47 (libvorbis 1.3.1 or newer for 5.1 audio)
michael@0 48
michael@0 49 For creating a source distribution package:
michael@0 50
michael@0 51 as above,
michael@0 52
michael@0 53 Doxygen to build the API documentation,
michael@0 54 pdflatex and fig2dev to build the format specification
michael@0 55 (transfig package in Ubuntu).
michael@0 56
michael@0 57 For the player only:
michael@0 58
michael@0 59 as above,
michael@0 60
michael@0 61 SDL (Simple Direct media Layer) libraries and headers,
michael@0 62 OSS audio driver and development headers.
michael@0 63
michael@0 64 The provided build system is the GNU automake/autoconf system, and
michael@0 65 the main library, libtheora, should already build smoothly on any
michael@0 66 system. Failure of libtheora to build on a GNU-enabled system is
michael@0 67 considered a bug; please report problems to theora-dev@xiph.org.
michael@0 68
michael@0 69 Windows build support is included in the win32 directory.
michael@0 70
michael@0 71 Project files for Apple XCode are included in the macosx directory.
michael@0 72
michael@0 73 There is also a more limited scons build.
michael@0 74
michael@0 75 *** How do I use the sample encoder?
michael@0 76
michael@0 77 The sample encoder takes raw video in YUV4MPEG2 format, as used by
michael@0 78 lavtools, mjpeg-tools and other packages. The encoder expects audio,
michael@0 79 if any, in a separate wave WAV file. Try 'encoder_example -h' for a
michael@0 80 complete list of options.
michael@0 81
michael@0 82 An easy way to get raw video and audio files is to use MPlayer as an
michael@0 83 export utility. The options " -ao pcm -vo yuv4mpeg " will export a
michael@0 84 wav file named audiodump.wav and a YUV video file in the correct
michael@0 85 format for encoder_example as stream.yuv. Be careful when exporting
michael@0 86 video alone; MPlayer may drop frames to 'keep up' with the audio
michael@0 87 timer. The example encoder can't properly synchronize input audio and
michael@0 88 video file that aren't in sync to begin with.
michael@0 89
michael@0 90 The encoder will also take video or audio on stdin if '-' is specified
michael@0 91 as the input file name.
michael@0 92
michael@0 93 There is also a 'png2theora' example which accepts a set of image
michael@0 94 files in that format.
michael@0 95
michael@0 96 *** How do I use the sample player?
michael@0 97
michael@0 98 The sample player takes an Ogg file on standard in; the file may be
michael@0 99 audio alone, video alone or video with audio.
michael@0 100
michael@0 101 *** What other tools are available?
michael@0 102
michael@0 103 The programs in the examples directory are intended as tutorial source
michael@0 104 for developers using the library. As such they sacrifice features and
michael@0 105 robustness in the interests of comprehension and should not be
michael@0 106 considered serious applications.
michael@0 107
michael@0 108 If you're wanting to just use theora, consider the programs linked
michael@0 109 from http://www.theora.org/. There is playback support in a number
michael@0 110 of common free players, and plugins for major media frameworks.
michael@0 111 Jan Gerber's ffmpeg2theora is an excellent encoding front end.
michael@0 112
michael@0 113 -------------------------------------------------------------------------
michael@0 114 Troubleshooting the build process
michael@0 115 -------------------------------------------------------------------------
michael@0 116
michael@0 117 *** Compile error, such as:
michael@0 118
michael@0 119 encoder_internal.h:664: parse error before `ogg_uint16_t'
michael@0 120
michael@0 121 This means you have version of libogg prior to 1.1. A *complete* new Ogg
michael@0 122 install, libs and headers is needed.
michael@0 123
michael@0 124 Also be sure that there aren't multiple copies of Ogg installed in
michael@0 125 /usr and /usr/local; an older one might be first on the search path
michael@0 126 for libs and headers.
michael@0 127
michael@0 128 *** Link error, such as:
michael@0 129
michael@0 130 undefined reference to `oggpackB_stream'
michael@0 131
michael@0 132 See above; you need libogg 1.1 or later.
michael@0 133
michael@0 134 *** Link error, such as:
michael@0 135
michael@0 136 undefined reference to `vorbis_granule_time'
michael@0 137
michael@0 138 You need libvorbis and libvorbisenc from the 1.0.1 release or later.
michael@0 139
michael@0 140 *** Link error, such as:
michael@0 141
michael@0 142 /usr/lib/libSDL.a(SDL_esdaudio.lo): In function `ESD_OpenAudio':
michael@0 143 SDL_esdaudio.lo(.text+0x25d): undefined reference to `esd_play_stream'
michael@0 144
michael@0 145 Be sure to use an SDL that's built to work with OSS. If you use an
michael@0 146 SDL that is also built with ESD and/or ALSA support, it will try to
michael@0 147 suck in all those extra libraries at link time too. That will only
michael@0 148 work if the extra libraries are also installed.
michael@0 149
michael@0 150 *** Link warning, such as:
michael@0 151
michael@0 152 libtool: link: warning: library `/usr/lib/libogg.la' was moved.
michael@0 153 libtool: link: warning: library `/usr/lib/libogg.la' was moved.
michael@0 154
michael@0 155 Re-run theora/autogen.sh after an Ogg or Vorbis rebuild/reinstall
michael@0 156

mercurial