11/7/01 Mask feathering and value implemented. Crash bug in CWindowMaskGUI::get_keyframe fixed. 11/22/01 Removed memory leak in VirtualConsole. Another case of base destructor calling base methods only. Time average finally implemented. Deinterlace implemented. Translation in screencapture recording implemented. AVI parameter editing box. Drag and drop of assets during an index build doesn't lock up. Dragging mixtures of audio and video works better. Better handling of shared effects which are off. Batches can be moved up and down the list. 12/6/01 OpenDIVX debugging: Fixed bugs in decore2: *run = *last = -1; was not copied over from encore50. Rewrote bitstream parser in encore2 and decore2 to be more reliable. Disabled MMX due to crashes in Redhat 7.2. Discovered decore2 can't do P frames so switched back to decore50. Renamed header files, symbols to all in the same program. Renamed more symbols in mpeg2enc to coexist with opendivx. To make encore2 work on 64 bit processors: Typecasted offsets in CompensateBlock and get_ref to (int) Decore50 still not functional on 64 bit processors. Implemeneted PNG list output. Debugged list output and input. Configuration dialog for OpenDivx in Cinelerra migrated from encore50 to encore2. Configuration dialog for Vorbis and Vorbis export to Quicktime. Can use shift-R to render. DV encoding implemented. The last libdv library only supported MMX and B&W. 12/16/01 Moved all OpenDivx support to the encore50 derivative of the encoder. This appears to do everything that the encore2 derivative could do at equal or lesser reliability. Changed bmp argument for decore50 to 3 member array. Added quant argument which, when set to nonzero, fixes the quantization. OpenDivx with fixed quantization looks 33% better than MPEG-2. Direct copy rendering for OpenDivx so output of the renderfarm can be direct copied into a single file. Moved all theme support into a plugin. Resources are no longer compiled in but concatenated to the binaries. This made compilation take less time and should theoretically allow more themes to be supported without increasing resident set size. Made ports specific to each render node instead of global. This way multiple Cinelerra clients can run on the same box without violating the single thread requirement of new libraries. Cinelerra daemon forks to background. Made assets export more compression parameters to render nodes. Vorbis decoding in Quicktime without seeking. The encoding is probably not going to change anymore but Vorbis doesn't appear seekable. No-one is going to use OpenDivx and Vorbis without an endorsement from Microsoft anyway. 12/22/01 Seeking support for Quicktime/Vorbis. Support for Vorbis on 64 bit processors. Further debugging of Divx. Quality of 6 yields errors in output. Quality of 5 seems to be the maximum. Changed fourcc from VBIS to OggS for vorbis. To make Vorbis work on 64 bit processors: change sizeof(int) to sizeof(int*) in lib/floor1.c: 263 Menu effects can paste into the timeline. Changes in label handling when pasting resources. Statusbar and zoombar resizing restored. Implemented code to move plugin sets up and down a level. Improved table of contents support for libmpeg3. This scans every byte of the mpeg files and records the location of every keyframe and every sample of audio. The table of contents can then be loaded by Cinelerra, allowing frame accurate editing from mpeg source material. A memory allocation bug in the Linux kernel crashes the system when using mpeg3toc on DVD's so forget about transcoding Starwars on a render farm. Don't know who discovered that either. 12/28/01 Ignored the warnings and set -ieee for all files in quicktime to fix floating point exceptions. This made it twice as slow but it worked. Floating point exceptions in the following places were fixable with certain changes: vorbis_lpc_predict -> A return statement before anything is done. bark_noise_pointmp -> noise[i] could be set to 0 bark_noise_hybridmp -> noise[i] could be set to 0 Defining VORBIS_IEEE_FLOAT32 seemed to fix mapping0 crashes so the preceeding changes were backed out. Loading XML files with multiple video tracks works better. Linux 2.4.17 handles DVD table of contents operations better but crashes after 5 hours of reading a DVD. You'll have to reboot often to control memory corruption. 1/4/02 Credit for official Microsoft software even though there isn't any official Microsoft software. Records to DV again but not under kernels after 2.4.7. New audio effects: Tone generator Reverse audio Delay audio 3rd attempt to improve main window scrollbars. 1/11/02 New video effects: Delay video Reverse video Swap channels New audio effects: Denoise Parametric EQ using fast fourier transform. This isn't standard but it gives real gaussian curves. Spectrogram Time stretch Resample Pitch shift Frequency table expanded in Units. This uses real 1/3 octave steps. Flipped U and V in opendivx encoder so it conforms to YUV order on disk. Reconfiguration during audio rendering reenabled. Constitutive reconfiguration for video turned off. This was used to debug the memory leaks. Icon for Normalize. Tone generator improvement. 1/18/02 New audio effects: Compressor New video effects: Denoise Frame to field conversion Field to frame conversion Reframe Video denoise uses the average of an arbitrary number of previous frames to predict what the value for the next frame should be. This can also be used as a threshold effect or a time average. Optimized time average. 1/25/02 Plugin keyframes loaded from XML. Correct rendering of plugin keyframes. Some plugins interpolate. Most plugin GUI's update when insertion point is moved among keyframes. Plugin keyframes draw when created. Cursor jumps to plugin keyframes when selected. Samplerate adjustable in all media info windows. Samplerate and framerate adjustments not overridden when loaded in an EDL. Improved fade automation rendering. New video effects: Oil painting Whirl/pinch Polar Rotation Waves Waveform/Vectorscope Hue/Saturation YUV adjustment Invert video New audio effect: Invert audio 2/1/02 Progress windows really cancel instead of just letting you press the button. Status bar shows how long something took when it finishes. Removed Send and Recieve options from effects. It was never needed and it complicated the use of variable track sizes. First stage of making width and height specific to tracks and renamed projector size to canvas size. More interpolation for effects. Second stage of titler. 2/8/02 Pasting effect keyframes works better. Improved extension and contraction of effects during clear and paste. Automation for more effects. Effect keyframe behavior is more predictable. For a good time enable auto keyframes and type stuff into the titler while playing back. Clearing VFrames clears the alpha too. Added a tests directory and stored some test EDLs. Blur can selectively blur single channels Effects can be attached to tracks with no data via a popup menu finally. Plugin GUI's are more often updated when tracks are deleted. Final stage of titling implementation. Chromakey and lumakey 2/15/02 Effects more accurately follow edits while cutting and pasting. More accurate keyframing in effects. Video Transitions restored. Audio transitions enabled. Transition length inputted in seconds. Stepped up the number of previous files displayed. Option to disable tracks when no edits was removed. The VConsole automatically detects when effects synthesize material. Independant track sizes can now be changed with a popup menu. Renderfarm more accurately calculates balanced loads. Disabled avifile to reduce the debugging noise. Removed memory leak from Quicktime MPEG-4 decoder. Slightly optimized resource window updates after loading. Linux 2.4.17 crashes probably because Cinelerra moves too much memory around. We disabled kswapd by putting a return 0; in /usr/src/linux/mm/vmscan.c. The operating system seems more stable now. Enabled deletion of assets and clips from the project. Also can delete assets from disk. Rebuild indices should handle multiple indices if selected. Rectangle selection in asset window. The heroine background was lightened but mind you, the heroine background is a permanent feature. Latest seeking issue fixed in libmpeg3. Looking for ways to shift audio based on the pts. Compositor window tumblers work better. More verbose overlays for camera, projector, and output regions, making it easier to visualize the compositing pipeline. Easier to use magnifying glass. Middle mouse button dragging in CWindow works. new video transitions: bandslide bandwipe slide wipe irissquare 2/22/02 Implemented another MPEG-2 bitrate control algorithm. YUV 4:2:2 MPEG-2 in fixed bitrate modes above 7000000 is recommended for DV footage for now. Assets and effects are now sortable in the Resource window. Text displays aren't corrupted as much. Certain EDL load operations honor the labels follow edits setting and certain load operations insert labels constitutively. Width and height of tracks load properly. Adjustments to track width and height render more often. Playback automation always restored from undos. Improved tracking when every frame is played. Smooth scrolling during playback is now supported. Right mouse button doesn't activate selection rectangles anymore. AVIFile disabled since it doesn't support GCC 3.0 anymore. More reliable reading of individual image files. More accurate rendering of fade automation. More accurate tracking during playback. Deinterlace with average works. Certain edit operations from CWindow don't lock up the MWindow anymore. CWindow scrollbars updatge after loading. Track canvas after In/Out point dragging is properly refreshed. Cursor motion over keyframes doesn't force rendering as often. 3/1/02 In/Out clearing crashes less and works better. Removed IPC modeled semaphores. Now no IPC stubs are left after a crash. Rendering nodes and recording batches can be individually toggled. Buz driver refurbished. No longer requires kernel hacks to change channels. Motion JPEG compression library debugged further. Less corruption. Playback through Buz driver enabled. Now adjust color correction and see it on a monitor. Playback of video through Firewire implemented. Still not functional. YUV 4:2:0 Planar -> YUV 4:2:2 Planar color conversion Renderengine retools the playback configuration for every command instead of every EDL change. Integrated IA-32 assembly language jpeg library. 3/15/02 Enabled assembly language routines in jpeg library. Added swap fields option to Buz output driver. YUV overlay reenabled. Only works on commercial NVidia drivers. Libmpeg3 reads transport streams again. Dissolve debugged further. Moving out guicast images. Implementing defaulttheme and microtheme. 3/22/02 Consolidated audio and video settings into a format dialog. Made XVideo a separate driver. Continued improvements of defaulttheme. Draws MWindow BG and copies top background instead of several MWindow drawing calls. 4/5/02 Re-enabled configurable preloading in Quicktime since moov atoms larger than 2 M were setting the preload too high. Frame to field copies two fields into the output instead of line doubling one field. Tightened synchronization during recording startup. CWindow and VWindow timebars implemented. Timebars in CWindow and VWindow allow a region to be selected for previewing. Debugged configuration updates in Synthesizer and Parametric EQ. Extra redundancies in the jpeg library enabled to get IA-32 assembly working. Time average is absolute. Keybindings and icons for In/Out points changed. Bezier keyframes less than 10 frames apart don't freeze the CWindow. Clearing puts the cursor at the in point when using in/out points. Camera translation from the exact top of a frame to less than the full height really translates instead of squishing. Reenabled background_pixmap in TrackCanvas to allow faster overlay drawing. Loading non-XML files doesn't change the output width and height anymore. This allows VWindow to change sources without reverting the output size. Loop region loads right. Pan images aren't corrupted anymore. Clips created when no region is selected take the entire EDL now. Parametric EQ reenabled. Shared effects work again when deleted. Multiple effects per effect row load properly again. Jumping to next and prev label from CWindow doesn't lock up when playing back. Instead of synchronizing the absolute position of each fader, the gang option now changes the relative position of each fader. Slider tooltips always update before being shown instead of showing obsolete data. Got rid of next record label in RecordGUI. Labels set while recording are finally inserted in the timeline. The 'l' key triggers a label when recording. Busy wait removed from repeater finally. Prepared settings menu for addition of plugin editing option. Began first stage of Microsoft AVI importer for Quicktime. 4/19/02 AVI decoding of official Microsoft MPEG-4 and mp3. Second debugging pass for BC_Repeater. 23.976 framerate put in place of 24.976 framerate. Synthesizer locks up less. Libmpeg3 needs only 1 include path instead of 5000. MPEG audio decoding 75% reimplemented for use in Quicktime. AC3 reimplemented using liba52. The mpeg3_layer_t structure handles mp2 and mp3 decoding separate from libmpeg3 on a frame basis. The mpeg3_ac3_t structure handles ac3 decoding on a frame basis. The mpeg3_pcm_t handles pcm decoding. PCM is repacketized by the demuxer. Zoombar clamps more selection values. 5/3/02 Microsoft MPEG-4 and MP3 encoding in Quicktime, AVI edition. 100% Readable by Cinelerra and Xine but not by Microsoft. Either audio or video plays back in Windows but not both. Several Quicktime frame rates changed to double. CWindow scrollbars updated on startup. Another pass through scrollbar appearance. New option to make effects follow edits. Preview range updated more often in CWindow. Another pass through listbox appearance. Track cursor redrawn more frequently. XMovie merged with new theme. MPEG audio debugging pass 1. Got rid of AVIFile and obsolete ffmpeg copy. 5/10/02 Better handling of non-existent files in edit lists and renderfarms. Hopefully better reporting of errors with the renderfarm. Debugged percentage seeking in mpeg3audio. Vorbis rc3 doesn't encode without crashing. Downgraded to vorbis rc2. JPEG exporting in AVI. More codec checking in AVI and Quicktime export. Paste assets from AWindow doesn't lock up as much. Faders not visible in the patchbay should now be gangable. Debugged YUV compositing algorithms. New RGBA -> YUV 16 bit conversions. Selecting labels during playback in CWindow doesn't lock up. Rewind and end in CWindow and VWindow do something again. Playing from the VWindow after loading from XML doesn't crash as much. Localsession needs to initialize everything in its constructor. Paste from one samplerate to another isn't corrupted as much. Samplerate conversion in paste_edls. MICROSOFT mouse wheel adjusts all scrollbars, sliders, pots, and tumblers, perfect for fine adjustments and zooming. In CWindow and VWindow it performs frame advance. Mix2000 update for mouse wheel. 5/17/02 Pulling the official MICROSOFT mouse wheel back zooms out the CWindow when using the zoom tool. Brought back the last reflection level in Heroine College Concert Hall since backwards reverb seems to be popular. Paste automation resampling implemented. Splice and overwrite debugged. Paste_edls doesn't change the VWindow source during splice and overwrite. Splice inserts before the in_point and ignores the out_point. Overwrite erases between in_point and out_point. Dragging asset into VWindow updates the timebar. Shifting effect handles works better. Disabled checks not important to effects. TIFF and TGA I/O with image sequences. Reenabled alpha blending. Got rid of row_table[i] reference in cmodel_permutation output subscript. Decompression of YUV 4:4:4 JPEG. 6/10/02 New option to disable thumbnails in AWindow. Shift right handle out doesn't shift keyframes before it. Waveform drawn more often after undo load. Confirmation box for quit. Quit really quits instead of crashing and looking like it quit. MP3 decoding hacks to skip JPEG images without parsing ID3 tags. Changing track titles redraws overlays. Window is renamed after replacing project. Shrank threshold in equivalency tests. It was catching the wrong in/out points. Made FloatAutos store bezier curve information. Got rid of full duplex record options. Since modern sound drivers allow single devices to be opened twice this is more easily done by starting playback on the timeline manually when recording. Plugin titles updated when track titles change. Create clip with just in or out point creates something of positive length. Create clip with no in or out point takes the entire length in VWindow. Labels enabled in VWindow. Overwrite doesn't shift effects or labels. Overwrite overwrites the region between in and out of in and out are different but overwrites its own length if in and out are identical. Shifting out point in doesn't delete transitions. Paste should extend effects when the clipboard has no effects and should overwrite effects when the clipboard has effects. Labels are undone during undo after paste. Video tracks are added to the top of the stack while audio tracks are added to the bottom of the stack. Dragging an effect from one track to a zero length track retains the length of the effect instead of crashing. Dragging an effect from the Resource Window onto a zero length track doesn't insert the effect on the track. 6/14/02 Bilinear interpolation from Broadcast 2000 migrated over. This averaged more pixels than the standard bilinear interpolation we upgraded to in 2000. Mutual exclusion lock for liba52 since liba52 can't run two frame decodes simultaneously. Removed double lock from Heroine College Concert Hall. Correctly detects playable tracks more often. Bezier curves for fade and zoom. 64 bit mpeg file support. XMovie plays 64 bit mpeg files. Variable channel numbers work finally. Audio pans adjust when channel count changes. DV encoding in color works slightly better but still corrupted on the right side. The libdv upgrade can't decode of course. After assessing levels of interest, marketing direction, and experiencing a CVS erasing filesystem crash we moved forward on the folding of all code into a single repository. Moved quicktime, libmpeg3, xmovie, mix2000, and 2 mpeg multiplexing tools into the cinelerra tree and renamed the one gigantic tree hvirtual. The upside is Cinelerra compilation only requires exporting CFLAGS instead of hunting down 5 packages and exporting CFLAGS. The downside is the one guy who uses Quicktime has to download a bigger package through his bankrupt ISP's refurbished 1998 reissued cable modem. Mind you everything except cinelerra and plugins will remain independant of each other. While it may work for servers ext3 isn't suitable for desktops which are constantly shut down and restarted. 6/21/02 DV decoder 0.9.5 migrated. Not tested for error resilience yet. Made to_clip not copy all to the temporary clipboard so it wouldn't copy the child EDL's. Sort items put in AssetPopup. Plugin titles don't extend beyond background. Menus reposition when the window is repositioned. Default window positions is more accurate. Despike migrated to interpolated keyframes. Level window resets with everything else. Fixed detection of playable tracks error that was introduced with bezier faders. More often plays full audio track instead of truncating it. MPEG decoder supports XVideo better. Going to next and previous label with scrolling refreshes the compositor. Drawing of highlight box when dragging over the timeline is more accurate. Dragging one keyframe beyond another deletes the keyframe like it should. Bezier keyframes may work better than before. tracks->get_total_length considers keyframe length as well as edit length. This allows keyframe undo for regions where no edits exist. Update undo routines can be called recursively without corrupting the undo table. Undoing and redoing keyframe adjustments works better. Bilinear reduction with alpha channels fixed. Memory leak removed from Quicktime udta. Kludge for 88200 samplerate in Quicktime. Not tested. 7/12/02 Sharpen GUI synchronized to keyframes. Flip video. Freezeframe. Freeverb. Shift interlace. AWindow scrollbars calculated more accurately. Attach when effect is already in slot lets you change the effect. Faders and effect GUI's track playback. More frequent updating of patchbay when scrubbing. Pan automation works. Raw PCM export supports endian changes. All assets are saved during Save File. Keyframing right curves for projector zoom. All paste_edl operations copy all the assets. Camera zoom and projector zoom keyframes are properly generated from CWindow. Better bezier keyframe drawing in CWindow. Default window positions work in KDE, Gnome, and fvwm. Can grab control points in CWindow more easily if they're both against the left side. Large amout of unused Broadcast 2000 code removed. RecordGUI uses EDL aspect ratio. Grabbing control points in CWindow works better. Different colors for curves. Frame advance reverse plays the last frame in the timeline properly. Single frame record. Rendered effects handle transitions. Fewer crashes when hiding and showing effects during playback. More macros for plugins. Ganged faders are unaffected with record off. Pasting shared effects to different tracks than they were copied from doesn't crash but shared effect resolution will be broken. Shift key snaps curve values when dragging curves. Documentation buildout. Creating a clip in the VWindow doesn't automatically set the VWindow to the new clip. Changing asset sample rate works again. List boxes updated in AWindow after changing mode. Interface preferences have options for trimming. Copy added to CWindow buttons. Cut removed from VWindow buttons. Copying always takes session parameters, so it works in VWindow instead of crashing. Audio module fragment reduced to support Linux 2.4.18. Maximum DMA allocation is no longer supported in 2.4.18 so audio fragments must be kept below 4096. Units in freeverb changed to DB. 7/19/02 libmjpeg works on dual CPU systems finally. Mutually excludes allocate_temps. MJPEG files should crash less often. Start playback after editing doesn't have noise. Denoise mutes first window. Clear plugin GUI after attach changes it to a different plugin. DV capture migrated to Linux 2.4.18. Freezeframe works better. Concatenate tracks works more often. When dragging effects, the effect can be positioned at the start of an edit or at the start of a track instead of just at the start of a track. More accurate drawing of highlighting. ALSA driver migrated to Linux 2.4.18, alsa-0.9.0rc2. Render realtime affect doesn't crash when bringing up GUI. Plugin initialization takes proper buffer size. Resource Window starts up with nothing highlighted. Textboxes don't update contents if the contents are identical. Textboxes allow entry and have normal cursor behavior during playback. Loading with insertion modes that don't replace the project doesn't change the project filename. Curves aren't affected by the cursor when the track isn't armed. Tooltips deleted when widgets are deleted. start_realtime and stop_realtime removed from plugin interface. Memory leaks due to plugins not deleting data reduced. Must use -O3 because optimization errors prevent video from playing with -O2. Labels in CWindow don't vanish after resize to fullscreen. Undo for transitions. Better recording from DV camcorders. 7/26/02 FFT based denoiser. Ogg Vorbis support. Interpolate effect interpolates the start and end sample of a selection. Quicktime ported to Vorbis 1.0 Undo detach transition. Fade should cut out at INFINITYGAIN. More accurate waveform drawing of sound files. Dragging end of an edit in doesn't clear the first keyframe of the next edit. Dragging end of an edit out shifts keyframes with it. AgingTV debugged. Changing sample rate of asset has an effect on played output. Reset camera and projector once again resets the zoom curve. U and u key for default transition. Default transition menu item. VWindow remembers labels and in/out points. Labels updated in CWindow after undo. More intuitive centering on cursor after zooming. 7/29/02 16 bit color supported again. Apply button in format settings. Fewer crashes when toggling play and mute patches during playback. More locking when record updates the GUI. Better floating point comparison for setting labels. More intuitive scrollbar behavior for timeline. Level window updates when meter range changes. Waveforms drawn after window expansion. Background for RecordGUI. Preview size adjusted after in/out point dragging and silence pasting. More robust handling of Freetype failures in titler. Private font directory for titler. Should ease renderfarm administration. AWindow background title updated more often. Drop shadow in titler. Compositor overlays translated more accurately when scrollbars are gone. Better handling of scrollbar and tumbler repeating after mousewheel is used. Creating a new project removes the clip reference from VWindow instead of making it crash. Project deletion operations while CWindow or VWindow is playing crash less often. Overlay modes ported to YUV colormodels. 8 bit RGB -> 16 bit YUV importing. RGB601 refurbished. Pots debugged. They might change value with cursor keys now. Bilinear scaling has better clipping for fewer crashes. 8/2/02 Titler crash with drop shadow fixed. Titler looping. Render uses in/out points if they exist. More accurate edges in bilinear scaling. Playback termination memory leak removed. Module calls render_stop before deleting the attachmentpoint. Render farm crash fixed. More often terminates recording when no firewire device exists instead of just freezing up. Titler doesn't interpolate any parameters. Old references to real_transition removed from virtual console. Source position in plugin client made relative to start of track. 8/19/02 Titler fonts installed by rpm. XMovie decodes ac3 according to redesigned liba52 channel mappings. Quicktime MPEG4 parameters debugged. Gradient effect. Background rendering over a renderfarm. Renderfarm clients automatically reduced to idle priority. Better MJPA decoding on single processors. Better title functionality in 16 bit colormodels. Undo for effect keyframes. Effect GUI's cleared during undo for effect attachment. Fewer lockups on startup. Proper keyframe interpolation in scale effect. Stamp timecode in titler. Memory leak in rendering stages removed. Removed legacy plugin server code. Downsample video resolution. Option to generate sequence header in every GOP for MPEG2. LADSPA support. Listbox doesn't enter drag_icon state when dragging column division. Radial, linear, and zoom blur. Effect rendering bug fixed. 64 bit mpeg transport stream seeking beyond 2 gigs. More accurate mask drawing when projector is zoomed. Clear labels updates CWindow More accurate YUV/RGB conversions. Histogram. Perspective. Import partial tga's Copy keyframes doesn't copy default keyframe. Track highlighting offset by vertical scroll. Multiple video scope, spectrogram, and histogram displays may be opened. HutSaturation in YUV colorspaces. Undo for masks. 10/13/02 Interpolation of gradient keyframes libmpeg3 handles case where audio channel count increases in the middle of the stream Zoom bar redrawn more accurately when time format changes. More reliable quit of render nodes when master node crashes. Render doesn't reset brender to 0. Play keyframes discontinued. Deleting media from middle of track and pasting to end plays back. Persistent frame rate statistics stored in render farm. Flash transition. Undo for in and out points. 10/19/02 sync_parameters for splice, drag assets on CWindow. Change asset path updates brender and index file status. Transition drop on CWindow. Changing video play patch doesn't freeze brender permanently. Swap channels generates correct output. Shared synthesis effects cause the sharing tracks to play back instead of just the owning track. Quicktime recovery utility improved. Memory leaks in FileVorbis::check_sig and AssetPicon::create_objects removed. - Remove asset from disk removes it more often. AttachmentPoint::~AttachmentPoint deletes plugin servers. - For some reason they were originally deleted in render_stop but render_stop was commented out of Module::~Module. Drag scroll working for region selections. Single frame recording with multiple batches doesn't crash. Sound Level DV encoding with proper color conversion. 11/08/02 More options for the ffmpeg/MPEG-4 codecs. Histogram works on SMP. Proper 16 bit alpha blending. BRender path updates from preferences. Separate preroll for background rendering and rendering. Deinterlace by averaging lines 0 and 2 or 1 and 3 to get intervening lines. Adaptive deinterlace. Frame per second statistics in renderfarm are more reliable. Select and slide in the patchbay. Video scope can be resized. Effect keyframes pasted in right positions. Selective denoising of video based on color channel. 1/12/03 More mouse wheel bindings in MainWindow and ListBox. Ctrl-w closes effect windows. Perspective doesn't crash when switching from stretch to sheer. Better text list searching and keyboard navigation. Better Vorbis decoding. 2/10/03 Close recording without recording anything doesn't crash. Save backup now option. OpenGL not required anymore. Time format changes update the selection textboxes more often. MPEG-4 deblocking option in XMovie. Resize in Record GUI. Export of YUVA16161616 to Component Y'CbCr 10-bit 4:4:4. Import of Component Y'CbCr 10-bit 4:4:4 to RGB colorspaces. 2/14/03 Create fade keyframe inadverdently drags bezier handle less often. Float autos don't draw on right edge of timeline when keyframes are beyond right edge. Better float auto creation. Add track anywhere in timeline through track popup. Shared track references are automatically reconfigured after deleting or adding tracks. Libmpeg3: Better decoding of field-based MPEG video. Channels can be moved up or down in the Channel picker properly. Better handling of the long delay in deleting files without overflowing the recording buffers. Deinterlace really swaps fields instead of just saying it. Two line swapping combinations in deinterlace. Better listbox row sizing. Downsample offset. Faster window creation. Splash screen while you wait for it to start up. File deletion occurs before opening the driver instead of after opening the driver for recording. Changing sample rate of WAV file in Asset window works. JPEG stills get saved with proper dimensions. Migrated to RedHat 8.0. - e2fsprogs-devel is needed to compile the background render object. Fewer crashes due to OpenDivx global variables getting overwritten. Paste silence and clipboards also shifts effect keyframes properly. More checks for circular references in shared effects and shared tracks. Tracking during audio playback without video doesn't run past edge of loop boundaries. Better keyframing in Titler. Multiple language encodings in Titler. Undo of replace project after an effect works. Frame -> field conversion does line averaging and pixel shifting. Field -> frame conversion uses pixel shifting. Negative cursor selection is frame aligned. Documentation on video cleaning and deinterlacing tools. Buttons repositioned properly when filebox is resized vertically. Fade automation is more accurate. CWindow and VWindow slider position is less erratic after the window is resized. Timebars with regions track the playback position. More workarounds for buz driver lockups. Dragging the cursor on the timebar off the edges scrolls the timeline. IVTC uses luminance only in YUV colorspaces to improve accuracy. Quicktime: Tighter audio synchronization when encoding Quicktime with Vorbis audio. Start of audio effects is more accurate. Better IEEE1394 playback of video only. More IEEE1394 playback options. A lot of patches were rejected. Some were accepted. Most of these coding practices were done in 1997 but abandonned later because of high maintenance. To save code size, the memory leak checker shouldn't flag single allocations as leaks and static pointers shouldn't be explicitely deleted on exit. titler-charsets.diff merged. cinelerra-loop-patch* The bugs in loops and audio positioning were fixed another way. cursor-patch.diff Too much maintenance in function indirection with no effect. Explicit declaration of the movement distance requires too much maintenance. The move commands were separated for scalability reasons. mempatch-2.diff Units::topower was already static. Patch has no effect and requires too much maintenance. mempatch-3.diff: DefaultTheme is intended to be replaced by a subclass of BC_Theme and use BC_Theme for all memory management. No expansion of this file is maintainable. ArrayList::aray_delete was merged. Changes to BC_Meter, BC_Resources require too much maintainence and have no effect. static variables in BC_WindowBase prevent different windows in the same application from having different fonts. Deletion of pointers in AWindow, CWindow, VWindow, MWindow requires too much maintenance. Buttons in AWindow may be used in the future and should not be deleted. Buttons in editpanel may be used in the future and should not be deleted. Selections were replaced by masks. Deleted from VTrack. mempatch-5.diff BC_NewFolderThread expansion done differently. BC_FileBox widget deletion already done by BC_WindowBase. Too much code for no effect. BC_ProgressBar::~BC_ProgressBar() implemented. BC_Resources changes have no effect. It's already a static object and if the images were overridden, their BC_Theme class would delete the lists. BC_WindowBase changes were preemptively rejected. Canvas::~Canvas merged. CPanel::~CPanel already done by BC_WindowBase. Too much code. CWindowGUI::~CWindowGUI mostly done by BC_WindowBase. MeterPanel::~MeterPanel merged Module::create_new_attachments merged StatusBar::~StatusBar already done by BC_SubWindow. theme.C too much code. VirtualConsole::~VirtualConsole introduced too many bugs. ZoomBar::~ZoomBar partially merged. Mostly done by BC_SubWindow. DefaultTheme::DeleteVFrames is done by BC_Theme. title.C fonts is a static variable because it shouldn't be deleted. mempatch-6.diff BC_FileBox done differently. Lock_window is normally used when updating a GUI from a thread. mempatch-7.diff VirtualConsole refurbishment was handled differently. filevorbis.C asymetric fclose patch applied. mempatch-9.diff MWindow::load_filenames memory management applied. Rest has no effect. mempatch-10.diff decode_lock is static because it shouldn't be deleted. Rest has no effect. 5/16/03 Audio and video playback through firewire. Can't get a playable audio stream for the camcorder in realtime but the interface is there. Quicktime: Libraw1394 and grabbing removed. Didn't serve any purpose since playback requires a completely different mechanism than record. Quicktime, XMovie, Cinelerra: ffmpeg decoder used in MPEG-4. This gives slightly faster playback but is lousy at seeking. More file writing recovery from crashes. Cinelerra: Module dereferences renderengine less often in nonrealtime effects where renderengine is 0. Quicktime: Importing of dvgrab and lavtools AVI files. Cinelerra: Hitting space rapidly doesn't lock up recording as much. Cinelerra: Resize Render effect window. Cinelerra: Changing parameters for PCM file works more often. Cinelerra: tiff upgraded to 3.1.7 Firehose: Fixed bug in firehose reciever. Cinelerra: Virtual file system for renderfarm. - The filesystem prefix for rendering nodes was decidedly useless so it was discontinued. Cinelerra: Time stretch based on overlapping windows instead of FFT. Cinelerra: Freeze frame has line doubling option. Integrated mpeg2enc, toolame, lame encoding as libraries. Toolame refurbishment: - converted exit to return in main. - put prototypes in filempeg.h - created input buffer management. - forced stdin at all times - created error and eof variables. - freq2bark -> toolame_freq2bark mpeg2enc symbol conflicts: - putbits -> mpeg2enc_putbits - SmpFrqIndex -> toolame_SmpFrqIndex - BitrateIndex -> toolame_BitrateIndex edit and effect titles stay visible at all times. We'll see how long this lasts. long replaced with int64 wherever possible. After many years of assuming long would automatically scale to whatever it was compiled on, it appears more of a pain than a scalability point in matters of function overloading. Default configuration should run on stock Redhat 9.0 system. Patches: loop-crush.diff applied exit-crush.diff too much code for no effect splash-leak.diff applied overlay-speedup.diff applied overlay-speedup2.diff applied titler-stroke.diff titler-stroke2.diff applied but disabled due to SMP crash. (crush) Added Outline style and tumbler. Reduced number of exits due to bounds checking errors. quicktime_leak.diff applied small-clean2.diff file may be closed and reopened without calling destructor. patchbay_free.diff applied but the real problem was PatchBay::update() dereferenced non-existent tracks to get the ID. perspective_alpha_stretch.diff applied virtualconsole_leak.diff applied but the default destructors seem to be getting called. dvlib_bug_workaround.diff applied debian_new_dvlib_compile.diff applied multihead_compositor-1.1.5.diff rejected The X11 parameter in Playback preferences is the compositor display. filexml.diff applied paste-outpoints.diff needs testing paste-outpoints.diff rejected. Broke other paste behavior. The paste behavior is not a uniform case but the result of trying behaviors on a case by case basis and deciding which behavior is the most convenient. Most of the time what's convenient is not the most scientific.