diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2003-07-13 02:44:18 +0000 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2003-07-13 02:44:18 +0000 |
commit | 3f044fc887d5ee758c7c08b74565a987232c17a9 (patch) | |
tree | 2948ed7df511200e3d06f365527564dcbec08c66 /media-video/cinelerra | |
parent | moved the patch to distfiles (diff) | |
download | gentoo-2-3f044fc887d5ee758c7c08b74565a987232c17a9.tar.gz gentoo-2-3f044fc887d5ee758c7c08b74565a987232c17a9.tar.bz2 gentoo-2-3f044fc887d5ee758c7c08b74565a987232c17a9.zip |
moved the patch to distfiles
Diffstat (limited to 'media-video/cinelerra')
-rw-r--r-- | media-video/cinelerra/ChangeLog | 6 | ||||
-rw-r--r-- | media-video/cinelerra/Manifest | 7 | ||||
-rw-r--r-- | media-video/cinelerra/cinelerra-1.1.5.ebuild | 7 | ||||
-rw-r--r-- | media-video/cinelerra/files/compile-1.1.5.diff | 6908 | ||||
-rw-r--r-- | media-video/cinelerra/files/digest-cinelerra-1.1.5 | 1 |
5 files changed, 13 insertions, 6916 deletions
diff --git a/media-video/cinelerra/ChangeLog b/media-video/cinelerra/ChangeLog index 3526e2f06204..26abdfcbe005 100644 --- a/media-video/cinelerra/ChangeLog +++ b/media-video/cinelerra/ChangeLog @@ -1,7 +1,11 @@ # ChangeLog for media-video/cinelerra # Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra/ChangeLog,v 1.8 2003/05/13 17:59:55 lu_zero Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/cinelerra/ChangeLog,v 1.9 2003/07/13 02:43:57 lu_zero Exp $ + 13 Jul 2003; Luca Barbato <lu_zero@gentoo.org> cinelerra-1.1.5.ebuild, + files/digest-cinelerra-1.1.5 files/compile-1.1.5.diff : + moved the patch to the distfiles mirror + *cinelerra-1.1.6 (13 Mar 2003) 13 Mar 2003; Luca Barbato <lu_zero@gentoo.org> cinelerra-1.1.6.ebuild, 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 ->/usr/bin - <li>Plugins ->/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->preferences</em> and run through the options. -+ <p>Go to <em>settings->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->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->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->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->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->render</em> to bring up the render dialog. Select the -+ <p>Go to <em>File->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->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->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->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->preferences->performance. -+ <p>Background rendering is enabled in settings->preferences->performance. - It has one interactive function: <em>settings->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->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->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->load</em>. Set the insertion mode to -+ <p>Load some files using <em>file->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->clear</em> -+ <p>A final operation in cut and paste editing is the <em>edit->clear</em> - operation. If a region is highlighted or in/out points exist, the - affected region is cleared by <em>edit->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->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->Render effect</em> and - <em>Video->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->format</em> and in -+ <p>The project attributes are adjusted in <em>settings->format</em> and in - to a more limited extent in <em>file->new</em>. When you adjust project - settings in <em>file->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->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->fade keyframes</em> or <em>view->...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->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->copy default keyframe</em> copies the default keyframe to -+ <p><em>Keyframes->copy default keyframe</em> copies the default keyframe to - the clipboard, no matter what region of the timeline is selected. The - <em>keyframes->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->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->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->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->record</em> to record a dumb I/O source. This prompts -+ <p>Go to <em>File->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 >= 0x10000) --</pre> -+<pre class="example"> if (bufsize >= 0x10000) -+ </pre> - --<p>change it to say -+ <p>change it to say - --<br><pre>if (bufsize > 0x40000) --</pre> -+<pre class="example"> if (bufsize > 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" > /proc/sys/kernel/shmmax</b> -+ <p><b>echo "0x7fffffff" > /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->dx += value; break; -- case REL_Y: list->dy -= value; break; -- case REL_WHEEL: if (list->mode) list->dz -= value; break; -- } -- break; --</pre> -- --<p>must be replaced by -- --<br><pre> --case EV_REL: -- switch (code) { -- case REL_X: -- list->x_accum += value; -- list->dx += list->x_accum / DOWNSAMPLE; -- list->x_accum %= DOWNSAMPLE; -- break; -- case REL_Y: -- list->y_accum += value; -- list->dy -= list->y_accum / DOWNSAMPLE; -- list->y_accum %= DOWNSAMPLE; -- break; -- case REL_WHEEL: if (list->mode) list->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->dx += value; break; -+ case REL_Y: list->dy -= value; break; -+ case REL_WHEEL: if (list->mode) list->dz -= value; break; -+ } -+ break; -+ </pre> -+ -+ <p>must be replaced by -+ -+<pre class="example"> -+ case EV_REL: -+ switch (code) { -+ case REL_X: -+ list->x_accum += value; -+ list->dx += list->x_accum / DOWNSAMPLE; -+ list->x_accum %= DOWNSAMPLE; -+ break; -+ case REL_Y: -+ list->y_accum += value; -+ list->dy -= list->y_accum / DOWNSAMPLE; -+ list->y_accum %= DOWNSAMPLE; -+ break; -+ case REL_WHEEL: if (list->mode) list->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->window->lock_window(); --// update widgets here -- thread->window->unlock_window(); -- } --} --</pre> -+ <pre class="example"> void MyPlugin::update_gui() -+ { -+ if(thread) -+ { -+ load_configuration(); -+ thread->window->lock_window(); -+ // update widgets here -+ thread->window->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 &that); -- void copy_from(MyPluginConfig &that); -- void interpolate(MyPluginConfig &prev, -- MyPluginConfig &next, -- long prev_position, -- long next_position, -- long current_position); -- -- -- -- float parameter1; -- float parameter2; -- int parameter3; --}; -+<pre class="example"> int equivalent(MyPluginConfig &that); -+ void copy_from(MyPluginConfig &that); -+ void interpolate(MyPluginConfig &prev, -+ MyPluginConfig &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 &prev, -- MyPluginConfig &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 &prev, -+ MyPluginConfig &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->parameter1 = (float)(prev.parameter1 * prev_scale + next.parameter1 * next_scale); -- this->parameter2 = (float)(prev.parameter2 * prev_scale + next.parameter2 * next_scale); -- this->parameter3 = (int)(prev.parameter3 * prev_scale + next.parameter3 * next_scale); --} -- --</pre> -+<pre class="example"> -+ this->parameter1 = (float)(prev.parameter1 * prev_scale + next.parameter1 * next_scale); -+ this->parameter2 = (float)(prev.parameter2 * prev_scale + next.parameter2 * next_scale); -+ this->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->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->update(total_written); --</pre> -+ <pre class="example"> progress->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 &write_length); --</pre> -+<pre class="example"> int process_loop(double *buffer, long &write_length); -+ </pre> - --<p>for single channel or -+ <p>for single channel or - --<br><pre>int process_loop(double **buffers, long &write_length); --</pre> -+<pre class="example"> int process_loop(double **buffers, long &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->window->lock_window(); -+<pre class="example"> void MyPlugin::render_gui(void *data) -+ { -+ if(thread) -+ { -+ thread->window->lock_window(); -+ -+ // update GUI here -+ -+ thread->window->unlock_window(); -+ } -+ } -+ -+ </pre> - --// update GUI here -- -- thread->window->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 |