summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2003-07-13 02:44:18 +0000
committerLuca Barbato <lu_zero@gentoo.org>2003-07-13 02:44:18 +0000
commit76f95ec89590a8f3cf730385e38e21a76c99784a (patch)
tree62fc154c53b2647c23df9ddbda564f8021717a2c /media-video
parentmoved the patch to distfiles (diff)
downloadhistorical-76f95ec89590a8f3cf730385e38e21a76c99784a.tar.gz
historical-76f95ec89590a8f3cf730385e38e21a76c99784a.tar.bz2
historical-76f95ec89590a8f3cf730385e38e21a76c99784a.zip
moved the patch to distfiles
Diffstat (limited to 'media-video')
-rw-r--r--media-video/cinelerra/Manifest7
-rw-r--r--media-video/cinelerra/cinelerra-1.1.5.ebuild7
-rw-r--r--media-video/cinelerra/files/compile-1.1.5.diff6908
-rw-r--r--media-video/cinelerra/files/digest-cinelerra-1.1.51
4 files changed, 8 insertions, 6915 deletions
diff --git a/media-video/cinelerra/Manifest b/media-video/cinelerra/Manifest
index 2f2cf64dbd59..324995c9c2bf 100644
--- a/media-video/cinelerra/Manifest
+++ b/media-video/cinelerra/Manifest
@@ -1,11 +1,10 @@
-MD5 fa576cf95d91d964af1c5505c82f0fe0 ChangeLog 1537
+MD5 b6dc9c2cbe8edf40ec16db95748aed93 ChangeLog 1715
MD5 a4f1bc017ca723056dcf4d643683573c cinelerra-1.0.0.ebuild 1128
MD5 c69120050a1046a849e4231a12794dc9 cinelerra-110802.ebuild 1200
-MD5 d0fabfc9a69c49aeb53edb6831c33b1d cinelerra-1.1.5.ebuild 1262
+MD5 04a03141543d095304dcfc74087d4bda cinelerra-1.1.5.ebuild 1265
MD5 bce7f5215d4f8cf7265d5a8ee4aa2005 cinelerra-1.1.6.ebuild 1454
MD5 bb1b390c6a20a9240f1100c3a3974b0d files/digest-cinelerra-1.0.0 73
-MD5 0251b5e587fcbf93534c1633a3d27ad1 files/digest-cinelerra-110802 74
MD5 d2363d0c13405512bf1341d84a12d744 files/digest-cinelerra-1.1.5 148
+MD5 0251b5e587fcbf93534c1633a3d27ad1 files/digest-cinelerra-110802 74
MD5 82ff059ba49d16e7d44ad7ce42976a93 files/digest-cinelerra-1.1.6 74
MD5 6a0e5d7afc5e123e9c6a059b38351548 files/compile-1.1.6.diff 7517
-MD5 96f991144e8db32813f5f3f3c76a7161 files/compile-1.1.5.diff.bz2 54084
diff --git a/media-video/cinelerra/cinelerra-1.1.5.ebuild b/media-video/cinelerra/cinelerra-1.1.5.ebuild
index 104b4571f40b..210e258dee79 100644
--- a/media-video/cinelerra/cinelerra-1.1.5.ebuild
+++ b/media-video/cinelerra/cinelerra-1.1.5.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra/cinelerra-1.1.5.ebuild,v 1.3 2003/07/12 21:12:33 aliz Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra/cinelerra-1.1.5.ebuild,v 1.4 2003/07/13 02:43:57 lu_zero Exp $
inherit gcc eutils
export WANT_GCC_3="yes"
@@ -9,7 +9,8 @@ export CFLAGS=${CFLAGS/-O?/-O2}
DESCRIPTION="Cinelerra - Professional Video Editor"
HOMEPAGE="http://heroinewarrior.com/cinelerra.php3"
-SRC_URI="mirror://sourceforge/heroines/${P}-src.tar.bz2"
+SRC_URI="mirror://sourceforge/heroines/${P}-src.tar.bz2
+ mirror://gentoo/${PN}-fixes-${PV}.diff.bz2"
LICENSE="GPL-2"
SLOT="0"
@@ -24,7 +25,7 @@ DEPEND="virtual/x11
src_unpack() {
unpack ${A}
- epatch ${FILESDIR}/compile-1.1.5.diff
+ epatch ${DISTDIR}/${PN}-fixes-${PV}.diff.bz2
}
diff --git a/media-video/cinelerra/files/compile-1.1.5.diff b/media-video/cinelerra/files/compile-1.1.5.diff
deleted file mode 100644
index cbccdfadd0e0..000000000000
--- a/media-video/cinelerra/files/compile-1.1.5.diff
+++ /dev/null
@@ -1,6908 +0,0 @@
-diff -ruN cinelerra-1.1.5.orig/cinelerra/builddate.h cinelerra-1.1.5/cinelerra/builddate.h
---- cinelerra-1.1.5.orig/cinelerra/builddate.h 2003-02-10 08:25:29.000000000 +0100
-+++ cinelerra-1.1.5/cinelerra/builddate.h 2003-05-04 08:50:11.000000000 +0200
-@@ -1 +1 @@
--#define BUILDDATE "Sun Feb 9 23:25:29 PST 2003"
-+#define BUILDDATE "Sun May 4 08:48:32 CEST 2003"
-diff -ruN cinelerra-1.1.5.orig/cinelerra/tracksedit.C cinelerra-1.1.5/cinelerra/tracksedit.C
---- cinelerra-1.1.5.orig/cinelerra/tracksedit.C 2002-12-14 06:10:45.000000000 +0100
-+++ cinelerra-1.1.5/cinelerra/tracksedit.C 2003-05-04 08:50:11.000000000 +0200
-@@ -745,7 +745,7 @@
- dest_edit->insert_transition(server->title);
- }
-
--void Tracks::paste_video_transition(PluginServer *server, int first_track = 0)
-+void Tracks::paste_video_transition(PluginServer *server, int first_track)
- {
- for(Track *current = first; current; current = NEXT)
- {
-diff -ruN cinelerra-1.1.5.orig/doc/cinelerra.html cinelerra-1.1.5/doc/cinelerra.html
---- cinelerra-1.1.5.orig/doc/cinelerra.html 2003-02-10 07:02:54.000000000 +0100
-+++ cinelerra-1.1.5/doc/cinelerra.html 2003-05-04 08:50:11.000000000 +0200
-@@ -2,30 +2,32 @@
- <head>
- <title>Secrets of Cinelerra</title>
- <meta http-equiv="Content-Type" content="text/html">
--<meta name=description content="Secrets of Cinelerra">
--<meta name=generator content="makeinfo 4.2">
--<link href="http://www.gnu.org/software/texinfo/" rel=generator-home>
-+<meta name="description" content="Secrets of Cinelerra">
-+<meta name="generator" content="makeinfo 4.5">
-+<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
- </head>
- <body>
--<h1>Secrets of Cinelerra</h1>
-+<h1 class="settitle">Secrets of Cinelerra</h1>
-+<div class="node">
- <p><hr>
- Node:<a name="Top">Top</a>,
--Next:<a rel=next accesskey=n href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>,
--Up:<a rel=up accesskey=u href="#dir">(dir)</a>
-+Next:<a rel="next" accesskey="n" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>,
-+Up:<a rel="up" accesskey="u" href="#dir">(dir)</a>
- <br>
-+</div>
-
--<h2>BRIEF CONTENTS</h2>
-+<h2 class="unnumbered">BRIEF CONTENTS</h2>
-
--<ul>
--<li><a accesskey=1 href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>:
--<li><a accesskey=2 href="#INSTALLATION">INSTALLATION</a>:
--<li><a accesskey=3 href="#CONFIGURATION">CONFIGURATION</a>:
--<li><a accesskey=4 href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>:
--<li><a accesskey=5 href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>:
--<li><a accesskey=6 href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>:
--<li><a accesskey=7 href="#EDITING">EDITING</a>:
--<li><a accesskey=8 href="#USING%20EFFECTS">USING EFFECTS</a>:
--<li><a accesskey=9 href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>:
-+<li><a accesskey="2" href="#INSTALLATION">INSTALLATION</a>:
-+<li><a accesskey="3" href="#CONFIGURATION">CONFIGURATION</a>:
-+<li><a accesskey="4" href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>:
-+<li><a accesskey="5" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>:
-+<li><a accesskey="6" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>:
-+<li><a accesskey="7" href="#EDITING">EDITING</a>:
-+<li><a accesskey="8" href="#USING%20EFFECTS">USING EFFECTS</a>:
-+<li><a accesskey="9" href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>:
- <li><a href="#COMPOSITING">COMPOSITING</a>:
- <li><a href="#KEYFRAMES">KEYFRAMES</a>:
- <li><a href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>:
-@@ -36,92 +38,82 @@
- </ul>
-
-
-+<div class="contents">
- <h2>Table of Contents</h2>
- <ul>
--<li><a name="toc_Top"></a>
-- <a href="#Top">BRIEF CONTENTS</a>
--<li><a name="toc_ABOUT%20CINELERRA"></a>
-- <a href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>
-+<li><a name="toc_Top" href="#Top">BRIEF CONTENTS</a>
-+<li><a name="toc_ABOUT%20CINELERRA" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>
- <ul>
- <li><a href="#ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL</a>
--</ul>
--<li><a name="toc_INSTALLATION"></a>
-- <a href="#INSTALLATION">INSTALLATION</a>
--<li><a name="toc_CONFIGURATION"></a>
-- <a href="#CONFIGURATION">CONFIGURATION</a>
-+</li></ul>
-+<li><a name="toc_INSTALLATION" href="#INSTALLATION">INSTALLATION</a>
-+<li><a name="toc_CONFIGURATION" href="#CONFIGURATION">CONFIGURATION</a>
- <ul>
- <li><a href="#PLAYBACK">PLAYBACK</a>
- <ul>
- <li><a href="#AUDIO%20OUT">AUDIO OUT</a>
- <li><a href="#VIDEO%20OUT">VIDEO OUT</a>
--</ul>
-+</li></ul>
- <li><a href="#RECORDING">RECORDING</a>
- <ul>
- <li><a href="#AUDIO%20IN">AUDIO IN</a>
- <li><a href="#VIDEO%20IN">VIDEO IN</a>
--</ul>
-+</li></ul>
- <li><a href="#PERFORMANCE">PERFORMANCE</a>
- <ul>
- <li><a href="#BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>
- <li><a href="#RENDERFARM">RENDERFARM</a>
--</ul>
-+</li></ul>
- <li><a href="#INTERFACE">INTERFACE</a>
--</ul>
--<li><a name="toc_THE%20MAIN%20WINDOWS"></a>
-- <a href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>
--<li><a name="toc_LOADING%20AND%20SAVING%20FILES"></a>
-- <a href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
-+</li></ul>
-+<li><a name="toc_THE%20MAIN%20WINDOWS" href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>
-+<li><a name="toc_LOADING%20AND%20SAVING%20FILES" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
- <ul>
- <li><a href="#LOADING%20FILES">LOADING FILES</a>
- <ul>
- <li><a href="#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>
- <li><a href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>
- <li><a href="#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>
--</ul>
-+</li></ul>
- <li><a href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>
- <li><a href="#SAVING%20FILES">SAVING FILES</a>
- <li><a href="#RENDERING%20FILES">RENDERING FILES</a>
- <li><a href="#THE%20RENDER%20FARM">THE RENDER FARM</a>
--</ul>
--<li><a name="toc_NAVIGATING%20THE%20PROJECT"></a>
-- <a href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
-+</li></ul>
-+<li><a name="toc_NAVIGATING%20THE%20PROJECT" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
- <ul>
- <li><a href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
- <ul>
- <li><a href="#THE%20INSERTION%20POINT">THE INSERTION POINT</a>
- <li><a href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>
- <li><a href="#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>
--</ul>
-+</li></ul>
- <li><a href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>
- <li><a href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>
- <li><a href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>
- <li><a href="#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>
--</ul>
--<li><a name="toc_EDITING"></a>
-- <a href="#EDITING">EDITING</a>
-+</li></ul>
-+<li><a name="toc_EDITING" href="#EDITING">EDITING</a>
- <ul>
- <li><a href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>
- <li><a href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>
- <li><a href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>
- <li><a href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>
- <li><a href="#TRIMMING">TRIMMING</a>
--</ul>
--<li><a name="toc_USING%20EFFECTS"></a>
-- <a href="#USING%20EFFECTS">USING EFFECTS</a>
-+</li></ul>
-+<li><a name="toc_USING%20EFFECTS" href="#USING%20EFFECTS">USING EFFECTS</a>
- <ul>
- <li><a href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>
- <ul>
- <li><a href="#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>
- <li><a href="#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>
--</ul>
-+</li></ul>
- <li><a href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>
- <li><a href="#TRANSITIONS">TRANSITIONS</a>
- <li><a href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>
--</ul>
--<li><a name="toc_SETTING%20PROJECT%20ATTRIBUTES"></a>
-- <a href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>
--<li><a name="toc_COMPOSITING"></a>
-- <a href="#COMPOSITING">COMPOSITING</a>
-+</li></ul>
-+<li><a name="toc_SETTING%20PROJECT%20ATTRIBUTES" href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>
-+<li><a name="toc_COMPOSITING" href="#COMPOSITING">COMPOSITING</a>
- <ul>
- <li><a href="#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>
- <li><a href="#MASKS">MASKS</a>
-@@ -129,24 +121,21 @@
- <li><a href="#SAFE%20REGIONS">SAFE REGIONS</a>
- <li><a href="#OVERLAY%20MODES">OVERLAY MODES</a>
- <li><a href="#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>
--</ul>
--<li><a name="toc_KEYFRAMES"></a>
-- <a href="#KEYFRAMES">KEYFRAMES</a>
-+</li></ul>
-+<li><a name="toc_KEYFRAMES" href="#KEYFRAMES">KEYFRAMES</a>
- <ul>
- <li><a href="#CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>
- <li><a href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>
- <li><a href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>
- <li><a href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>
- <li><a href="#EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>
--</ul>
--<li><a name="toc_CAPTURING%20MEDIA"></a>
-- <a href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
-+</li></ul>
-+<li><a name="toc_CAPTURING%20MEDIA" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
- <ul>
- <li><a href="#BATCHES">BATCHES</a>
- <li><a href="#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>
--</ul>
--<li><a name="toc_IMPROVING%20PERFORMANCE"></a>
-- <a href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+</li></ul>
-+<li><a name="toc_IMPROVING%20PERFORMANCE" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <ul>
- <li><a href="#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>
- <li><a href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>
-@@ -157,45 +146,45 @@
- <li><a href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>
- <li><a href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>
- <li><a href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>
--</ul>
--<li><a name="toc_EFFECT%20DESCRIPTIONS"></a>
-- <a href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
-+</li></ul>
-+<li><a name="toc_EFFECT%20DESCRIPTIONS" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
- <ul>
- <li><a href="#CHROMA%20KEY">CHROMA KEY</a>
- <li><a href="#HISTOGRAM">HISTOGRAM</a>
- <li><a href="#TIME%20AVERAGE">TIME AVERAGE</a>
- <li><a href="#VIDEO%20SCOPE">VIDEO SCOPE</a>
--</ul>
--<li><a name="toc_PLUGIN%20AUTHORING"></a>
-- <a href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
-+</li></ul>
-+<li><a name="toc_PLUGIN%20AUTHORING" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
- <ul>
- <li><a href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
- <ul>
- <li><a href="#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>
- <li><a href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>
- <li><a href="#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>
--</ul>
-+</li></ul>
- <li><a href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>
- <li><a href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>
- <li><a href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>
- <li><a href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>
- <li><a href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>
- <li><a href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>
--</ul>
--<li><a name="toc_RELEASE%20NOTES"></a>
-- <a href="#RELEASE%20NOTES">RELEASE NOTES</a>
--</ul>
-+</li></ul>
-+<li><a name="toc_RELEASE%20NOTES" href="#RELEASE%20NOTES">RELEASE NOTES</a>
-+</li></ul>
-+</div>
-
-+<div class="node">
- <p><hr>
- Node:<a name="ABOUT%20CINELERRA">ABOUT CINELERRA</a>,
--Next:<a rel=next accesskey=n href="#INSTALLATION">INSTALLATION</a>,
--Previous:<a rel=previous accesskey=p href="#Top">Top</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#INSTALLATION">INSTALLATION</a>,
-+Previous:<a rel="previous" accesskey="p" href="#Top">Top</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>ABOUT CINELERRA</h2>
-+<h2 class="chapter">ABOUT CINELERRA</h2>
-
--<p>There are two types of moviegoers: producers who create new content,
-+ <p>There are two types of moviegoers: producers who create new content,
- going back over their content at future points for further refinement,
- and consumers who want to acquire the content and watch it. Cinelerra
- is not intended for consumers. Cinelerra has many features for
-@@ -206,13 +195,13 @@
- for consumers like MainActor, Kino, or Moxy, which you should consider
- before using Cinelerra.
-
--<p>In 1996 our first editor came out: Broadcast 1.0. It was just a window
-+ <p>In 1996 our first editor came out: Broadcast 1.0. It was just a window
- with a waveform in it, it could cut and paste stereo audio waveforms on
- a UNIX box, except unlike other audio editors it could handle files up
- to 2 gigabytes with only 64 megs of RAM. That was a feature normally
- only accessible to the highest end professional audio houses.
-
--<p>In 1997 Broadcast 1.0 was replaced by Broadcast 2.0. This time the
-+ <p>In 1997 Broadcast 1.0 was replaced by Broadcast 2.0. This time the
- window had a menubar, patchbay, console, and transport control.
- Broadcast 2.0 still only handled audio but this time it handled
- unlimited tracks, and it could perform effects on audio and save the
-@@ -222,7 +211,7 @@
- result instantly. Amazingly this real time tweeking is still
- unavailable on most audio programs.
-
--<p>But Broadcast 2.0 still didn't handle video and it wasn't very graceful
-+ <p>But Broadcast 2.0 still didn't handle video and it wasn't very graceful
- at audio either. In 1999 video broke into the story with Broadcast
- 2000. This iteration of the Broadcast series could do wonders with
- audio and offered a pretty good video feature set. It could edit video
-@@ -235,7 +224,7 @@
- disk. For a time it seemed as if the original dream of immersive movie
- making for everyone regardless of income level had arrived.
-
--<p>Later on Broadcast 2000 began to come short. Its audio and video was
-+ <p>Later on Broadcast 2000 began to come short. Its audio and video was
- graceful if you knew how to use it efficiently, but quality issues and
- new user interface techniques were emerging. Broadcast 2000 kept the
- audio interface from its ancestors, which didn't apply well to video.
-@@ -251,24 +240,26 @@
- ground up, while supplementing that with the Broadcast audio
- interface. As always, quality improvements would happen.
-
--<ul>
--<li><a accesskey=1 href="#ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="ABOUT%20THIS%20MANUAL">ABOUT THIS MANUAL</a>,
--Up:<a rel=up accesskey=u href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>
-+Up:<a rel="up" accesskey="u" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>
- <br>
-+</div>
-
--<h3>ABOUT THIS MANUAL</h3>
-+<h3 class="section">ABOUT THIS MANUAL</h3>
-
--<p>After many years of searching for the perfect documentation format
-+ <p>After many years of searching for the perfect documentation format
- we've arrived at TexInfo. This format can be converted to HTML,
- printed, automatically indexed, but most importantly is not bound to
- any commercial word processor. Documents written in Texinfo will be
- readable as long as there's a C compiler.
-
--<p>There are no screenshots in this manual. Screenshots become obsolete
-+ <p>There are no screenshots in this manual. Screenshots become obsolete
- quickly and as a result confuse the users. What looks one way in a
- screenshot will always look different in the real program because the
- real program and the manual are always evolving, never perfectly
-@@ -277,244 +268,252 @@
- so you don't have to pay for it. That includes additional labor to
- synchronize the manual with the software.
-
--<p>In addition to telling you the basic editing features of Cinelerra this
-+ <p>In addition to telling you the basic editing features of Cinelerra this
- manual covers tricks that won't be described anywhere else. We're
- going to try to come up with certain things you can do with Cinelerra
- that you wouldn't think of on your own.
-
-+<div class="node">
- <p><hr>
- Node:<a name="INSTALLATION">INSTALLATION</a>,
--Next:<a rel=next accesskey=n href="#CONFIGURATION">CONFIGURATION</a>,
--Previous:<a rel=previous accesskey=p href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#CONFIGURATION">CONFIGURATION</a>,
-+Previous:<a rel="previous" accesskey="p" href="#ABOUT%20CINELERRA">ABOUT CINELERRA</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>INSTALLATION</h2>
-+<h2 class="chapter">INSTALLATION</h2>
-
--<p>The Cinelerra package contains Cinelerra, Mix2000, Mplex, and XMovie,
-+ <p>The Cinelerra package contains Cinelerra, Mix2000, Mplex, and XMovie,
- along with standalone libraries for various functions. All these
- programs are useful and in most cases they're the only free programs
- available for dealing with uncompressed, high resolution movies.
-
--<p>All of these programs tie into the same code base. Updates in one area
-+ <p>All of these programs tie into the same code base. Updates in one area
- of the code base usually affect everything else so everything would
- have to be downloaded again even if one thing changed. By including
- everything in one package you can be instantly updated for movie making
- after one download.
-
--<p>The purpose of the various programs is as follows:
-+ <p>The purpose of the various programs is as follows:
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- Cinelerra - capturing, editing and production of material
-
--<li>
-+ <li>
- Mix2000 - higher resolution volume controller than the standard Linux
- volume controls.
-
--<li>
-+ <li>
- MPlex - Multiplexing of MPEG elementary streams.
-
--<li>
-+ <li>
- XMovie - Standalone player for all the formats Cinelerra exports.
-
--<li>
-+ <li>
- mpeg3toc - Utility for indexing and reading MPEG files.
-
--</ul>
-+ </ul>
-
--<p>We try to include all the dependancies because of the difficulty in
-+ <p>We try to include all the dependancies because of the difficulty in
- tracking them down. Furthermore, the versions of some of the
- dependancies Cinelerra requires differ from the versions other
- utilities may require, making it impossible to coexist on the same
- system without static inclusion.
-
--<p>Cinelerra is best installed by downloading an RPM and running
-+ <p>Cinelerra is best installed by downloading an RPM and running
-
--<br><pre>rpm -U --force --nodeps hvirtual*.rpm
--</pre>
-+<pre class="example"> rpm -U --force --nodeps hvirtual*.rpm
-+ </pre>
-
--<p>on a RedHat system.
-+ <p>on a RedHat system.
-
--<p>On systems which don't support RPM look for a utility called
-+ <p>On systems which don't support RPM look for a utility called
- <em>rpm2cpio</em>. Download a Cinelerra RPM and from the /
- directory run
-
--<br><pre>rpm2cpio hvirtual*.rpm | cpio -i --make-directories
--</pre>
-+<pre class="example"> rpm2cpio hvirtual*.rpm | cpio -i --make-directories
-+ </pre>
-
--<p>It should be noted that the compiler used in building Cinelerra
-+ <p>It should be noted that the compiler used in building Cinelerra
- binaries is the free GNU compiler and although it can reorder
- instructions for Pentium I and use some the of Pentium II branch
- instructions it's 12 years behind most modern CPUs. You can try
- different compilers and optimization flags by compiling the source.
-
--<p>Compiling the source is hard and there's no warranty if the source code
-+ <p>Compiling the source is hard and there's no warranty if the source code
- fails to compile, but the method for compiling starts by downloading
- the source code and decompressing.
-
--<br><pre>tar jxf hvirtual*.tar.bz2
--</pre>
-+<pre class="example"> tar jxf hvirtual*.tar.bz2
-+ </pre>
-
--<p>Enter the hvirtual directory
-+ <p>Enter the hvirtual directory
-
--<br><pre>cd hvirtual
--</pre>
-+<pre class="example"> cd hvirtual
-+ </pre>
-
--<p>and set some environment variables. For Pentium II use:
-+ <p>and set some environment variables. For Pentium II use:
-
--<br><pre>export CFLAGS='-O3 -march=i686 -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -I/usr/local/include'
--</pre>
-+<pre class="example"> export CFLAGS='-O3 -march=i686 -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -I/usr/local/include'
-+ </pre>
-
--<p>For Pentium I and old AMD's use:
-+ <p>For Pentium I and old AMD's use:
-
--<br><pre>export CFLAGS='-O3 -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -I/usr/local/include'
--</pre>
-+<pre class="example"> export CFLAGS='-O3 -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -I/usr/local/include'
-+ </pre>
-
--<p>Then run
-+ <p>Then run
-
--<br><pre>make
--</pre>
-+<pre class="example"> make
-+ </pre>
-
--<p>The make procedure should run through all the directories and put
-+ <p>The make procedure should run through all the directories and put
- binaries in the <em>i686</em> directories. When we originally supported
- Alpha it was convenient to compile Alpha and i686 binaries
- simultaneously, in different directories so all the binaries are put in
- i686 directories.
-
--<p>Once finished run
-+ <p>Once finished run
-
--<br><pre>make install
--</pre>
-+<pre class="example"> make install
-+ </pre>
-
--<p>to install the binaries. The output is put in the following directories:
-+ <p>to install the binaries. The output is put in the following directories:
-
--<ul>
-+ <ul>
- <li>Executables -&gt;/usr/bin
- <li>Plugins -&gt;/usr/lib/cinelerra
- </ul>
-
--<p>The main binaries are the Cinelerra, XMovie, Mix2000 executables and
-+ <p>The main binaries are the Cinelerra, XMovie, Mix2000 executables and
- several utilities for reading MPEG transport streams.
-
--<p>Run Cinelerra by running
-+ <p>Run Cinelerra by running
-
--<br><pre>/usr/bin/cinelerra
--</pre>
-+<pre class="example"> /usr/bin/cinelerra
-+ </pre>
-
-+<div class="node">
- <p><hr>
- Node:<a name="CONFIGURATION">CONFIGURATION</a>,
--Next:<a rel=next accesskey=n href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>,
--Previous:<a rel=previous accesskey=p href="#INSTALLATION">INSTALLATION</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#INSTALLATION">INSTALLATION</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>CONFIGURATION</h2>
-+<h2 class="chapter">CONFIGURATION</h2>
-
--<p>Because of the variety of uses, Cinelerra cannot be run optimally
-+ <p>Because of the variety of uses, Cinelerra cannot be run optimally
- without some intimate configuration for your specific needs. Very few
- parameters are adjustible at compile time. Runtime configuration is
- the only option for most configuration because of the multitude of
- parameters.
-
--<p>Go to <em>settings-&gt;preferences</em> and run through the options.
-+ <p>Go to <em>settings-&gt;preferences</em> and run through the options.
-
--<ul>
--<li><a accesskey=1 href="#PLAYBACK">PLAYBACK</a>:
--<li><a accesskey=2 href="#RECORDING">RECORDING</a>:
--<li><a accesskey=3 href="#PERFORMANCE">PERFORMANCE</a>:
--<li><a accesskey=4 href="#INTERFACE">INTERFACE</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#PLAYBACK">PLAYBACK</a>:
-+<li><a accesskey="2" href="#RECORDING">RECORDING</a>:
-+<li><a accesskey="3" href="#PERFORMANCE">PERFORMANCE</a>:
-+<li><a accesskey="4" href="#INTERFACE">INTERFACE</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="PLAYBACK">PLAYBACK</a>,
--Next:<a rel=next accesskey=n href="#RECORDING">RECORDING</a>,
--Up:<a rel=up accesskey=u href="#CONFIGURATION">CONFIGURATION</a>
-+Next:<a rel="next" accesskey="n" href="#RECORDING">RECORDING</a>,
-+Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
- <br>
-+</div>
-
--<h3>PLAYBACK</h3>
-+<h3 class="section">PLAYBACK</h3>
-
--<ul>
--<li><a accesskey=1 href="#AUDIO%20OUT">AUDIO OUT</a>:
--<li><a accesskey=2 href="#VIDEO%20OUT">VIDEO OUT</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#AUDIO%20OUT">AUDIO OUT</a>:
-+<li><a accesskey="2" href="#VIDEO%20OUT">VIDEO OUT</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="AUDIO%20OUT">AUDIO OUT</a>,
--Next:<a rel=next accesskey=n href="#VIDEO%20OUT">VIDEO OUT</a>,
--Up:<a rel=up accesskey=u href="#PLAYBACK">PLAYBACK</a>
-+Next:<a rel="next" accesskey="n" href="#VIDEO%20OUT">VIDEO OUT</a>,
-+Up:<a rel="up" accesskey="u" href="#PLAYBACK">PLAYBACK</a>
- <br>
-+</div>
-
--<h4>AUDIO OUT</h4>
-+<h4 class="subsection">AUDIO OUT</h4>
-
--<p>These determine what happens when you play sound from the timeline.
-+ <p>These determine what happens when you play sound from the timeline.
-
--<ul>
-+ <ul>
-
--<li>SAMPLES TO READ FROM DISK
-+ <li>SAMPLES TO READ FROM DISK
-
--<p>Cinelerra uses a pipeline for rendering audio. The first stage is
-+ <p>Cinelerra uses a pipeline for rendering audio. The first stage is
- reading large chunks of audio from disk, the samples to read from
- disk. This is followed by processing small fragments in a virtual
- console.
-
--</p><li>SAMPLES TO SEND TO CONSOLE:
-+ </p><li>SAMPLES TO SEND TO CONSOLE:
-
--<p>The second stage is rendering small fragments through the virtual
-+ <p>The second stage is rendering small fragments through the virtual
- console to the sound driver. A larger value here causes more latency
- when you change mixing parameters but gives more reliable playback.
-
--<p>Some sound drivers don't allow changing of the console fragment so
-+ <p>Some sound drivers don't allow changing of the console fragment so
- latency is unchanged no matter what this value is.
-
--</p><li>
-+ </p><li>
- VIEW FOLLOWS PLAYBACK
-
--<p>Causes the timeline window to scroll when the playback cursor moves out
-+ <p>Causes the timeline window to scroll when the playback cursor moves out
- of view. This can bog down the X Server.
-
--</p><li>USE SOFTWARE FOR POSITIONING INFORMATION
-+ </p><li>USE SOFTWARE FOR POSITIONING INFORMATION
-
--<p>Most soundcards and sound drivers don't give reliable information on
-+ <p>Most soundcards and sound drivers don't give reliable information on
- the number of samples the card has played. When playing video you need
- this information for synchronization. This option causes the sound
- driver to be ignored and a software timer to be used for
- synchronization.
-
--</p><li>AUDIO PLAYBACK IN REALTIME:
-+ </p><li>AUDIO PLAYBACK IN REALTIME:
-
--<p>Back in the days when 150Mhz was the maximum, this allowed
-+ <p>Back in the days when 150Mhz was the maximum, this allowed
- uninterrupted playback on heavy loads. Now you'll probably only need it
- for playing video and audio when the load is to high for uninterrupted
- audio.
-
--</p><li>AUDIO DRIVER
-+ </p><li>AUDIO DRIVER
-
--<p>There are many sound drivers for Linux. This allows selecting one and
-+ <p>There are many sound drivers for Linux. This allows selecting one and
- setting parameters specific to it. Some of the common parameters for a
- sound driver are
-
--<ul>
-+ <ul>
-
--<li>DEVICE PATH
-+ <li>DEVICE PATH
-
--<p>Usually a file in the <em>/dev/</em> directory which controls the
-+ <p>Usually a file in the <em>/dev/</em> directory which controls the
- device.
-
--</p><li>
-+ </p><li>
- BITS
-
--<p>The number of bits of precision Cinelerra should set the device for.
-+ <p>The number of bits of precision Cinelerra should set the device for.
- This sometimes has a figuritive meaning. Some sound drivers need to be
- set to 32 bits to perform 24 bit playback and won't play anything when
- set to 24 bits. Some sound drivers need to be set to 24 bits for 24
- bit playback.
-
--</p><li>
-+ </p><li>
- CHANNELS
-
--<p>The number of channels Cinelerra should set the device for. Regardless
-+ <p>The number of channels Cinelerra should set the device for. Regardless
- of the number of channels in the project, the number of channels set
- here will be written to the device. When this is set to 2 and the
- project has 1 channel you'll hear sound through the left speaker and
-@@ -522,184 +521,190 @@
- and the project has 2 channels you'll hear the left channel centered
- and not 2 channels mixed together.
-
--</ul>
--</ul>
-+ </ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="VIDEO%20OUT">VIDEO OUT</a>,
--Previous:<a rel=previous accesskey=p href="#AUDIO%20OUT">AUDIO OUT</a>,
--Up:<a rel=up accesskey=u href="#PLAYBACK">PLAYBACK</a>
-+Previous:<a rel="previous" accesskey="p" href="#AUDIO%20OUT">AUDIO OUT</a>,
-+Up:<a rel="up" accesskey="u" href="#PLAYBACK">PLAYBACK</a>
- <br>
-+</div>
-
--<h4>VIDEO OUT</h4>
-+<h4 class="subsection">VIDEO OUT</h4>
-
--<p>These determine what happens when you play video from the timeline.
-+ <p>These determine what happens when you play video from the timeline.
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- FRAMERATE ACHIEVED
-
--<p>The number of frames per second being
-+ <p>The number of frames per second being
- displayed during playback.
-
--</p><li>
-+ </p><li>
- SCALING EQUATION
-
--<p>The algorithm used in all video resizing in
-+ <p>The algorithm used in all video resizing in
- the virtual console. This doesn't affect scaling to the size of the
- compositor window.
-
--<ul>
-+ <ul>
-
--<li>NEAREST NEIGHBOR ENLARGE AND REDUCE
-+ <li>NEAREST NEIGHBOR ENLARGE AND REDUCE
-
--<p>lowest but fastest
-+ <p>lowest but fastest
- quality. Produces jagged edges and uneven motion.
-
--</p><li>
-+ </p><li>
- BICUBIC ENLARGE AND BILINEAR REDUCE
-
--<p>highest but slowest
-+ <p>highest but slowest
- quality. For enlarging a bicubic interpolation is used, which blurs
- slightly but doesn't reveal stair steps. For reduction a bilinear
- interpolation is used, which produces very sharp images and reduces
- noise. The bilinear reduced images can be sharpened with a sharpen
- effect with less noise than a normal sized image.
-
--</p><li>
-+ </p><li>
- BILINEAR ENLARGE AND BILINEAR REDUCE
-
--<p>when slight enlargement
-+ <p>when slight enlargement
- is needed a bilinear enlargement looks better than a bicubic
- enlargement.
-
--</ul>
-+ </ul>
-
--</p><li>
-+ </p><li>
- PRELOAD BUFFER FOR QUICKTIME
-
--<p>The Quicktime/AVI decoder can
-+ <p>The Quicktime/AVI decoder can
- handle CDROM sources better when this is around 1000000. This reduces
- the amount of seeking. For normal use this should be 0.
-
--</p><li>
-+ </p><li>
- MPEG-4 DEBLOCKING
-
--<p>For assets which are compressed in OpenDivx and Quicktime, this enables
-+ <p>For assets which are compressed in OpenDivx and Quicktime, this enables
- deblocking. This greatly improves the picture quality during decoding
- while slowing it down.
-
--</p><li>
-+ </p><li>
- VIDEO DRIVER
-
--<p>Normally video on the timeline goes to the
-+ <p>Normally video on the timeline goes to the
- compositor window during continuous playback and when the insertion
- point is repositioned. Instead of sending video to the Compositor
- window the video driver can be set to send video to another output
- device during continuous playback. This doesn't affect where video
- goes when the insertion point is repositioned, however.
-
--<p>Various parameters are given for Video Driver depending on the driver.
-+ <p>Various parameters are given for Video Driver depending on the driver.
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- DISPLAY
-
--<p>The is intended for dual monitor
-+ <p>The is intended for dual monitor
- displays. Depending on the value of Display, the Compositor window
- will appear on a different monitor from the rest of the windows.
-
--</p><li>
-+ </p><li>
- DEVICE PATH
-
--<p>Usually a file in the <em>/dev/</em> directory
-+ <p>Usually a file in the <em>/dev/</em> directory
- which controls the device.
-
--</p><li>
-+ </p><li>
- SWAP FIELDS
-
--<p>Make the even lines odd and the odd lines even
-+ <p>Make the even lines odd and the odd lines even
- when sending to the device. On an NTSC or 1080i monitor the fields may
- need to be swapped to prevent jittery motion.
-
--</p><li>
-+ </p><li>
- OUTPUT CHANNEL
-
--<p>Devices with multiple outputs may need a
-+ <p>Devices with multiple outputs may need a
- specific connector to send video on.
-
--</p><li>
-+ </p><li>
- PORT
-
--<p>The IEEE1394 standard specifies something known as the
-+ <p>The IEEE1394 standard specifies something known as the
- <em>port</em>. This is probably the firewire card number in the system
- to use.
-
--</p><li>
-+ </p><li>
- CHANNEL
-
--<p>The IEEE1394 standard specifies something known as the
-+ <p>The IEEE1394 standard specifies something known as the
- <em>channel</em>. For DV cameras it's always <em>63</em>.
-
--</ul>
-+ </ul>
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="RECORDING">RECORDING</a>,
--Next:<a rel=next accesskey=n href="#PERFORMANCE">PERFORMANCE</a>,
--Previous:<a rel=previous accesskey=p href="#PLAYBACK">PLAYBACK</a>,
--Up:<a rel=up accesskey=u href="#CONFIGURATION">CONFIGURATION</a>
-+Next:<a rel="next" accesskey="n" href="#PERFORMANCE">PERFORMANCE</a>,
-+Previous:<a rel="previous" accesskey="p" href="#PLAYBACK">PLAYBACK</a>,
-+Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
- <br>
-+</div>
-
--<h3>RECORDING</h3>
-+<h3 class="section">RECORDING</h3>
-
--<ul>
--<li><a accesskey=1 href="#AUDIO%20IN">AUDIO IN</a>:
--<li><a accesskey=2 href="#VIDEO%20IN">VIDEO IN</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#AUDIO%20IN">AUDIO IN</a>:
-+<li><a accesskey="2" href="#VIDEO%20IN">VIDEO IN</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="AUDIO%20IN">AUDIO IN</a>,
--Next:<a rel=next accesskey=n href="#VIDEO%20IN">VIDEO IN</a>,
--Up:<a rel=up accesskey=u href="#RECORDING">RECORDING</a>
-+Next:<a rel="next" accesskey="n" href="#VIDEO%20IN">VIDEO IN</a>,
-+Up:<a rel="up" accesskey="u" href="#RECORDING">RECORDING</a>
- <br>
-+</div>
-
--<h4>AUDIO IN</h4>
-+<h4 class="subsection">AUDIO IN</h4>
-
--<p>These determine what happens when you record audio.
-+ <p>These determine what happens when you record audio.
-
--<ul>
-+ <ul>
- <li>
- RECORD DRIVER
-
--<p>This is used for recording audio in the Record window. It may be
-+ <p>This is used for recording audio in the Record window. It may be
- shared with the Record Driver for video if the audio and video are
- wrapped in the same stream. It takes variable parameters depending on
- the driver. The parameters have the same meaning as they do for
- playback.
-
--<ul>
-+ <ul>
- <li>
- DEVICE PATH
-
--<p>Usually a file in the <em>/dev/</em> directory which controls the
-+ <p>Usually a file in the <em>/dev/</em> directory which controls the
- device.
-
--</p><li>
-+ </p><li>
- BITS
-
--<p>The number of bits of precision Cinelerra should set the device for.
-+ <p>The number of bits of precision Cinelerra should set the device for.
- This sometimes has a figuritive meaning. Some sound drivers need to be
- set to 32 bits to perform 24 bit recording and won't record anything
- when set to 24 bits. Some sound drivers need to be set to 24 bits for
- 24 bit recording.
-
--</p><li>CHANNELS
-+ </p><li>CHANNELS
-
--<p>The number of channels Cinelerra should set the device for. Regardless
-+ <p>The number of channels Cinelerra should set the device for. Regardless
- of the number of channels in the record operation, the number of
- channels set here will be read from the device. When this is set to 2
- and the record operation has 1 channel you'll record the left speaker
-@@ -708,120 +713,124 @@
- record the left and right channels mixed into the left speaker and not
- 1 channel spead across two speakers.
-
--</ul>
-+ </ul>
-
--</p><li>
-+ </p><li>
- SAMPLES TO WRITE AT A TIME
-
--<p>Audio is first read in small fragments from the device. Many small
-+ <p>Audio is first read in small fragments from the device. Many small
- fragments are combined into a large fragment before writing to disk.
- The disk writing process is done in a different thread. The value here
- determines how large the combination of fragments is for each disk
- write.
-
--</p><li>
-+ </p><li>
- SAMPLE RATE FOR RECORDING
-
--<p>Regardless of what the project settings are. This is the sample rate
-+ <p>Regardless of what the project settings are. This is the sample rate
- used for recording. This should be the highest the audio device
- supports.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="VIDEO%20IN">VIDEO IN</a>,
--Previous:<a rel=previous accesskey=p href="#AUDIO%20IN">AUDIO IN</a>,
--Up:<a rel=up accesskey=u href="#RECORDING">RECORDING</a>
-+Previous:<a rel="previous" accesskey="p" href="#AUDIO%20IN">AUDIO IN</a>,
-+Up:<a rel="up" accesskey="u" href="#RECORDING">RECORDING</a>
- <br>
-+</div>
-
--<h4>VIDEO IN</h4>
-+<h4 class="subsection">VIDEO IN</h4>
-
--<p>These determine what happens when you record video.
-+ <p>These determine what happens when you record video.
-
--<ul>
-+ <ul>
- <li>
- RECORD DRIVER
-
--<p>This is used for recording video in the Record window. It may be
-+ <p>This is used for recording video in the Record window. It may be
- shared with the Record Driver for audio if the audio and video are
- wrapped in the same stream. It takes variable parameters depending on
- the driver. The parameters have the same meaning as they do for
- playback.
-
--</p><li>
-+ </p><li>
- FRAMES TO RECORD TO DISK AT A TIME
-
--<p>Frames are recorded in a pipeline. First frames are buffered in the
-+ <p>Frames are recorded in a pipeline. First frames are buffered in the
- device. Then they're read into a larger buffer for writing to disk.
- The disk writing is done in a different thread as the device reading.
- For certain codecs the disk writing uses multiple processors. This
- value determines how many frames are written to disk at a time.
-
--</p><li>
-+ </p><li>
- FRAMES TO BUFFER IN DEVICE
-
--<p>The number of frames to store in the device before reading. This
-+ <p>The number of frames to store in the device before reading. This
- determines how much latency there can be in the system before frames
- are dropped.
-
--</p><li>USE SOFTWARE FOR POSITIONING INFORMATION
-+ </p><li>USE SOFTWARE FOR POSITIONING INFORMATION
-
--<p>Video uses audio for
-+ <p>Video uses audio for
-
--<p>synchronization but most soundcards don't give accurate position
-+ <p>synchronization but most soundcards don't give accurate position
- information. This calculates an estimation of audio position in
- software instead of the hardware for synchronization.
-
--</p><li>
-+ </p><li>
- SYNC DRIVES AUTOMATICALLY
-
--<p>For high bitrate recording the drives may be fast enough to store the
-+ <p>For high bitrate recording the drives may be fast enough to store the
- data but Linux may wait several minutes and stall as it writes several
- minutes of data at a time. This forces Linux to flush its buffers
- every second instead of every few minutes and produce slightly better
- realtime behavior.
-
--</p><li>
-+ </p><li>
- SIZE OF CAPTURED FRAME
-
--<p>This is the size of the frames recorded. It is independant of the
-+ <p>This is the size of the frames recorded. It is independant of the
- project frame size because most video devices only record a fixed frame
- size. If the frame size given here isn't supported by the device it
- might crash Cinelerra.
-
--</p><li>FRAME RATE FOR RECORDING
-+ </p><li>FRAME RATE FOR RECORDING
-
--<p>The frame rate recorded is different from the project settings. This
-+ <p>The frame rate recorded is different from the project settings. This
- sets the recorded frame rate.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="PERFORMANCE">PERFORMANCE</a>,
--Next:<a rel=next accesskey=n href="#INTERFACE">INTERFACE</a>,
--Previous:<a rel=previous accesskey=p href="#RECORDING">RECORDING</a>,
--Up:<a rel=up accesskey=u href="#CONFIGURATION">CONFIGURATION</a>
-+Next:<a rel="next" accesskey="n" href="#INTERFACE">INTERFACE</a>,
-+Previous:<a rel="previous" accesskey="p" href="#RECORDING">RECORDING</a>,
-+Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
- <br>
-+</div>
-
--<h3>PERFORMANCE</h3>
-+<h3 class="section">PERFORMANCE</h3>
-
--<p>You'll spend most of your time configuring this section. The main
-+ <p>You'll spend most of your time configuring this section. The main
- focus of performance is rendering parameters not available in the
- rendering dialog.
-
--<ul>
-+ <ul>
-
--<li>CACHE ITEMS
-+ <li>CACHE ITEMS
-
--<p>To speed up rendering, several assets are kept open simultaneously.
-+ <p>To speed up rendering, several assets are kept open simultaneously.
- This determines how many are kept open. A number too large may exhaust
- your memory pretty fast and result in a crash. A number too small may
- result in slow playback as assets need to be reopened more frequently.
-
--</p><li>
-+ </p><li>
- SECONDS TO PREROLL RENDERS
-
--<p>Some effects need a certain amount of time to settle in. This sets a
-+ <p>Some effects need a certain amount of time to settle in. This sets a
- number of seconds to render without writing to disk before the selected
- region is rendered. When using the renderfarm you'll sometimes need to
- preroll to get seemless transitions between the jobs. Every job in a
-@@ -829,32 +838,34 @@
- rendering, however. Background rendering uses a different preroll
- value.
-
--</p><li>
-+ </p><li>
- FORCE SINGLE PROCESSOR USE
-
--<p>Cinelerra tries to use all processors on the system by default but
-+ <p>Cinelerra tries to use all processors on the system by default but
- sometimes you'll only want to use one processor, like in a renderfarm
- client. This forces only one processer to be used. The operating
- system, however, usually uses the second processor anyway for disk
- access so this option is really a 1.25 processor mode. The value of
- this parameter is used in renderfarm clients.
-
--</ul>
-+ </ul>
-
--<ul>
--<li><a accesskey=1 href="#BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>:
--<li><a accesskey=2 href="#RENDERFARM">RENDERFARM</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>:
-+<li><a accesskey="2" href="#RENDERFARM">RENDERFARM</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>,
--Next:<a rel=next accesskey=n href="#RENDERFARM">RENDERFARM</a>,
--Up:<a rel=up accesskey=u href="#PERFORMANCE">PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#RENDERFARM">RENDERFARM</a>,
-+Up:<a rel="up" accesskey="u" href="#PERFORMANCE">PERFORMANCE</a>
- <br>
-+</div>
-
--<h4>BACKGROUND RENDERING</h4>
-+<h4 class="subsection">BACKGROUND RENDERING</h4>
-
--<p>Background rendering was originally concieved to allow HDTV effects to
-+ <p>Background rendering was originally concieved to allow HDTV effects to
- be displayed in realtime. Background rendering causes temporary output
- to constantly be rendered while the timeline is being modified. The
- temporary output is played during playack whenever possible. It's very
-@@ -863,26 +874,26 @@
- renderfarm is used for background rendering, giving you the potential
- for realtime effects if enough network bandwidth and CPU nodes exist.
-
--<ul>
-+ <ul>
-
--<li>FRAMES PER BACKGROUND RENDERING JOB
-+ <li>FRAMES PER BACKGROUND RENDERING JOB
-
--<p>This only works if renderfarm is being used, otherwise background
-+ <p>This only works if renderfarm is being used, otherwise background
- rendering creates a single job for the entire timeline. The number of
- frames specified here is scaled to the relative CPU speed of rendering
- nodes and used in a single renderfarm job. The optimum number is 10 -
- 30 since network bandwidth is used to initialize each job.
-
--</p><li>FRAMES TO PREROLL BACKGROUND
-+ </p><li>FRAMES TO PREROLL BACKGROUND
-
--<p>This is the number of frames to render ahead of each background
-+ <p>This is the number of frames to render ahead of each background
- rendering job. Background rendering is degraded when preroll is used
- since the jobs are small. When using background rendering, this number
- is ideally 0. Some effects may require 3 frames of preroll.
-
--</p><li>OUTPUT FOR BACKGROUND RENDERING
-+ </p><li>OUTPUT FOR BACKGROUND RENDERING
-
--<p>Background rendering generates a sequence of image files in a certain
-+ <p>Background rendering generates a sequence of image files in a certain
- directory. This parameter determines the filename prefix of the image
- files. It should be on a fast disk, accessible to every node in the
- renderfarm by the same path. Since hundreds of thousands of image
-@@ -891,317 +902,329 @@
- this option normally won't work either, but the <img src="wrench.png" alt="wrench.png">
- configuration button for this option works.
-
--</p><li>FILE FORMAT
-+ </p><li>FILE FORMAT
-
--<p>The file format for background rendering has to be a sequence of
-+ <p>The file format for background rendering has to be a sequence of
- images. The format of the image sequence determines the quality and
- speed of playback. JPEG is good most of the time.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="RENDERFARM">RENDERFARM</a>,
--Previous:<a rel=previous accesskey=p href="#BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>,
--Up:<a rel=up accesskey=u href="#PERFORMANCE">PERFORMANCE</a>
-+Previous:<a rel="previous" accesskey="p" href="#BACKGROUND%20RENDERING">BACKGROUND RENDERING</a>,
-+Up:<a rel="up" accesskey="u" href="#PERFORMANCE">PERFORMANCE</a>
- <br>
-+</div>
-
--<h4>RENDERFARM</h4>
-+<h4 class="subsection">RENDERFARM</h4>
-
--<p>To use the renderfarm set these options. Ignore them for a standalone
-+ <p>To use the renderfarm set these options. Ignore them for a standalone
- system
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- USE RENDER FARM FOR RENDERING
-
--<p>When selected, all the
-+ <p>When selected, all the
- <em>file-&gt;render</em> operations use the renderfarm.
-
--</p><li>
-+ </p><li>
- NODES
-
--<p>Displays all the nodes on the renderfarm and which ones are active.
-+ <p>Displays all the nodes on the renderfarm and which ones are active.
-
--<p>Nodes are added by entering the host name of the node, verifying the
-+ <p>Nodes are added by entering the host name of the node, verifying the
- value of <em>port</em> and hitting <em>add node</em>.
-
--<p>Computer freaks may be better off editing the
-+ <p>Computer freaks may be better off editing the
- <em>~/.bcast/.Cinelerra_rc</em> file than this if they have hundreds of
- nodes. Remember that .Cinelerra_rc is overwritten whenever a copy of
- Cinelerra exits.
-
--<p>Select the <em>ON</em> column to activate and deactivate nodes once they
-+ <p>Select the <em>ON</em> column to activate and deactivate nodes once they
- are created.
-
--<p>Nodes may be edited by highlighting a row and hitting <em>replace
-+ <p>Nodes may be edited by highlighting a row and hitting <em>replace
- node</em>.
-
--</p><li>
-+ </p><li>
- HOSTNAME
-
--<p>Edit the hostname of an existing node or enter the hostname of a new
-+ <p>Edit the hostname of an existing node or enter the hostname of a new
- node here.
-
--</p><li>
-+ </p><li>
- PORT
-
--<p>Edit the port of an existing node or enter the port of a new node here.
-+ <p>Edit the port of an existing node or enter the port of a new node here.
-
--</p><li>
-+ </p><li>
- REPLACE NODE
-
--<p>When editing an existing node, hit this to commit the changes to
-+ <p>When editing an existing node, hit this to commit the changes to
- <em>HOSTNAME</em> and <em>PORT</em>. The changes won't be committed if you
- don't hit this button.
-
--</p><li>
-+ </p><li>
- ADD NODE
-
--<p>Create a new node with the <em>HOSTNAME</em> and <em>PORT</em> settings.
-+ <p>Create a new node with the <em>HOSTNAME</em> and <em>PORT</em> settings.
-
--</p><li>
-+ </p><li>
- DELETE NODE
-
--<p>Deletes whatever node is highlighted in the <em>NODES</em> list.
-+ <p>Deletes whatever node is highlighted in the <em>NODES</em> list.
-
--</p><li>
-+ </p><li>
- SORT NODES
-
--<p>Sorts the <em>NODES</em> list based on the hostname.
-+ <p>Sorts the <em>NODES</em> list based on the hostname.
-
--</p><li>
-+ </p><li>
- RESET RATES
-
--<p>This sets the framerate for all the nodes to 0. Frame rates are used
-+ <p>This sets the framerate for all the nodes to 0. Frame rates are used
- to scale job sizes based on CPU speed of the node. Frame rates are
- only calculated when renderfarm is enabled.
-
--</p><li>
-+ </p><li>
- FILESYSTEM PREFIX ON REMOTE NODES
-
--<p>Sets the relative location of all the assets on the nodes. If the
-+ <p>Sets the relative location of all the assets on the nodes. If the
- assets are in <em>/mov</em> on the master and the master filesystem is
- mounted under <em>/mnt</em> on the nodes, the filesystem prefix should be
- <em>/mnt</em>. Ideally the assets should appear under the same directory
- on the nodes as the master. In this case the filesystem prefix can be
- <em>/</em>.
-
--<p>You don't have to mount a shared filesystem on remote nodes. If the
-+ <p>You don't have to mount a shared filesystem on remote nodes. If the
- shared filesystem is replicated somewhere on the slave node's hard
- drive, Cinelerra will read all the assets from the node's hard drive
- and write the output to the node's hard drive, and you won't need a
- very fast network. This is much more difficult to pull off but it's an
- option for really slow networks.
-
--<p>You don't have to specify a file on the master node's filesystem as the
-+ <p>You don't have to specify a file on the master node's filesystem as the
- output file. If the output file is specified in some other directory
- on the slave node hard drive Cinelerra will read assets from the master
- filesystem but write to the node's hard drive. Thus you have a way of
- rendering across an asymetric network.
-
--</p><li>
-+ </p><li>
- TOTAL JOBS TO CREATE
-
--<p>Determines the number of jobs to dispatch to the renderfarm. The more
-+ <p>Determines the number of jobs to dispatch to the renderfarm. The more
- jobs you create, the more finely balanced the renderfarm becomes.
-
--<p>Determine the total jobs to create by multiplying the number of nodes
-+ <p>Determine the total jobs to create by multiplying the number of nodes
- including the master node by some number. Multiply them by 1 to have
- one job dispatched for every node. Multiply them by 3 to have 3 jobs
- dispatched for every node. If you have 10 slave nodes and one master
- node, specify 33 to have a well balanced renderfarm.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="INTERFACE">INTERFACE</a>,
--Previous:<a rel=previous accesskey=p href="#PERFORMANCE">PERFORMANCE</a>,
--Up:<a rel=up accesskey=u href="#CONFIGURATION">CONFIGURATION</a>
-+Previous:<a rel="previous" accesskey="p" href="#PERFORMANCE">PERFORMANCE</a>,
-+Up:<a rel="up" accesskey="u" href="#CONFIGURATION">CONFIGURATION</a>
- <br>
-+</div>
-
--<h3>INTERFACE</h3>
-+<h3 class="section">INTERFACE</h3>
-
--<p>These parameters affect purely how the user interface works.
-+ <p>These parameters affect purely how the user interface works.
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- INDEX FILES GO HERE
-
--<p>Back in the days when 4 MB/sec was unearthly speed for a hard drive,
-+ <p>Back in the days when 4 MB/sec was unearthly speed for a hard drive,
- index files were introduced to speed up drawing the audio tracks. This
- option determines where index files are placed on the hard drive.
-
--</p><li>
-+ </p><li>
- SIZE OF INDEX FILE
-
--<p>Determines the size of an index file. Larger index sizes allow smaller
-+ <p>Determines the size of an index file. Larger index sizes allow smaller
- files to be drawn faster while slowing down the drawing of large files.
- Smaller index sizes allow large files to be drawn faster while slowing
- down small files.
-
--</p><li>
-+ </p><li>
- NUMBER OF INDEX FILES TO KEEP
-
--<p>To keep the index directory from becoming unruly, old index files are
-+ <p>To keep the index directory from becoming unruly, old index files are
- deleted. This determines the maximum number of index files to keep in
- the directory.
-
--</p><li>
-+ </p><li>
- DELETE ALL INDEXES
-
--<p>When you change the index size or you want to clean out excessive index
-+ <p>When you change the index size or you want to clean out excessive index
- files, this deletes all the index files.
-
--</p><li>USE HOURS:MINUTES:SECONDS.XXX
-+ </p><li>USE HOURS:MINUTES:SECONDS.XXX
-
--<p>Various representations of time are given. Select the most convenient
-+ <p>Various representations of time are given. Select the most convenient
- one. The time representation can also be changed by <em>CTRL</em>
- clicking on the time ruler.
-
--</p><li>USE THUMBNAILS
-+ </p><li>USE THUMBNAILS
-
--<p>The Resource Window displays thumbnails of assets by default. This can
-+ <p>The Resource Window displays thumbnails of assets by default. This can
- take a long time to set up. This option disables the thumbnails.
-
--</p><li>CLICKING IN/OUT POINTS DOES WHAT
-+ </p><li>CLICKING IN/OUT POINTS DOES WHAT
-
--<p>Cinelerra not only allows you to perform editing by dragging in/out
-+ <p>Cinelerra not only allows you to perform editing by dragging in/out
- points but also defines three seperate operations which occur when you
- drag an in/out point. For each mouse button you select the behavior in
- this window. The usage of each editing mode is described in editing.
-
--</p><li>MIN DB FOR METER
-+ </p><li>MIN DB FOR METER
-
--<p>Some sound sources have a lower noise threshold than others.
-+ <p>Some sound sources have a lower noise threshold than others.
- Everything below the noise threshold is meaningless. This option sets
- the meters to clip below a certain level. Consumer soundcards usually
- bottom out at -65. Professional soundcards bottom out at -90.
-
--</p><li>FORMAT FOR METER
-+ </p><li>FORMAT FOR METER
-
--<p>This option allows you to select the format for all the VU meters. If
-+ <p>This option allows you to select the format for all the VU meters. If
- you're a CS major select percentage and if you're a EE major select DB.
- With that, be aware all levels in Cinelerra are input as DB.
-
--</p><li>THEME
-+ </p><li>THEME
-
--<p>Cinelerra supports variable themes. Select one here and restart
-+ <p>Cinelerra supports variable themes. Select one here and restart
- Cinelerra to see it.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>,
--Next:<a rel=next accesskey=n href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>,
--Previous:<a rel=previous accesskey=p href="#CONFIGURATION">CONFIGURATION</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#CONFIGURATION">CONFIGURATION</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>THE MAIN WINDOWS</h2>
-+<h2 class="chapter">THE MAIN WINDOWS</h2>
-
--<p>When Cinelerra first starts, you'll get four main windows. Hitting
-+ <p>When Cinelerra first starts, you'll get four main windows. Hitting
- <em>CTRL-w</em> in any window closes it.
-
--<ul>
-+ <ul>
-
--<li>Viewer
-+ <li>Viewer
-
--<p>In here you'll scrub around source media and clips, selecting regions
-+ <p>In here you'll scrub around source media and clips, selecting regions
- to paste into the project. Operations done in the viewer affect a
- temporary EDL or a clip but not the timeline.
-
--</p><li>Compositor
-+ </p><li>Compositor
-
--<p>This window displays the output of the timeline. It's the interface
-+ <p>This window displays the output of the timeline. It's the interface
- for most compositing operations or operations that affect the
- appearance of the timeline output. Operations done in the Compositor
- affect the timeline but don't affect clips.
-
--</p><li>Program
-+ </p><li>Program
-
--<p>This contains the timeline and the entry point for all menu driven
-+ <p>This contains the timeline and the entry point for all menu driven
- operations. The timeline consists of a vertical stack of tracks with
- horizontal representation of time. This defines the output of
- rendering operations and what is saved when you save files.
-
--</p><li>Resources
-+ </p><li>Resources
-
--<p>Effects, transitions, clips, and assets are accessed here. Most of the
-+ <p>Effects, transitions, clips, and assets are accessed here. Most of the
- resources are inserted into the project by dragging them out of the
- resource window. Management of resource allocation is also performed
- here.
-
--</ul>
-+ </ul>
-
--<p>Under the <em>Window</em> menu you'll find options affecting the main
-+ <p>Under the <em>Window</em> menu you'll find options affecting the main
- windows. <em>default positions</em> repositions all the windows to a 4
- screen editing configuration. On dual headed displays, the
- <em>default positions</em> operation fills only one monitor with windows.
-
--<p>An additional window, the <em>levels window</em> can be brought up from
-+ <p>An additional window, the <em>levels window</em> can be brought up from
- the <em>Window</em> menu. The <em>levels</em> window displays the output
- audio levels after all mixing is done.
-
-+<div class="node">
- <p><hr>
- Node:<a name="LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>,
--Next:<a rel=next accesskey=n href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>,
--Previous:<a rel=previous accesskey=p href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>,
-+Previous:<a rel="previous" accesskey="p" href="#THE%20MAIN%20WINDOWS">THE MAIN WINDOWS</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>LOADING AND SAVING FILES</h2>
-+<h2 class="chapter">LOADING AND SAVING FILES</h2>
-
--<ul>
--<li><a accesskey=1 href="#LOADING%20FILES">LOADING FILES</a>:
--<li><a accesskey=2 href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>:
--<li><a accesskey=3 href="#SAVING%20FILES">SAVING FILES</a>:
--<li><a accesskey=4 href="#RENDERING%20FILES">RENDERING FILES</a>:
--<li><a accesskey=5 href="#THE%20RENDER%20FARM">THE RENDER FARM</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#LOADING%20FILES">LOADING FILES</a>:
-+<li><a accesskey="2" href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>:
-+<li><a accesskey="3" href="#SAVING%20FILES">SAVING FILES</a>:
-+<li><a accesskey="4" href="#RENDERING%20FILES">RENDERING FILES</a>:
-+<li><a accesskey="5" href="#THE%20RENDER%20FARM">THE RENDER FARM</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="LOADING%20FILES">LOADING FILES</a>,
--Next:<a rel=next accesskey=n href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>,
--Up:<a rel=up accesskey=u href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
-+Next:<a rel="next" accesskey="n" href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>,
-+Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
- <br>
-+</div>
-
--<h3>LOADING FILES</h3>
-+<h3 class="section">LOADING FILES</h3>
-
--<p>All data that you work with in Cinelerra is acquired either by
-+ <p>All data that you work with in Cinelerra is acquired either by
- <em>recording from a device</em> or by <em>loading from disk</em>. This
- section describes loading.
-
--<p>The loading and playing of files is just as you would expect. Just go
-+ <p>The loading and playing of files is just as you would expect. Just go
- to <em>file-&gt;Load</em>, select a file for loading, and hit <em>ok</em>. Hit
- the forward play button and it should start playing, regardless of
- whether a progress bar has popped up.
-
--<p>Another way to load files is to pass the filenames as arguments on the
-+ <p>Another way to load files is to pass the filenames as arguments on the
- command line. This creates new tracks for every file and starts the
- program with all the arguments loaded.
-
--<p>If the file is a still image, the project's attributes are not changed
-+ <p>If the file is a still image, the project's attributes are not changed
- and the first frame of the track becomes the image. If the file has
- audio, Cinelerra may build an index file for it to speed up drawing.
- You can edit and play the file while the index file is being built.
-
--<ul>
--<li><a accesskey=1 href="#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>:
--<li><a accesskey=2 href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>:
--<li><a accesskey=3 href="#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>:
-+<li><a accesskey="2" href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>:
-+<li><a accesskey="3" href="#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>,
--Next:<a rel=next accesskey=n href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>,
--Up:<a rel=up accesskey=u href="#LOADING%20FILES">LOADING FILES</a>
-+Next:<a rel="next" accesskey="n" href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>,
-+Up:<a rel="up" accesskey="u" href="#LOADING%20FILES">LOADING FILES</a>
- <br>
-+</div>
-
--<h4>SUPPORTED FILE FORMATS</h4>
-+<h4 class="subsection">SUPPORTED FILE FORMATS</h4>
-
--<p>The format of the file affects what Cinelerra does with it. Some
-+ <p>The format of the file affects what Cinelerra does with it. Some
- formats replace all the project settings. Some just insert data with
- existing project settings. If your project sample rate is 48khz and
- you load a sound file with 96khz, you'll still be playing it at
-@@ -1209,158 +1232,164 @@
- an XML file at 96khz and the current project sample rate is 48khz,
- you'll change it to 96khz. Supported file formats are currently:
-
--<ul>
-+ <ul>
- <li>WAV
- <li>PCM
- <li>AIFF
- <li>Uncompresed Quicktime
-
--<p>Quicktime is not the standard for UNIX but we use it because it's well
-+ <p>Quicktime is not the standard for UNIX but we use it because it's well
- documented. All of the Quicktime movies on the internet are
- compressed. Cinelerra doesn't support compressed Quicktime movies.
- Most of the Quicktime footage dealt with in Cinelerra is generated by
- Cinelerra either recording from a device or rendering. The best
- Quicktime settings to use are JPEG video and twos audio.
-
--</p><li>JPEG, PNG, TIFF, TGA sequences
-+ </p><li>JPEG, PNG, TIFF, TGA sequences
-
--<p>Cinelerra generates a special table of contents file when you render an
-+ <p>Cinelerra generates a special table of contents file when you render an
- image sequence. You can either select every image file to load or
- select the table of contents when the rendering is done. Selecting the
- table of contents is faster and doesn't fill up the resource window
- with thousands of images.
-
--</p><li>JPEG, PNG, TIFF, TGA still images
-+ </p><li>JPEG, PNG, TIFF, TGA still images
-
--<p>When loaded, the image takes up one frame in length and doesn't change
-+ <p>When loaded, the image takes up one frame in length and doesn't change
- the project attributes.
-
--</p><li>AVI with mp3 audio and MPEG-4 video
-+ </p><li>AVI with mp3 audio and MPEG-4 video
-
--<li>MPEG 1, 2 video
-+ <li>MPEG 1, 2 video
-
--<p>You need to run <em>mpeg3toc</em> to generate a table of contents for
-+ <p>You need to run <em>mpeg3toc</em> to generate a table of contents for
- these, then load the table of contents. If you want to edit a DVD,
- find the corresponding <em>ifo</em> file for the program of interest and run
-
--<br><pre>mpeg3toc /cdrom/video_ts/vts_01_0.ifo dvd.toc
--</pre>
-+ <pre class="example"> mpeg3toc /cdrom/video_ts/vts_01_0.ifo dvd.toc
-+ </pre>
-
--<p>or something similar. Then load <em>dvd.toc</em>. This allows frame
-+ <p>or something similar. Then load <em>dvd.toc</em>. This allows frame
- accurate editing where none would be possible otherwise.
-
--</p><li>MPEG program streams and transport streams
-+ </p><li>MPEG program streams and transport streams
-
--<p>You need to run <em>mpeg3toc</em> on these just like MPEG 1,2 video.
-+ <p>You need to run <em>mpeg3toc</em> on these just like MPEG 1,2 video.
- Program and transport streams are structured into multiple tracks.
- Each track can be video or audio. Each audio track can have 1-6
- channels. Cinelerra converts each channel of audio into a track, so
- for MPEG streams with multiple tracks, the tracks will be flattened.
-
--</p><li>MPEG audio layer II, III
-+ </p><li>MPEG audio layer II, III
-
--<p>These can be loaded directly with no table of contents. Variable
-+ <p>These can be loaded directly with no table of contents. Variable
- bitrate streams may need a table of contents but are playable without
- it.
-
--</p><li>AC3 audio
-+ </p><li>AC3 audio
-
--<li>XML
-+ <li>XML
-
--<p>These are generated by Cinelerra for storing edit lists. They change
-+ <p>These are generated by Cinelerra for storing edit lists. They change
- project attributes when loaded.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="INSERTION%20STRATEGY">INSERTION STRATEGY</a>,
--Next:<a rel=next accesskey=n href="#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>,
--Previous:<a rel=previous accesskey=p href="#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>,
--Up:<a rel=up accesskey=u href="#LOADING%20FILES">LOADING FILES</a>
-+Next:<a rel="next" accesskey="n" href="#LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#SUPPORTED%20FILE%20FORMATS">SUPPORTED FILE FORMATS</a>,
-+Up:<a rel="up" accesskey="u" href="#LOADING%20FILES">LOADING FILES</a>
- <br>
-+</div>
-
--<h4>INSERTION STRATEGY</h4>
-+<h4 class="subsection">INSERTION STRATEGY</h4>
-
--<p>Usually three things happen when you load a file. First the existing
-+ <p>Usually three things happen when you load a file. First the existing
- project is cleared from the screen, second the project's attributes are
- changed to match the file's, and finally the new file's tracks are
- created in the timeline.
-
--<p>But Cinelerra lets you change what happens when you load a file.
-+ <p>But Cinelerra lets you change what happens when you load a file.
-
--<p>In the file selection box go to the <em>Insertion strategy</em> box and
-+ <p>In the file selection box go to the <em>Insertion strategy</em> box and
- select it. Each of these options loads the file a different way.
-
--<ul>
-+ <ul>
-
--<li>Replace current project
-+ <li>Replace current project
-
--<p>All tracks in the current project are deleted and new tracks are
-+ <p>All tracks in the current project are deleted and new tracks are
- created to match the source. Project attributes are only changed when
- loading XML. If multiple files are selected it adds new tracks for
- every file.
-
--</p><li>Replace current project and concatenate tracks
-+ </p><li>Replace current project and concatenate tracks
-
--<p>Same as replace current project except if multiple files are selected
-+ <p>Same as replace current project except if multiple files are selected
- it concatenates the tracks of every file after the first.
-
--</p><li>Append in new tracks
-+ </p><li>Append in new tracks
-
--<p>The current project is not deleted and new tracks are created for the
-+ <p>The current project is not deleted and new tracks are created for the
- source.
-
--</p><li>Concatenate to existing tracks
-+ </p><li>Concatenate to existing tracks
-
--<p>The current project is not deleted and new files are concatenated to
-+ <p>The current project is not deleted and new files are concatenated to
- the existing tracks.
-
--</p><li>Paste at insertion point
-+ </p><li>Paste at insertion point
-
--<p>The file is pasted in like a normal paste operation.
-+ <p>The file is pasted in like a normal paste operation.
-
--</p><li>Create new resources only
-+ </p><li>Create new resources only
-
--<p>The timeline is unchanged and new resources are created in the Resource
-+ <p>The timeline is unchanged and new resources are created in the Resource
- Window.
-
--</ul>
-+ </ul>
-
--<p>The insertion strategy is a recurring option in many of Cinelerra's
-+ <p>The insertion strategy is a recurring option in many of Cinelerra's
- functions. In each place the options do the same thing. With these
- options you can almost do all your editing by loading files.
-
--<p>If you load files by passing command line arguments to Cinelerra, the
-+ <p>If you load files by passing command line arguments to Cinelerra, the
- files are loaded with <em>Replace current project</em> rules.
-
-+<div class="node">
- <p><hr>
- Node:<a name="LOADING%20MULTIPLE%20FILES">LOADING MULTIPLE FILES</a>,
--Previous:<a rel=previous accesskey=p href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>,
--Up:<a rel=up accesskey=u href="#LOADING%20FILES">LOADING FILES</a>
-+Previous:<a rel="previous" accesskey="p" href="#INSERTION%20STRATEGY">INSERTION STRATEGY</a>,
-+Up:<a rel="up" accesskey="u" href="#LOADING%20FILES">LOADING FILES</a>
- <br>
-+</div>
-
--<h4>LOADING MULTIPLE FILES</h4>
-+<h4 class="subsection">LOADING MULTIPLE FILES</h4>
-
--<p>In the file selection box go to the list of files. Select a file. Go
-+ <p>In the file selection box go to the list of files. Select a file. Go
- to another file and select it while holding down <em>CTRL</em>. This
- selects one additional file. Go to another file and select it while
- holding down <em>SHIFT</em>. This selects every intervening file. This
- behavior is available in most every list box.
-
--<p>Select a bunch of mp3 files and <em>Replace current project and
-+ <p>Select a bunch of mp3 files and <em>Replace current project and
- concatenate tracks</em> in the insertion strategy to create a song
- playlist.
-
-+<div class="node">
- <p><hr>
- Node:<a name="LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>,
--Next:<a rel=next accesskey=n href="#SAVING%20FILES">SAVING FILES</a>,
--Previous:<a rel=previous accesskey=p href="#LOADING%20FILES">LOADING FILES</a>,
--Up:<a rel=up accesskey=u href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
-+Next:<a rel="next" accesskey="n" href="#SAVING%20FILES">SAVING FILES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#LOADING%20FILES">LOADING FILES</a>,
-+Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
- <br>
-+</div>
-
--<h3>LOADING THE BACKUP</h3>
-+<h3 class="section">LOADING THE BACKUP</h3>
-
--<p>There is one special XML file on disk at all times. After every
-+ <p>There is one special XML file on disk at all times. After every
- editing operation Cinelerra saves the current project to a backup in
- <em>$HOME/.bcast/backup.xml</em>. In the event of a crash go to
- <em>file-&gt;load backup</em> to load the backup. It is important after a
-@@ -1368,40 +1397,42 @@
- Loading the backup should be the first operation or you'll overwrite
- the backup.
-
-+<div class="node">
- <p><hr>
- Node:<a name="SAVING%20FILES">SAVING FILES</a>,
--Next:<a rel=next accesskey=n href="#RENDERING%20FILES">RENDERING FILES</a>,
--Previous:<a rel=previous accesskey=p href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>,
--Up:<a rel=up accesskey=u href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
-+Next:<a rel="next" accesskey="n" href="#RENDERING%20FILES">RENDERING FILES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#LOADING%20THE%20BACKUP">LOADING THE BACKUP</a>,
-+Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
- <br>
-+</div>
-
--<h3>SAVING FILES</h3>
-+<h3 class="section">SAVING FILES</h3>
-
--<p>When Cinelerra saves a file it saves an edit decision list of the
-+ <p>When Cinelerra saves a file it saves an edit decision list of the
- current project but doesn't save any media. Go to <em>File-&gt;save
- as...</em>. Select a file to overwrite or enter a new file. Cinelerra
- automatically concatenates <em>.xml</em> to the filename if no
- <em>.xml</em> extension is given.
-
--<p>The saved file contains all the project settings and locations of every
-+ <p>The saved file contains all the project settings and locations of every
- edit but instead of media it contains pointers to the original media
- files on disk.
-
--<p>For each media file the XML file stores either an absolute path or just
-+ <p>For each media file the XML file stores either an absolute path or just
- the relative path. If the media is in the same directory as the XML
- file a relative path is saved. If it's in a different directory an
- absolute path is saved.
-
--<p>In order to move XML files around without breaking the media linkages
-+ <p>In order to move XML files around without breaking the media linkages
- you either need to keep the media in the same directory as XML file
- forever or save the XML file in a different directory than the media
- and not move the media ever again.
-
--<p>If you want to create an audio playlist and burn it on CD-ROM, save the
-+ <p>If you want to create an audio playlist and burn it on CD-ROM, save the
- XML file in the same directory as the audio files and burn the entire
- directory. This keeps the media paths relative.
-
--<p>XML files are useful for saving the current state before going to sleep
-+ <p>XML files are useful for saving the current state before going to sleep
- and saving audio playlists but they're limited in that they're specific
- to Cinelerra. You can't play XML files in a dedicated movie player.
- Realtime effects in an XML file have to be resynthesized every time you
-@@ -1410,16 +1441,18 @@
- lot of electricity to spin. For a more persistent storage of the
- output there's rendering.
-
-+<div class="node">
- <p><hr>
- Node:<a name="RENDERING%20FILES">RENDERING FILES</a>,
--Next:<a rel=next accesskey=n href="#THE%20RENDER%20FARM">THE RENDER FARM</a>,
--Previous:<a rel=previous accesskey=p href="#SAVING%20FILES">SAVING FILES</a>,
--Up:<a rel=up accesskey=u href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
-+Next:<a rel="next" accesskey="n" href="#THE%20RENDER%20FARM">THE RENDER FARM</a>,
-+Previous:<a rel="previous" accesskey="p" href="#SAVING%20FILES">SAVING FILES</a>,
-+Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
- <br>
-+</div>
-
--<h3>RENDERING FILES</h3>
-+<h3 class="section">RENDERING FILES</h3>
-
--<p>Rendering takes a section of the timeline, performs all the editing,
-+ <p>Rendering takes a section of the timeline, performs all the editing,
- effects and compositing, and stores it in a pure movie file. You can
- then delete all the source assets, play the rendered file in a movie
- player, or bring it back into Cinelerra for more editing. It's very
-@@ -1427,18 +1460,18 @@
- however, so keep the original assets and XML file around several days
- after you render it.
-
--<p>To begin a render operation you need to define a region of the timeline
-+ <p>To begin a render operation you need to define a region of the timeline
- to render. The navigation section describes methods of defining
- regions. See <a href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>. When a region is highlighted
- or in/out points are set, the affected region is rendered. When no
- region is highlighted, everything after the insertion point is
- rendered.
-
--<p>Go to <em>File-&gt;render</em> to bring up the render dialog. Select the
-+ <p>Go to <em>File-&gt;render</em> to bring up the render dialog. Select the
- magnifying glass to bring up a file selection dialog. This determines
- the filename to write the rendered file to.
-
--<p>In the render dialog select a format from the <em>File Format</em> menu.
-+ <p>In the render dialog select a format from the <em>File Format</em> menu.
- The format of the file determines whether you can render audio or video
- or both. Select <em>Render audio tracks</em> to generate audio tracks
- and <em>Render video tracks</em> to generate video tracks. Select the
-@@ -1448,28 +1481,28 @@
- selected and the file format doesn't support it, trying to render will
- pop up an error.
-
--<p>The <em>Create new file at each label</em> option causes a new file to be
-+ <p>The <em>Create new file at each label</em> option causes a new file to be
- created when every label in the timeline is encountered. This is
- useful for dividing long audio recordings into individual tracks. When
- using the renderfarm, <em>Create new file at each label</em> causes one
- renderfarm job to be created at every label instead of using the
- internal load balancing algorithm to space jobs.
-
--<p>When <em>Create new file at each label</em> is selected, a new filename
-+ <p>When <em>Create new file at each label</em> is selected, a new filename
- is created for every output file. If the filename given in the render
- dialog has a 2 digit number in it, the 2 digit number is overwritten
- with a different incremental number for every output file. If no 2
- digit number is given, Cinelerra automatically concatenates a number to
- the end of the given filename for every output file.
-
--<p>In the filename <em>/hmov/track01.wav</em> the <em>01</em> would be
-+ <p>In the filename <em>/hmov/track01.wav</em> the <em>01</em> would be
- overwritten for every output file. The filename
- <em>/hmov/track.wav</em>; however, would become <em>/hmov/track.wav001</em>
- and so on and so forth. Filename regeneration is only used when either
- renderfarm mode is active or creating new files for every label is
- active.
-
--<p>Finally the render dialog lets you select an insertion mode. The
-+ <p>Finally the render dialog lets you select an insertion mode. The
- insertion modes are the same as with loading files. In this case if
- you select <em>insert nothing</em> the file will be written out to disk
- without changing the current project. For other insertion strategies
-@@ -1478,51 +1511,53 @@
- See <a href="#EDITING">EDITING</a>. Editing describes how to cause output to be inserted
- at the right position.
-
--<p>It should be noted that even if you only have audio or only have video
-+ <p>It should be noted that even if you only have audio or only have video
- rendered, a <em>paste</em> insertion strategy will behave like a normal
- paste operation, erasing any selected region of the timeline and
- pasting just the data that was rendered. If you render only audio and
- have some video tracks armed, the video tracks will get truncated while
- the audio output is pasted into the audio tracks.
-
-+<div class="node">
- <p><hr>
- Node:<a name="THE%20RENDER%20FARM">THE RENDER FARM</a>,
--Previous:<a rel=previous accesskey=p href="#RENDERING%20FILES">RENDERING FILES</a>,
--Up:<a rel=up accesskey=u href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
-+Previous:<a rel="previous" accesskey="p" href="#RENDERING%20FILES">RENDERING FILES</a>,
-+Up:<a rel="up" accesskey="u" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>
- <br>
-+</div>
-
--<h3>THE RENDER FARM</h3>
-+<h3 class="section">THE RENDER FARM</h3>
-
--<p>When bicubic interpolation and HDTV was first done on Cinelerra, the
-+ <p>When bicubic interpolation and HDTV was first done on Cinelerra, the
- time needed to produce the simplest output became unbearable even on
- the fastest dual 1.7Ghz Xeon of the time. Renderfarm support even in
- the simplest form brings HDTV times back in line with SD while making
- SD faster than realtime.
-
--<p>While the renderfarm interface isn't spectacular, it's simple enough to
-+ <p>While the renderfarm interface isn't spectacular, it's simple enough to
- use inside an editing suite with less than a dozen nodes without going
- through the same amount of hassle you would with a several hundred node
- farm. Renderfarm is invoked transparently for all file-&gt;render
- operations when it is enabled in the preferences.
-
--<p>It should be noted that <em>Create new file at each label</em> causes a
-+ <p>It should be noted that <em>Create new file at each label</em> causes a
- new renderfarm job to be created at each label instead of the default
- load balancing. If this option is selected when no labels exist, only
- one job will be created.
-
--<p>A Cinelerra renderfarm is organized into a master node and any number
-+ <p>A Cinelerra renderfarm is organized into a master node and any number
- of slave nodes. The master node is the computer which is running the
- GUI. The slave nodes are anywhere else on the network and are run from
- the command line.
-
--<p>Cinelerra divides the selected region of the timeline into a certain
-+ <p>Cinelerra divides the selected region of the timeline into a certain
- number of jobs which are then dispatched to the different nodes
- depending on the load balance. The nodes process the jobs and write
- their output to individual files on the filesystem. The output files
- are not concatenated. It's important for all the nodes and the master
- node to use the same filesystem for assets, mounted over the network.
-
--<p>Since most of the time you'll want to bring in the rendered output and
-+ <p>Since most of the time you'll want to bring in the rendered output and
- fine tune it on the timeline, the jobs are left in individual files.
- You can load these using <em>concatenate mode</em> and render them again
- with renderfarm disabled. If the track and output dimensions equal the
-@@ -1531,173 +1566,181 @@
- MPEG has the distinction that you can concatenate the subfiles with the
- UNIX cat utility.
-
--<p>Configuration of the renderfarm is described in the configuration
-+ <p>Configuration of the renderfarm is described in the configuration
- chapter See <a href="#RENDERFARM">RENDERFARM</a>. The slave nodes traditionally read and
- write data to a common filesystem over a network, thus they don't need
- hard drives.
-
--<p>Ideally all the nodes on the renderfarm have similar CPU performance.
-+ <p>Ideally all the nodes on the renderfarm have similar CPU performance.
- Cinelerra load balances on a first come first serve basis. If the last
- segment is dispatched to the slowest node, all the fastest nodes may
- end up waiting for the slowest node to finish while they themselves
- could have rendered it faster.
-
-+<div class="node">
- <p><hr>
- Node:<a name="NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>,
--Next:<a rel=next accesskey=n href="#EDITING">EDITING</a>,
--Previous:<a rel=previous accesskey=p href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#EDITING">EDITING</a>,
-+Previous:<a rel="previous" accesskey="p" href="#LOADING%20AND%20SAVING%20FILES">LOADING AND SAVING FILES</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>NAVIGATING THE PROJECT</h2>
-+<h2 class="chapter">NAVIGATING THE PROJECT</h2>
-
--<p>The thing you want to do most of the time is get to a certain time and
-+ <p>The thing you want to do most of the time is get to a certain time and
- place in the media. Internally the media is organized into tracks.
- Each track extends across time. Navigation involves both getting to a
- track and getting to a certain time in the track.
-
--<ul>
--<li><a accesskey=1 href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>:
--<li><a accesskey=2 href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>:
--<li><a accesskey=3 href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>:
--<li><a accesskey=4 href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>:
--<li><a accesskey=5 href="#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>:
-+<li><a accesskey="2" href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>:
-+<li><a accesskey="3" href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>:
-+<li><a accesskey="4" href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>:
-+<li><a accesskey="5" href="#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>,
--Next:<a rel=next accesskey=n href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>,
--Up:<a rel=up accesskey=u href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
-+Next:<a rel="next" accesskey="n" href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>,
-+Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
- <br>
-+</div>
-
--<h3>NAVIGATING THE PROGRAM WINDOW</h3>
-+<h3 class="section">NAVIGATING THE PROGRAM WINDOW</h3>
-
--<p>The program window contains many features for navigation and displays
-+ <p>The program window contains many features for navigation and displays
- the timeline as it is structured in memory: tracks stacked vertically
- and extending across time. The horizontal scroll bar allows you to
- scan across time. The vertical scroll bar allows you to scan across
- tracks.
-
--<p>Below the timeline you'll find the zoom panel. The zoom panel contains
-+ <p>Below the timeline you'll find the zoom panel. The zoom panel contains
- values for <em>sample zoom</em>, <em>amplitude</em>, and <em>track
- zoom</em>. These values in addition to the scrollbars are all that's
- needed to position the timeline.
-
- <br><p>
--<img src="zoompanel.png" alt="zoompanel.png">
-+ <img src="zoompanel.png" alt="zoompanel.png">
-
--<p>Changing the <em>sample zoom</em> causes the amount of time visible to
-+ <p>Changing the <em>sample zoom</em> causes the amount of time visible to
- change. <em>If your mouse has a wheel and it works in X11 go over
- the tumblers and use the wheel to zoom in and out.</em>
-
--<p>The <em>amplitude</em> only affects audio. It determines how big the
-+ <p>The <em>amplitude</em> only affects audio. It determines how big the
- waveform is if the waveform is drawn.
-
--<p>The <em>track zoom</em> affects all tracks. It determines the height of
-+ <p>The <em>track zoom</em> affects all tracks. It determines the height of
- each track. If you change the track zoom the amplitude zoom
- compensates so audio waveforms look proportional.
-
--<p>In addition to the graphical tools, you'll probably more often use the
-+ <p>In addition to the graphical tools, you'll probably more often use the
- keyboard to navigate. Use <em>PAGE UP</em> and <em>PAGE DOWN</em> to
- scroll up and down the tracks.
-
--<p>Use the <em>LEFT</em> and <em>RIGHT</em> arrows to move across time.
-+ <p>Use the <em>LEFT</em> and <em>RIGHT</em> arrows to move across time.
- You'll often need to scroll beyond the end of the timeline but
- scrollbars won't let you do it. Instead use the <em>RIGHT</em> arrow to
- scroll past the end of timeline.
-
--<p>Use the <em>UP</em> and <em>DOWN</em> arrows to change the sample zoom by a
-+ <p>Use the <em>UP</em> and <em>DOWN</em> arrows to change the sample zoom by a
- power of 2.
-
--<p><em>CTRL-UP</em> and <em>CTRL-DOWN</em> cause the amplitude zoom to change.
-+ <p><em>CTRL-UP</em> and <em>CTRL-DOWN</em> cause the amplitude zoom to change.
-
--<p><em>CTRL-PGUP</em> and <em>CTRL-PGDOWN</em> cause the track zoom to change.
-+ <p><em>CTRL-PGUP</em> and <em>CTRL-PGDOWN</em> cause the track zoom to change.
-
--<ul>
--<li><a accesskey=1 href="#THE%20INSERTION%20POINT">THE INSERTION POINT</a>:
--<li><a accesskey=2 href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>:
--<li><a accesskey=3 href="#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#THE%20INSERTION%20POINT">THE INSERTION POINT</a>:
-+<li><a accesskey="2" href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>:
-+<li><a accesskey="3" href="#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="THE%20INSERTION%20POINT">THE INSERTION POINT</a>,
--Next:<a rel=next accesskey=n href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>,
--Up:<a rel=up accesskey=u href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
-+Next:<a rel="next" accesskey="n" href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>,
-+Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
- <br>
-+</div>
-
--<h4>THE INSERTION POINT</h4>
-+<h4 class="subsection">THE INSERTION POINT</h4>
-
--<p>By default you'll see a flashing insertion point in the program window
-+ <p>By default you'll see a flashing insertion point in the program window
- the first time you boot it up. This is where new media is pasted onto
- the timeline. It's also the starting point of all playback
- operations. When rendering it defines the region of the timeline to be
- rendered.
-
--<p>The insertion point is normally moved by clicking inside the timebar.
-+ <p>The insertion point is normally moved by clicking inside the timebar.
- Any region of the timebar not obscured by labels and in/out points is a
- hotspot for repositioning the insertion point.
-
- <br><p>
--<img src="main_timebar.png" alt="main_timebar.png">
-+ <img src="main_timebar.png" alt="main_timebar.png">
- <em>The main timebar</em>
-
--<p>The insertion point also can be moved by clicking in the timeline
-+ <p>The insertion point also can be moved by clicking in the timeline
- itself, but not always. The insertion point has two modes of
- operation:
-
--<ul>
-+ <ul>
- <li>drag and drop mode
-
--<li>cut and paste mode
-+ <li>cut and paste mode
-
--</ul>
-+ </ul>
-
--<p>The mode of operation is determined by selecting the arrow or the
-+ <p>The mode of operation is determined by selecting the arrow or the
- i-beam in the buttonbar.
-
- <br><p>
--<img src="editing_mode.png" alt="editing_mode.png">
-+ <img src="editing_mode.png" alt="editing_mode.png">
- <em>The editing mode buttons</em>
-
--<p>If the arrow is highlighted it enables <em>drag and drop</em> mode. In
-+ <p>If the arrow is highlighted it enables <em>drag and drop</em> mode. In
- drag and drop mode, clicking in the timeline doesn't reposition the
- insertion point. Instead it selects an entire edit. Dragging in the
- timeline repositions the edit, snapping it to other edit boundaries.
- This is normally useful for reordering audio playlists and moving
- effects around.
-
--<p>If the i-beam is highlighted it enables <em>cut and paste mode</em>. In
-+ <p>If the i-beam is highlighted it enables <em>cut and paste mode</em>. In
- cut and paste mode clicking in the timeline repositions the insertion
- point. Dragging in the timeline highlights a region. The highlighted
- region becomes the playback range during the next playback operation,
- the rendered range during the next render operation, and the region
- affected by cut and paste operations.
-
--<p><em>Shift-clicking</em> in the timeline extends the highlighted region.
-+ <p><em>Shift-clicking</em> in the timeline extends the highlighted region.
-
--<p><em>Double-clicking</em> in the timeline selects the entire edit the
-+ <p><em>Double-clicking</em> in the timeline selects the entire edit the
- cursor is over.
-
--<p>It should be noted that when moving the insertion point and selecting
-+ <p>It should be noted that when moving the insertion point and selecting
- regions, the positions are either aligned to frames or aligned to
- samples. When editing video you'll want to align to frames. When
- editing audio you'll want to align to samples. This is set in
- <em>settings-&gt;align cursor on frames</em>.
-
--<p>If the highlighted region is the region affected by cut and paste
-+ <p>If the highlighted region is the region affected by cut and paste
- operations, how do I cut and paste in <em>drag and drop</em> mode? In
- this case you need to set <em>in/out points</em> to define an affected region.
-
-+<div class="node">
- <p><hr>
- Node:<a name="THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>,
--Next:<a rel=next accesskey=n href="#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>,
--Previous:<a rel=previous accesskey=p href="#THE%20INSERTION%20POINT">THE INSERTION POINT</a>,
--Up:<a rel=up accesskey=u href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
-+Next:<a rel="next" accesskey="n" href="#USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>,
-+Previous:<a rel="previous" accesskey="p" href="#THE%20INSERTION%20POINT">THE INSERTION POINT</a>,
-+Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
- <br>
-+</div>
-
--<h4>THE IN/OUT POINTS</h4>
-+<h4 class="subsection">THE IN/OUT POINTS</h4>
-
--<p>In both editing modes you can set in/out points. The in/out points
-+ <p>In both editing modes you can set in/out points. The in/out points
- define the affected region. In drag and drop mode they are the only
- way to define an affected region. In both cut and paste mode and drag
- and drop mode they override the highlighted area. If a highlighted
-@@ -1706,162 +1749,166 @@
- it's best to use either highlighting or in/out points but not both
- simultaneously.
-
--<p>To set in/out points go to the timebar and position the insertion point
-+ <p>To set in/out points go to the timebar and position the insertion point
- somewhere. Hit the <img src="in_point_button.png" alt="in_point_button.png"> <em>in point button</em>. Go
- to a position after the in point and hit the <img src="out_point_button.png" alt="out_point_button.png">
- <em>out point button</em>.
-
- <br><p>
--<img src="inout_points.png" alt="inout_points.png"> <em>Timebar with in/out points set</em>.
-+ <img src="inout_points.png" alt="inout_points.png"> <em>Timebar with in/out points set</em>.
-
--<p>Select either the in point or the out point and the insertion point
-+ <p>Select either the in point or the out point and the insertion point
- jumps to that location. After selecting an in point, if you hit the
- <em>in point button</em> the in point will be deleted. After selecting
- an out point, if you hit the <em>out point button</em> the out point will
- be deleted.
-
--<p>If you select a region somewhere else while in/out points already
-+ <p>If you select a region somewhere else while in/out points already
- exist, the existing points will be repositioned when you hit the in/out
- buttons.
-
--<p><em>Shift-clicking</em> on an in/out point extends the highlighted region
-+ <p><em>Shift-clicking</em> on an in/out point extends the highlighted region
- to that point.
-
--<p>Instead of using the button bar you can use the <em>[</em> and <em>]</em>
-+ <p>Instead of using the button bar you can use the <em>[</em> and <em>]</em>
- keys to toggle in/out points.
-
--<p>The insertion point and the in/out points allow you to define an
-+ <p>The insertion point and the in/out points allow you to define an
- affected region but they don't let you jump to exact points on the
- timeline very easily. For this purpose there are labels.
-
-+<div class="node">
- <p><hr>
- Node:<a name="USING%20LABELS%20IN%20THE%20PROGRAM%20WINDOW">USING LABELS IN THE PROGRAM WINDOW</a>,
--Previous:<a rel=previous accesskey=p href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>,
--Up:<a rel=up accesskey=u href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
-+Previous:<a rel="previous" accesskey="p" href="#THE%20IN%2fOUT%20POINTS">THE IN/OUT POINTS</a>,
-+Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>
- <br>
-+</div>
-
--<h4>USING LABELS IN THE PROGRAM WINDOW</h4>
-+<h4 class="subsection">USING LABELS IN THE PROGRAM WINDOW</h4>
-
--<p>Labels are an easy way to set exact locations on the timeline you want
-+ <p>Labels are an easy way to set exact locations on the timeline you want
- to jump to. When you position the insertion point somewhere and hit
- the <img src="label_button.png" alt="label_button.png"> <em>label button</em> a new label appears on the
- timeline.
-
- <br><p>
--<img src="timebar_label.png" alt="timebar_label.png"> <em>Timebar with a label on it</em>
-+ <img src="timebar_label.png" alt="timebar_label.png"> <em>Timebar with a label on it</em>
-
--<p>No matter what the zoom settings are, clicking on the label positions
-+ <p>No matter what the zoom settings are, clicking on the label positions
- the insertion point exactly where you set it. Hitting the label button
- again when a label is selected deletes it.
-
--<p><em>Shift-clicking</em> on a label extends the highlighted region.
-+ <p><em>Shift-clicking</em> on a label extends the highlighted region.
-
--<p><em>Double-clicking</em> between two labels highlights the region between
-+ <p><em>Double-clicking</em> between two labels highlights the region between
- the labels.
-
--<p>Hitting the <em>l</em> key has the same effect as the label button.
-+ <p>Hitting the <em>l</em> key has the same effect as the label button.
-
--<p>If you hit the label button when a region is highlighted, two labels
-+ <p>If you hit the label button when a region is highlighted, two labels
- are toggled at each end of the highlighted region. If one end already
- has a label, then the existing label is deleted and a label is created
- at the opposite end.
-
--<p>Labels can reposition the insertion point when they are selected but
-+ <p>Labels can reposition the insertion point when they are selected but
- they can also be traversed with the <img src="label_traversal.png" alt="label_traversal.png"> <em>label
- traversal</em> buttons. When a label is out of view, the label traversal
- buttons reposition the timeline so the label is visible. There are
- keyboard shortcuts for label traversal, too.
-
--<p><em>CTRL-LEFT</em> repositions the insertion point on the previous label.
-+ <p><em>CTRL-LEFT</em> repositions the insertion point on the previous label.
-
--<p><em>CTRL-RIGHT</em> repositions the insertion point on the next label.
-+ <p><em>CTRL-RIGHT</em> repositions the insertion point on the next label.
-
--<p>With label traversal you can quickly seek back and forth on the
-+ <p>With label traversal you can quickly seek back and forth on the
- timeline but you can also select regions.
-
--<p><em>SHIFT-CTRL-LEFT</em> extends the highlighted region to the previous
-+ <p><em>SHIFT-CTRL-LEFT</em> extends the highlighted region to the previous
- label.
-
--<p><em>SHIFT-CTRL-RIGHT</em> extends the highlighted region to the next label.
-+ <p><em>SHIFT-CTRL-RIGHT</em> extends the highlighted region to the next label.
-
--<p>Manually hitting the label button or <em>l</em> key over and over again
-+ <p>Manually hitting the label button or <em>l</em> key over and over again
- to delete a series of labels can get tedious. For deleting a set of
- labels, first highlight a region and second use the <em>Edit-&gt;Clear
- labels</em> function. If in/out points exist, the labels between the
- in/out points are cleared and the highlighted region ignored.
-
-+<div class="node">
- <p><hr>
- Node:<a name="NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>,
--Next:<a rel=next accesskey=n href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>,
--Previous:<a rel=previous accesskey=p href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>,
--Up:<a rel=up accesskey=u href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
-+Next:<a rel="next" accesskey="n" href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#NAVIGATING%20THE%20PROGRAM%20WINDOW">NAVIGATING THE PROGRAM WINDOW</a>,
-+Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
- <br>
-+</div>
-
--<h3>NAVIGATING THE VIEWER AND COMPOSITOR</h3>
-+<h3 class="section">NAVIGATING THE VIEWER AND COMPOSITOR</h3>
-
--<p>The navigation features of the Viewer and Compositor behave very
-+ <p>The navigation features of the Viewer and Compositor behave very
- similarly. Each has a timebar and slider below the video output. The
- timebar and slider are critical for navigation.
-
- <br><p>
--<img src="timebarslider.png" alt="timebarslider.png">
-+ <img src="timebarslider.png" alt="timebarslider.png">
-
--<p>The timebar represents the entire time covered by the program. When
-+ <p>The timebar represents the entire time covered by the program. When
- you define labels and in/out points it defines those, too. Finally the
- timebar defines a region known as the <em>preview region</em>.
-
--<p>The <em>preview region</em> is the region of the timeline which the
-+ <p>The <em>preview region</em> is the region of the timeline which the
- slider effects. The slider only covers the time covered by the preview
- region. By using a preview region inside the entire program and using
- the slider inside the preview region you can quickly and precisely seek
- in the compositor and viewer.
-
--<p>When you replace the current project with a file the preview region
-+ <p>When you replace the current project with a file the preview region
- automatically resizes to cover the entire file. When you append data
- or change the size of the current project, the preview region stays the
- same size and shrinks. Therefore, you need to resize the preview
- region.
-
--<p>Load a file and then slide around it using the compositor slider. The
-+ <p>Load a file and then slide around it using the compositor slider. The
- insertion point in the main window follows the compositor. Move the
- pointer over the compositor's timebar until it turns into a left resize
- pointer. The click and drag right. The preview region should have
- changed and the slider resized proportionally.
-
--<p>Go to the right of the timebar until a right resize pointer appears.
-+ <p>Go to the right of the timebar until a right resize pointer appears.
- Drag left so the preview region shrinks.
-
--<p>Go to the center of the preview region in the timebar and drag it
-+ <p>Go to the center of the preview region in the timebar and drag it
- around to convince yourself if can be moved.
-
- <br><p>
--<img src="previewregion.png" alt="previewregion.png">
-+ <img src="previewregion.png" alt="previewregion.png">
-
--<p><em>Preview region in compositor</em>
-+ <p><em>Preview region in compositor</em>
-
--<p>If you go to the slider and slide it around with the preview region
-+ <p>If you go to the slider and slide it around with the preview region
- shrunk, you'll see the slider only affects the preview region. The
- timebar and slider in the viewer window work exactly the same.
-
--<p>Labels and in/out points are fully supported in the viewer and
-+ <p>Labels and in/out points are fully supported in the viewer and
- compositor. The only difference between the viewer and compositor is
- the compositor reflects the state of the program while the viewer
- reflects the state of a clip but not the program.
-
--<p>When you hit the <em>label button</em> in the compositor, the label
-+ <p>When you hit the <em>label button</em> in the compositor, the label
- appears both in the compositor timebar and the program timebar.
-
--<p>When you select a label or in/out point in the compositor, the program
-+ <p>When you select a label or in/out point in the compositor, the program
- window jumps to that position.
-
- <br><p>
--<img src="viewer_labels.png" alt="viewer_labels.png"> <em>Labels and in/out points in the viewer</em>.
-+ <img src="viewer_labels.png" alt="viewer_labels.png"> <em>Labels and in/out points in the viewer</em>.
-
--<p>In the viewer and compositor, labels and in/out points are displayed in
-+ <p>In the viewer and compositor, labels and in/out points are displayed in
- the timebar. Instead of displaying just a region of the program, the
- timebar displays the entire program here.
-
--<p>Like the Program window, the Compositor has a zoom capability. First,
-+ <p>Like the Program window, the Compositor has a zoom capability. First,
- the pulldown menu on the bottom of the compositor window has a number
- of zoom options. When set to <em>Auto</em> the video is zoomed to match
- the compositor window size as closely as possible. When set to any
-@@ -1871,73 +1918,77 @@
- <em>middle mouse button</em> dragging in the video output scans around
- it. This is exactly when The Gimp does.
-
--<p>Furthermore, the zoom <img src="magnify.png" alt="magnify.png"> toggle causes the Compositor
-+ <p>Furthermore, the zoom <img src="magnify.png" alt="magnify.png"> toggle causes the Compositor
- window to enter zoom mode. In zoom mode, clicking in the video output
- zooms in while <em>ctrl-clicking</em> in the video output zooms out. If
- you have a wheel mouse, rotating the wheel zooms in or out too.
-
--<p>Zooming in or out with the zoom tool does not change the rendered
-+ <p>Zooming in or out with the zoom tool does not change the rendered
- output, mind you. It's merely for scrutinizing video or fitting it in
- the desktop.
-
-+<div class="node">
- <p><hr>
- Node:<a name="NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>,
--Next:<a rel=next accesskey=n href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>,
--Previous:<a rel=previous accesskey=p href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>,
--Up:<a rel=up accesskey=u href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
-+Next:<a rel="next" accesskey="n" href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#NAVIGATING%20THE%20VIEWER%20AND%20COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR</a>,
-+Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
- <br>
-+</div>
-
--<h3>NAVIGATING THE RESOURCES</h3>
-+<h3 class="section">NAVIGATING THE RESOURCES</h3>
-
--<p>The resource window is divided into two areas. One area lists folders
-+ <p>The resource window is divided into two areas. One area lists folders
- and another area lists folder contents. Going into the folder list and
- clicking on a folder updates the contents area with the contents of
- that folder.
-
--<p>The folder and contents can be displayed as icons or text.
-+ <p>The folder and contents can be displayed as icons or text.
-
--<p><em>Right clicking</em> in the folder or contents area brings up a menu
-+ <p><em>Right clicking</em> in the folder or contents area brings up a menu
- containing formatting options. Select <em>Display text</em> to display a
- text listing. Select <em>Sort items</em> to sort the contents of the
- folder alphabetically.
-
-+<div class="node">
- <p><hr>
- Node:<a name="USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>,
--Next:<a rel=next accesskey=n href="#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>,
--Previous:<a rel=previous accesskey=p href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>,
--Up:<a rel=up accesskey=u href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
-+Next:<a rel="next" accesskey="n" href="#USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>,
-+Previous:<a rel="previous" accesskey="p" href="#NAVIGATING%20THE%20RESOURCES">NAVIGATING THE RESOURCES</a>,
-+Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
- <br>
-+</div>
-
--<h3>USING THE TRANSPORT CONTROLS</h3>
-+<h3 class="section">USING THE TRANSPORT CONTROLS</h3>
-
--<p>Transport controls are just as useful in navigation as they are in
-+ <p>Transport controls are just as useful in navigation as they are in
- playing back footage, hence they are described here. Each of the
- Viewer, Compositor, and Program windows has a transport panel.
-
- <br><p>
--<img src="transport_panel.png" alt="transport_panel.png"> <em>The transport panel</em>.
-+ <img src="transport_panel.png" alt="transport_panel.png"> <em>The transport panel</em>.
-
--<p>The transport panel is controlled by the keyboard as well as the
-+ <p>The transport panel is controlled by the keyboard as well as the
- graphical interface. For each of the operations it performs, the
- starting position is the position of the insertion point or slider.
- The ending position is either the end or start of the timeline or the
- end or start of the selected region if there is one.
-
--<p>The orientation of the end or start depends on the direction of
-+ <p>The orientation of the end or start depends on the direction of
- playback. If it's forward the end position is the end of the selected
- region. If it's backward the end position is the start of the selected
- region.
-
--<p>The insertion point moves to track playback. When playback stops it
-+ <p>The insertion point moves to track playback. When playback stops it
- leaves the insertion point where it stopped. Thus, by playing back you
- change the position of the insertion point.
-
--<p>The keyboard interface is usually the fastest and has more speeds. The
-+ <p>The keyboard interface is usually the fastest and has more speeds. The
- transport keys are arranged in a <em>T</em> on the number pad.
-
--<ul>
-+ <ul>
-
--<li><em>+</em> Fast reverse
-+ <li><em>+</em> Fast reverse
- <li><em>6</em> Normal reverse
- <li><em>5</em> Slow reverse
- <li><em>4</em> Frame reverse
-@@ -1949,9 +2000,9 @@
- <li><em>Spacebar</em> Normal forward
- </ul>
-
--<p>Hitting any key on the keyboard twice pauses it.
-+ <p>Hitting any key on the keyboard twice pauses it.
-
--<p>When using frame advance functions the behavior may seem odd. If you
-+ <p>When using frame advance functions the behavior may seem odd. If you
- frame advance forward and then frame advance backward, the displayed
- frame doesn't change. This is because the playback position isn't the
- frame but the time between two frames. The rendered frame is the area
-@@ -1959,87 +2010,91 @@
- between two frames by one and decrement it by one, you cross the same
- frame both times and so the same frame is displayed.
-
-+<div class="node">
- <p><hr>
- Node:<a name="USING%20BACKGROUND%20RENDERING">USING BACKGROUND RENDERING</a>,
--Previous:<a rel=previous accesskey=p href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>,
--Up:<a rel=up accesskey=u href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
-+Previous:<a rel="previous" accesskey="p" href="#USING%20THE%20TRANSPORT%20CONTROLS">USING THE TRANSPORT CONTROLS</a>,
-+Up:<a rel="up" accesskey="u" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>
- <br>
-+</div>
-
--<h3>USING BACKGROUND RENDERING</h3>
-+<h3 class="section">USING BACKGROUND RENDERING</h3>
-
--<p>Background rendering allows impossibly slow effects to play back in
-+ <p>Background rendering allows impossibly slow effects to play back in
- realtime shortly after the effect is pasted in the timeline. It
- continuously renders temporary output. When renderfarm is enabled,
- background rendering uses the renderfarm continuously. This way, any
- size video can be seen in realtime merely by creating a fast enough
- network with enough nodes.
-
--<p>Background rendering is enabled in settings-&gt;preferences-&gt;performance.
-+ <p>Background rendering is enabled in settings-&gt;preferences-&gt;performance.
- It has one interactive function: <em>settings-&gt;set background render</em>. This
- sets the point where background rendering begins to where the in point
- is. If any video exists, a red bar appears in the time bar showing
- what has been background rendered.
-
--<p>It's often useful to insert an effect or a transition and then select
-+ <p>It's often useful to insert an effect or a transition and then select
- settings-&gt;set background render right before the effect to preview it
- in full framerates.
-
-+<div class="node">
- <p><hr>
- Node:<a name="EDITING">EDITING</a>,
--Next:<a rel=next accesskey=n href="#USING%20EFFECTS">USING EFFECTS</a>,
--Previous:<a rel=previous accesskey=p href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#USING%20EFFECTS">USING EFFECTS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#NAVIGATING%20THE%20PROJECT">NAVIGATING THE PROJECT</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>EDITING</h2>
-+<h2 class="chapter">EDITING</h2>
-
--<p>Editing comprises both the time domain and the track domain. Since the
-+ <p>Editing comprises both the time domain and the track domain. Since the
- timeline consists of a stack of tracks, you need to worry about how to
- sort and create tracks in addition to what time certain media appears
- on a track.
-
--<p>In the time domain, Cinelerra offers many ways to approach the editing
-+ <p>In the time domain, Cinelerra offers many ways to approach the editing
- process. The three main methods are two screen editing, drag and drop
- editing, and cut and paste editing.
-
--<p>There are several concepts Cinelerra uses when editing which apply to
-+ <p>There are several concepts Cinelerra uses when editing which apply to
- all the methods. The timeline is where all editing decisions are
- represented. Every track on the timeline has a set of attributes on
- the left, the most important of which is the <em>arm track</em>
- attribute.
-
- <br><p>
--<img src="track_attributes.png" alt="track_attributes.png">
-+ <img src="track_attributes.png" alt="track_attributes.png">
- <em>Track attributes</em>
-
--<p>Only the <em>armed tracks</em> are affected by editing operations. Make
-+ <p>Only the <em>armed tracks</em> are affected by editing operations. Make
- sure you have enough armed destination tracks when you paste or splice
- material or some tracks in the material will get left out.
-
--<p>The other attributes affect the output of the track.
-+ <p>The other attributes affect the output of the track.
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- <b>Play track</b> determines whether the track is rendered or not. If
- it's off, the track is not rendered. However, if the track is chained
- to any other tracks, the other tracks perform all the effects in the
- chained track, regardless of play status.
-
--<li>
-+ <li>
- <b>Gang fader</b> causes the fader to track the movement of whatever other
- fader you're adjusting. A fader is only ganged if the <b>arm track</b> is
- also on. This is normally used to adjust audio levels on all the
- tracks simultaneously.
-
--<li>
-+ <li>
- <b>Draw data</b> determines if picons or waveforms are drawn on the
- track. By default, some file formats load with this off while other
- file formats load with it on. This depends on whether the file format
- takes a long time to draw on the timeline. Merely set it to on if you
- want to see picons for any file format.
-
--<li>
-+ <li>
- <b>Mute track</b> causes the output to be thrown away once the track is
- completely rendered. This happens whether or not <b>play track</b> is
- on. If the track is part of an effect chain, the output of the effect
-@@ -2047,48 +2102,50 @@
- back to another track. Mute track is used to keep the effect chain
- track from overlapping the output of the source track.
-
--</ul>
-+ </ul>
-
--<p>There are two ways to set the same attribute on multiple tracks very
-+ <p>There are two ways to set the same attribute on multiple tracks very
- quickly. Hold down <b>shift</b> while clicking a track's attribute to
- match the same attribute in all the other tracks. If you don't want to
- affect all the other tracks, click on an attribute and drag across
- other tracks to have the same attribute set in them.
-
--<p>In addition to restricting editing operations, the armed tracks in
-+ <p>In addition to restricting editing operations, the armed tracks in
- combination with the active region determine where material is inserted
- when loading files. If the files are loaded with one of the insertion
- strategies which doesn't delete the existing project, the armed tracks
- will be used as destination tracks.
-
--<p>The active region is the range of time in the edit decision on the
-+ <p>The active region is the range of time in the edit decision on the
- timeline. The active region is determined first by the presence of
- in/out points in the timeline. If those don't exist the highlighted
- region is used. If no highlighted region exists the insertion point is
- used as the active region and the active length is 0.
-
--<p>Finally, editing decisions never affect source material. Editing only affects
-+ <p>Finally, editing decisions never affect source material. Editing only affects
- pointers to source material, so if you want to have a media file at the
- end of your editing session which represents the editing decisions, you
- need to <em>render</em> it. See <a href="#RENDERING%20FILES">RENDERING FILES</a>.
-
--<ul>
--<li><a accesskey=1 href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>:
--<li><a accesskey=2 href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>:
--<li><a accesskey=3 href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>:
--<li><a accesskey=4 href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>:
--<li><a accesskey=5 href="#TRIMMING">TRIMMING</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>:
-+<li><a accesskey="2" href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>:
-+<li><a accesskey="3" href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>:
-+<li><a accesskey="4" href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>:
-+<li><a accesskey="5" href="#TRIMMING">TRIMMING</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>,
--Next:<a rel=next accesskey=n href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>,
--Up:<a rel=up accesskey=u href="#EDITING">EDITING</a>
-+Next:<a rel="next" accesskey="n" href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>,
-+Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
- <br>
-+</div>
-
--<h3>MANIPULATING TRACKS</h3>
-+<h3 class="section">MANIPULATING TRACKS</h3>
-
--<p>Tracks in Cinelerra either contain audio or video. There is no special
-+ <p>Tracks in Cinelerra either contain audio or video. There is no special
- designation for tracks other than the type of media they contain. When
- you create a new project, it contains a certain mumber of default
- tracks. You can still add or delete tracks from a number of menus.
-@@ -2096,24 +2153,24 @@
- multiple tracks simultaneously. Each track itself has a popup menu
- which affects one track.
-
--<p>Bring up the popup menu by moving over a track and right clicking. The
-+ <p>Bring up the popup menu by moving over a track and right clicking. The
- popup menu affects the track whether it's armed or not.
-
--<p><em>Move up</em> and <em>move down</em> moves the one track up or down in
-+ <p><em>Move up</em> and <em>move down</em> moves the one track up or down in
- the stack. <em>Delete track</em> deletes the track.
-
--<p>Operations in the <em>Tracks</em> menu affect only tracks which are
-+ <p>Operations in the <em>Tracks</em> menu affect only tracks which are
- armed.
-
--<p><em>Move tracks up</em> and <em>Move tracks down</em> shift all the armed
-+ <p><em>Move tracks up</em> and <em>Move tracks down</em> shift all the armed
- tracks up or down the stack.
-
--<p><em>Delete tracks</em> deletes the armed tracks.
-+ <p><em>Delete tracks</em> deletes the armed tracks.
-
--<p><em>Delete last track</em> deletes the last track, whether it's armed or
-+ <p><em>Delete last track</em> deletes the last track, whether it's armed or
- not. Holding down the <em>d</em> key quickly deletes all the tracks.
-
--<p><em>Concatenate tracks</em> is more complicated. It takes every
-+ <p><em>Concatenate tracks</em> is more complicated. It takes every
- <em>playable</em> track and concatenates it to the end of the first
- <em>armed tracks</em>. If there are two armed tracks followed by two
- playable tracks, the concatenate operation puts the two playable tracks
-@@ -2122,7 +2179,7 @@
- put on the end of the first armed track. The destination track wraps
- around until all the playable tracks are concatenated.
-
--<p>Finally, you'll want to create new tracks. The <em>Audio</em> and
-+ <p>Finally, you'll want to create new tracks. The <em>Audio</em> and
- <em>Video</em> menus each contain an option to add a track of their
- specific type. In the case of audio, the new track is put on the
- bottom of the timeline and the output channel of the audio track is
-@@ -2130,22 +2187,24 @@
- top of the timeline. This way, video has a natural compositing order.
- New video tracks are overlayed on top of old tracks.
-
-+<div class="node">
- <p><hr>
- Node:<a name="TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>,
--Next:<a rel=next accesskey=n href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>,
--Previous:<a rel=previous accesskey=p href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>,
--Up:<a rel=up accesskey=u href="#EDITING">EDITING</a>
-+Next:<a rel="next" accesskey="n" href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>,
-+Previous:<a rel="previous" accesskey="p" href="#MANIPULATING%20TRACKS">MANIPULATING TRACKS</a>,
-+Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
- <br>
-+</div>
-
--<h3>TWO SCREEN EDITING</h3>
-+<h3 class="section">TWO SCREEN EDITING</h3>
-
--<p>This is the fastest way to construct a program out of movie files. The
-+ <p>This is the fastest way to construct a program out of movie files. The
- idea consists of viewing a movie file in one window and viewing the
- program in another window. Sections of the movie file are defined in
- one window and transferred to the end of the program in the other
- window.
-
--<p>The way to begin a two screen editing session is to load some
-+ <p>The way to begin a two screen editing session is to load some
- resources. In <em>file-&gt;load</em> load some movies with the insertion
- mode <em>create new resources</em>. You want the timeline to stay
- unchanged while new resources are brought in. Go to the Resource
-@@ -2153,24 +2212,24 @@
- should appear. Drag a resource from the media side of the window over
- the Viewer window.
-
--<p>There should be enough armed tracks on the timeline to put the sections
-+ <p>There should be enough armed tracks on the timeline to put the sections
- of source material that you want. If there aren't, create new tracks
- or arm more tracks.
-
--<p>In the viewer window seek to the starting point of a clip you want to
-+ <p>In the viewer window seek to the starting point of a clip you want to
- use. Use either the <em>slider</em> or the <em>transport controls</em>.
- Use the <em>preview region</em> to narrow down the search. Set the
- starting point with the <img src="in_point_button.png" alt="in_point_button.png"> <em>in point button</em>.
-
--<p>Seek to the ending point of the clip you want to use. Set the ending
-+ <p>Seek to the ending point of the clip you want to use. Set the ending
- point with the <img src="out_point_button.png" alt="out_point_button.png"> <em>out point button</em>. The
- two points should now appear on the timebar and define a clip.
-
--<p>There are several things you can do with the clip now.
-+ <p>There are several things you can do with the clip now.
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- Splice <img src="splice_button.png" alt="splice_button.png"> inserts the clip in the timeline, pushing
- everything back. If an <em>in point</em> or <em>out point</em> exists on
- the timeline it's inserted there, otherwise it's inserted after the
-@@ -2179,7 +2238,7 @@
- used as the next splice location. This way you can continuously build
- up the program by splicing.
-
--<li>
-+ <li>
- Overwrite <img src="overwrite_button.png" alt="overwrite_button.png"> overwrites the region of the
- timeline with the clip. If an <em>in point</em> or <em>out point</em>
- exists on the timeline it's overwritten there, otherwise it's
-@@ -2187,46 +2246,48 @@
- both in and out points exist the difference between the active region
- and the clip length is deleted.
-
--<li>
-+ <li>
- Create a clip <img src="toclip_button.png" alt="toclip_button.png"> generates a new clip for the
- resource window containing the affected region but doesn't change the
- timeline. Every clip has a title and a description. These are
- optional.
-
--<li>
-+ <li>
- Copy behaves the same as in cut and paste editing.
-
--</ul>
-+ </ul>
-
--<p>Two screen editing can be done purely by keybard shortcuts. When you
-+ <p>Two screen editing can be done purely by keybard shortcuts. When you
- move the pointer over any button a tooltip should appear, showing what
- key is bound to that button. In the Viewer window, the number pad keys
- control the transport and the <em>[ ] v</em> keys perform in/out points
- and splicing.
-
-+<div class="node">
- <p><hr>
- Node:<a name="DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>,
--Next:<a rel=next accesskey=n href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>,
--Previous:<a rel=previous accesskey=p href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>,
--Up:<a rel=up accesskey=u href="#EDITING">EDITING</a>
-+Next:<a rel="next" accesskey="n" href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>,
-+Previous:<a rel="previous" accesskey="p" href="#TWO%20SCREEN%20EDITING">TWO SCREEN EDITING</a>,
-+Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
- <br>
-+</div>
-
--<h3>DRAG AND DROP EDITING</h3>
-+<h3 class="section">DRAG AND DROP EDITING</h3>
-
--<p>The answer is yes, you can you create a bunch of clips and drag them on
-+ <p>The answer is yes, you can you create a bunch of clips and drag them on
- the timeline. You can also drag edits around the timeline.
-
--<p>Load some files using <em>file-&gt;load</em>. Set the insertion mode to
-+ <p>Load some files using <em>file-&gt;load</em>. Set the insertion mode to
- <em>Create new resources</em>. This loads the files into the Resource
- Window. Create some audio and video tracks on the timeline using the
- video and audio menus.
-
--<p>Open the <em>Media</em> folder in the resource window. Drag a media file
-+ <p>Open the <em>Media</em> folder in the resource window. Drag a media file
- from the resource window to the timeline. If the media has video, drag
- it onto a video track. If the media is pure audio, drag it onto an
- audio track.
-
--<p>Cinelerra fills out the audio and video tracks below the dragging
-+ <p>Cinelerra fills out the audio and video tracks below the dragging
- cursor with data from the file. This affects what tracks you should
- create initially and which track to drag the media onto. If the media
- has one video track and two audio tracks, you'll need one video track
-@@ -2235,84 +2296,86 @@
- one audio track on the timeline for every audio track in the media and
- the media should be dragged over the first audio track.
-
--<p>When dragging, the media snaps to the start of track if the track is
-+ <p>When dragging, the media snaps to the start of track if the track is
- empty. If there are edits on the track, the media snaps to the nearest
- edit boundary.
-
--<p>You can also drag multiple files from the resource window. Either draw
-+ <p>You can also drag multiple files from the resource window. Either draw
- a box around the files, use SHIFT, or use CTRL when selecting files.
- When you drop the files in the timeline, they are concatenated. The
- behavior of SHIFT and CTRL changes depending on if the resources are in
- text or icons.
-
--<p>To display the resources as text or icons, right click inside the media
-+ <p>To display the resources as text or icons, right click inside the media
- list. Select either <em>display icons</em> or <em>display text</em> to
- change the list format.
-
--<p>When displaying text in the resource window <em>SHIFT-clicking</em> on
-+ <p>When displaying text in the resource window <em>SHIFT-clicking</em> on
- media files extends the number of highlighted selections.
- <em>CTRL-clicking</em> on media files in text mode selects additional
- files one at a time.
-
--<p>When displaying icons in the resource window <em>SHIFT-clicking</em> or
-+ <p>When displaying icons in the resource window <em>SHIFT-clicking</em> or
- <em>CTRL-clicking</em> selects media files one at a time.
-
--<p>In addition to dragging media files, if you create clips and open the
-+ <p>In addition to dragging media files, if you create clips and open the
- <em>clip</em> folder you can drag clips on the timeline.
-
--<p>In the timeline there is further dragging functionality. To enable the
-+ <p>In the timeline there is further dragging functionality. To enable the
- dragging functionality of the timeline, select the arrow toggle
- <img src="arrow.png" alt="arrow.png">. Move over an edit and drag it. If more than one
- track is armed, Cinelerra will drag any edits which start on the same
- position as the edit the cursur is currently over. During a dragging
- operation the edit snaps to the nearest boundary.
-
--<p>Dragging edits around the timeline allows you to sort music playlists,
-+ <p>Dragging edits around the timeline allows you to sort music playlists,
- sort movie scenes, and give better NAB demos but not much else.
-
-+<div class="node">
- <p><hr>
- Node:<a name="CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>,
--Next:<a rel=next accesskey=n href="#TRIMMING">TRIMMING</a>,
--Previous:<a rel=previous accesskey=p href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>,
--Up:<a rel=up accesskey=u href="#EDITING">EDITING</a>
-+Next:<a rel="next" accesskey="n" href="#TRIMMING">TRIMMING</a>,
-+Previous:<a rel="previous" accesskey="p" href="#DRAG%20AND%20DROP%20EDITING">DRAG AND DROP EDITING</a>,
-+Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
- <br>
-+</div>
-
--<h3>CUT AND PASTE EDITING</h3>
-+<h3 class="section">CUT AND PASTE EDITING</h3>
-
--<p>This is the traditional method of editing in audio editors. In the
-+ <p>This is the traditional method of editing in audio editors. In the
- case of Cinelerra, you either need to start a second copy of Cinelerra
- and copy from one copy to the other, copy from different tracks in the
- same copy, or load a media file into the Viewer and copy from there.
-
--<p>Load some files onto the timeline. To perform cut and paste editing
-+ <p>Load some files onto the timeline. To perform cut and paste editing
- select the <img src="ibeam.png" alt="ibeam.png"> i-beam toggle. Select a region of the
- timeline and select the <img src="cut.png" alt="cut.png"> cut button to cut it. Move the
- insertion point to another point in the timeline and select the
- <img src="paste.png" alt="paste.png"> paste button. Assuming no in/out points are defined on
- the timeline this performs a cut and paste operation.
-
--<p>If in/out points are defined, the insertion point and highlighted
-+ <p>If in/out points are defined, the insertion point and highlighted
- region are overridden by the in/out points for clipboard operations.
- Thus, with in/out points you can perform cut and paste in drag and drop
- mode as well as cut and paste mode.
-
--<p>When editing audio, it is customary to cut from one part of a waveform
-+ <p>When editing audio, it is customary to cut from one part of a waveform
- into the same part of another waveform. The start and stop points of
- the cut are identical in each waveform and might be offset slightly,
- while the wave data is different. It would be very hard to highlight
- one waveform to cut it and highlight the second waveform to paste it
- without changing the relative start and stop positions.
-
--<p>One option for simplifying this is to open a second copy of Cinelerra,
-+ <p>One option for simplifying this is to open a second copy of Cinelerra,
- cutting and pasting to transport media between the two copies. This
- way two highlighed regions can exist simultanously.
-
--<p>Another option is to set in/out points for the source region of the
-+ <p>Another option is to set in/out points for the source region of the
- source waveform and set labels for the destination region of the
- destination waveform. Perform a cut, clear the in/out points, select
- the region between the labels, and perform a paste.
-
--<p>A final operation in cut and paste editing is the <em>edit-&gt;clear</em>
-+ <p>A final operation in cut and paste editing is the <em>edit-&gt;clear</em>
- operation. If a region is highlighted or in/out points exist, the
- affected region is cleared by <em>edit-&gt;clear</em>. But if the insertion
- point is over an edit boundary and the edits on each side of the edit
-@@ -2321,15 +2384,17 @@
- the first edit and the end of this one edit is the end of the second
- edit. This either results in the edit expanding or shrinking.
-
-+<div class="node">
- <p><hr>
- Node:<a name="TRIMMING">TRIMMING</a>,
--Previous:<a rel=previous accesskey=p href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>,
--Up:<a rel=up accesskey=u href="#EDITING">EDITING</a>
-+Previous:<a rel="previous" accesskey="p" href="#CUT%20AND%20PASTE%20EDITING">CUT AND PASTE EDITING</a>,
-+Up:<a rel="up" accesskey="u" href="#EDITING">EDITING</a>
- <br>
-+</div>
-
--<h3>TRIMMING</h3>
-+<h3 class="section">TRIMMING</h3>
-
--<p>With some edits on the timeline it's possible to do trimming. By
-+ <p>With some edits on the timeline it's possible to do trimming. By
- trimming you shrink or grow the edit boundaries by dragging them. In
- either drag and drop mode or cut and paste mode, move the cursor over
- an edit boundary until it changes shape. The cursor will either be an
-@@ -2337,16 +2402,16 @@
- dragging operation affects the beginning of the edit. If the cursor is
- an expand right, the dragging operation affects the end of the edit.
-
--<p>When you click on an edit boundary to start dragging, the mouse button
-+ <p>When you click on an edit boundary to start dragging, the mouse button
- number determines which dragging behavior is going to be followed. 3
- possible behaviors are bound to mouse buttons in the interface
- preferences. See <a href="#INTERFACE">INTERFACE</a>.
-
--<p>The effect of each drag operation not only depends on the behavior
-+ <p>The effect of each drag operation not only depends on the behavior
- button but whether the beginning or end of the edit is being dragged.
- When you release the mouse button, the trimming operation is performed.
-
--<p>In a <em>Drag all following edits</em> operation, the beginning of the
-+ <p>In a <em>Drag all following edits</em> operation, the beginning of the
- edit either cuts data from the edit if you move it forward or pastes
- new data from before the edit if you move it backward. The end of the
- edit pastes data into the edit if you move it forward or cuts data from
-@@ -2354,85 +2419,89 @@
- shift. Finally, if you drag the end of the edit past the start of the
- edit, the edit is deleted.
-
--<p>In a <em>Drag only one edit</em> operation, the behavior is the same when
-+ <p>In a <em>Drag only one edit</em> operation, the behavior is the same when
- you drag the beginning or end of an edit. The only difference is none
- of the other edits in the track shift. Instead, anything adjacent to
- the current edit expands or shrinks to fill gaps left by the drag
- operation.
-
--<p>In a <em>Drag source only</em> operation, nothing is cut or pasted. If
-+ <p>In a <em>Drag source only</em> operation, nothing is cut or pasted. If
- you move the beginning or end of the edit forward, the source reference
- in the edit shifts forward. If you move the beginning or end of the
- edit backward, the source reference shifts backward. Where the edit
- appears in the timeline remains the same but the source shifts.
-
--<p>For all file formats besides still images, the extent of the trimming
-+ <p>For all file formats besides still images, the extent of the trimming
- operation is clamped to the source file length. Attempting to drag the
- start of the edit beyond the start of the source clamps it to the
- source start.
-
--<p>In all trimming operations, all edits which start on the same position
-+ <p>In all trimming operations, all edits which start on the same position
- as the cursor when the drag operation begins are affected. Unarm
- tracks to prevent edits from getting affected.
-
-+<div class="node">
- <p><hr>
- Node:<a name="USING%20EFFECTS">USING EFFECTS</a>,
--Next:<a rel=next accesskey=n href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>,
--Previous:<a rel=previous accesskey=p href="#EDITING">EDITING</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#EDITING">EDITING</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>USING EFFECTS</h2>
-+<h2 class="chapter">USING EFFECTS</h2>
-
--<p>It would be sufficient to perform all changes to the timeline using
-+ <p>It would be sufficient to perform all changes to the timeline using
- editing operations, but this isn't very extensible. Certain timeline
- changes should produce a different effect in the output without
- involving a unique procedure to apply each change. This is why we have
- effects.
-
--<p>Effects fall into three categories, and each effect in a category is
-+ <p>Effects fall into three categories, and each effect in a category is
- applied using the same procedure.
-
--<ul>
--<li><a accesskey=1 href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>:
--<li><a accesskey=2 href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>:
--<li><a accesskey=3 href="#TRANSITIONS">TRANSITIONS</a>:
--<li><a accesskey=4 href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>:
-+<li><a accesskey="2" href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>:
-+<li><a accesskey="3" href="#TRANSITIONS">TRANSITIONS</a>:
-+<li><a accesskey="4" href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="REALTIME%20EFFECTS">REALTIME EFFECTS</a>,
--Next:<a rel=next accesskey=n href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>,
--Up:<a rel=up accesskey=u href="#USING%20EFFECTS">USING EFFECTS</a>
-+Next:<a rel="next" accesskey="n" href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>,
-+Up:<a rel="up" accesskey="u" href="#USING%20EFFECTS">USING EFFECTS</a>
- <br>
-+</div>
-
--<h3>REALTIME EFFECTS</h3>
-+<h3 class="section">REALTIME EFFECTS</h3>
-
--<p>These are layered under the track they apply to. They process the
-+ <p>These are layered under the track they apply to. They process the
- track when the track is played back, with no permanent storage of the
- output except when the project is rendered.
-
--<p>All the realtime effects are listed in the resource window, divided
-+ <p>All the realtime effects are listed in the resource window, divided
- into two groups: audio effects and video effects. Audio effects should
- be dragged from the resource window onto audio tracks. Video effects
- should be dragged onto video tracks.
-
--<p>If there is data on the destination track, the effect is applied to the
-+ <p>If there is data on the destination track, the effect is applied to the
- entire track. If there is no data on the track the effect is deleted.
- Finally, if a region of the track is selected the effect is pasted into
- the region, regardless of whether there is data.
-
--<p>Some of the effects don't process data but synthesize data. In the
-+ <p>Some of the effects don't process data but synthesize data. In the
- case of a synthesis effect, you'll want to select a region of the
- track so the dragging operation pastes it without deleting it.
-
--<p>When dragging more than one effect onto a track, you'll see the effects
-+ <p>When dragging more than one effect onto a track, you'll see the effects
- layering from top to bottom, on the bottom of the track. When the
- track is played back, effects are processed from top to bottom. The
- output of the top effect becomes the input of the bottom effect and so
- on and so forth.
-
--<p>In addition to dragging from the resource window, effects may be
-+ <p>In addition to dragging from the resource window, effects may be
- applied to a track by a popup menu. Right click on a track and select
- <em>Attach effect</em> from the popup. The attach effect dialog gives
- you more control than pure dragging and dropping. For one thing, the
-@@ -2442,7 +2511,7 @@
- The effect is the same as if the effect was dragged from the resource
- window.
-
--<p>When an effect exists under a track, it most often needs to be
-+ <p>When an effect exists under a track, it most often needs to be
- configured. Go to the effect and right click on it to bring up the
- effect popup. In the effect popup is a <em>show</em> option. The show
- option causes the GUI for the effect to appear under the cursor. Most
-@@ -2451,39 +2520,41 @@
- tweek parameters in the effect GUI, the parameters normally effect the
- entire duration of the effect.
-
--<ul>
--<li><a accesskey=1 href="#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>:
--<li><a accesskey=2 href="#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>:
-+<li><a accesskey="2" href="#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>,
--Next:<a rel=next accesskey=n href="#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>,
--Up:<a rel=up accesskey=u href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>
-+Next:<a rel="next" accesskey="n" href="#EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>,
-+Up:<a rel="up" accesskey="u" href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>
- <br>
-+</div>
-
--<h4>REALTIME EFFECT TYPES</h4>
-+<h4 class="subsection">REALTIME EFFECT TYPES</h4>
-
--<p>The two other effect types supported by the Attach Effect dialog are
-+ <p>The two other effect types supported by the Attach Effect dialog are
- recycled effects. In order to use a recycled effect, three requiremenets
- must be met:
-
--<ul>
-+ <ul>
-
--<li>There must be other effects in the timeline.
-+ <li>There must be other effects in the timeline.
-
--<li>
-+ <li>
- The other effects must be of the same type as the track you're
- attaching an effect to. If the track is an audio track, the effects
- must be audio effects. If the track is a video track, the effects must
- be video effects.
-
--<li>
-+ <li>
- The insertion point or selected region must start inside the other effects.
-
--</ul>
-+ </ul>
-
--<p>In the case of a shared effect, these conditions must be true. In the
-+ <p>In the case of a shared effect, these conditions must be true. In the
- case of a shared track, there merely must be another track on the
- timeline of the same type as the track you're applying an effect to.
- If you right clicked on a video track to attach an effect, there won't
-@@ -2491,19 +2562,19 @@
- exists. If you right clicked on an audio track there won't be anything
- in the shared track column if no other audio track exists.
-
--<p>If shared effects or shared tracks are available, they appear in the
-+ <p>If shared effects or shared tracks are available, they appear in the
- <em>shared effects</em> and <em>shared tracks</em> columns. The
- <em>attach</em> button under each column causes anything highlighted in
- the column to be attached under the current track.
-
--<p>Shared effects and shared tracks allow very unique things to be done.
-+ <p>Shared effects and shared tracks allow very unique things to be done.
- In the case of a shared effect, the shared effect is treated like a
- copy of the original effect except in the shared effect the GUI can't
- be brought up. All configuration of the shared effect is determined by
- the GUI of the original effect and only the GUI of the original effect
- can be brought up.
-
--<p>When a shared effect is played back, it's processed just like a normal
-+ <p>When a shared effect is played back, it's processed just like a normal
- effect except the configuration is copied from the original effect.
- Some effects detect when they are being shared, like the reverb effects
- and the compressor. These effects determine what tracks are sharing
-@@ -2511,7 +2582,7 @@
- some value. The reverb mixes tracks together to simulate ambience.
- The compressor uses one of the sharing tracks as the trigger.
-
--<p>When an original track has a <em>shared track</em> as one of its effects,
-+ <p>When an original track has a <em>shared track</em> as one of its effects,
- the shared track itself is used as a realtime effect. This is more
- commonly known as <em>bouncing tracks</em> but Cinelerra achieves the
- same operation by attaching shared tracks. The fade and any effects in
-@@ -2519,7 +2590,7 @@
- track has processed the data, the original track performs any effects
- which come below the shared track and then composites it on the output.
-
--<p>In addition, once the shared track has processed the output of the
-+ <p>In addition, once the shared track has processed the output of the
- original track like a realtime effect, the shared track mixes itself
- into the output with it's settings for pan, mode, and projector. Thus,
- two tracks are mixing the same data on the output. Most of the time
-@@ -2529,7 +2600,7 @@
- <img src="mutepatch_up.png" alt="mutepatch_up.png"> mute toggle next to each track for whom you don't
- want to mix on the output.
-
--<p>Suppose you were making video and you did want the shared track to
-+ <p>Suppose you were making video and you did want the shared track to
- composite the original track's data on the output a second time. In
- the case of video, the video from the shared track would always appear
- under the video from the original track, regardless of whether it was
-@@ -2537,159 +2608,165 @@
- composited in order of their attachment. Since it's part of the original
- track it has to be composited before the original track is composited.
-
-+<div class="node">
- <p><hr>
- Node:<a name="EDITING%20REALTIME%20EFFECTS">EDITING REALTIME EFFECTS</a>,
--Previous:<a rel=previous accesskey=p href="#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>,
--Up:<a rel=up accesskey=u href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>
-+Previous:<a rel="previous" accesskey="p" href="#REALTIME%20EFFECT%20TYPES">REALTIME EFFECT TYPES</a>,
-+Up:<a rel="up" accesskey="u" href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>
- <br>
-+</div>
-
--<h4>EDITING REALTIME EFFECTS</h4>
-+<h4 class="subsection">EDITING REALTIME EFFECTS</h4>
-
--<p>Many operations exist for manipulating effects once they are in the
-+ <p>Many operations exist for manipulating effects once they are in the
- timeline. Because mixing effects and media is such complex business,
- the methods used in editing effects aren't as concise as cutting and
- pasting. Some of the editing happens by dragging in/out points, some
- of the editing happens through popup menus, and some of it happens by
- dragging effects.
-
--<p>Normally when you edit tracks, the effects follow the editing
-+ <p>Normally when you edit tracks, the effects follow the editing
- decisions. If you cut from a track, the effect shrinks. If you drag
- edit in/out points, the effect changes length. This behavior can be
- disabled by selecting <em>Settings-&gt;edit effects</em> in the project
- window. This decouples effects from editing operations, but what if
- you just want to edit the effects?
-
--<p>Move the timeline cursor over the effect borders until it changes to a
-+ <p>Move the timeline cursor over the effect borders until it changes to a
- resize left or resize right icon. In this state, if you drag the end
- of the effect, it performs an edit just like dragging the end of a
- track does.
-
--<p>The three editing behaviors of track trimming apply to effect trimming
-+ <p>The three editing behaviors of track trimming apply to effect trimming
- and they are bound to the mouse buttons that you set in <em>interface
- preferences</em>. See <a href="#INTERFACE">INTERFACE</a>. When you perform a trim edit on an
- effect, the effect boundary is moved by dragging on it. Unlike track
- editing, the effect has no source length. You can extend the end of an
- effect as much as desired without being limited.
-
--<p>Also unlike track editing, the starting position of the drag operation
-+ <p>Also unlike track editing, the starting position of the drag operation
- doesn't bind the edit decision to media. The media the effect is bound
- to doesn't follow effect edits. Other effects; however, do follow
- editing decisions made on an effect. If you drag the end of an effect
- which is lined up to effects on other tracks, the effects on the other
- tracks will be edited while the media stays the same.
-
--<p>What happens if you trim the end of an effect in, leaving a lot of
-+ <p>What happens if you trim the end of an effect in, leaving a lot of
- unaffected time near the end of the track? When you drag an effect in
- from the Resource Window you can insert the effect in the portion of
- the row unoccupied by the trimming operation. Realtime effects are
- organized into rows under the track. Each row can have multiple
- effects.
-
--<p>In addition to trimming, you can move effects up or down. Every track
-+ <p>In addition to trimming, you can move effects up or down. Every track
- can have a stack of effects under it. By moving an effect up or down
- you change the order in which effects are processed in the stack. Go
- to an effect and right click to bring up the effect menu. The
- <em>Move up</em> and <em>Move down</em> options move the effect up or down.
-
--<p>When you're moving effects up or down, be aware that if they're shared
-+ <p>When you're moving effects up or down, be aware that if they're shared
- as <em>shared effects</em>, any references will be pointing to a
- different effect after the move operation.
-
--<p>Finally, there's dragging of effects. Dragging effects works just like
-+ <p>Finally, there's dragging of effects. Dragging effects works just like
- dragging edits. You must select the <img src="arrow.png" alt="arrow.png"> arrow to enter drag and
- drop mode before dragging effects. The effects snap to media
- boundaries, effect boundaries, and tracks. Be aware if you drag a
- reference to a shared effect, the reference will usually point to the
- wrong effect afterwards.
-
--<p>Right click on an effect to bring up a menu for the effect. Select
-+ <p>Right click on an effect to bring up a menu for the effect. Select
- <em>attach...</em> to change the effect or change the reference if it is
- a shared effect.
-
-+<div class="node">
- <p><hr>
- Node:<a name="RENDERED%20EFFECTS">RENDERED EFFECTS</a>,
--Next:<a rel=next accesskey=n href="#TRANSITIONS">TRANSITIONS</a>,
--Previous:<a rel=previous accesskey=p href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>,
--Up:<a rel=up accesskey=u href="#USING%20EFFECTS">USING EFFECTS</a>
-+Next:<a rel="next" accesskey="n" href="#TRANSITIONS">TRANSITIONS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#REALTIME%20EFFECTS">REALTIME EFFECTS</a>,
-+Up:<a rel="up" accesskey="u" href="#USING%20EFFECTS">USING EFFECTS</a>
- <br>
-+</div>
-
--<h3>RENDERED EFFECTS</h3>
-+<h3 class="section">RENDERED EFFECTS</h3>
-
--<p>Another type of effect is performed on a section of the track and the
-+ <p>Another type of effect is performed on a section of the track and the
- result stored somewhere before it is played back. The result is
- usually pasted into the track to replace the original data.
-
--<p>The rendered effects are not listed in the resource window but instead
-+ <p>The rendered effects are not listed in the resource window but instead
- are accessed through the <em>Audio-&gt;Render effect</em> and
- <em>Video-&gt;Render effect</em> menu options. Each of these menu options
- brings up a dialog for the rendered effect. Rendered effects apply to
- only one type of track, either audio or video. If no tracks of the
- type exist, an error pops up.
-
--<p>A region of the timeline to apply the effect to must be defined before
-+ <p>A region of the timeline to apply the effect to must be defined before
- selecting <em>Render effect...</em>. If no in/out points and no
- highlighted region exists, the entire region after the insertion point
- is treated as the affected region. Otherwise, the region between the
- in/out points or the highlighted region is the affected region.
-
--<p>In the render effect dialog is a list of all the realtime and all the
-+ <p>In the render effect dialog is a list of all the realtime and all the
- rendered effects. The difference here is that the realtime effects are
- rendered to disk and not applied under the track. Highlight an effect
- in the list to designate it as the one being performed.
-
--<p>Define a file to render the effect to in the <em>Select a file to
-+ <p>Define a file to render the effect to in the <em>Select a file to
- render to</em> box. The <img src="magnify.png" alt="magnify.png"> magnifying glass allows file
- selection from a list.
-
--<p>Select a file format which can handle the track type. The
-+ <p>Select a file format which can handle the track type. The
- <img src="wrench.png" alt="wrench.png"> wrench allows configuration specific to the file format.
-
--<p>There is also an option for creating a new file at each label. If you
-+ <p>There is also an option for creating a new file at each label. If you
- have a CD rip on the timeline which you want to divide into different
- files, the labels would become dividing points between the files if
- this option were selected. When the timeline is divided by labels, the
- effect is re-initialized at every label. Normalize operations take the
- peak in the current file and not in the entire timeline.
-
--<p>Finally there is an insertion strategy just like in the render dialog.
-+ <p>Finally there is an insertion strategy just like in the render dialog.
- It should be noted that even though the effect applies only to audio or
- video, the insertion strategy applies to all tracks just like a
- clipboard operation.
-
--<p>When you click <em>OK</em> in the effect dialog, it calls the GUI of the
-+ <p>When you click <em>OK</em> in the effect dialog, it calls the GUI of the
- effect. If the effect is also a realtime effect, a second GUI appears
- to prompt for acceptance or rejection of the current settings. After
- accepting the settings, the effect is processed.
-
-+<div class="node">
- <p><hr>
- Node:<a name="TRANSITIONS">TRANSITIONS</a>,
--Next:<a rel=next accesskey=n href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>,
--Previous:<a rel=previous accesskey=p href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>,
--Up:<a rel=up accesskey=u href="#USING%20EFFECTS">USING EFFECTS</a>
-+Next:<a rel="next" accesskey="n" href="#LADSPA%20EFFECTS">LADSPA EFFECTS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#RENDERED%20EFFECTS">RENDERED EFFECTS</a>,
-+Up:<a rel="up" accesskey="u" href="#USING%20EFFECTS">USING EFFECTS</a>
- <br>
-+</div>
-
--<h3>TRANSITIONS</h3>
-+<h3 class="section">TRANSITIONS</h3>
-
--<p>When one edit ends and another edit begins, the default behaviour is to
-+ <p>When one edit ends and another edit begins, the default behaviour is to
- have the first edit's output immediately become the output of the
- second edit when played back. Transitions are a way for the first
- edit's output to become the second edit's output with different
- variations.
-
--<p>Cinelerra supports audio and video transitions, all of which are listed
-+ <p>Cinelerra supports audio and video transitions, all of which are listed
- in the resource window. Transitions may only apply to the matching
- track type. Transitions under <em>audio transitions</em> can only apply
- to audio tracks. Transitions under <em>video transitions</em> can only
- apply to video tracks.
-
--<p>Load a video file and cut a section from the center so the edit point
-+ <p>Load a video file and cut a section from the center so the edit point
- is visible on the timeline. Go the resource window and click on the
- <em>Video transitions</em> folder. Drag a transition from the transition
- list onto the second video edit on the timeline. A box highlights over
- where the transition will appear. Releasing it over the second edit
- applies the transition between the first and second edit.
-
--<p>You can now scrub over the transition with the transport controls and
-+ <p>You can now scrub over the transition with the transport controls and
- watch the output in the <em>Compositor window</em>. Scrubbing with the
- insertion point doesn't normally show transitions because the
- transition durations are usually too short. The exact point in time
-@@ -2698,7 +2775,7 @@
- second edit. Therefore, the first asset needs to have enough data
- after the edit point to fill the transition into the second edit.
-
--<p>Once the transition is in place, it can be edited similarly to an
-+ <p>Once the transition is in place, it can be edited similarly to an
- effect. Move the pointer over the transition and right click to bring
- up the transition menu. The <em>show</em> option brings up specific
- parameters for the transition in question if there are any. The
-@@ -2707,7 +2784,7 @@
- transitions until they are changed again. Finally, the <em>detach</em>
- option removes the transition from the timeline.
-
--<p>Dragging and dropping transitions from the Resource window to the
-+ <p>Dragging and dropping transitions from the Resource window to the
- Program window can be really slow and tiring. Fortunately, once you
- drag a transition from the Resource window, the <em>U</em> and <em>u</em>
- keys will paste the same transition. The <em>U</em> key pastes the last
-@@ -2715,22 +2792,24 @@
- on all the recordable tracks. If the insertion point or in point is
- over an edit, the beginning of the edit is covered by the transition.
-
--<p>It should be noted that when playing transitions from the timeline to a
-+ <p>It should be noted that when playing transitions from the timeline to a
- hardware accelerated video device, the hardware acceleration will
- usually be turned off momentarily during the transition and on after
- the transition in order to render the transition. Using an
- unaccelerated video device for the entire timeline normally removes the
- disturbance.
-
-+<div class="node">
- <p><hr>
- Node:<a name="LADSPA%20EFFECTS">LADSPA EFFECTS</a>,
--Previous:<a rel=previous accesskey=p href="#TRANSITIONS">TRANSITIONS</a>,
--Up:<a rel=up accesskey=u href="#USING%20EFFECTS">USING EFFECTS</a>
-+Previous:<a rel="previous" accesskey="p" href="#TRANSITIONS">TRANSITIONS</a>,
-+Up:<a rel="up" accesskey="u" href="#USING%20EFFECTS">USING EFFECTS</a>
- <br>
-+</div>
-
--<h3>LADSPA EFFECTS</h3>
-+<h3 class="section">LADSPA EFFECTS</h3>
-
--<p>LADSPA effects are supported in realtime and rendered mode for audio.
-+ <p>LADSPA effects are supported in realtime and rendered mode for audio.
- The LADSPA plugins you get from the internet vary in quality. Most
- can't be tweeked in realtime very easily and work better when
- rendered. Some crash and some can only be applied to one track due to
-@@ -2740,20 +2819,22 @@
- effects appear in the audio folder as the hammer and screwdriver, to
- signify that they are Plugins for Linux Audio Developers.
-
--<p>LADSPA Effects are enabled merely by setting the <em>LADSPA_PATH</em>
-+ <p>LADSPA Effects are enabled merely by setting the <em>LADSPA_PATH</em>
- environment variable to the location of your LADSPA plugins or putting
- them in the <em>/usr/lib/cinelerra</em> directory.
-
-+<div class="node">
- <p><hr>
- Node:<a name="SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>,
--Next:<a rel=next accesskey=n href="#COMPOSITING">COMPOSITING</a>,
--Previous:<a rel=previous accesskey=p href="#USING%20EFFECTS">USING EFFECTS</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#COMPOSITING">COMPOSITING</a>,
-+Previous:<a rel="previous" accesskey="p" href="#USING%20EFFECTS">USING EFFECTS</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>SETTING PROJECT ATTRIBUTES</h2>
-+<h2 class="chapter">SETTING PROJECT ATTRIBUTES</h2>
-
--<p>When you play media files in Cinelerra, the media files have a certain
-+ <p>When you play media files in Cinelerra, the media files have a certain
- number of tracks, a certain frame size, a certain sample size, and so
- on and so forth. No matter what the media file has; however, it is
- still played back according to the project attributes. If an audio
-@@ -2762,7 +2843,7 @@
- attributes, it is composited on a black frame, either cropped or
- bordered with black.
-
--<p>The project attributes are adjusted in <em>settings-&gt;format</em> and in
-+ <p>The project attributes are adjusted in <em>settings-&gt;format</em> and in
- to a more limited extent in <em>file-&gt;new</em>. When you adjust project
- settings in <em>file-&gt;new</em> a new timeline is created with no data.
- Every timeline created from this point uses the same settings. When
-@@ -2770,13 +2851,13 @@
- recreated with no data but every timeline created from this point uses
- the same settings.
-
--<p>In addition to the traditional settings for sample rate, frame rate,
-+ <p>In addition to the traditional settings for sample rate, frame rate,
- frame size, Cinelerra uses some unusual settings like <em>channel
- positions, color model, and aspect ratio.</em>
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- Channel positions is the only setting which doesn't affect the output
- necessarily. Click on a speaker icon and drag to change the position
- of a channel. It is merely a convenience so when more than 2 channels
-@@ -2787,13 +2868,13 @@
-
- <br><p>
- <br><p>
--<img src="channelpositions.png" alt="channelpositions.png">
-+ <img src="channelpositions.png" alt="channelpositions.png">
- <br><p>
- <br><p>
--<p>But different channels can be positioned very close together to make
-+ <p>But different channels can be positioned very close together to make
- them have the same output.
-
--</p><li>
-+ </p><li>
- Color model is very important for video playback. The video is stored
- on disk in one colormodel, normally compressed using a YUV derivative.
- When played back, Cinelerra decompresses it from the file format
-@@ -2803,15 +2884,15 @@
- device. The selection of internal colormodel determines how accurate
- and fast the effects are.
-
--<p>Cinelerra colormodels are described using a certain packing order of
-+ <p>Cinelerra colormodels are described using a certain packing order of
- components and a certain number of bits for each component. The
- packing order is printed on the left and the bit allocation is printed
- on the right.
-
--<p><em>RGBA8888</em> uses red, green, blue, and alpha with 8 bits per
-+ <p><em>RGBA8888</em> uses red, green, blue, and alpha with 8 bits per
- channel.
-
--<p>In order to do effects which involve alpha channels, a colormodel with
-+ <p>In order to do effects which involve alpha channels, a colormodel with
- an alpha channel must be selected. These are RGBA8888, YUVA8888,
- RGBA16161616, YUVA16161616. The 4 channel colormodels are notoriously
- slower than 3 channel colormodels, with the slowest being
-@@ -2820,29 +2901,31 @@
- to do anything, so it's a good idea to try the effect without alpha
- channels.
-
--<p>The YUV colormodels are usually faster than RGB colormodels when using
-+ <p>The YUV colormodels are usually faster than RGB colormodels when using
- compressed footage. They also destroy fewer colors than RGB
- colormodels. If footage stored as JPEG or MPEG is processed many times
- in RGB, the colors will fade while they won't if processed in YUV.
-
--</p><li>
-+ </p><li>
- Aspect ratio determines the shape of the video output when using the
- X11 video output. The numbers in each direction can be any floating
- point number. When drawn on the screen, video pixels are stretched to
- match the aspect ratio.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="COMPOSITING">COMPOSITING</a>,
--Next:<a rel=next accesskey=n href="#KEYFRAMES">KEYFRAMES</a>,
--Previous:<a rel=previous accesskey=p href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#KEYFRAMES">KEYFRAMES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#SETTING%20PROJECT%20ATTRIBUTES">SETTING PROJECT ATTRIBUTES</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>COMPOSITING</h2>
-+<h2 class="chapter">COMPOSITING</h2>
-
--<p>A large amount of Cinelerra's binary size is directed towards
-+ <p>A large amount of Cinelerra's binary size is directed towards
- compositing. When you remove the letterboxing from a widescreen show,
- you're compositing. Changing the resolution of a show, making a split
- screen, and fading in and out among other things are all compositing
-@@ -2850,29 +2933,31 @@
- operation and plays back through the compositing engine only then.
- Otherwise, it uses the fastest decoder available in the hardware.
-
--<p>Compositing operations are done on the timeline and in the Compositor
-+ <p>Compositing operations are done on the timeline and in the Compositor
- window. Shortcuts exist in the Resource window for changing project
- attributes. Once some video files are on the timeline, the compositor
- window is a good place to try compositing.
-
--<ul>
--<li><a accesskey=1 href="#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>:
--<li><a accesskey=2 href="#MASKS">MASKS</a>:
--<li><a accesskey=3 href="#CROPPING">CROPPING</a>:
--<li><a accesskey=4 href="#SAFE%20REGIONS">SAFE REGIONS</a>:
--<li><a accesskey=5 href="#OVERLAY%20MODES">OVERLAY MODES</a>:
--<li><a accesskey=6 href="#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>:
-+<li><a accesskey="2" href="#MASKS">MASKS</a>:
-+<li><a accesskey="3" href="#CROPPING">CROPPING</a>:
-+<li><a accesskey="4" href="#SAFE%20REGIONS">SAFE REGIONS</a>:
-+<li><a accesskey="5" href="#OVERLAY%20MODES">OVERLAY MODES</a>:
-+<li><a accesskey="6" href="#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>,
--Next:<a rel=next accesskey=n href="#MASKS">MASKS</a>,
--Up:<a rel=up accesskey=u href="#COMPOSITING">COMPOSITING</a>
-+Next:<a rel="next" accesskey="n" href="#MASKS">MASKS</a>,
-+Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
- <br>
-+</div>
-
--<h3>THE CAMERA AND PROJECTOR</h3>
-+<h3 class="section">THE CAMERA AND PROJECTOR</h3>
-
--<p>In the compositor window, the most important functions are the
-+ <p>In the compositor window, the most important functions are the
- <img src="camera.png" alt="camera.png"> camera button and the <img src="projector.png" alt="projector.png"> projector
- button. These control operation of the camera and projector. Inside
- Cinelerra's compositing pipeline, the camera determines where in the
-@@ -2885,19 +2970,19 @@
-
- <br><p>
- <br><p>
--<img src="compositing_pipeline.png" alt="compositing_pipeline.png">
-+ <img src="compositing_pipeline.png" alt="compositing_pipeline.png">
- <br><p>
- <br><p>
--<p><em>Visual representation of the compositing pipeline</em>.
-+ <p><em>Visual representation of the compositing pipeline</em>.
-
--<p>When editing the camera and projector in the compositing window, the
-+ <p>When editing the camera and projector in the compositing window, the
- first track with <em>record</em> enabled is the track affected. Even if
- the track is completely transparent, it's still the affected track. If
- multiple video tracks exist, the easiest way to select one track for
- editing is to <em>shift-click</em> on the record icon of the track. This
- solos the track.
-
--<p>When the <em>projector</em> button is enabled in the compositor window,
-+ <p>When the <em>projector</em> button is enabled in the compositor window,
- you're in projector editing mode. A guide box appears in the video
- window. Dragging anywhere in the video window causes the guide box to
- move, hopefully along with the video. <em>shift-dragging</em> anywhere
-@@ -2905,46 +2990,46 @@
- the video. Once you've positioned the video with the projector, you're
- ready to master the camera.
-
--<p>Select the <img src="camera.png" alt="camera.png"> camera button to enable camera editing mode.
-+ <p>Select the <img src="camera.png" alt="camera.png"> camera button to enable camera editing mode.
- In this mode, the guide box shows where the camera position is in
- relation to past and future camera positions but not where it is in
- relation to the source video. Dragging the camera box in the
- compositor window doesn't move the box but instead moves the location
- of the video inside the box.
-
--<p>For example, when you drag the camera left, the video moves right.
-+ <p>For example, when you drag the camera left, the video moves right.
- When you drag the camera up, the video moves down. When you shift-drag
- the camera, the effect is the same as if you zoomed in or out of the
- source. The intention of the camera is to produce still photo panning,
- while the intention of the projector is to composite several sources in
- the same scene.
-
--<p>In the compositing window, there is a popup menu of options for the
-+ <p>In the compositing window, there is a popup menu of options for the
- camera and projector. Right click over the video portion of the
- compositing window to bring up the menu.
-
--<ul>
-+ <ul>
-
--<li>Reset Camera causes the camera to return to the center position.
-+ <li>Reset Camera causes the camera to return to the center position.
-
--<li>Reset Projector causes the projector to return to the center.
-+ <li>Reset Projector causes the projector to return to the center.
-
--</ul>
-+ </ul>
-
--<p>The camera and projector have shortcut operations neither in the popup
-+ <p>The camera and projector have shortcut operations neither in the popup
- menu or represented in video overlays. These are accessed in the
- <em>Tool window</em>. Most operations in the Compositor window have a
- tool window which is enabled by activating the <img src="toolwindow.png" alt="toolwindow.png">
- question mark.
-
--<p>In the case of the camera and projector, the tool window shows x, y,
-+ <p>In the case of the camera and projector, the tool window shows x, y,
- and z coordinates. By either tumbling or entering text directly, the
- camera and projector can be precisely positioned. 9 justification
- types are also defined for easy access. A popular justification
- operation is upper left projection after image reduction. This is used
- when reducing the size of video with aspect ratio adjustment.
-
--<p>The translation effect allows simultaneous aspect ratio conversion and
-+ <p>The translation effect allows simultaneous aspect ratio conversion and
- reduction but is easier to use if the reduced video is put in the upper
- left of the temporary instead of in the center. The track size is set
- to the original size of the video and the camera is centered. The
-@@ -2952,7 +3037,7 @@
- effects, this produces just the cropped center portion of the video in
- the output.
-
--<p>The translation effect is dropped onto the video track. The input
-+ <p>The translation effect is dropped onto the video track. The input
- dimensions of the translation effect are set to the original size and
- the output dimensions are set to the reduced size. To put the reduced
- video in the center section that the projector shows would require
-@@ -2960,21 +3045,23 @@
- Instead, we leave <em>out x and out y</em> at 0 and use the projector's
- tool window.
-
--<p>Merely by selecting <img src="left_justify.png" alt="left_justify.png"> left justify and
-+ <p>Merely by selecting <img src="left_justify.png" alt="left_justify.png"> left justify and
- <img src="top_justify.png" alt="top_justify.png"> top justify, the projector displays the reduced
- image from the top left corner of the temporary in the center of the
- output.
-
-+<div class="node">
- <p><hr>
- Node:<a name="MASKS">MASKS</a>,
--Next:<a rel=next accesskey=n href="#CROPPING">CROPPING</a>,
--Previous:<a rel=previous accesskey=p href="#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>,
--Up:<a rel=up accesskey=u href="#COMPOSITING">COMPOSITING</a>
-+Next:<a rel="next" accesskey="n" href="#CROPPING">CROPPING</a>,
-+Previous:<a rel="previous" accesskey="p" href="#THE%20CAMERA%20AND%20PROJECTOR">THE CAMERA AND PROJECTOR</a>,
-+Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
- <br>
-+</div>
-
--<h3>MASKS</h3>
-+<h3 class="section">MASKS</h3>
-
--<p>Masks select a region of the video for either displaying or hiding.
-+ <p>Masks select a region of the video for either displaying or hiding.
- Masks are also used in conjunction with another effect to isolate the
- effect to a certain region of the frame. A copy of one video track may
- be delayed slightly and unmasked in locations where the one copy has
-@@ -2984,24 +3071,24 @@
- vanilla track shows through. Removal of boom microphones, airplanes,
- and housewives are other mask uses.
-
--<p>The order of the compositing pipeline affects what can be done with
-+ <p>The order of the compositing pipeline affects what can be done with
- masks. Mainly, masks are performed on the temporary after effects and
- before the projector. This means multiple tracks can be bounced to a
- masked track and projected with the same mask.
-
--<p>Our compositing pipeline graph now has a masking stage. There are 8
-+ <p>Our compositing pipeline graph now has a masking stage. There are 8
- possible masks per track. Each mask is defined separately, although
- they each perform the same operation, whether it's addition or
- subtraction.
-
- <br><p>
- <br><p>
--<img src="compositing_pipeline2.png" alt="compositing_pipeline2.png">
-+ <img src="compositing_pipeline2.png" alt="compositing_pipeline2.png">
- <br><p>
- <br><p>
--<p><em>Compositing pipeline with masks</em>
-+ <p><em>Compositing pipeline with masks</em>
-
--<p>To define a mask, go into the Compositor window and enable the
-+ <p>To define a mask, go into the Compositor window and enable the
- <img src="mask.png" alt="mask.png"> <em>mask</em> toggle. Now go over the video and
- click-drag. Click-drag again in another part of the image to create
- each new point of the mask. While it isn't the conventional bezier
-@@ -3009,48 +3096,48 @@
- effect of the mask is going to be. Creating each point of the mask
- expands a rubber band curve.
-
--<p>Once points are defined, they can be moved by <em>ctrl-dragging</em> in
-+ <p>Once points are defined, they can be moved by <em>ctrl-dragging</em> in
- the vicinity of the corner. This; however, doesn't smooth out the
- curve. The in-out points of the bezier curve are accessed by
- <em>shift-dragging</em> in the vicinity of the corner. Then
- <em>shift-dragging</em> near the in or out point causes the point to
- move.
-
--<p>Finally, once you have a mask, the mask can be translated in one piece
-+ <p>Finally, once you have a mask, the mask can be translated in one piece
- by <em>alt-dragging</em> the mask. Mask editing in Cinelerra is
- identical to how The Gimp edits masks except in this case the effect of
- the mask is always on.
-
--<p>The masks have many more parameters which couldn't be represented with
-+ <p>The masks have many more parameters which couldn't be represented with
- video overlays. These are represented in the tool window for masks.
- Selecting the <img src="toolwindow.png" alt="toolwindow.png"> question mark when the <img src="mask.png" alt="mask.png">
- mask toggle is highlighted brings up the mask options.
-
--<p>The <em>mode</em> of the mask determines if the mask removes data or
-+ <p>The <em>mode</em> of the mask determines if the mask removes data or
- makes data visible. If the mode is subtractive, the mask causes video
- to disappear. If the mode is additive, the mask causes video to appear
- and everything outside the mask to disappear.
-
--<p>The <em>value</em> of the mask determines how extreme the addition or
-+ <p>The <em>value</em> of the mask determines how extreme the addition or
- subtraction is. In the subtractive mode, higher values subtract more
- alpha. In the additive mode, higher values make the region in the mask
- brighter while the region outside the mask is always hidden.
-
--<p>The mask number determines which one of the 8 possible masks we're
-+ <p>The mask number determines which one of the 8 possible masks we're
- editing. Each track has 8 possible masks. When you click-drag in the
- compositor window, you're only editing one of the masks. Change the
- value of <em>mask number</em> to cause another mask to be edited. The
- previous mask is still active but only the curve overlay for the
- currently selected mask is visible.
-
--<p>When multiple masks are used, their effects are ORed together. Every
-+ <p>When multiple masks are used, their effects are ORed together. Every
- mask in a single track uses the same value and mode.
-
--<p>The edges of a mask are hard by default but this rarely is desired.
-+ <p>The edges of a mask are hard by default but this rarely is desired.
- The <em>feather</em> parameter determines how many pixels to feather the
- mask. This creates softer edges but takes longer to render.
-
--<p>Finally, there are parameters which affect one point on the current
-+ <p>Finally, there are parameters which affect one point on the current
- mask instead of the whole mask. These are <em>Delete, x, y</em>. The
- active point is defined as the last point dragged in the compositor
- window. Any point can be activated merely by <em>ctrl-clicking</em> near
-@@ -3058,16 +3145,18 @@
- <em>Delete</em> deletes it and <em>x, y</em> allow repositioning by numeric
- entry.
-
-+<div class="node">
- <p><hr>
- Node:<a name="CROPPING">CROPPING</a>,
--Next:<a rel=next accesskey=n href="#SAFE%20REGIONS">SAFE REGIONS</a>,
--Previous:<a rel=previous accesskey=p href="#MASKS">MASKS</a>,
--Up:<a rel=up accesskey=u href="#COMPOSITING">COMPOSITING</a>
-+Next:<a rel="next" accesskey="n" href="#SAFE%20REGIONS">SAFE REGIONS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#MASKS">MASKS</a>,
-+Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
- <br>
-+</div>
-
--<h3>CROPPING</h3>
-+<h3 class="section">CROPPING</h3>
-
--<p>Cropping changes the value of the output dimensions and the projector
-+ <p>Cropping changes the value of the output dimensions and the projector
- to reduce the visible picture area. Enable the <img src="crop.png" alt="crop.png"> crop
- toggle and the <img src="toolwindow.png" alt="toolwindow.png"> tool window to perform cropping in
- the compositing window. This draws a rectangle over the video.
-@@ -3076,79 +3165,85 @@
- window allows text entry of the coordinates. When the rectangle is
- positioned, hit the <em>do it</em> button in the tool window.
-
-+<div class="node">
- <p><hr>
- Node:<a name="SAFE%20REGIONS">SAFE REGIONS</a>,
--Next:<a rel=next accesskey=n href="#OVERLAY%20MODES">OVERLAY MODES</a>,
--Previous:<a rel=previous accesskey=p href="#CROPPING">CROPPING</a>,
--Up:<a rel=up accesskey=u href="#COMPOSITING">COMPOSITING</a>
-+Next:<a rel="next" accesskey="n" href="#OVERLAY%20MODES">OVERLAY MODES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#CROPPING">CROPPING</a>,
-+Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
- <br>
-+</div>
-
--<h3>SAFE REGIONS</h3>
-+<h3 class="section">SAFE REGIONS</h3>
-
--<p>On consumer displays the borders of the image are cut off and within
-+ <p>On consumer displays the borders of the image are cut off and within
- the cutoff point is a region which isn't always square like it is in
- the compositor window. The borders are intended for scratch room and
- vertical blanking data. You can show where these borders are by
- enabling the <img src="titlesafe.png" alt="titlesafe.png"> safe regions toggle. Keep titles inside
- the inner rectangle and keep action inside the outer rectangle.
-
-+<div class="node">
- <p><hr>
- Node:<a name="OVERLAY%20MODES">OVERLAY MODES</a>,
--Next:<a rel=next accesskey=n href="#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>,
--Previous:<a rel=previous accesskey=p href="#SAFE%20REGIONS">SAFE REGIONS</a>,
--Up:<a rel=up accesskey=u href="#COMPOSITING">COMPOSITING</a>
-+Next:<a rel="next" accesskey="n" href="#TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#SAFE%20REGIONS">SAFE REGIONS</a>,
-+Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
- <br>
-+</div>
-
--<h3>OVERLAY MODES</h3>
-+<h3 class="section">OVERLAY MODES</h3>
-
--<p>Every track has an overlay mode, accessible by expanding the track.
-+ <p>Every track has an overlay mode, accessible by expanding the track.
- Select the <img src="expandpatch_checked.png" alt="expandpatch_checked.png"> expand track toggle to view all
- the options for a video track. The overlay mode of the track is
- <em>normal</em> by default. Select other modes by selecting the
- <em>normal</em> button. Overlay modes are processed inside the projector
- stage of compositing. The different modes are summarized below.
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- Normal uses a traditional Porter-Diff equation to blend tracks with
- alpha. When no alpha exists, the new track replaces the output.
-
--<li>
-+ <li>
- In addition, whatever is in the output is added to the current track.
- The result is blended based on the current track's alpha onto the
- output.
-
--<li>
-+ <li>
- In subtraction, the current track is subtracted from the output and the
- result is alpha blended onto the output.
-
--<li>
-+ <li>
- Multiply is the most useful operation. The current track is multiplied
- by the output and the result blended onto the output. Usually a black
- and white image with no alpha channel or a white title on a black image
- is used as the current track. With the multiply operation, only the
- output portions under the white area show.
-
--<li>
-+ <li>
- Divide divides the current track by the output and the result is
- blended into the output. It usually results in overloaded levels.
-
--<li>
-+ <li>
- Replace does no blending and overwrites the output with the current
- track.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="TRACK%20AND%20OUTPUT%20SIZES">TRACK AND OUTPUT SIZES</a>,
--Previous:<a rel=previous accesskey=p href="#OVERLAY%20MODES">OVERLAY MODES</a>,
--Up:<a rel=up accesskey=u href="#COMPOSITING">COMPOSITING</a>
-+Previous:<a rel="previous" accesskey="p" href="#OVERLAY%20MODES">OVERLAY MODES</a>,
-+Up:<a rel="up" accesskey="u" href="#COMPOSITING">COMPOSITING</a>
- <br>
-+</div>
-
--<h3>TRACK AND OUTPUT SIZES</h3>
-+<h3 class="section">TRACK AND OUTPUT SIZES</h3>
-
--<p>The size of the temporary and the size of the output in our compositing
-+ <p>The size of the temporary and the size of the output in our compositing
- pipeline are independant and variable. This fits into everything
- covered so far. The camera's viewport is the temporary size. Effects
- are processed in the temporary and are affected by the temporary size.
-@@ -3157,36 +3252,38 @@
- bordered by blank regions in the output. If the temporary is bigger
- than the output, the temporary is cropped.
-
--<p>The temporary size is defined as the track size. Each track has a
-+ <p>The temporary size is defined as the track size. Each track has a
- different size. Right click on a track to bring up the track's menu.
- Select <em>Resize Track</em> to resize the track to any arbitrary size.
- Alternatively you can select <em>Match output size</em> to make the track
- the same size as the output.
-
--<p>The output size is set in either <em>New</em> when creating a new project
-+ <p>The output size is set in either <em>New</em> when creating a new project
- or <em>Settings-&gt;Format</em>. In the Resource window there is another
- way to change the output size. Right click on a video asset and select
- <em>Match project size</em> to conform the output to the asset. When new
- tracks are created, the track size always conforms to the output size
- specified by these methods.
-
-+<div class="node">
- <p><hr>
- Node:<a name="KEYFRAMES">KEYFRAMES</a>,
--Next:<a rel=next accesskey=n href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>,
--Previous:<a rel=previous accesskey=p href="#COMPOSITING">COMPOSITING</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>,
-+Previous:<a rel="previous" accesskey="p" href="#COMPOSITING">COMPOSITING</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>KEYFRAMES</h2>
-+<h2 class="chapter">KEYFRAMES</h2>
-
--<p>Setting static compositing parameters isn't very useful most of the
-+ <p>Setting static compositing parameters isn't very useful most of the
- time. Normally you need to move the camera around over time or change
- mask positions. Masks need to follow objects. We create dymanic
- changes by defining keyframes. A keyframe is a certain point in time
- when the settings for one operation change. In Cinelerra, there are
- keyframes for almost every compositing parameter and effect parameter.
-
--<p>Whenever you adjust any parameter, the value is stored in a keyframe.
-+ <p>Whenever you adjust any parameter, the value is stored in a keyframe.
- If the value is stored in a keyframe, why doesn't it always change?
- The keyframe it is stored in is known as the <em>default keyframe</em>.
- The default keyframe applies to the entire duration if no other
-@@ -3194,27 +3291,29 @@
- because it always exists. The only way change occurs over time is if
- non-default keyframes are created.
-
--<p>Display keyframes for any parameter by using the <em>view</em> menu.
-+ <p>Display keyframes for any parameter by using the <em>view</em> menu.
- When keyframes are selected, they are drawn on the timeline over the
- tracks they apply to.
-
--<ul>
--<li><a accesskey=1 href="#CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>:
--<li><a accesskey=2 href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>:
--<li><a accesskey=3 href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>:
--<li><a accesskey=4 href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>:
--<li><a accesskey=5 href="#EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>:
-+<li><a accesskey="2" href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>:
-+<li><a accesskey="3" href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>:
-+<li><a accesskey="4" href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>:
-+<li><a accesskey="5" href="#EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>,
--Next:<a rel=next accesskey=n href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>,
--Up:<a rel=up accesskey=u href="#KEYFRAMES">KEYFRAMES</a>
-+Next:<a rel="next" accesskey="n" href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>,
-+Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
- <br>
-+</div>
-
--<h3>CURVE KEYFRAMES</h3>
-+<h3 class="section">CURVE KEYFRAMES</h3>
-
--<p>Fade and zoom settings are stored in bezier curves. Go to
-+ <p>Fade and zoom settings are stored in bezier curves. Go to
- <em>view-&gt;fade keyframes</em> or <em>view-&gt;...zoom</em> to show curves on
- the timeline. It's sometimes easier to pull down the <em>view</em> menu
- and then use the keyboard shortcuts listed in the menu to enable or
-@@ -3223,7 +3322,7 @@
- timeline until it changes shape. Then merely by clicking and dragging
- on the curve you can create a keyframe at the position.
-
--<p>After the keyframe is created, click drag on it again to reposition
-+ <p>After the keyframe is created, click drag on it again to reposition
- it. When you click-drag a second keyframe on the curve, it creates a
- smooth ramp. <em>ctrl-dragging</em> on a keyframe changes the value of
- either the input control or the output control. This affects the
-@@ -3231,92 +3330,98 @@
- can be moved horizontally as well as vertically, the horizontal
- movement is purely for legibility and isn't used in the curve value.
-
--<p>You may remember that The Gimp and the Compositing masks all use
-+ <p>You may remember that The Gimp and the Compositing masks all use
- <em>shift</em> to select control points so why does the timeline use
- <em>ctrl</em>? When you <em>shift-drag</em> on a timeline curve, the
- keyframe jumps to the value of either the next or previous keyframe,
- depending on which exists. This lets you set a constant curve value
- without having to copy the next or previous keyframe.
-
-+<div class="node">
- <p><hr>
- Node:<a name="TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>,
--Next:<a rel=next accesskey=n href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>,
--Previous:<a rel=previous accesskey=p href="#CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>,
--Up:<a rel=up accesskey=u href="#KEYFRAMES">KEYFRAMES</a>
-+Next:<a rel="next" accesskey="n" href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#CURVE%20KEYFRAMES">CURVE KEYFRAMES</a>,
-+Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
- <br>
-+</div>
-
--<h3>TOGGLE KEYFRAMES</h3>
-+<h3 class="section">TOGGLE KEYFRAMES</h3>
-
--<p>Mute is the only toggle keyframe. Mute keyframes determine where the
-+ <p>Mute is the only toggle keyframe. Mute keyframes determine where the
- track is processed but not rendered to the output. Click-drag on these
- curves to create a keyframe. Unlike curves, the toggle keyframe has
- only two values: on or off. Ctrl and shift do nothing on toggle
- keyframes.
-
-+<div class="node">
- <p><hr>
- Node:<a name="AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>,
--Next:<a rel=next accesskey=n href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>,
--Previous:<a rel=previous accesskey=p href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>,
--Up:<a rel=up accesskey=u href="#KEYFRAMES">KEYFRAMES</a>
-+Next:<a rel="next" accesskey="n" href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#TOGGLE%20KEYFRAMES">TOGGLE KEYFRAMES</a>,
-+Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
- <br>
-+</div>
-
--<h3>AUTOMATIC KEYFRAMES</h3>
-+<h3 class="section">AUTOMATIC KEYFRAMES</h3>
-
--<p>You may have noticed when a few fade curves are set up, moving the
-+ <p>You may have noticed when a few fade curves are set up, moving the
- insertion point around the curves causes the faders to reflect the
- curve value under the insertion point. This isn't just to look cool.
- The faders themselves can set keyframes in automatic keyframe mode.
- Automatic keyframe mode is usually more useful than dragging curves.
-
--<p>Enable automatic keyframe mode by enabling the automatic keyframe
-+ <p>Enable automatic keyframe mode by enabling the automatic keyframe
- toggle <img src="autokeyframe.png" alt="autokeyframe.png">. In automatic keyframe mode, every time
- you tweek a keyframeable parameter it creates a keyframe on the
- timeline. Since automatic keyframes affect many parameters, it's best
- enabled just before you need a keyframe and disabled immediately
- thereafter.
-
--<p>It's useful to go into the <em>View</em> menu and make the desired
-+ <p>It's useful to go into the <em>View</em> menu and make the desired
- parameter visible before performing a change. The location where the
- automatic keyframe is generated is under the insertion point. If the
- timeline is playing back during a tweek, several automatic keyframes
- will be generated as you change the parameter.
-
--<p>When automatic keyframe mode is disabled, a similarly strange thing
-+ <p>When automatic keyframe mode is disabled, a similarly strange thing
- happens. Adjusting a parameter adjusts the keyframe immediately
- preceeding the insertion point. If two fade keyframes exist and the
- insertion point is between them, changing the fader changes the first
- keyframe.
-
--<p>There are many parameters which can only be keyframed in automatic
-+ <p>There are many parameters which can only be keyframed in automatic
- keyframe mode. These are parameters for which curves would take up too
- much space on the track or which can't be represented easily by a
- curve.
-
--<p>Effects are only keyframable in automatic mode because of the number of
-+ <p>Effects are only keyframable in automatic mode because of the number of
- parameters in each individual effect.
-
--<p>Camera and projector translation can only be keyframed in automatic
-+ <p>Camera and projector translation can only be keyframed in automatic
- keyframe mode while camera and projector zoom can be keyframed with
- curves. It is here that we conclude the discussion of compositing,
- since compositing is highly dependant on the ability to change over
- time.
-
-+<div class="node">
- <p><hr>
- Node:<a name="COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>,
--Next:<a rel=next accesskey=n href="#EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>,
--Previous:<a rel=previous accesskey=p href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>,
--Up:<a rel=up accesskey=u href="#KEYFRAMES">KEYFRAMES</a>
-+Next:<a rel="next" accesskey="n" href="#EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#AUTOMATIC%20KEYFRAMES">AUTOMATIC KEYFRAMES</a>,
-+Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
- <br>
-+</div>
-
--<h3>COMPOSITOR KEYFRAMES</h3>
-+<h3 class="section">COMPOSITOR KEYFRAMES</h3>
-
--<p>Camera and projector translation is represented by two parameters: x
-+ <p>Camera and projector translation is represented by two parameters: x
- and y. Therefore it is cumbersome to adjust with curves. Cinelerra
- solves this problem by relying on automatic keyframes. With a video
- track loaded, move the insertion point to the beginning of the track
- and enable automatic keyframe mode.
-
--<p>Move the projector slightly in the compositor window to create a
-+ <p>Move the projector slightly in the compositor window to create a
- keyframe. Then go forward several seconds. Move the projector a long
- distance to create another keyframe and emphasize motion. This creates
- a second projector box in the compositor, with a line joining the two
-@@ -3324,14 +3429,14 @@
- keyframes, more boxes are created. Once all the desired keyframes are
- created, disable automatic keyframe mode.
-
--<p>Now when scrubbing around with the compositor window's slider, the
-+ <p>Now when scrubbing around with the compositor window's slider, the
- video projection moves over time. At any point between two keyframes,
- the motion path is read for all time before the insertion point and
- green for all time after the insertion point. It's debatable if this
- is a very useful feature but it makes you feel good to know what
- keyframe is going to be affected by the next projector tweek.
-
--<p>Click-drag when automatic keyframes are off to adjust the preceeding
-+ <p>Click-drag when automatic keyframes are off to adjust the preceeding
- keyframe. If you're halfway between two keyframes, the first projector
- box is adjusted while the second one stays the same. Furthermore, the
- video doesn't appear to move in step with the first keyframe. This is
-@@ -3339,7 +3444,7 @@
- interpolated. In order to set the second keyframe you'll need to scrub
- after the second keyframe.
-
--<p>By default the motion path is a straight line, but it can be curved
-+ <p>By default the motion path is a straight line, but it can be curved
- with control points. <em>Ctrl-drag</em> to set either the in or out
- control point of the preceeding keyframe. Once again, we depart from
- The Gimp because <em>shift</em> is already used for zoom. After the in
-@@ -3348,32 +3453,34 @@
- point. A control point can be out of view entirely yet still
- controllable.
-
--<p>When editing the camera translation, the behavior of the camera boxes
-+ <p>When editing the camera translation, the behavior of the camera boxes
- is slightly different. Camera automation is normally used for still
- photo panning. The current camera box doesn't move during a drag, but
- if multiple keyframes are set, every camera box except the current
- keyframe appears to move. This is because the camera display shows
- every other camera position relative to the current one.
-
--<p>The situation becomes more intuitive if you bend the motion path
-+ <p>The situation becomes more intuitive if you bend the motion path
- between two keyframes and scrub between the two keyframes. The
- division between red and green, the current position between the
- keyframes, is always centered while the camera boxes move.
-
-+<div class="node">
- <p><hr>
- Node:<a name="EDITING%20KEYFRAMES">EDITING KEYFRAMES</a>,
--Previous:<a rel=previous accesskey=p href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>,
--Up:<a rel=up accesskey=u href="#KEYFRAMES">KEYFRAMES</a>
-+Previous:<a rel="previous" accesskey="p" href="#COMPOSITOR%20KEYFRAMES">COMPOSITOR KEYFRAMES</a>,
-+Up:<a rel="up" accesskey="u" href="#KEYFRAMES">KEYFRAMES</a>
- <br>
-+</div>
-
--<h3>EDITING KEYFRAMES</h3>
-+<h3 class="section">EDITING KEYFRAMES</h3>
-
--<p>Keyframes can be shifted around and moved between tracks on the
-+ <p>Keyframes can be shifted around and moved between tracks on the
- timeline using similar cut and paste operations to editing media. Only
- the keyframes selected in the <em>view</em> menu are affected by keyframe
- editing operations, however.
-
--<p>The most popular keyframe editing operation is replication of some
-+ <p>The most popular keyframe editing operation is replication of some
- curve from one track to the other, to make a stereo pair. The first
- step is to solo the source track's record <img src="recordpatch_up.png" alt="recordpatch_up.png"> patch
- by <em>shift-clicking</em> on it. Then either set in/out points or
-@@ -3382,10 +3489,10 @@
- record <img src="recordpatch_up.png" alt="recordpatch_up.png"> patch by <em>shift-clicking</em> on it and
- go to <em>keyframes-&gt;paste keyframes</em> to paste the clipboard.
-
--<p>The media editing commands are mapped to the keyframe editing commands
-+ <p>The media editing commands are mapped to the keyframe editing commands
- by using the <em>shift</em> key instead of just the keyboard shortcut.
-
--<p>This leads to the most complicated part of keyframe editing, the
-+ <p>This leads to the most complicated part of keyframe editing, the
- default keyframe. Remember that when no keyframes are set at all,
- there is still a default keyframe which stores a global parameter for
- the entire duration. The default keyframe isn't drawn because it
-@@ -3395,108 +3502,112 @@
- default keyframe</em> allow conversion of the default keyframe to a
- non-default keyframe.
-
--<p><em>Keyframes-&gt;copy default keyframe</em> copies the default keyframe to
-+ <p><em>Keyframes-&gt;copy default keyframe</em> copies the default keyframe to
- the clipboard, no matter what region of the timeline is selected. The
- <em>keyframes-&gt;paste keyframes</em> function may then be used to paste
- the clipboard as a non-default keyframe.
-
--<p>If you've copied a non-default keyframe, it can be stored as the
-+ <p>If you've copied a non-default keyframe, it can be stored as the
- default keyframe by calling <em>keyframes-&gt;paste default keyframe</em>.
- After using paste default keyframe to convert a non-default keyframe
- into a default keyframe, you won't see the value of the default
- keyframe reflected until all the non-default keyframes are removed.
-
--<p>Finally, there is a convenient way to delete keyframes besides
-+ <p>Finally, there is a convenient way to delete keyframes besides
- selecting a region and calling <em>keyframes-&gt;clear keyframes</em>.
- Merely click-drag a keyframe before its preceeding keyframe or after
- its following keyframe on the track.
-
-+<div class="node">
- <p><hr>
- Node:<a name="CAPTURING%20MEDIA">CAPTURING MEDIA</a>,
--Next:<a rel=next accesskey=n href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>,
--Previous:<a rel=previous accesskey=p href="#KEYFRAMES">KEYFRAMES</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>,
-+Previous:<a rel="previous" accesskey="p" href="#KEYFRAMES">KEYFRAMES</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>CAPTURING MEDIA</h2>
-+<h2 class="chapter">CAPTURING MEDIA</h2>
-
--<p>Ideally, all media would be stored on hard drives, CD-ROM, flash, or
-+ <p>Ideally, all media would be stored on hard drives, CD-ROM, flash, or
- DVD and loading it into Cinelerra would be a matter of loading a file.
- In reality, very few sources of media can be accessed like a filesystem
- but instead rely on tape transport mechanisms and dumb I/O mechanisms
- to transfer the data to computers. These media types are imported into
- Cinelerra through the Record dialog.
-
--<p>The first step in recording is to configure the input device. In
-+ <p>The first step in recording is to configure the input device. In
- <em>Settings-&gt;preferences</em> are a number of recording parameters
- described in configuration See <a href="#RECORDING">RECORDING</a>. These parameters apply to
- recording no matter what the project settings are, because the
- recording parameters are usually the maximum capability of the
- recording hardware while project settings come and go.
-
--<p>Go to <em>File-&gt;record</em> to record a dumb I/O source. This prompts
-+ <p>Go to <em>File-&gt;record</em> to record a dumb I/O source. This prompts
- for an output format much like rendering does. Once that's done, the
- record window and the record monitor pop up.
-
--<p>The record window has discrete sections. While many parameters change
-+ <p>The record window has discrete sections. While many parameters change
- depending on if the file has audio or video, the discrete sections are
- always the same.
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- The output format area describes the format of the output file and the
- current position within it.
-
--<li>
-+ <li>
- The edit batch area lets you change parameters in the current batch.
-
--<li>
-+ <li>
- The transport controls start and stop recording different ways.
-
--<li>
-+ <li>
- The batch list displays all the defined batches.
-
--<li>
-+ <li>
- The confirmation area lets you determine how the output files are
- imported into the timeline and quit.
-
--</ul>
-+ </ul>
-
--<img src="recording.png" alt="recording.png">
-+ <img src="recording.png" alt="recording.png">
- <br><p>
- <br><p>
--<p><em>Recording window areas</em>
-+ <p><em>Recording window areas</em>
-
--<p>Recording in Cinelerra is organized around batches. A batch
-+ <p>Recording in Cinelerra is organized around batches. A batch
- essentially defines a distinct output file for the recording. For now
- you can ignore the batch concept entirely and record merely by hitting
- the record button <img src="record.png" alt="record.png">.
-
--<p>The record button opens the current output file if it isn't opened and
-+ <p>The record button opens the current output file if it isn't opened and
- writes captured data to it. Use the stop button to stop the
- recording. Recording can be resumed with the record button without
- erasing the file at this point. In the case of a video file, there is
- a single frame record button <img src="singleframe.png" alt="singleframe.png"> which records a single
- frame.
-
--<p>When enough media is recorded, choose an insertion method from the
-+ <p>When enough media is recorded, choose an insertion method from the
- <em>Insertion Strategy</em> menu and hit <em>close</em>.
-
--<ul>
--<li><a accesskey=1 href="#BATCHES">BATCHES</a>:
--<li><a accesskey=2 href="#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#BATCHES">BATCHES</a>:
-+<li><a accesskey="2" href="#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="BATCHES">BATCHES</a>,
--Next:<a rel=next accesskey=n href="#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>,
--Up:<a rel=up accesskey=u href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
-+Next:<a rel="next" accesskey="n" href="#EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>,
-+Up:<a rel="up" accesskey="u" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
- <br>
-+</div>
-
--<h3>BATCHES</h3>
-+<h3 class="section">BATCHES</h3>
-
--<p>Now we come to the concept of batches. Batches try to make the dumb
-+ <p>Now we come to the concept of batches. Batches try to make the dumb
- I/O look more like a filesystem. Batches are traditionally used to
- divide tape into different programs and save the different programs as
- different files instead of recording straight through an entire tape.
-@@ -3506,33 +3617,33 @@
- shows or time lapse movies as anyone who can't afford proper appliances
- knows.
-
--<p>The record window supports a list of batches and two recording modes:
-+ <p>The record window supports a list of batches and two recording modes:
- interactive and batch recording. Interactive recording happens when
- the record button is pressed. Interactive recording starts immediately
- and uses the current batch to determine everything except start time.
- By default, the current batch is configured to behave like tape.
-
--<p>Batch recording happens when the <em>start</em> button is pressed. In
-+ <p>Batch recording happens when the <em>start</em> button is pressed. In
- batch recording, the <em>start time</em> is the time the batch starts
- recording.
-
--<p>First, you'll want to create some batches. Each batch has certain
-+ <p>First, you'll want to create some batches. Each batch has certain
- parameters and methods of adjustment.
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- <em>On</em> determines whether the batch is included in batch recording
- operations. Click the list row under <em>On</em> to enable or disable
- batches.
-
--<li>
-+ <li>
- <em>Path</em> is the file the batch is going to be recorded to. The
- filename specified in the record dialog is the name of the first batch,
- to simplify interactive recording, but the filename may be changed in
- the record window for any batch in the <em>edit batch</em> area.
-
--<li>
-+ <li>
- <em>News</em> shows whether the file exists or not. This is a very
- important attribute since there is no confirmation dialog if the file
- exists. The first time you hit record, the file is opened. If the
-@@ -3541,128 +3652,134 @@
- in the same batch, the news should say <em>Open</em>, indicating the file
- is already opened and won't be erased in the next record button press.
-
--<p>If you change out of the current batch after recording, the file is
-+ <p>If you change out of the current batch after recording, the file is
- closed. Next time you change into the batch, the file will be erased.
-
--</p><li>
-+ </p><li>
- <em>Start time</em> is the 24 hour time of day the batch will start
- recording if in batch mode. The start time may become a time of tape
- and reel number if deck control is implemented but for now it's a time
- of day.
-
--<li>
-+ <li>
- <em>Duration</em> is the length of the batch. It only has meaning if the
- <em>Mode</em> of the batch is <em>Timed</em>. Once the recording length
- reaches <em>duration</em> the recording stops, whether in interactive or
- batch mode.
-
--<li>
-+ <li>
- <em>Source</em> has meaning only when the capturing hardware has multiple
- sources. Usually the source is a tuner channel or input. When the
- current batch finishes and the next batch begins recording, the source
- is changed to what the next batch is set to. This way multiple TV
- stations can be recorded at different times.
-
--</ul>
-+ </ul>
-
--<p>The record window has a notion of the <em>current batch</em>. The
-+ <p>The record window has a notion of the <em>current batch</em>. The
- current batch is not the same as the batch which is highlighted in the
- batch list. The current batch text is colored red in the batch list.
- The highlighted batch is merely displayed in the edit batch section for
- editing.
-
--<p>By coloring the current batch red, any batch can be edited by
-+ <p>By coloring the current batch red, any batch can be edited by
- highlighting it, without changing the batch to be recorded.
-
--<p>All recording operations take place in the current batch. If there
-+ <p>All recording operations take place in the current batch. If there
- are multiple batches, highlight the desired batch and hit
- <em>activate</em> to make it the current batch. If the <em>start</em>
- button is pressed, the current batch flashes to indicate it's waiting
- for the start time in batch mode. If the <em>record</em> button is
- pressed, the current batch is recorded immediately in interactive mode.
-
--<p>In batch and interactive recording modes, when the current batch
-+ <p>In batch and interactive recording modes, when the current batch
- finishes recording the next batch is activated and performed. All
- future recording is done in batch mode. When the first batch finishes,
- the next batch flashes until its start time is reached.
-
--<p>Interrupt either the batch or the interactive operation by hitting the
-+ <p>Interrupt either the batch or the interactive operation by hitting the
- stop button.
-
--<p>Finally there is the <img src="rewind.png" alt="rewind.png"> rewind button. In either
-+ <p>Finally there is the <img src="rewind.png" alt="rewind.png"> rewind button. In either
- interactive or batch recording, the rewind button causes the current
- batch to close its file. The next recording operation in the current
- batch deletes the file.
-
-+<div class="node">
- <p><hr>
- Node:<a name="EDITING%20TUNER%20INFORMATION">EDITING TUNER INFORMATION</a>,
--Previous:<a rel=previous accesskey=p href="#BATCHES">BATCHES</a>,
--Up:<a rel=up accesskey=u href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
-+Previous:<a rel="previous" accesskey="p" href="#BATCHES">BATCHES</a>,
-+Up:<a rel="up" accesskey="u" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>
- <br>
-+</div>
-
--<h3>EDITING TUNER INFORMATION</h3>
-+<h3 class="section">EDITING TUNER INFORMATION</h3>
-
--<p>Sometimes in the recording process and the configuration process,
-+ <p>Sometimes in the recording process and the configuration process,
- you'll need to define and select tuner channels to either record or
- play back to. In the case of the Video4Linux recording driver, tuner
- channels define the source. In the case of the Buz playback driver,
- tuner channels define the destination.
-
--<p>Defining tuner channels is accomplished by pushing the <img src="channel.png" alt="channel.png">
-+ <p>Defining tuner channels is accomplished by pushing the <img src="channel.png" alt="channel.png">
- channel button. This brings up the channel editing window. In this
- window you add, edit, and sort channels. Also, for certain video
- drivers, you can adjust the picture quality.
-
--<p>The <em>add</em> operation brings up a channel editing box. The title of
-+ <p>The <em>add</em> operation brings up a channel editing box. The title of
- the channel appears in the channel list. The source of the channel is
- the entry in the physical tuner's frequency table corresponding to the
- title.
-
--<p>Fine tuning in the channel edit dialog adjusts the physical frequency
-+ <p>Fine tuning in the channel edit dialog adjusts the physical frequency
- slightly if the driver supports it. The norm and frequency table
- together define which frequency table is selected for defining
- sources. If the device supports multiple inputs, the input menu
- selects these.
-
--<p>To sort channels, highlight the channel in the list and push <em>move
-+ <p>To sort channels, highlight the channel in the list and push <em>move
- up</em> or <em>move down</em> to move it.
-
--<p>Once channels are defined, the <em>source</em> item in the record window
-+ <p>Once channels are defined, the <em>source</em> item in the record window
- can be used to select channels for recording. The same channel
- selecting ability also exists in the record monitor window. Be aware
- channel selections in the record monitor window and the record window
- are stored in the current batch.
-
-+<div class="node">
- <p><hr>
- Node:<a name="IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>,
--Next:<a rel=next accesskey=n href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>,
--Previous:<a rel=previous accesskey=p href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
--<br>
--
--<h2>IMPROVING PERFORMANCE</h2>
--
--<ul>
--<li><a accesskey=1 href="#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>:
--<li><a accesskey=2 href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>:
--<li><a accesskey=3 href="#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER</a>:
--<li><a accesskey=4 href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>:
--<li><a accesskey=5 href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>:
--<li><a accesskey=6 href="#DISABLING%20CRON">DISABLING CRON</a>:
--<li><a accesskey=7 href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>:
--<li><a accesskey=8 href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>:
--<li><a accesskey=9 href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>:
-+Next:<a rel="next" accesskey="n" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#CAPTURING%20MEDIA">CAPTURING MEDIA</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
-+<br>
-+</div>
-+
-+<h2 class="chapter">IMPROVING PERFORMANCE</h2>
-+
-+<ul class="menu">
-+<li><a accesskey="1" href="#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>:
-+<li><a accesskey="2" href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>:
-+<li><a accesskey="3" href="#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER</a>:
-+<li><a accesskey="4" href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>:
-+<li><a accesskey="5" href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>:
-+<li><a accesskey="6" href="#DISABLING%20CRON">DISABLING CRON</a>:
-+<li><a accesskey="7" href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>:
-+<li><a accesskey="8" href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>:
-+<li><a accesskey="9" href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>,
--Next:<a rel=next accesskey=n href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>DISABLING SWAP SPACE</h3>
-+<h3 class="section">DISABLING SWAP SPACE</h3>
-
--<p>On systems with lots of memory, Cinelerra sometimes runs better without
-+ <p>On systems with lots of memory, Cinelerra sometimes runs better without
- a swap space. If you have 4 GB of RAM, you're probably better off
- without a swap space. If you have 512MB of RAM, you should keep the
- swap. If you want to do recording, you should probably disable swap
-@@ -3671,353 +3788,375 @@
- free pages to swap, in order to cache more disk access. In a 4 GB
- system, you start waiting for page swaps after using only 2 GB.
-
--<p>The question then is how to make Linux run without a swap space.
-+ <p>The question then is how to make Linux run without a swap space.
- Theoretically it should be a matter of running
-
--<br><pre>swapoff -a
--</pre>
-+<pre class="example"> swapoff -a
-+ </pre>
-
--<p>Unfortunately, without a swap space the <b>kswapd</b> tasklet normally
-+ <p>Unfortunately, without a swap space the <b>kswapd</b> tasklet normally
- spins at 100%. To eliminate this problem, edit <b>linux/mm/vmscan.c</b>.
- In this file, put a line saying <b>return 0;</b> before it says
-
--<br><pre> /*
-- * Kswapd main loop.
-- */
--</pre>
-+<pre class="example"> /*
-+ * Kswapd main loop.
-+ */
-+ </pre>
-
--<p>Then recompile the kernel.
-+ <p>Then recompile the kernel.
-
-+<div class="node">
- <p><hr>
- Node:<a name="ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>,
--Next:<a rel=next accesskey=n href="#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER</a>,
--Previous:<a rel=previous accesskey=p href="#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER</a>,
-+Previous:<a rel="previous" accesskey="p" href="#DISABLING%20SWAP%20SPACE">DISABLING SWAP SPACE</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>ENLARGING SOUND BUFFERS</h3>
-+<h3 class="section">ENLARGING SOUND BUFFERS</h3>
-
--<p>In order to improve realtime performance, the audio buffers for all the
-+ <p>In order to improve realtime performance, the audio buffers for all the
- Linux sound drivers were limited from 127k to 64k. For recording audio
- and video simultaneously and for most audio recording this causes
- dropouts. Application of low latency and preemtible kernel patches
- make it possible to record more audio recordings but it doesn't improve
- recording video with audio. This is where you need to hack the kernel.
-
--<p>This only applies to the OSS version of the Soundblaster Live driver.
-+ <p>This only applies to the OSS version of the Soundblaster Live driver.
- Since every sound card and every sound driver derivative has a
- different implementation you'll need to do some searching for other
- sound cards. Edit <b>linux/drivers/sound/emu10k1/audio.c</b>
-
--<p>Where is says
-+ <p>Where is says
-
--<br><pre>if (bufsize &gt;= 0x10000)
--</pre>
-+<pre class="example"> if (bufsize &gt;= 0x10000)
-+ </pre>
-
--<p>change it to say
-+ <p>change it to say
-
--<br><pre>if (bufsize &gt; 0x40000)
--</pre>
-+<pre class="example"> if (bufsize &gt; 0x40000)
-+ </pre>
-
--<p>In <b>linux/drivers/sound/emu10k1/hwaccess.h</b>
-+ <p>In <b>linux/drivers/sound/emu10k1/hwaccess.h</b>
-
--<p>Change
-+ <p>Change
-
--<p><b>#define MAXBUFSIZE 65536</b>
-+ <p><b>#define MAXBUFSIZE 65536</b>
-
--<p>to
-+ <p>to
-
--<p><b>#define MAXBUFSIZE 262144</b>
-+ <p><b>#define MAXBUFSIZE 262144</b>
-
--<p>Finally, in <b>linux/drivers/sound/emu10k1/cardwi.h</b>
-+ <p>Finally, in <b>linux/drivers/sound/emu10k1/cardwi.h</b>
-
--<p><b>#define WAVEIN_MAXBUFSIZE 65536</b>
-+ <p><b>#define WAVEIN_MAXBUFSIZE 65536</b>
-
--<p>to
-+ <p>to
-
--<p><b>#define WAVEIN_MAXBUFSIZE 262144</b>
-+ <p><b>#define WAVEIN_MAXBUFSIZE 262144</b>
-
--<p>Then recompile the kernel modules.
-+ <p>Then recompile the kernel modules.
-
-+<div class="node">
- <p><hr>
- Node:<a name="MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER</a>,
--Next:<a rel=next accesskey=n href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>,
--Previous:<a rel=previous accesskey=p href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>,
-+Previous:<a rel="previous" accesskey="p" href="#ENLARGING%20SOUND%20BUFFERS">ENLARGING SOUND BUFFERS</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>MAKING XFree86 FASTER</h3>
-+<h3 class="section">MAKING XFree86 FASTER</h3>
-
--<p>XFree86 by default can't display Cinelerra's advanced pixmap rendering
-+ <p>XFree86 by default can't display Cinelerra's advanced pixmap rendering
- very fast. The X server stalls during list box drawing. Fix this by
- adding a line to your XF86Config* files.
-
--<p>In the <b>Section "Device"</b> area, add a line saying:
-+ <p>In the <b>Section "Device"</b> area, add a line saying:
-
--<p><b>Option "XaaNoOffscreenPixmaps"</b>
-+ <p><b>Option "XaaNoOffscreenPixmaps"</b>
-
--<p>and restart the X server.
-+ <p>and restart the X server.
-
-+<div class="node">
- <p><hr>
- Node:<a name="FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>,
--Next:<a rel=next accesskey=n href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>,
--Previous:<a rel=previous accesskey=p href="#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>,
-+Previous:<a rel="previous" accesskey="p" href="#MAKING%20XFree86%20FASTER">MAKING XFree86 FASTER</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>FREEING MORE SHARED MEMORY</h3>
-+<h3 class="section">FREEING MORE SHARED MEMORY</h3>
-
--<p>The Linux kernel only allows 32MB of shared memory to be allocated by
-+ <p>The Linux kernel only allows 32MB of shared memory to be allocated by
- default. This needs to be increased to do anything useful. Run the
- following command:
-
--<p><b>echo "0x7fffffff" &gt; /proc/sys/kernel/shmmax</b>
-+ <p><b>echo "0x7fffffff" &gt; /proc/sys/kernel/shmmax</b>
-
-+<div class="node">
- <p><hr>
- Node:<a name="SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>,
--Next:<a rel=next accesskey=n href="#DISABLING%20CRON">DISABLING CRON</a>,
--Previous:<a rel=previous accesskey=p href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#DISABLING%20CRON">DISABLING CRON</a>,
-+Previous:<a rel="previous" accesskey="p" href="#FREEING%20MORE%20SHARED%20MEMORY">FREEING MORE SHARED MEMORY</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>SPEEDING UP THE HARD DRIVE</h3>
-+<h3 class="section">SPEEDING UP THE HARD DRIVE</h3>
-
--<p>This is a very popular command sequence among Linux gurus, which is not
-+ <p>This is a very popular command sequence among Linux gurus, which is not
- done by default on Linux distributions.
-
--<p><b>hdparm -c3 -d1 -u1 -k1 /dev/hda</b>
-+ <p><b>hdparm -c3 -d1 -u1 -k1 /dev/hda</b>
-
--<p><b>-c3</b> puts the hard drive into 32 bit I/O with sync. This normally
-+ <p><b>-c3</b> puts the hard drive into 32 bit I/O with sync. This normally
- doesn't work due to inept kernel support for most IDE controllers. If
- you get lost interrupt or SeekComplete errors, quickly use <b>-c0</b>
- instead of <b>-c3</b> in your command.
-
--<p><b>-d1</b> enables DMA of course. This frees up the CPU partially during
-+ <p><b>-d1</b> enables DMA of course. This frees up the CPU partially during
- data transfers.
-
--<p><b>-u1</b> allows multiple interrupts to be handled during hard drive
-+ <p><b>-u1</b> allows multiple interrupts to be handled during hard drive
- transactions. This frees up even more CPU time.
-
--<p><b>-k1</b> prevents Linux from resetting your settings in case of a
-+ <p><b>-k1</b> prevents Linux from resetting your settings in case of a
- glitch.
-
-+<div class="node">
- <p><hr>
- Node:<a name="DISABLING%20CRON">DISABLING CRON</a>,
--Next:<a rel=next accesskey=n href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>,
--Previous:<a rel=previous accesskey=p href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>,
-+Previous:<a rel="previous" accesskey="p" href="#SPEEDING%20UP%20THE%20HARD%20DRIVE">SPEEDING UP THE HARD DRIVE</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>DISABLING CRON</h3>
-+<h3 class="section">DISABLING CRON</h3>
-
--<p>Linux runs some daily operations like compressing man pages. These may
-+ <p>Linux runs some daily operations like compressing man pages. These may
- be acceptable background tasks while compiling or word processing but
- not while playing video. Disable these operations by editing
- <b>/etc/rc.d/init.d/anacron</b>.
-
--<p>Put <b>exit</b> before the first line not beginning in <b>#</b>.
-+ <p>Put <b>exit</b> before the first line not beginning in <b>#</b>.
-
--<p>In <b>/etc/rc.d/init.d/crond</b> put <b>exit</b> before the first line not
-+ <p>In <b>/etc/rc.d/init.d/crond</b> put <b>exit</b> before the first line not
- beginning in <b>#</b>. Then make like Win 2000 and reboot.
-
--<p>You can't use the <b>at</b> command anymore, but who uses that command
-+ <p>You can't use the <b>at</b> command anymore, but who uses that command
- anyways?
-
-+<div class="node">
- <p><hr>
- Node:<a name="REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>,
--Next:<a rel=next accesskey=n href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>,
--Previous:<a rel=previous accesskey=p href="#DISABLING%20CRON">DISABLING CRON</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#DISABLING%20CRON">DISABLING CRON</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>REDUCING USB MOUSE SENSITIVITY</h3>
-+<h3 class="section">REDUCING USB MOUSE SENSITIVITY</h3>
-
--<p>Gamers like high resolution mice, but this can be painful for precisely
-+ <p>Gamers like high resolution mice, but this can be painful for precisely
- positioning the mouse on a timeline or video screen. XFree86 once
- allowed you to reduce PS/2 mouse sensitivity using commands like
- <b>xset m 1 1</b> but you're out of luck with USB mice or KVM's.
-
--<p>We have a way to reduce USB mouse sensitivity. Edit
-+ <p>We have a way to reduce USB mouse sensitivity. Edit
- <b>/usr/src/linux/drivers/input/mousedev.c</b>.
-
--<p>After the line saying
--
--<br><pre>struct mousedev_list {
--</pre>
--
--<p>put
-+ <p>After the line saying
-
--<br><pre>#define DOWNSAMPLE 4
--int x_accum, y_accum;
--</pre>
--
--<p>Next, the section which says something like:
--
--<br><pre>case EV_REL:
-- switch (code) {
-- case REL_X: list-&gt;dx += value; break;
-- case REL_Y: list-&gt;dy -= value; break;
-- case REL_WHEEL: if (list-&gt;mode) list-&gt;dz -= value; break;
-- }
-- break;
--</pre>
--
--<p>must be replaced by
--
--<br><pre>
--case EV_REL:
-- switch (code) {
-- case REL_X:
-- list-&gt;x_accum += value;
-- list-&gt;dx += list-&gt;x_accum / DOWNSAMPLE;
-- list-&gt;x_accum %= DOWNSAMPLE;
-- break;
-- case REL_Y:
-- list-&gt;y_accum += value;
-- list-&gt;dy -= list-&gt;y_accum / DOWNSAMPLE;
-- list-&gt;y_accum %= DOWNSAMPLE;
-- break;
-- case REL_WHEEL: if (list-&gt;mode) list-&gt;dz -= value; break;
-- }
-- break;
-+<pre class="example"> struct mousedev_list {
-+ </pre>
-
-+ <p>put
-
-+<pre class="example"> #define DOWNSAMPLE 4
-+ int x_accum, y_accum;
-+ </pre>
-+
-+ <p>Next, the section which says something like:
-+
-+<pre class="example"> case EV_REL:
-+ switch (code) {
-+ case REL_X: list-&gt;dx += value; break;
-+ case REL_Y: list-&gt;dy -= value; break;
-+ case REL_WHEEL: if (list-&gt;mode) list-&gt;dz -= value; break;
-+ }
-+ break;
-+ </pre>
-+
-+ <p>must be replaced by
-+
-+<pre class="example">
-+ case EV_REL:
-+ switch (code) {
-+ case REL_X:
-+ list-&gt;x_accum += value;
-+ list-&gt;dx += list-&gt;x_accum / DOWNSAMPLE;
-+ list-&gt;x_accum %= DOWNSAMPLE;
-+ break;
-+ case REL_Y:
-+ list-&gt;y_accum += value;
-+ list-&gt;dy -= list-&gt;y_accum / DOWNSAMPLE;
-+ list-&gt;y_accum %= DOWNSAMPLE;
-+ break;
-+ case REL_WHEEL: if (list-&gt;mode) list-&gt;dz -= value; break;
-+ }
-+ break;
-+
-+
-+
-+ </pre>
-
--</pre>
--
--<p>Change the value of <b>DOWNSAMPLE</b> to change the mouse sensitivity.
-+ <p>Change the value of <b>DOWNSAMPLE</b> to change the mouse sensitivity.
-
-+<div class="node">
- <p><hr>
- Node:<a name="ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>,
--Next:<a rel=next accesskey=n href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>,
--Previous:<a rel=previous accesskey=p href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Next:<a rel="next" accesskey="n" href="#SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>,
-+Previous:<a rel="previous" accesskey="p" href="#REDUCING%20USB%20MOUSE%20SENSITIVITY">REDUCING USB MOUSE SENSITIVITY</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>ASSORTED X TWEEKS</h3>
-+<h3 class="section">ASSORTED X TWEEKS</h3>
-
--<p>Screen blanking is really annoying, unless you're fabulously rich and
-+ <p>Screen blanking is really annoying, unless you're fabulously rich and
- can afford to leave your monitor on 24 hours a day without power saving
- mode. In <b>/etc/X11/xinit/xinitrc</b> put
-
--<br><pre>xset s off
--xset s noblank
--</pre>
-+<pre class="example"> xset s off
-+ xset s noblank
-+ </pre>
-
--<p>before the first <b>if</b> statement.
-+ <p>before the first <b>if</b> statement.
-
--<p>How about those windows keys which no Linux distribution even thinks to
-+ <p>How about those windows keys which no Linux distribution even thinks to
- use. You can make the window keys provide ALT functionality by editing
- <b>/etc/X11/Xmodmap</b>. Append the following to it.
-
--<br><pre>keycode 115 = Hyper_L
--keycode 116 = Hyper_R
--add mod4 = Hyper_L
--add mod5 = Hyper_R
--</pre>
-+<pre class="example"> keycode 115 = Hyper_L
-+ keycode 116 = Hyper_R
-+ add mod4 = Hyper_L
-+ add mod5 = Hyper_R
-+ </pre>
-
--<p>The actual changes to a window manager to make it recognize window keys
-+ <p>The actual changes to a window manager to make it recognize window keys
- for ALT are complex. In <b>FVWM</b> at least, you can edit
- <b>/etc/X11/fvwm/system.fvwm2rc</b> and put
-
--<br><pre>Mouse 0 T A move-and-raise-or-raiselower
--#Mouse 0 W M move
--Mouse 0 W 4 move
--Mouse 0 W 5 move
--Mouse 0 F A resize-or-raiselower
--Mouse 0 S A resize-or-raiselower
--</pre>
-+<pre class="example"> Mouse 0 T A move-and-raise-or-raiselower
-+ #Mouse 0 W M move
-+ Mouse 0 W 4 move
-+ Mouse 0 W 5 move
-+ Mouse 0 F A resize-or-raiselower
-+ Mouse 0 S A resize-or-raiselower
-+ </pre>
-
--<p>in place of the default section for moving and resizing. Your best
-+ <p>in place of the default section for moving and resizing. Your best
- performance is going to be on FVWM. Other window managers seem to slow
- down video with extra event trapping and aren't as efficient in layout.
-
-+<div class="node">
- <p><hr>
- Node:<a name="SPEEDING%20UP%20THE%20FILE%20SYSTEM">SPEEDING UP THE FILE SYSTEM</a>,
--Previous:<a rel=previous accesskey=p href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>,
--Up:<a rel=up accesskey=u href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
-+Previous:<a rel="previous" accesskey="p" href="#ASSORTED%20X%20TWEEKS">ASSORTED X TWEEKS</a>,
-+Up:<a rel="up" accesskey="u" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>
- <br>
-+</div>
-
--<h3>SPEEDING UP THE FILE SYSTEM</h3>
-+<h3 class="section">SPEEDING UP THE FILE SYSTEM</h3>
-
--<p>You'll often store video on an expensive, gigantic disk array separate
-+ <p>You'll often store video on an expensive, gigantic disk array separate
- from your boot disk. You'll thus have to manually install an EXT
- filesystem on this disk array, using the <b>mke2fs</b> command. By far
- the fastest file system is
-
--<br><pre>
--mke2fs -i 65536 -b 4096 my_device
--tune2fs -r0 -c10000 my_device
--
--</pre>
-+<pre class="example">
-+ mke2fs -i 65536 -b 4096 my_device
-+ tune2fs -r0 -c10000 my_device
-+
-+ </pre>
-
--<p>This has no journaling, reserves as few blocks as possible for
-+ <p>This has no journaling, reserves as few blocks as possible for
- filenames, and accesses the largest amount of data per block possible.
- A slightly slower file system, which is easier to recover after power
- failures is
-
--<br><pre>
--mke2fs -j -i 65536 -b 4096 my_device
--tune2fs -r0 -c10000 my_device
--
--</pre>
-+<pre class="example">
-+ mke2fs -j -i 65536 -b 4096 my_device
-+ tune2fs -r0 -c10000 my_device
-+
-+ </pre>
-
--<p>This adds a journal which slows down the writes but makes us immune to
-+ <p>This adds a journal which slows down the writes but makes us immune to
- power failures.
-
-+<div class="node">
- <p><hr>
- Node:<a name="EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>,
--Next:<a rel=next accesskey=n href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>,
--Previous:<a rel=previous accesskey=p href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>,
-+Previous:<a rel="previous" accesskey="p" href="#IMPROVING%20PERFORMANCE">IMPROVING PERFORMANCE</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>EFFECT DESCRIPTIONS</h2>
-+<h2 class="chapter">EFFECT DESCRIPTIONS</h2>
-
--<p>Most effects in Cinelerra can be figured out just by using them and
-+ <p>Most effects in Cinelerra can be figured out just by using them and
- tweeking. Here are brief descriptions of effects which you might not
- utilize fully by mere experimentation.
-
--<ul>
--<li><a accesskey=1 href="#CHROMA%20KEY">CHROMA KEY</a>:
--<li><a accesskey=2 href="#HISTOGRAM">HISTOGRAM</a>:
--<li><a accesskey=3 href="#TIME%20AVERAGE">TIME AVERAGE</a>:
--<li><a accesskey=4 href="#VIDEO%20SCOPE">VIDEO SCOPE</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#CHROMA%20KEY">CHROMA KEY</a>:
-+<li><a accesskey="2" href="#HISTOGRAM">HISTOGRAM</a>:
-+<li><a accesskey="3" href="#TIME%20AVERAGE">TIME AVERAGE</a>:
-+<li><a accesskey="4" href="#VIDEO%20SCOPE">VIDEO SCOPE</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="CHROMA%20KEY">CHROMA KEY</a>,
--Next:<a rel=next accesskey=n href="#HISTOGRAM">HISTOGRAM</a>,
--Up:<a rel=up accesskey=u href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
-+Next:<a rel="next" accesskey="n" href="#HISTOGRAM">HISTOGRAM</a>,
-+Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
- <br>
-+</div>
-
--<h3>CHROMA KEY</h3>
-+<h3 class="section">CHROMA KEY</h3>
-
--<p>This effect replaces the selected color or intensity with black if
-+ <p>This effect replaces the selected color or intensity with black if
- there is no alpha channel and replaces it with transparency if there is
- an alpha channel. The selection of color model is important.
-
--<p>Chroma key uses either the value or the hue to determine what is
-+ <p>Chroma key uses either the value or the hue to determine what is
- erased. If this parameter is within a certain threshold it's erased.
- It's not a simple on/off switch, however. As the selected parameter
- approaches the edge of the threshold, it gradually gets erased if the
- slope is low or is completely erased if the slope is high.
-
--<p>The slope tries to soften the edges of the chroma key but it doesn't
-+ <p>The slope tries to soften the edges of the chroma key but it doesn't
- work well for compressed sources. A popular softening technique is to
- use a maximum slope and chain a blur effect below the chroma key effect
- to blur just the alpha.
-
-+<div class="node">
- <p><hr>
- Node:<a name="HISTOGRAM">HISTOGRAM</a>,
--Next:<a rel=next accesskey=n href="#TIME%20AVERAGE">TIME AVERAGE</a>,
--Previous:<a rel=previous accesskey=p href="#CHROMA%20KEY">CHROMA KEY</a>,
--Up:<a rel=up accesskey=u href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
-+Next:<a rel="next" accesskey="n" href="#TIME%20AVERAGE">TIME AVERAGE</a>,
-+Previous:<a rel="previous" accesskey="p" href="#CHROMA%20KEY">CHROMA KEY</a>,
-+Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
- <br>
-+</div>
-
--<h3>HISTOGRAM</h3>
-+<h3 class="section">HISTOGRAM</h3>
-
--<p>This shows the number of occurances of each value of a certain color
-+ <p>This shows the number of occurances of each value of a certain color
- channel. It is always performed in 16 bit RGB regardless of the
- project colorspace. Use the upper gradient to determine the range of
- input intensities to be expanded to the output. Use the lower gradient
-@@ -4027,321 +4166,333 @@
- automatic mode and determines how sensitive to the upper and lower
- boundaries of the histogram the automatic gain should be.
-
-+<div class="node">
- <p><hr>
- Node:<a name="TIME%20AVERAGE">TIME AVERAGE</a>,
--Next:<a rel=next accesskey=n href="#VIDEO%20SCOPE">VIDEO SCOPE</a>,
--Previous:<a rel=previous accesskey=p href="#HISTOGRAM">HISTOGRAM</a>,
--Up:<a rel=up accesskey=u href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
-+Next:<a rel="next" accesskey="n" href="#VIDEO%20SCOPE">VIDEO SCOPE</a>,
-+Previous:<a rel="previous" accesskey="p" href="#HISTOGRAM">HISTOGRAM</a>,
-+Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
- <br>
-+</div>
-
--<h3>TIME AVERAGE</h3>
-+<h3 class="section">TIME AVERAGE</h3>
-
--<p>Time average is one effect which has many uses besides creating nifty
-+ <p>Time average is one effect which has many uses besides creating nifty
- trail patterns of moving objects. It's main use is reducing noise in
- still images. Merely point a video camera at a stationary subject for
- 30 frames, capture the frames, and average them using TIME AVERAGE and
- you'll have a super high quality print. In 16 bit colormodels, time
- average can increase the dynamic range of lousy cameras.
-
-+<div class="node">
- <p><hr>
- Node:<a name="VIDEO%20SCOPE">VIDEO SCOPE</a>,
--Previous:<a rel=previous accesskey=p href="#TIME%20AVERAGE">TIME AVERAGE</a>,
--Up:<a rel=up accesskey=u href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
-+Previous:<a rel="previous" accesskey="p" href="#TIME%20AVERAGE">TIME AVERAGE</a>,
-+Up:<a rel="up" accesskey="u" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>
- <br>
-+</div>
-
--<h3>VIDEO SCOPE</h3>
-+<h3 class="section">VIDEO SCOPE</h3>
-
--<p>The video scope plots two views of the image. One view plots the
-+ <p>The video scope plots two views of the image. One view plots the
- intensity of each pixel against horizontal position. They call this
- the WAVEFORM. Another view translates hue to angle and saturation to
- radius for each pixel. They call this the VECTORSCOPE.
-
--<p>The vectorscope is actually very useful for determining if an image is
-+ <p>The vectorscope is actually very useful for determining if an image is
- saturated. When adjusting saturation, it's important to watch the
- vectorscope to make sure pixels don't extend past the 100 radius.
-
--<p>The waveform allows you to make sure image data extends from complete
-+ <p>The waveform allows you to make sure image data extends from complete
- black to complete white while adjusting the brightness/contrast.
-
-+<div class="node">
- <p><hr>
- Node:<a name="PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>,
--Next:<a rel=next accesskey=n href="#RELEASE%20NOTES">RELEASE NOTES</a>,
--Previous:<a rel=previous accesskey=p href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Next:<a rel="next" accesskey="n" href="#RELEASE%20NOTES">RELEASE NOTES</a>,
-+Previous:<a rel="previous" accesskey="p" href="#EFFECT%20DESCRIPTIONS">EFFECT DESCRIPTIONS</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>PLUGIN AUTHORING</h2>
-+<h2 class="chapter">PLUGIN AUTHORING</h2>
-
--<p>The plugin API in Cinelerra dates back to 1997, before the LADSPA and
-+ <p>The plugin API in Cinelerra dates back to 1997, before the LADSPA and
- before VST became popular. It's fundamentally the same as it was in
- 1997, with minor modifications to handle keyframes and GUI feedback.
- Unfortunately, the GUI is not abstracted from the programmer. This
- allows the programmer to use whatever toolkit they want and allows more
- flexibility in appearance but it costs more.
-
--<p>There are several types of plugins, each with a common procedure
-+ <p>There are several types of plugins, each with a common procedure
- of implementation and specific changes for that particular type. The
- easiest way to implement a plugin is to take the simplest out of the
- group and rename the symbols.
-
--<ul>
--<li><a accesskey=1 href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>:
--<li><a accesskey=2 href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>:
--<li><a accesskey=3 href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>:
--<li><a accesskey=4 href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>:
--<li><a accesskey=5 href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>:
--<li><a accesskey=6 href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>:
--<li><a accesskey=7 href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>:
-+<li><a accesskey="2" href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>:
-+<li><a accesskey="3" href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>:
-+<li><a accesskey="4" href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>:
-+<li><a accesskey="5" href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>:
-+<li><a accesskey="6" href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>:
-+<li><a accesskey="7" href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="COMMON%20PROCEDURES">COMMON PROCEDURES</a>,
--Next:<a rel=next accesskey=n href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>,
--Up:<a rel=up accesskey=u href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
-+Next:<a rel="next" accesskey="n" href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>,
-+Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
- <br>
-+</div>
-
--<h3>COMMON PROCEDURES</h3>
-+<h3 class="section">COMMON PROCEDURES</h3>
-
--<p>All plugins inherit from a derivative of PluginClient. This derivative
-+ <p>All plugins inherit from a derivative of PluginClient. This derivative
- implements most of the required methods in PluginClient, but users must
- still define methods for PluginClient. The most commonly used methods
- are already implemented in macros.
-
--<p>The files they include depend on the plugin type. Audio plugins
-+ <p>The files they include depend on the plugin type. Audio plugins
- include <b>pluginaclient.h</b> and video plugins include
- <b>pluginvclient.h</b>. They inherit <b>PluginAClient</b> and
- <b>PluginVClient</b> respectively.
-
--<p>Another thing all plugins do is define at least three objects:
-+ <p>Another thing all plugins do is define at least three objects:
-
--<ul>
-+ <ul>
-
--<li>
-+ <li>
- Processing object - Contains pointers to all the other objects and
- performs the signal processing. This object contains a number of
- queries to identify itself and is the object you register to register
- the plugin.
-
--<li>
-+ <li>
- User interface object - This is defined according to the programmer's
- discretion. It can either use Cinelerra's toolkit or another toolkit.
- It shows data on the screen and collects parameters from the user.
-
--<p>Using Cinelerra's toolkit, the only user interface object a developer
-+ <p>Using Cinelerra's toolkit, the only user interface object a developer
- needs to worry about is the Window. The window has pointers to a
- number of widgets, a few initialization methods, and a back pointer to
- the plugin's processing object. The documentation refers to usage of
- Cinelerra's toolkit.
-
--<p>Depending on the user interface toolkit, a user interface thread may be
-+ <p>Depending on the user interface toolkit, a user interface thread may be
- created to run the user interface asynchronous of everything else.
- Synchronizing the user interface to changes in keyframes is the most
- complicated aspect of the plugin, so the user interface thread and
- object are heavily supported by macros if you use Cinelerra's toolkit.
-
--</p><li>
-+ </p><li>
- Configuration object - This stores the user parameters and always needs
- interpolation, copying, and comparison functions. The plugin client
- automatically calls configuration methods to interpolate keyframes.
-
--</ul>
-+ </ul>
-
--<ul>
--<li><a accesskey=1 href="#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>:
--<li><a accesskey=2 href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>:
--<li><a accesskey=3 href="#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>:
-+<ul class="menu">
-+<li><a accesskey="1" href="#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>:
-+<li><a accesskey="2" href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>:
-+<li><a accesskey="3" href="#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>:
- </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>,
--Next:<a rel=next accesskey=n href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>,
--Up:<a rel=up accesskey=u href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
-+Next:<a rel="next" accesskey="n" href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>,
-+Up:<a rel="up" accesskey="u" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
- <br>
-+</div>
-
--<h4>THE PROCESSING OBJECT</h4>
-+<h4 class="subsection">THE PROCESSING OBJECT</h4>
-
--<p>The processing object should inherit from the intended PluginClient
-+ <p>The processing object should inherit from the intended PluginClient
- derivative. Its constructor should take a PluginServer argument.
-
--<br><pre>MyPlugin(PluginServer *server);
--</pre>
-+<pre class="example"> MyPlugin(PluginServer *server);
-+ </pre>
-
--<p>In the implementation, the plugin must contain a registration line with
-+ <p>In the implementation, the plugin must contain a registration line with
- the name of the processing object like
-
--<br><pre>REGISTER_PLUGIN(MyPlugin)
--</pre>
-+<pre class="example"> REGISTER_PLUGIN(MyPlugin)
-+ </pre>
-
--<p>The constructor should contain
-+ <p>The constructor should contain
-
--<br><pre>PLUGIN_CONSTRUCTOR_MACRO
--</pre>
-+<pre class="example"> PLUGIN_CONSTRUCTOR_MACRO
-+ </pre>
-
--<p>to initialize the most common variables.
-+ <p>to initialize the most common variables.
-
--<p>The processing object should have a destructor containing
-+ <p>The processing object should have a destructor containing
-
--<br><pre>PLUGIN_DESTRUCTOR_MACRO
--</pre>
-+<pre class="example"> PLUGIN_DESTRUCTOR_MACRO
-+ </pre>
-
--<p>to delete the most common variables.
-+ <p>to delete the most common variables.
-
--<p>Another function which is useful but not mandatory is
-+ <p>Another function which is useful but not mandatory is
-
--<br><pre>int is_multichannel();
--</pre>
-+<pre class="example"> int is_multichannel();
-+ </pre>
-
--<p>It should return 1 if one instance of the plugin handles multiple
-+ <p>It should return 1 if one instance of the plugin handles multiple
- channels simultaneously or 0 if one instance of the plugin only handles
- one channel. The default is 0 if it is omitted. Multichannel plugins
- should refer to the value of <b>PluginClient::total_in_buffers</b> to
- determine the number of channels.
-
--<p>To simplify the implementation of realtime plugins, a macro for
-+ <p>To simplify the implementation of realtime plugins, a macro for
- commonly used members should be put in the class header, taking the
- configuration object and user interface thread object as arguments.
- This is only useful for realtime plugins. Fortunately, nonrealtime
- plugins are simpler.
-
--<br><pre>PLUGIN_CLASS_MEMBERS(config_name, thread_name)
--</pre>
-+<pre class="example"> PLUGIN_CLASS_MEMBERS(config_name, thread_name)
-+ </pre>
-
--<p>Many other members may be defined in the processing object, depending
-+ <p>Many other members may be defined in the processing object, depending
- on the plugin type. The commonly used members in PLUGIN_CLASS_MEMBERS
- are described below. Not all these members are used in nonrealtime
- plugins.
-
--<ul>
-+ <ul>
-
--<li>int load_configuration();
-+ <li>int load_configuration();
-
--<p>Loads the configuration based on surrounding keyframes and current
-+ <p>Loads the configuration based on surrounding keyframes and current
- position. The class definition should contain
-
--<br><pre>LOAD_CONFIGURATION_MACRO(plugin_class, config_class)
--</pre>
-+ <pre class="example"> LOAD_CONFIGURATION_MACRO(plugin_class, config_class)
-+ </pre>
-
--<p>to implement load_configuration. This stores whatever the current
-+ <p>to implement load_configuration. This stores whatever the current
- configuration is inside the plugin's configuration object. The
- plugin's configuration object is always called <b>config</b> when using
- PLUGIN_CLASS_MEMBERS.
-
--</p><li>VFrame* new_picon();
-+ </p><li>VFrame* new_picon();
-
--<p>Creates a picon for display in the resource window. Use
-+ <p>Creates a picon for display in the resource window. Use
-
--<br><pre>#include "picon_png.h"
--NEW_PICON_MACRO(plugin_class)
--</pre>
-+ <pre class="example"> #include "picon_png.h"
-+ NEW_PICON_MACRO(plugin_class)
-+ </pre>
-
--<p>to implement new_picon. In addition, the user should create a
-+ <p>to implement new_picon. In addition, the user should create a
- <em>picon_png.h</em> header file from a PNG image using <em>pngtoh</em>.
- <em>pngtoh</em> is in <em>guicast</em> and compiled using a sequence like
-
--<br><pre>gcc -o pngtoh pngtoh.c
--</pre>
-+ <pre class="example"> gcc -o pngtoh pngtoh.c
-+ </pre>
-
--<p>The source PNG image should be called picon.png and can be any format
-+ <p>The source PNG image should be called picon.png and can be any format
- supported by PNG.
-
--</p><li>char* plugin_title();
-+ </p><li>char* plugin_title();
-
--<p>Returns a text string identifying the plugin in the resource window.
-+ <p>Returns a text string identifying the plugin in the resource window.
- The string has to be unique.
-
--</p><li>void update_gui();
-+ </p><li>void update_gui();
-
--<p>Should first load the configuration and then redraw the GUI with the
-+ <p>Should first load the configuration and then redraw the GUI with the
- new parameters. All the plugins using GuiCast have a format like
-
--<br><pre>void MyPlugin::update_gui()
--{
-- if(thread)
-- {
-- load_configuration();
-- thread-&gt;window-&gt;lock_window();
--// update widgets here
-- thread-&gt;window-&gt;unlock_window();
-- }
--}
--</pre>
-+ <pre class="example"> void MyPlugin::update_gui()
-+ {
-+ if(thread)
-+ {
-+ load_configuration();
-+ thread-&gt;window-&gt;lock_window();
-+ // update widgets here
-+ thread-&gt;window-&gt;unlock_window();
-+ }
-+ }
-+ </pre>
-
--<p>to handle concurrency and conditions of no GUI.
-+ <p>to handle concurrency and conditions of no GUI.
-
--</p><li>int show_gui();
-+ </p><li>int show_gui();
-
--<p>Instantiate the GUI and switch the plugin to GUI mode. This is implemented with
-+ <p>Instantiate the GUI and switch the plugin to GUI mode. This is implemented with
-
--<br><pre>SHOW_GUI_MACRO(plugin_class, thread_class)
--</pre>
-+ <pre class="example"> SHOW_GUI_MACRO(plugin_class, thread_class)
-+ </pre>
-
--</p><li>int set_string();
-+ </p><li>int set_string();
-
--<p>Changes the title of the GUI window to a certain string. This is implemented with
-+ <p>Changes the title of the GUI window to a certain string. This is implemented with
-
--<br><pre>SET_STRING_MACRO(plugin_class)
--</pre>
-+ <pre class="example"> SET_STRING_MACRO(plugin_class)
-+ </pre>
-
--</p><li>void raise_window();
-+ </p><li>void raise_window();
-
--<p>Raises the GUI window to the top of the stack. This is implemented with
-+ <p>Raises the GUI window to the top of the stack. This is implemented with
-
--<br><pre>RAISE_WINDOW_MACRO(plugin_class)
--</pre>
-+ <pre class="example"> RAISE_WINDOW_MACRO(plugin_class)
-+ </pre>
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>,
--Next:<a rel=next accesskey=n href="#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>,
--Previous:<a rel=previous accesskey=p href="#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>,
--Up:<a rel=up accesskey=u href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
-+Next:<a rel="next" accesskey="n" href="#THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>,
-+Previous:<a rel="previous" accesskey="p" href="#THE%20PROCESSING%20OBJECT">THE PROCESSING OBJECT</a>,
-+Up:<a rel="up" accesskey="u" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
- <br>
-+</div>
-
--<h4>THE CONFIGURATION OBJECT</h4>
-+<h4 class="subsection">THE CONFIGURATION OBJECT</h4>
-
--<p>The configuration object is critical for GUI updates, signal
-+ <p>The configuration object is critical for GUI updates, signal
- processing, and default settings in realtime plugins. Be aware it is
- not used in nonrealtime plugins. The configuration object inherits
- from nothing and has no dependancies. It's merely a class containing
- three functions and variables specific to the plugin's parameters.
-
--<p>Usually the configuration object starts with the name of the plugin
-+ <p>Usually the configuration object starts with the name of the plugin
- followed by Config.
-
--<br><pre>class MyPluginConfig
--{
--public:
-- MyPluginConfig();
--</pre>
-+<pre class="example"> class MyPluginConfig
-+ {
-+ public:
-+ MyPluginConfig();
-+ </pre>
-
--<p>Following the name of the configuration class, we put the three
-+ <p>Following the name of the configuration class, we put the three
- required functions and the configuration variables.
-
--<br><pre> int equivalent(MyPluginConfig &amp;that);
-- void copy_from(MyPluginConfig &amp;that);
-- void interpolate(MyPluginConfig &amp;prev,
-- MyPluginConfig &amp;next,
-- long prev_position,
-- long next_position,
-- long current_position);
--
--
--
-- float parameter1;
-- float parameter2;
-- int parameter3;
--};
-+<pre class="example"> int equivalent(MyPluginConfig &amp;that);
-+ void copy_from(MyPluginConfig &amp;that);
-+ void interpolate(MyPluginConfig &amp;prev,
-+ MyPluginConfig &amp;next,
-+ long prev_position,
-+ long next_position,
-+ long current_position);
-+
-+
-+
-+ float parameter1;
-+ float parameter2;
-+ int parameter3;
-+ };
-+
-+ </pre>
-
--</pre>
--
--<p>Now you must define the three functions. <b>Equivalent</b> is called by
-+ <p>Now you must define the three functions. <b>Equivalent</b> is called by
- LOAD_CONFIGURATION_MACRO to get the return value. That is all it's
- used for and if you don't care about load_configuration's return value,
- you can leave this function empty. It normally returns 1 if the
- argument's variables have the same values as the local variables.
-
--<p>Then there's <b>copy_from</b> which transfers the configuration values
-+ <p>Then there's <b>copy_from</b> which transfers the configuration values
- from the argument to the local variables. This is once again used in
- LOAD_CONFIGURATION_MACRO to store configurations in temporaries. Once
- LOAD_CONFIGURATION_MACRO has replicated the configuration, it loads a
-@@ -4349,34 +4500,34 @@
- get the current configuration. The interpolation function performs the
- interpolation and stores the result in the local variables.
-
--<p>Normally the interpolate function calculates a previous and next
-+ <p>Normally the interpolate function calculates a previous and next
- fraction, using the arguments.
-
--<br><pre>void MyPluginConfig::interpolate(MyPluginConfig &amp;prev,
-- MyPluginConfig &amp;next,
-- long prev_position,
-- long next_position,
-- long current_position)
--{
-- double next_scale = (double)(current_position - prev_position) / (next_position - prev_position);
-- double prev_scale = (double)(next_position - current_position) / (next_position - prev_position);
--</pre>
-+<pre class="example"> void MyPluginConfig::interpolate(MyPluginConfig &amp;prev,
-+ MyPluginConfig &amp;next,
-+ long prev_position,
-+ long next_position,
-+ long current_position)
-+ {
-+ double next_scale = (double)(current_position - prev_position) / (next_position - prev_position);
-+ double prev_scale = (double)(next_position - current_position) / (next_position - prev_position);
-+ </pre>
-
--<p>Then the scales are applied to the previous and next configuration
-+ <p>Then the scales are applied to the previous and next configuration
- object to yield the current values.
-
--<br><pre>
-- this-&gt;parameter1 = (float)(prev.parameter1 * prev_scale + next.parameter1 * next_scale);
-- this-&gt;parameter2 = (float)(prev.parameter2 * prev_scale + next.parameter2 * next_scale);
-- this-&gt;parameter3 = (int)(prev.parameter3 * prev_scale + next.parameter3 * next_scale);
--}
--
--</pre>
-+<pre class="example">
-+ this-&gt;parameter1 = (float)(prev.parameter1 * prev_scale + next.parameter1 * next_scale);
-+ this-&gt;parameter2 = (float)(prev.parameter2 * prev_scale + next.parameter2 * next_scale);
-+ this-&gt;parameter3 = (int)(prev.parameter3 * prev_scale + next.parameter3 * next_scale);
-+ }
-+
-+ </pre>
-
--<p>Alternatively you can copy the values from the previous configuration
-+ <p>Alternatively you can copy the values from the previous configuration
- argument for no interpolation.
-
--<p>This usage is the same in audio and video plugins. In video playback,
-+ <p>This usage is the same in audio and video plugins. In video playback,
- the interpolation function is called for every frame, yielding smooth
- interpolation. In audio playback, the interpolation function is called
- only once for every console fragment and once every time the insertion
-@@ -4384,7 +4535,7 @@
- regions on the timeline but it may not be accurate enough for really
- smooth rendering of the effect.
-
--<p>For really smooth rendering of audio, you can still use
-+ <p>For really smooth rendering of audio, you can still use
- load_configuration when updating the GUI. For process_realtime;
- however, ignore load_configuration and write your own interpolation
- routine which loads all the keyframes in a console fragment and
-@@ -4392,67 +4543,69 @@
- debug, yielding improvement which may not be audible. Then of course,
- every century has its set of wierdos.
-
--<p>An easier way to get smoother interpolation is to reduce the console
-+ <p>An easier way to get smoother interpolation is to reduce the console
- fragment to 1 sample. This would have to be rendered and played back
- in a separate program of course. The Linux sound driver can't play
- fragments of 1 sample.
-
-+<div class="node">
- <p><hr>
- Node:<a name="THE%20USER%20INTERFACE%20OBJECT">THE USER INTERFACE OBJECT</a>,
--Previous:<a rel=previous accesskey=p href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>,
--Up:<a rel=up accesskey=u href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
-+Previous:<a rel="previous" accesskey="p" href="#THE%20CONFIGURATION%20OBJECT">THE CONFIGURATION OBJECT</a>,
-+Up:<a rel="up" accesskey="u" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>
- <br>
-+</div>
-
--<h4>THE USER INTERFACE OBJECT</h4>
-+<h4 class="subsection">THE USER INTERFACE OBJECT</h4>
-
--<p>The user interface object at the very least consists of a pointer to a
-+ <p>The user interface object at the very least consists of a pointer to a
- window and pointers to a set of widgets. Using Cinelerra's toolkit, it
- consists of a <b>BCWindow</b> derivative and a <b>Thread</b> derivative. The
- Thread derivative is declared in the plugin header using
-
--<br><pre>PLUGIN_THREAD_HEADER(plugin_class, thread_class, window_class)
--</pre>
-+<pre class="example"> PLUGIN_THREAD_HEADER(plugin_class, thread_class, window_class)
-+ </pre>
-
--<p>Then it is defined using
-+ <p>Then it is defined using
-
--<br><pre>PLUGIN_THREAD_OBJECT(plugin_class, thread_class, window_class)
--</pre>
-+<pre class="example"> PLUGIN_THREAD_OBJECT(plugin_class, thread_class, window_class)
-+ </pre>
-
--<p>This in combination with the SHOW_GUI macro does all the work in
-+ <p>This in combination with the SHOW_GUI macro does all the work in
- instantiating the Window class. This is used in realtime plugins but
- not in nonrealtime plugins. Nonrealtime plugins create and destroy
- their GUI in <b>get_parameters</b> and there's no thread.
-
--<p>Now the window class must be declared in the plugin header. It's
-+ <p>Now the window class must be declared in the plugin header. It's
- easiest to implement the window by copying an existing plugin and
- renaming the symbols. The following is an outline of what happens.
- The plugin header must declare the window's constructor using the
- appropriate arguments.
-
--<br><pre>
--#include "guicast.h"
--
--class MyPluginWindow : public BC_Window
--{
--public:
-- MyPluginWindow(MyPluginMain *plugin, int x, int y);
--
--</pre>
--
--<p>This becomes a window on the screen, positioned at x and y.
-+<pre class="example">
-+ #include "guicast.h"
-+
-+ class MyPluginWindow : public BC_Window
-+ {
-+ public:
-+ MyPluginWindow(MyPluginMain *plugin, int x, int y);
-+
-+ </pre>
-+
-+ <p>This becomes a window on the screen, positioned at x and y.
-+
-+ <p>It needs two methods
-+
-+<pre class="example"> int create_objects();
-+ int close_event();
-+ </pre>
-
--<p>It needs two methods
-+ <p>and a back pointer to the plugin
-
--<br><pre> int create_objects();
-- int close_event();
--</pre>
-+<pre class="example"> MyPlugin *plugin;
-+ </pre>
-
--<p>and a back pointer to the plugin
--
--<br><pre> MyPlugin *plugin;
--</pre>
--
--<p>The constructor's definition should contain extents and flags causing
-+ <p>The constructor's definition should contain extents and flags causing
- the window to be hidden when first created. The create_objects member
- puts widgets in the window according to GuiCast's syntax. A pointer to
- each widget which is to be synchronized to a keyframe is stored in the
-@@ -4461,353 +4614,365 @@
- a GuiCast widget and they override functions in GuiCast to handle
- events. Finally create_objects calls
-
--<br><pre> show_window();
-- flush();
--</pre>
-+<pre class="example"> show_window();
-+ flush();
-+ </pre>
-
--<p>to make the window appear all at once.
-+ <p>to make the window appear all at once.
-
--<p>The close_event member should be implemented using
-+ <p>The close_event member should be implemented using
-
--<br><pre>WINDOW_CLOSE_EVENT(window_class)
--</pre>
-+<pre class="example"> WINDOW_CLOSE_EVENT(window_class)
-+ </pre>
-
--<p>Every widget in the GUI needs to detect when its value changes. In
-+ <p>Every widget in the GUI needs to detect when its value changes. In
- GuiCast the <b>handle_event</b> method is called whenever the value
- changes. In <b>handle_event</b>, the widget then needs to call
- <b>plugin-&gt;send_configure_change()</b> to propogate the change to rendering.
-
-+<div class="node">
- <p><hr>
- Node:<a name="REALTIME%20PLUGINS">REALTIME PLUGINS</a>,
--Next:<a rel=next accesskey=n href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>,
--Previous:<a rel=previous accesskey=p href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>,
--Up:<a rel=up accesskey=u href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
-+Next:<a rel="next" accesskey="n" href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#COMMON%20PROCEDURES">COMMON PROCEDURES</a>,
-+Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
- <br>
-+</div>
-
--<h3>REALTIME PLUGINS</h3>
-+<h3 class="section">REALTIME PLUGINS</h3>
-
--<p>Realtime plugins should use PLUGIN_CLASS_MEMBERS to define the basic
-+ <p>Realtime plugins should use PLUGIN_CLASS_MEMBERS to define the basic
- set of members in their headers. All realtime plugins must define an
-
--<br><pre>int is_realtime()
--</pre>
-+<pre class="example"> int is_realtime()
-+ </pre>
-
--<p>member returning 1. This causes a number of realtime methods to be
-+ <p>member returning 1. This causes a number of realtime methods to be
- called during playback and the plugin to be droppable on the timeline.
-
--<p>Realtime plugins must define a member called
-+ <p>Realtime plugins must define a member called
-
--<br><pre>process_realtime
--</pre>
-+<pre class="example"> process_realtime
-+ </pre>
-
--<p>to be called during every audio fragment and video frame. It has an
-+ <p>to be called during every audio fragment and video frame. It has an
- input and an output argument and for audio, a size argument. The
- process_realtime function should start by calling
- <b>load_configuration</b>. The LOAD_CONFIGURATION_MACRO returns 1 if the
- configuration changed. Then process_realtime should move the data from
- the input to the output with processing.
-
--<p>Additional members are implemented to maintain configuration in
-+ <p>Additional members are implemented to maintain configuration in
- realtime plugins. Some of these are also needed in nonrealtime
- plugins.
-
--<ul>
-+ <ul>
- <li>void read_data(KeyFrame *keyframe);
-
--<p>Loads data from a keyframe into the plugin's configuration. Inside the
-+ <p>Loads data from a keyframe into the plugin's configuration. Inside the
- keyframe is an XML string. It's most easily parsed by creating a
- <em>FileXML</em> object. See an existing plugin to see how the read_data
- function is implemented.
-
--<p>Read data loads data out of the XML object and stores values in the
-+ <p>Read data loads data out of the XML object and stores values in the
- plugin's configuration object.
-
--</p><li>void save_data(KeyFrame *keyframe);
-+ </p><li>void save_data(KeyFrame *keyframe);
-
--<p>Saves data from the plugin's configuration to a keyframe. Inside the
-+ <p>Saves data from the plugin's configuration to a keyframe. Inside the
- keyframe you'll put an XML string which is normally created by a
- FileXML object. See an existing plugin to see how the save_data
- function is implemented.
-
--<p>Save data saves data from the plugin's configuration object into the
-+ <p>Save data saves data from the plugin's configuration object into the
- XML object.
-
--</p><li>int load_defaults();
-+ </p><li>int load_defaults();
-
--<p>Another way the plugin gets parameters is from a defaults file. The
-+ <p>Another way the plugin gets parameters is from a defaults file. The
- load and save defaults routines use a Defaults object to parse the
- defaults file. The defaults object is created in <b>load_defaults</b> and
- destroyed in the plugin's destructor. See an existing plugin to see
- how the Defaults object is used.
-
--</p><li>int save_defaults();
-+ </p><li>int save_defaults();
-
--<p>Saves the configuration in the defaults object.
-+ <p>Saves the configuration in the defaults object.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>,
--Next:<a rel=next accesskey=n href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>,
--Previous:<a rel=previous accesskey=p href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>,
--Up:<a rel=up accesskey=u href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
-+Next:<a rel="next" accesskey="n" href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#REALTIME%20PLUGINS">REALTIME PLUGINS</a>,
-+Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
- <br>
-+</div>
-
--<h3>NONREALTIME PLUGINS</h3>
-+<h3 class="section">NONREALTIME PLUGINS</h3>
-
--<p>Like realtime plugins, <b>load_defaults</b> and <b>save_defaults</b> must be
-+ <p>Like realtime plugins, <b>load_defaults</b> and <b>save_defaults</b> must be
- implemented. In nonrealtime plugins, these are not just used for
- default parameters but to transfer values from the user interface to
- the signal processor. There doesn't need to be a configuration class
- in nonrealtime plugins.
-
--<p>Unlike realtime plugins, the LOAD_CONFIGURATION_MACRO can't be used in
-+ <p>Unlike realtime plugins, the LOAD_CONFIGURATION_MACRO can't be used in
- the plugin header. Instead, the following methods must be defined.
-
--<p>The nonrealtime plugin should contain a pointer to a defaults object.
--
--<br><pre>
--Defaults *defaults;
-+ <p>The nonrealtime plugin should contain a pointer to a defaults object.
-
--</pre>
-+<pre class="example">
-+ Defaults *defaults;
-+
-+ </pre>
-
--<p>It should also have a pointer to a MainProgressBar.
-+ <p>It should also have a pointer to a MainProgressBar.
-
--<br><pre>
--MainProgressBar *progress;
--</pre>
-+<pre class="example">
-+ MainProgressBar *progress;
-+ </pre>
-
--<p>The progress pointer allows nonrealtime plugins to display their
-+ <p>The progress pointer allows nonrealtime plugins to display their
- progress in Cinelerra's main window.
-
--<p>The constructor for a nonrealtime plugin can't use
-+ <p>The constructor for a nonrealtime plugin can't use
- PLUGIN_CONSTRUCTOR_MACRO but must call <b>load_defaults</b> directly.
-
--<p>The destructor, likewise, must call <b>save_defaults</b> and <b>delete
-+ <p>The destructor, likewise, must call <b>save_defaults</b> and <b>delete
- defaults</b> directly instead of PLUGIN_DESTRUCTOR_MACRO.
-
--<ul>
-+ <ul>
-
--<li>VFrame* new_picon();
-+ <li>VFrame* new_picon();
-
--<p>char* plugin_title();
-+ <p>char* plugin_title();
-
--<p>The usage of these is the same as realtime plugins.
-+ <p>The usage of these is the same as realtime plugins.
-
--</p><li>int is_realtime();
-+ </p><li>int is_realtime();
-
--<p>This function must return 0 to indicate a nonrealtime plugin.
-+ <p>This function must return 0 to indicate a nonrealtime plugin.
-
--</p><li>
-+ </p><li>
- int get_parameters();
-
--<p>Here, the user should create a GUI, wait for the user to hit an OK
-+ <p>Here, the user should create a GUI, wait for the user to hit an OK
- button or a cancel button, and store the parameters in plugin
- variables. This routine must return 0 for success and 1 for failure.
- This way the user can cancel the effect from the GUI.
-
--<p>Unlike the realtime plugin, this GUI need not run asynchronously of the
-+ <p>Unlike the realtime plugin, this GUI need not run asynchronously of the
- plugin. It should block the get_parameters function until the user
- selects OK or Cancel.
-
--</p><li>int load_defaults();
-+ </p><li>int load_defaults();
-
--<p>This should create a defaults object and load parameters from the
-+ <p>This should create a defaults object and load parameters from the
- defaults object into plugin variables.
-
--</p><li>int save_defaults();
-+ </p><li>int save_defaults();
-
--<p>This should save plugin variables to the defaults object.
-+ <p>This should save plugin variables to the defaults object.
-
--</p><li>int start_loop();
-+ </p><li>int start_loop();
-
--<p>If <b>get_parameters</b> returned 0 for success, this is called once to
-+ <p>If <b>get_parameters</b> returned 0 for success, this is called once to
- give the plugin a chance to initialize processing. The plugin should
- instantiate the progress object with a line like
-
--<br><pre>
--progress = start_progress("MyPlugin progress...",
-- PluginClient::end - PluginClient::start);
--
--</pre>
-+ <pre class="example">
-+ progress = start_progress("MyPlugin progress...",
-+ PluginClient::end - PluginClient::start);
-+
-+ </pre>
-
--<p>The usage of <b>start_progress</b> depends on whether the plugin is
-+ <p>The usage of <b>start_progress</b> depends on whether the plugin is
- multichannel or single channel. If it's multichannel you always call
- start_progress. If it's single channel, you first need to know whether
- the progress bar has already started in another instance of the plugin.
-
--<p>If <b>PluginClient::interactive</b> is 1, you need to start the progress
-+ <p>If <b>PluginClient::interactive</b> is 1, you need to start the progress
- bar. If it's 0, the progress bar has already been started.
-
--<p>The PluginClient defines <b>end</b> and <b>start</b> for the timeline range
-+ <p>The PluginClient defines <b>end</b> and <b>start</b> for the timeline range
- to be processed. The units are either samples or frames.
-
--</p><li>int process_loop
-+ </p><li>int process_loop
-
--<p>This is called repeatedly until the timeline range is processed. It
-+ <p>This is called repeatedly until the timeline range is processed. It
- takes either a samples or frames buffer and a reference to
- write_length. The arguments are a location and length for the output
- if it's audio.
-
--<p>The plugin must use <b>read_samples</b> or <b>read_frame</b> to read the
-+ <p>The plugin must use <b>read_samples</b> or <b>read_frame</b> to read the
- input. These functions take a buffer and a position relative to the
- start of the timeline. Then it must process it and put the output in
- the arguments to process_loop. write_length should contain the number
- of samples generated if it's audio.
-
--<p>Finally, process_loop must test <b>PluginClient::interactive</b> and
-+ <p>Finally, process_loop must test <b>PluginClient::interactive</b> and
- update the progress bar if it's 1.
-
--<br><pre>progress-&gt;update(total_written);
--</pre>
-+ <pre class="example"> progress-&gt;update(total_written);
-+ </pre>
-
--<p>returns 1 or 0 if the progress bar was cancelled. If it's 1,
-+ <p>returns 1 or 0 if the progress bar was cancelled. If it's 1,
- process_loop should return 1 to indicate a cancellation. In addition
- to progress bar cancellation, <b>process_loop</b> should return 1 when the
- entire timeline range is processed.
-
--</p><li>int stop_loop();
-+ </p><li>int stop_loop();
-
--<p>This is called after process_loop processes its last buffer.
-+ <p>This is called after process_loop processes its last buffer.
-
--<p>If PluginClient::is_interactive is 1, this should call
-+ <p>If PluginClient::is_interactive is 1, this should call
- <b>stop_progress</b> in the progress bar pointer and delete the pointer.
- Then it should delete any objects it created for processing in
- <b>start_loop</b>.
-
--</ul>
-+ </ul>
-
-+<div class="node">
- <p><hr>
- Node:<a name="AUDIO%20PLUGINS">AUDIO PLUGINS</a>,
--Next:<a rel=next accesskey=n href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>,
--Previous:<a rel=previous accesskey=p href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>,
--Up:<a rel=up accesskey=u href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
-+Next:<a rel="next" accesskey="n" href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#NONREALTIME%20PLUGINS">NONREALTIME PLUGINS</a>,
-+Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
- <br>
-+</div>
-
--<h3>AUDIO PLUGINS</h3>
-+<h3 class="section">AUDIO PLUGINS</h3>
-
--<p>The simplest audio plugin is Gain. The processing object should
-+ <p>The simplest audio plugin is Gain. The processing object should
- include <b>pluginaclient.h</b> and inherit from <b>PluginAClient</b>. Realtime audio plugins need to
- define
-
--<br><pre>int process_realtime(long size,
-- double **input_ptr,
-- double **output_ptr);
--</pre>
--
--<p>if it's multichannel or
--
--<br><pre>int process_realtime(long size,
-- double *input_ptr,
-- double *output_ptr);
--</pre>
-+<pre class="example"> int process_realtime(long size,
-+ double **input_ptr,
-+ double **output_ptr);
-+ </pre>
-+
-+ <p>if it's multichannel or
-+
-+<pre class="example"> int process_realtime(long size,
-+ double *input_ptr,
-+ double *output_ptr);
-+ </pre>
-
--<p>if it's single channel. These should return the number of samples
-+ <p>if it's single channel. These should return the number of samples
- generated. In the future, the number of samples return value will
- synchronize plugins which delay audio.
-
--<p>Nonrealtime audio plugins need to define
-+ <p>Nonrealtime audio plugins need to define
-
--<br><pre>int process_loop(double *buffer, long &amp;write_length);
--</pre>
-+<pre class="example"> int process_loop(double *buffer, long &amp;write_length);
-+ </pre>
-
--<p>for single channel or
-+ <p>for single channel or
-
--<br><pre>int process_loop(double **buffers, long &amp;write_length);
--</pre>
-+<pre class="example"> int process_loop(double **buffers, long &amp;write_length);
-+ </pre>
-
--<p>for multi channel.
-+ <p>for multi channel.
-
-+<div class="node">
- <p><hr>
- Node:<a name="VIDEO%20PLUGINS">VIDEO PLUGINS</a>,
--Next:<a rel=next accesskey=n href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>,
--Previous:<a rel=previous accesskey=p href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>,
--Up:<a rel=up accesskey=u href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
-+Next:<a rel="next" accesskey="n" href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>,
-+Previous:<a rel="previous" accesskey="p" href="#AUDIO%20PLUGINS">AUDIO PLUGINS</a>,
-+Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
- <br>
-+</div>
-
--<h3>VIDEO PLUGINS</h3>
-+<h3 class="section">VIDEO PLUGINS</h3>
-
--<p>The simplest video plugin is Flip. The processing object should
-+ <p>The simplest video plugin is Flip. The processing object should
- include <b>pluginvclient.h</b> and inherit from <b>PluginVClient</b>.
- Realtime video plugins need to define
-
--<br><pre>int process_realtime(VFrame **input,
-- VFrame **output);
--</pre>
-+<pre class="example"> int process_realtime(VFrame **input,
-+ VFrame **output);
-+ </pre>
-
--<p>if it's multichannel or
-+ <p>if it's multichannel or
-
--<br><pre>int process_realtime(VFrame *input,
-- VFrame *output);
--</pre>
-+<pre class="example"> int process_realtime(VFrame *input,
-+ VFrame *output);
-+ </pre>
-
--<p>if it's single channel. They only get one frame per call but should
-+ <p>if it's single channel. They only get one frame per call but should
- return the number of frames generated anyway. In the future, the
- number of frames return value will synchronize plugins which delay
- video.
-
--<p>The nonrealtime video plugins need to define
-+ <p>The nonrealtime video plugins need to define
-
--<br><pre>int process_loop(VFrame *buffer);
--</pre>
-+<pre class="example"> int process_loop(VFrame *buffer);
-+ </pre>
-
--<p>for single channel or
-+ <p>for single channel or
-
--<br><pre>int process_loop(VFrame **buffers);
--</pre>
-+<pre class="example"> int process_loop(VFrame **buffers);
-+ </pre>
-
--<p>for multi channel. They're always assumed to have a write length of 1
-+ <p>for multi channel. They're always assumed to have a write length of 1
- when they return 0.
-
-+<div class="node">
- <p><hr>
- Node:<a name="TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>,
--Next:<a rel=next accesskey=n href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>,
--Previous:<a rel=previous accesskey=p href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>,
--Up:<a rel=up accesskey=u href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
-+Next:<a rel="next" accesskey="n" href="#PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>,
-+Previous:<a rel="previous" accesskey="p" href="#VIDEO%20PLUGINS">VIDEO PLUGINS</a>,
-+Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
- <br>
-+</div>
-
--<h3>TRANSITION PLUGINS</h3>
-+<h3 class="section">TRANSITION PLUGINS</h3>
-
--<p>The simplest video transition is <b>dissolve</b> and the simplest audio
-+ <p>The simplest video transition is <b>dissolve</b> and the simplest audio
- transition is <b>crossfade</b>. These work identical to the single
- channel, realtime audio and video plugins. The only difference is the
- addition of an <b>is_transition</b> method to the processing object.
- <b>is_transition</b> should return 1.
-
--<p>Routines exist for determining where you are relative to the
-+ <p>Routines exist for determining where you are relative to the
- transition's start and end.
-
--<ul>
-+ <ul>
-
--<li><b>PluginClient::get_source_position()</b> - returns an integer
-+ <li><b>PluginClient::get_source_position()</b> - returns an integer
- position since the start of the transition
-
--<li><b>PluginClient::get_total_len()</b> - returns the integer length of
-+ <li><b>PluginClient::get_total_len()</b> - returns the integer length of
- the transition. The units are either samples or frames.
-
--</ul>
-+ </ul>
-
--<p>Users should divide source position by total length to get the fraction
-+ <p>Users should divide source position by total length to get the fraction
- of the transition the current <b>process_realtime</b> function starts
- at.
-
--<p>Secondly, the meaning of the input and output arguments to
-+ <p>Secondly, the meaning of the input and output arguments to
- <b>process_realtime</b> is different for transitions than for realtime
- plugins.
-
--<p>The first argument to process_realtime is the data for the next edit.
-+ <p>The first argument to process_realtime is the data for the next edit.
- The second argument to process_realtime is the data for the previous
- edit. Eventually the second argument becomes the output.
-
-+<div class="node">
- <p><hr>
- Node:<a name="PLUGIN%20GUI'S%20WHICH%20UPDATE%20DURING%20PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</a>,
--Previous:<a rel=previous accesskey=p href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>,
--Up:<a rel=up accesskey=u href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
-+Previous:<a rel="previous" accesskey="p" href="#TRANSITION%20PLUGINS">TRANSITION PLUGINS</a>,
-+Up:<a rel="up" accesskey="u" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>
- <br>
-+</div>
-
--<h3>PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</h3>
-+<h3 class="section">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK</h3>
-
--<p>Effects like <b>Histogram</b> and <b>VideoScope</b> need to update the GUI
-+ <p>Effects like <b>Histogram</b> and <b>VideoScope</b> need to update the GUI
- during playback to display information about the signal. This is
- achieved with the <b>send_render_gui</b> and <b>render_gui</b> methods.
- Normally in process_realtime, when the processing object wants to
-@@ -4815,167 +4980,169 @@
- called in process_realtime. Send_render_gui goes through a search and
- eventually calls <b>render_gui</b> in the GUI instance of the plugin.
-
--<p>Render_gui should have a sequence like
-+ <p>Render_gui should have a sequence like
-
--<br><pre>void MyPlugin::render_gui(void *data)
--{
-- if(thread)
-- {
-- thread-&gt;window-&gt;lock_window();
-+<pre class="example"> void MyPlugin::render_gui(void *data)
-+ {
-+ if(thread)
-+ {
-+ thread-&gt;window-&gt;lock_window();
-+
-+ // update GUI here
-+
-+ thread-&gt;window-&gt;unlock_window();
-+ }
-+ }
-+
-+ </pre>
-
--// update GUI here
--
-- thread-&gt;window-&gt;unlock_window();
-- }
--}
--
--</pre>
--
--<p>The sequence uses one argument, a void pointer to transfer information
-+ <p>The sequence uses one argument, a void pointer to transfer information
- from the renderer to the GUI. The user should typecast this pointer
- into something useful.
-
-+<div class="node">
- <p><hr>
- Node:<a name="RELEASE%20NOTES">RELEASE NOTES</a>,
--Previous:<a rel=previous accesskey=p href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>,
--Up:<a rel=up accesskey=u href="#Top">Top</a>
-+Previous:<a rel="previous" accesskey="p" href="#PLUGIN%20AUTHORING">PLUGIN AUTHORING</a>,
-+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
- <br>
-+</div>
-
--<h2>RELEASE NOTES</h2>
-+<h2 class="chapter">RELEASE NOTES</h2>
-
--<ul>
-+ <ul>
-
--<p><b>1.0.0</b>
-+ <p><b>1.0.0</b>
-
--<p>First release since Broadcast 2000 migration.
-+ <p>First release since Broadcast 2000 migration.
-
--<p><b>1.1.0</b>
-+ <p><b>1.1.0</b>
-
--<p>Titler fonts installed by rpm.
-+ <p>Titler fonts installed by rpm.
-
--<p>XMovie decodes ac3 according to redesigned liba52 channel mappings.
-+ <p>XMovie decodes ac3 according to redesigned liba52 channel mappings.
-
--<p>Quicktime MPEG4 parameters debugged.
-+ <p>Quicktime MPEG4 parameters debugged.
-
--<p>Background rendering over a renderfarm.
-+ <p>Background rendering over a renderfarm.
-
--<p>Renderfarm clients automatically reduced to idle priority.
-+ <p>Renderfarm clients automatically reduced to idle priority.
-
--<p>Better MJPA decoding on single processors.
-+ <p>Better MJPA decoding on single processors.
-
--<p>Better title functionality in 16 bit colormodels.
-+ <p>Better title functionality in 16 bit colormodels.
-
--<p>Undo for effect keyframes.
-+ <p>Undo for effect keyframes.
-
--<p>Effect GUI's cleared during undo for effect attachment.
-+ <p>Effect GUI's cleared during undo for effect attachment.
-
--<p>Fewer lockups on startup.
-+ <p>Fewer lockups on startup.
-
--<p>Proper keyframe interpolation in scale effect.
-+ <p>Proper keyframe interpolation in scale effect.
-
--<p>Stamp timecode in titler.
-+ <p>Stamp timecode in titler.
-
--<p>Memory leaks in rendering stages removed.
-+ <p>Memory leaks in rendering stages removed.
-
--<p>Removed legacy plugin server code.
-+ <p>Removed legacy plugin server code.
-
--<p>Option to generate sequence header in every GOP for MPEG2.
-+ <p>Option to generate sequence header in every GOP for MPEG2.
-
--<p>LADSPA support.
-+ <p>LADSPA support.
-
--<p>Listbox doesn't enter drag_icon state when dragging column division.
-+ <p>Listbox doesn't enter drag_icon state when dragging column division.
-
--<p>Effect rendering bug fixed.
-+ <p>Effect rendering bug fixed.
-
--<p>64 bit mpeg transport stream seeking beyond 2 gigs.
-+ <p>64 bit mpeg transport stream seeking beyond 2 gigs.
-
--<p>More accurate mask drawing when projector is zoomed.
-+ <p>More accurate mask drawing when projector is zoomed.
-
--<p>Clear labels updates CWindow
-+ <p>Clear labels updates CWindow
-
--<p>More accurate YUV/RGB conversions.
-+ <p>More accurate YUV/RGB conversions.
-
--<p>Import partial tgas
-+ <p>Import partial tgas
-
--<p>Copy keyframes doesn't copy default keyframe.
-+ <p>Copy keyframes doesn't copy default keyframe.
-
--<p>Track highlighting offset by vertical scroll.
-+ <p>Track highlighting offset by vertical scroll.
-
--<p>Multiple video scope, spectrogram, and histogram displays may be opened.
-+ <p>Multiple video scope, spectrogram, and histogram displays may be opened.
-
--<p>HutSaturation in YUV colorspaces.
-+ <p>HutSaturation in YUV colorspaces.
-
--<p>Undo for masks.
-+ <p>Undo for masks.
-
--<p>Shared synthesis effects cause the sharing tracks to
-+ <p>Shared synthesis effects cause the sharing tracks to
- play back instead of just the owning track.
-
--<p>Quicktime recovery utility improved.
-+ <p>Quicktime recovery utility improved.
-
--<p>Single frame recording with multiple batches doesn't crash.
-+ <p>Single frame recording with multiple batches doesn't crash.
-
--<p>DV encoding.
-+ <p>DV encoding.
-
--<p>New video effects:
-+ <p>New video effects:
- gradient, downsample video, radial blur, linear blur, zoom blur,
- histogram, perspective.
-
--<p>New audio effect:
-+ <p>New audio effect:
- Sound level
-
--<p><b>1.1.5</b>
-+ <p><b>1.1.5</b>
-
--<p>More options for the ffmpeg/MPEG-4 codecs.
-+ <p>More options for the ffmpeg/MPEG-4 codecs.
-
--<p>Histogram works on SMP.
-+ <p>Histogram works on SMP.
-
--<p>Better 16 bit alpha blending.
-+ <p>Better 16 bit alpha blending.
-
--<p>BRender path updates from preferences.
-+ <p>BRender path updates from preferences.
-
--<p>Separate preroll for background rendering and rendering.
-+ <p>Separate preroll for background rendering and rendering.
-
--<p>Deinterlace by averaging lines 0 and 2 or 1 and 3 to get intervening lines.
-+ <p>Deinterlace by averaging lines 0 and 2 or 1 and 3 to get intervening lines.
-
--<p>Adaptive deinterlace.
-+ <p>Adaptive deinterlace.
-
--<p>Frame per second statistics in renderfarm are more reliable.
-+ <p>Frame per second statistics in renderfarm are more reliable.
-
--<p>Select and slide in the patchbay.
-+ <p>Select and slide in the patchbay.
-
--<p>Video scope can be resized.
-+ <p>Video scope can be resized.
-
--<p>Effect keyframes pasted in right positions more often.
-+ <p>Effect keyframes pasted in right positions more often.
-
--<p>Selective denoising of video based on color channel.
-+ <p>Selective denoising of video based on color channel.
-
--<p>More mouse wheel bindings in MainWindow and ListBox.
-+ <p>More mouse wheel bindings in MainWindow and ListBox.
-
--<p>Ctrl-w closes effect windows.
-+ <p>Ctrl-w closes effect windows.
-
--<p>Perspective doesn't crash when switching from stretch to sheer.
-+ <p>Perspective doesn't crash when switching from stretch to sheer.
-
--<p>Better text list searching and keyboard navigation.
-+ <p>Better text list searching and keyboard navigation.
-
--<p>Better Vorbis decoding after a pause.
-+ <p>Better Vorbis decoding after a pause.
-
--<p>Close recording without recording anything doesn't crash.
-+ <p>Close recording without recording anything doesn't crash.
-
--<p>Save backup now option.
-+ <p>Save backup now option.
-
--<p>OpenGL not required anymore.
-+ <p>OpenGL not required anymore.
-
--<p>Time format changes update the selection textboxes more often.
-+ <p>Time format changes update the selection textboxes more often.
-
--<p>MPEG-4 deblocking option in XMovie and Cinelerra.
-+ <p>MPEG-4 deblocking option in XMovie and Cinelerra.
-
--<p>Resize in Record GUI doesn't screw it up.
-+ <p>Resize in Record GUI doesn't screw it up.
-
--<p>Better export of YUVA16161616 to Component Y'CbCr 10-bit 4:4:4.
-+ <p>Better export of YUVA16161616 to Component Y'CbCr 10-bit 4:4:4.
-
--<p>Better import of Component Y'CbCr 10-bit 4:4:4 to RGB colorspaces.
-+ <p>Better import of Component Y'CbCr 10-bit 4:4:4 to RGB colorspaces.
-
--</ul>
-+ </ul>
-
--</body></html>
-+ </body></html>
-
-Files cinelerra-1.1.5.orig/freetype-2.0.4/objs/.libs/libfreetype.so.6 and cinelerra-1.1.5/freetype-2.0.4/objs/.libs/libfreetype.so.6 differ
-Files cinelerra-1.1.5.orig/freetype-2.0.4/objs/.libs/libfreetype.so.6.1.0 and cinelerra-1.1.5/freetype-2.0.4/objs/.libs/libfreetype.so.6.1.0 differ
-diff -ruN cinelerra-1.1.5.orig/guicast/bctheme.C cinelerra-1.1.5/guicast/bctheme.C
---- cinelerra-1.1.5.orig/guicast/bctheme.C 2002-12-21 04:01:43.000000000 +0100
-+++ cinelerra-1.1.5/guicast/bctheme.C 2003-05-04 08:50:11.000000000 +0200
-@@ -86,7 +86,7 @@
- }
-
-
--void BC_Theme::overlay(VFrame *dst, VFrame *src, int in_x1 = -1, int in_x2 = -1)
-+void BC_Theme::overlay(VFrame *dst, VFrame *src, int in_x1, int in_x2)
- {
- int w;
- int h;
-diff -ruN cinelerra-1.1.5.orig/libmpeg3/Makefile cinelerra-1.1.5/libmpeg3/Makefile
---- cinelerra-1.1.5.orig/libmpeg3/Makefile 2002-06-21 14:35:24.000000000 +0200
-+++ cinelerra-1.1.5/libmpeg3/Makefile 2003-05-04 08:50:11.000000000 +0200
-@@ -25,7 +25,7 @@
- ifeq ($(OBJDIR), i686)
- USE_MMX = 1
- ifneq ($(HAVE_CFLAGS), yes)
-- CFLAGS := -O2 -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -I/usr/local/include
-+ CFLAGS := -O2 -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -I/usr/include
- endif
- CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
- endif
-@@ -49,8 +49,7 @@
-
- CFLAGS += \
- -I. \
-- -I$(A52DIR)/include \
-- -I$(A52DIR)/liba52
-+ -I/usr/include/a52dec
-
- #CFLAGS += -g
-
-@@ -122,7 +121,7 @@
- $(OBJDIR)/audio \
- $(OBJDIR)/video
-
--include Makefile.a52
-+##include Makefile.a52
-
- DIRS += $(A52DIRS)
-
-@@ -133,7 +132,7 @@
- #$(OBJDIR)/mpeg3split
-
-
--LIBS = -lm -lpthread
-+LIBS = -lm -lpthread -la52
-
- $(shell if ! test -d $(OBJDIR) \; then mkdir -p $(OBJDIR) \; fi )
-
-@@ -188,7 +187,7 @@
- cat *.c *.h audio/*.c audio/*.h video/*.c video/*.h | wc
-
- $(OBJS):
-- $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.c) -o $*.o
-+ $(CC) -c $(CFLAGS) $(subst $(OBJDIR)/,, $*.c) -o $*.o
- $(ASMOBJS):
- $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.S) -o $*.o
- $(NASMOBJS):
-diff -ruN cinelerra-1.1.5.orig/libmpeg3/Makefile.a52 cinelerra-1.1.5/libmpeg3/Makefile.a52
---- cinelerra-1.1.5.orig/libmpeg3/Makefile.a52 2002-06-21 14:35:24.000000000 +0200
-+++ cinelerra-1.1.5/libmpeg3/Makefile.a52 1970-01-01 01:00:00.000000000 +0100
-@@ -1,39 +0,0 @@
--A52DIR := $(shell expr a52dec* )
--
--A52DIRS := \
-- $(OBJDIR)/$(A52DIR)/liba52/ \
-- $(OBJDIR)/$(A52DIR)/libao/ \
-- $(OBJDIR)/$(A52DIR)/src/ \
-- $(OBJDIR)/$(A52DIR)/test/
--
--
--A52OBJS := \
-- $(OBJDIR)/$(A52DIR)/liba52/bit_allocate.o \
-- $(OBJDIR)/$(A52DIR)/liba52/bitstream.o \
-- $(OBJDIR)/$(A52DIR)/liba52/downmix.o \
-- $(OBJDIR)/$(A52DIR)/liba52/imdct.o \
-- $(OBJDIR)/$(A52DIR)/liba52/parse.o \
-- $(OBJDIR)/$(A52DIR)/libao/audio_out_float.o \
-- $(OBJDIR)/$(A52DIR)/libao/audio_out_null.o \
-- $(OBJDIR)/$(A52DIR)/libao/audio_out.o \
-- $(OBJDIR)/$(A52DIR)/libao/audio_out_oss.o \
-- $(OBJDIR)/$(A52DIR)/libao/audio_out_solaris.o \
-- $(OBJDIR)/$(A52DIR)/libao/audio_out_wav.o \
-- $(OBJDIR)/$(A52DIR)/libao/float2s16.o \
-- $(OBJDIR)/$(A52DIR)/src/a52dec.o \
-- $(OBJDIR)/$(A52DIR)/src/extract_a52.o \
-- $(OBJDIR)/$(A52DIR)/src/getopt.o \
-- $(OBJDIR)/$(A52DIR)/test/compare.o
--
--A52CFLAGS = \
-- $(CFLAGS) \
-- -DHAVE_CONFIG_H \
-- -I$(A52DIR)/ \
-- -I$(A52DIR)/include \
-- -I$(A52DIR)/liba52 \
-- -I$(A52DIR)/libao \
-- -I$(A52DIR)/src
--
--
--
--
-diff -ruN cinelerra-1.1.5.orig/libmpeg3/audio/Makefile cinelerra-1.1.5/libmpeg3/audio/Makefile
---- cinelerra-1.1.5.orig/libmpeg3/audio/Makefile 2002-06-21 14:35:24.000000000 +0200
-+++ cinelerra-1.1.5/libmpeg3/audio/Makefile 2003-05-04 08:50:11.000000000 +0200
-@@ -1,4 +1,4 @@
--include ../global_config
-+include ../../global_config
- export CFLAGS
-
- OBJS = \
-diff -ruN cinelerra-1.1.5.orig/libmpeg3/mpeg3private.h cinelerra-1.1.5/libmpeg3/mpeg3private.h
---- cinelerra-1.1.5.orig/libmpeg3/mpeg3private.h 2002-10-18 03:38:19.000000000 +0200
-+++ cinelerra-1.1.5/libmpeg3/mpeg3private.h 2003-05-04 08:50:11.000000000 +0200
-@@ -3,7 +3,7 @@
-
- #include <stdint.h>
- #include <stdio.h>
--
-+#include <pthread.h>
-
-
-
-diff -ruN cinelerra-1.1.5.orig/mplexlo/Makefile cinelerra-1.1.5/mplexlo/Makefile
---- cinelerra-1.1.5.orig/mplexlo/Makefile 2002-07-13 04:19:23.000000000 +0200
-+++ cinelerra-1.1.5/mplexlo/Makefile 2003-05-04 08:50:12.000000000 +0200
-@@ -7,7 +7,7 @@
- OUTPUT := $(OBJDIR)/mplexlo
-
- $(OUTPUT): $(OBJS)
-- $(CC) -o $(OUTPUT) $(OBJS) ../libmpeg3/$(OBJDIR)/libmpeg3.a -lpthread -lm
-+ $(CC) -o $(OUTPUT) $(OBJS) ../libmpeg3/$(OBJDIR)/libmpeg3.a -lpthread -lm -la52
-
- $(OBJS):
- $(CC) -c $(CFLAGS) $(subst $(OBJDIR)/,, $*.c) -o $*.o
-diff -ruN cinelerra-1.1.5.orig/quicktime/Makefile cinelerra-1.1.5/quicktime/Makefile
---- cinelerra-1.1.5.orig/quicktime/Makefile 2003-02-05 07:40:02.000000000 +0100
-+++ cinelerra-1.1.5/quicktime/Makefile 2003-05-04 08:50:12.000000000 +0200
-@@ -23,7 +23,7 @@
- endif
-
- ifeq ($(OBJDIR), i686)
-- CFLAGS = -O3 -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -I/usr/local/include
-+ CFLAGS = -O3 -fmessage-length=0 -funroll-all-loops -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -I/usr/include
- endif
-
-
-diff -ruN cinelerra-1.1.5.orig/quicktime/Makefile.dv cinelerra-1.1.5/quicktime/Makefile.dv
---- cinelerra-1.1.5.orig/quicktime/Makefile.dv 2002-11-11 06:19:11.000000000 +0100
-+++ cinelerra-1.1.5/quicktime/Makefile.dv 2003-05-04 08:50:12.000000000 +0200
-@@ -1,4 +1,4 @@
--DV_DIR := $(shell expr libdv-0.98 )
-+DV_DIR := libdv-0.98
-
- DV_OBJS := \
- $(OBJDIR)/$(DV_DIR)/libdv/audio.o \
-diff -ruN cinelerra-1.1.5.orig/quicktime/libdv-0.98/libdv/asmoff.h cinelerra-1.1.5/quicktime/libdv-0.98/libdv/asmoff.h
---- cinelerra-1.1.5.orig/quicktime/libdv-0.98/libdv/asmoff.h 2003-02-10 07:03:40.000000000 +0100
-+++ cinelerra-1.1.5/quicktime/libdv-0.98/libdv/asmoff.h 2003-05-04 08:50:14.000000000 +0200
-@@ -1,14 +1,14 @@
- #define dv_videosegment_t_i 0
- #define dv_videosegment_t_k 4
- #define dv_videosegment_t_bs 8
--#define dv_videosegment_t_mb 12
--#define dv_videosegment_t_isPAL 4992
--#define dv_macroblock_t_size 996
--#define dv_macroblock_t_b 20
--#define dv_macroblock_t_eob_count 992
--#define dv_macroblock_t_vlc_error 988
--#define dv_macroblock_t_qno 980
--#define dv_macroblock_t_sta 984
-+#define dv_videosegment_t_mb 16
-+#define dv_videosegment_t_isPAL 5016
-+#define dv_macroblock_t_size 1000
-+#define dv_macroblock_t_b 24
-+#define dv_macroblock_t_eob_count 996
-+#define dv_macroblock_t_vlc_error 992
-+#define dv_macroblock_t_qno 984
-+#define dv_macroblock_t_sta 988
- #define dv_macroblock_t_i 0
- #define dv_macroblock_t_j 4
- #define dv_macroblock_t_k 8
-diff -ruN cinelerra-1.1.5.orig/quicktime/libdv-0.98/libdv/mmx.h cinelerra-1.1.5/quicktime/libdv-0.98/libdv/mmx.h
---- cinelerra-1.1.5.orig/quicktime/libdv-0.98/libdv/mmx.h 2002-11-08 14:44:37.000000000 +0100
-+++ cinelerra-1.1.5/quicktime/libdv-0.98/libdv/mmx.h 2003-05-04 08:50:14.000000000 +0200
-@@ -223,7 +223,7 @@
-
- /* Function to test if mmx instructions are supported...
- */
--inline extern int
-+inline static int
- mmx_ok(void)
- {
- /* Returns 1 if MMX instructions are supported, 0 otherwise */
-diff -ruN cinelerra-1.1.5.orig/quicktime/libdv-0.98/libdv/vlc.h cinelerra-1.1.5/quicktime/libdv-0.98/libdv/vlc.h
---- cinelerra-1.1.5.orig/quicktime/libdv-0.98/libdv/vlc.h 2002-11-08 14:44:37.000000000 +0100
-+++ cinelerra-1.1.5/quicktime/libdv-0.98/libdv/vlc.h 2003-05-04 08:50:14.000000000 +0200
-@@ -69,7 +69,7 @@
- extern void dv_decode_vlc(int bits,int maxbits, dv_vlc_t *result);
- extern void __dv_decode_vlc(int bits, dv_vlc_t *result);
-
--extern __inline__ void dv_peek_vlc(bitstream_t *bs,int maxbits, dv_vlc_t *result) {
-+static __inline__ void dv_peek_vlc(bitstream_t *bs,int maxbits, dv_vlc_t *result) {
- if(maxbits < 16)
- dv_decode_vlc(bitstream_show(bs,16),maxbits,result);
- else
diff --git a/media-video/cinelerra/files/digest-cinelerra-1.1.5 b/media-video/cinelerra/files/digest-cinelerra-1.1.5
index 2132fa680b8d..d92c09764e21 100644
--- a/media-video/cinelerra/files/digest-cinelerra-1.1.5
+++ b/media-video/cinelerra/files/digest-cinelerra-1.1.5
@@ -1 +1,2 @@
MD5 0c9082049bd7b05a80fe604493d8da02 cinelerra-1.1.5-src.tar.bz2 19098210
+MD5 96f991144e8db32813f5f3f3c76a7161 cinelerra-fixes-1.1.5.diff.bz2 54084