reverse Fade In, Fade Out patch from Freelancer 2022-01
authorGood Guy <[email protected]>
Sun, 30 Jan 2022 19:06:16 +0000 (12:06 -0700)
committerGood Guy <[email protected]>
Sun, 30 Jan 2022 19:06:16 +0000 (12:06 -0700)
cinelerra-5.1/msg/txt
cinelerra-5.1/plugins/titler/titler.C

index 2288884ba8ee0e3903a5d16ec24f07eba1c18063..1d68bfc32b0b9cbca53ed9e404b6dd421c379cd8 100644 (file)
@@ -3,61 +3,46 @@ For usage help, refer to the following:
   https://cinelerra-gg.org/download/CinelerraGG_Manual.pdf
   http://g-raffa.eu/Cinelerra/HOWTO/basics.html
 .
-2021 Decemeber changes of note:
-  15 plugin GUIs are visually improved and minor changes.
-  Libjpeg-turbo has been updated to version 2.1.2.
-2021 November changes of note:
-  Libaom has been updated to v3.2.0 and may be faster.
-  Procedure to build for Android tablet/phone using Termux
-   is available and documented with additional tweaks.
-2021 October changes of note:
-  Hungarian automated-google translation has been added.
-  Long existing bug when using Fade in/out in the Titler 
-   plugin when there is an alpha channel in use is fixed.
-  Added new render formats of Cineform, DPX, and mxf.
-  In AppImage, the plugins are no longer loaded every time.
-2021 September New Features of note:
-  Improvements have been made to the LV2 plugin code that
-   makes it more robust and prevents crashes on startup.
-  Additional 9 Video icons in the Resources window added.
-.
-2021 August New Features of note:
-  FFmpeg has been upgraded to 4.4 to include new plugins.
-  Speed PerCent plugin for easily changing video speed
-   is now available.
+2022 January changes of note:
+  This month has only had minor changes and fixes added.
+2021 New Features of note:
+  Context Help has been added using hotkey alt/h by Georgy. The
+    help page will come up in your web browser tab for the item 
+    most relevant to where Alt/h used on a menu, plugin, button,
+    icon, transition, window, or tooltip. Additional information:
+    /https://cinelerra-gg.org/download/CinelerraGG_Manual/Troubleshooting_Help.html
+  The manual can now be used in HTML format besides PDF.
+  AppImage is now the method of distributing new releases;
+    Newer distros use:
+      CinGG-20210331-x86_64.AppImage 
+      CinGG-20211231-multibit.AppImage
+    Older distros use:
+      CinGG-20210331-x86_64-older_distros.AppImage
+      CinGG-20211231-x86-64-older_distros-multibit.AppImage
+    32-bit distros use:
+      CinGG-20211231-i386.AppImage            
+      CinGG-20211231-i386-newer_distros.AppImage  
+  Procedures to build for Android tablet/phone using Termux and
+    for aarch64 have been proven and partially documented.
+  The following libraries have been upgraded to newer versions:
+    ffmpeg to 4.4; libjpeg-turbo to version 2.1.2; x264; x265;
+    libaom to v3.2.0 and may be faster; openjpeg to 2.4.0.
+  Render formats have been added or improved to include:
+    Cineform, DPX, mxf, miscellaneous FFmpeg video/audio;
+    and high fps rendering formats added for over 60 fps.
+  Plugin changes and additions:
+    Speed PerCent plugin for easily changing speed added.
+    Posterize and Timelapse Helper are new plugins.
+    The update of ffmpeg, included several new plugins.
+    Improvements have been made to the LV2 plugin code that
+      makes it more robust and prevents crashes on startup.
+    15 plugin GUIs are visually improved and minor changes.
   FAST_SPEED and SLOW_SPEED variables to personalize your
-   playback speed have been added.
-.
-2021 July New Features of note:
-  Libraries x264, x265, and libaom have been upgraded.
+    playback speed have been added.
   YUV Colorspace 601 and 2020 have been split into more
-   available options of 601 NTSC/PAL and 2020 NCL/CL.
-.
-2021 June New Features of note:
-  High fps rendering formats added for over 60 fps.
-  Upgrade of libjpeg-turbo to 2.1.0.
-  Additional mxf + other rendering formats added.
-.
-2021 May New Features of note:
-  Context Help has been added using hotkey Alt/h by Georgy.  The
-   help page will come up in your web browser tab for the item 
-   most relevant to where you used Alt/h on a menu, plugin, button,
-   icon, transition, window, or tooltip.  For additional information:
-   /https://cinelerra-gg.org/download/CinelerraGG_Manual/Troubleshooting_Help.html
-.
-2021 March New Features of note:
-  AppImage is the method of distributing new releases;
-   Newer distros use: CinGG-20210331-x86_64.AppImage 
-   Older distros use: CinGG-20210331-x86_64-older_distros.AppImage
-  There are 2 new plugins: Posterize and Timelapse Helper.
-.
-2021 1st Quarter New Features of note:
-  The manual can now be used in HTML format besides PDF.
-  Autosave backups optional feature in Preferences.
-  Additional FFmpeg video/audio render formats available.
-  Aspect ratio and Interlace improvements are in.
-  Batch Render menu now has hidden feature to prevent mistakes.
-  Openjpeg upgraded from 2.3.1 to 2.4.0.
+    available options of 601 NTSC/PAL and 2020 NCL/CL.
+  Autosave backups optional feature in Preferences added.
+  Batch Render menu now has hidden feature to avoid mistakes.
 .
 2020 New Features of note:
   Drag select and deselect edits was added on the timeline.
index 7655b5a3c8a15b01ea36c1d1a584538919e55985..06fb7938278aa654505471e5041683b4d25ab0c7 100644 (file)
@@ -594,6 +594,7 @@ void TitleUnit::draw_frame(int mode, VFrame *dst, VFrame *src, int x, int y)
        int color = chr->color, max = 0xff;
        int alpha = chr->alpha * chr->fade;
        int ofs = BC_CModels::is_yuv(dst->get_color_model()) ? 0x80 : 0x00;
+
        switch( mode ) {
        case DRAW_ALPHA: {
                while( y_inp < inp_h && y_out < out_h ) {
@@ -2154,6 +2155,7 @@ int TitleMain::draw_underline(VFrame *mask, int alpha)
 
 void TitleMain::draw_overlay()
 {
+//printf("TitleMain::draw_overlay 1\n");
         fade = 1;
         if( !EQUIV(config.fade_in, 0) ) {
                int64_t plugin_start = get_startproject();
@@ -2273,19 +2275,12 @@ TitleTranslateUnit::TitleTranslateUnit(TitleMain *plugin, TitleTranslate *server
                        type in_r = (cp00[0]*a00 + cp01[0]*a01 + cp10[0]*a10 + cp11[0]*a11)*s + r; \
                        type in_g = (cp00[1]*a00 + cp01[1]*a01 + cp10[1]*a10 + cp11[1]*a11)*s + r; \
                        type in_b = (cp00[2]*a00 + cp01[2]*a01 + cp10[2]*a10 + cp11[2]*a11)*s + r; \
-                       type a = in_a*plugin->fade, px; \
-                       type b ; \
-                       double total_alpha, double_b; \
-                       if ( comps == 4 ) { b = *(op+3); } \
-                       else b = max - a; \
-                       double_b = (1.0 * b * (max - a)/(max*1.0)); \
-                       total_alpha = a + double_b; \
-                       if (total_alpha > 0.00000001) { \
-                               px = *op;  *op++ = (a*in_r + double_b*px) / total_alpha; \
-                               px = *op;  *op++ = (a*(in_g-ofs) + double_b*(px-ofs)) / total_alpha + ofs; \
-                               px = *op;  *op++ = (a*(in_b-ofs) + double_b*(px-ofs)) / total_alpha + ofs; \
-                               if( comps == 4 ) { b = *op;  *op++ = a + b - a*b / max; } \
-                       } \
+                       type a = in_a*plugin->fade, b = max - a, px; \
+                       /*if( comps == 4 ) { b = (b * op[3]) / max; }*/ \
+                       px = *op;  *op++ = (a*in_r + b*px) / max; \
+                       px = *op;  *op++ = (a*(in_g-ofs) + b*(px-ofs)) / max + ofs; \
+                       px = *op;  *op++ = (a*(in_b-ofs) + b*(px-ofs)) / max + ofs; \
+                       if( comps == 4 ) { b = *op;  *op++ = a + b - a*b / max; } \
                } \
        } \
 }