add ctrl-z for undo, addition 7 ffmpeg plugins activated, add select highlighted...
authorGood Guy <[email protected]>
Sun, 30 Aug 2020 23:01:00 +0000 (17:01 -0600)
committerGood Guy <[email protected]>
Sun, 30 Aug 2020 23:01:00 +0000 (17:01 -0600)
12 files changed:
cinelerra-5.1/cinelerra/editpopup.C
cinelerra-5.1/cinelerra/editpopup.h
cinelerra-5.1/cinelerra/mwindow.h
cinelerra-5.1/cinelerra/mwindowedit.C
cinelerra-5.1/cinelerra/mwindowgui.C
cinelerra-5.1/cinelerra/tracks.C
cinelerra-5.1/cinelerra/tracks.h
cinelerra-5.1/doc/shortcuts.html
cinelerra-5.1/ffmpeg/plugin.opts
cinelerra-5.1/info/plugins.txt
cinelerra-5.1/msg/txt
cinelerra-5.1/plugins/theme_suv/data/span_off.png

index da9b06ba4cb84d5b60c08acf376461e166ff1e8e..60dcafb8ae8a09a5814ca423e8a275f1029ad350 100644 (file)
@@ -67,6 +67,7 @@ void EditPopup::create_objects()
 {
        add_item(open_edl = new EditPopupOpenEDL(mwindow, this));
        add_item(new EditPopupClearSelect(mwindow, this));
+       add_item(new EditPopupSelectEdits(mwindow, this));
        add_item(new EditPopupCopy(mwindow, this));
        add_item(new EditPopupCut(mwindow, this));
        add_item(new EditPopupMute(mwindow, this));
@@ -159,6 +160,21 @@ int EditPopupClearSelect::handle_event()
        return 1;
 }
 
+EditPopupSelectEdits::EditPopupSelectEdits(MWindow *mwindow, EditPopup *popup)
+ : BC_MenuItem(_("Select Edits"),_("Ctrl-Alt-a"),'a')
+{
+       this->mwindow = mwindow;
+       this->popup = popup;
+       set_ctrl(1);
+       set_alt(1);
+}
+
+int EditPopupSelectEdits::handle_event()
+{
+       mwindow->select_edits();
+       return 1;
+}
+
 EditPopupCopy::EditPopupCopy(MWindow *mwindow, EditPopup *popup)
  : BC_MenuItem(_("Copy"),_("Ctrl-c"),'c')
 {
@@ -203,11 +219,12 @@ int EditPopupCut::handle_event()
 }
 
 EditPopupCutPack::EditPopupCutPack(MWindow *mwindow, EditPopup *popup)
- : BC_MenuItem(_("Cut pack"),_("Ctrl-z"),'z')
+ : BC_MenuItem(_("Cut pack"),_("Ctrl-Alt-z"),'z')
 {
        this->mwindow = mwindow;
        this->popup = popup;
        set_ctrl(1);
+       set_alt();
 }
 
 int EditPopupCutPack::handle_event()
index 2c34be62489d2e0864f2db30aedabe26ecc52e4c..ed3fe2f8c09e2de5b68ef8002e3295c7089b56d7 100644 (file)
@@ -73,6 +73,16 @@ public:
        EditPopup *popup;
 };
 
+class EditPopupSelectEdits : public BC_MenuItem
+{
+public:
+       EditPopupSelectEdits(MWindow *mwindow, EditPopup *popup);
+       int handle_event();
+
+       MWindow *mwindow;
+       EditPopup *popup;
+};
+
 class EditPopupCopy : public BC_MenuItem
 {
 public:
index 954d245a7e9889575c51ab84de13a6bb4d50a034..2f89d2d904adda968d1ec99e26444f113c24a821 100644 (file)
@@ -447,6 +447,7 @@ public:
        void clear_hard_edges();
        int clear_hard_edges(double start, double end);
        void clear_select();
+       void select_edits();
        void concatenate_tracks();
        int copy_flags(int copy_flags=COPY_CLIPBOARD);
        void copy();
index eac149e9b445a28f601548f30bfe34e7423a057c..7b359ce2d817bb5672049bf4ea03a2c4f6143acd 100644 (file)
@@ -426,6 +426,14 @@ void MWindow::clear_select()
        gui->draw_overlays(1);
 }
 
+void MWindow::select_edits()
+{
+       double start = edl->local_session->get_selectionstart();
+       double end = edl->local_session->get_selectionend();
+       edl->tracks->select_edits(start, end);
+       gui->draw_overlays(1);
+}
+
 void MWindow::concatenate_tracks()
 {
        undo_before();
index 34638e18480bafa4ff6d49ed50b77ded71301e16..5f9edd9202ec5eeb27d89294df40877f6d16c017 100644 (file)
@@ -1079,27 +1079,32 @@ int MWindowGUI::keypress_event()
        if( result ) return result;
 
        Track *this_track = 0, *first_track = 0;
-       int collapse = 0, packed = 0, overwrite = 0, plugins = 0;
+       int packed = 0, overwrite = 0, plugins = 0;
        double position = 0;
 
        switch( get_keypress() ) {
        case 'A':
-               if( !alt_down() ) {
-                       if( !ctrl_down() || !shift_down() ) break;
+               if( !alt_down() && ctrl_down() ) {
                        mwindow->edl->tracks->clear_selected_edits();
                        draw_overlays(1);
                        result = 1;
-                       break;
-               } // fall thru
+               }
+               break;
        case 'a':
-               if( !alt_down() ) break;
-               stop_transport("MWindowGUI::keypress_event 1");
-               mwindow->nearest_auto_keyframe(shift_down(),
-                       !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
-               result = 1;
+               if( !ctrl_down() && alt_down() ) {
+                       stop_transport("MWindowGUI::keypress_event 1");
+                       mwindow->nearest_auto_keyframe(shift_down(),
+                               !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
+                       result = 1;
+               }
+               else if( ctrl_down() && alt_down() ) {
+                       mwindow->select_edits();
+                       result = 1;
+               }
                break;
 
        case 'e':
+               if( ctrl_down() || alt_down() ) break;
                mwindow->toggle_editing_mode();
                result = 1;
                break;
@@ -1150,17 +1155,29 @@ int MWindowGUI::keypress_event()
                result = 1;
                break;
        case 'M':
-               collapse = 1;
+               mwindow->cut_selected_edits(0, 1);
+               result = 1;
+               break;
        case BACKSPACE:
        case 'm':
-               mwindow->cut_selected_edits(0, collapse);
+               mwindow->cut_selected_edits(0, 0);
                result = 1;
                break;
        case 'z':
-               collapse = 1;
+               if( !alt_down() ) {
+                       // z and ctrl-z both are undo, z mainmenu item
+                       if( mwindow->session->current_operation == NO_OPERATION )
+                               mwindow->undo_entry(this);
+                       result = 1;
+               }
+               else if( ctrl_down() ) {
+                       mwindow->cut_selected_edits(1, 1);
+                       result = 1;
+               }
+               break;
        case 'x':
                if( !ctrl_down() || alt_down() ) break;
-               mwindow->cut_selected_edits(1, collapse);
+               mwindow->cut_selected_edits(1, 0);
                result = 1;
                break;
 
index 101e7cdb8dbd9e274df7336381164901d9b8795b..73e7706d3452125bf03a92165eed4174a5373ae3 100644 (file)
@@ -126,6 +126,20 @@ void Tracks::get_selected_edits(ArrayList<Edit*> *drag_edits)
        }
 }
 
+void Tracks::select_edits(double start, double end)
+{
+       for( Track *track=first; track; track=track->next ) {
+               if( !track->is_armed() ) continue;
+               int64_t start_pos = track->to_units(start, 0);
+               int64_t end_pos = track->to_units(end, 0);
+               for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+                       if( start_pos >= edit->startproject+edit->length ) continue;
+                       if( edit->startproject >= end_pos ) continue;
+                       edit->is_selected = 1;
+               }
+       }
+}
+
 void Tracks::get_automation_extents(float *min,
        float *max,
        double start,
index e839b772828c422daa9b5a95b2160c047c84a764..78d1fe591fe2a4735103804f51da8941f6bba670 100644 (file)
@@ -59,6 +59,7 @@ public:
        void clear_selected_edits();
        int clear_hard_edges(double start, double end);
        void get_selected_edits(ArrayList<Edit*> *drag_edits);
+       void select_edits(double start, double end);
        int next_group_id();
        int new_group(int id);
        int set_group_selected(int id, int v);
index 9f54f5688efd74fc697cc2607b9a12bf603bf69d..4c0c7730c69e3a71a718b6e6530fb4fb5a8e7ef5 100644 (file)
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>  - load tool</font></td>
-               <td align="left"><font face="Liberation Serif" size=4>'Alt-a'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Ctrl-a'</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Selects all files</font></td>
        </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>  - load tool</font></td>
-               <td align="left"><font face="Liberation Serif" size=4>'Alt-z'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Ctrl-z'</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Deselects any selected files</font></td>
        </tr>
        <tr>
                <td align="left"><font face="Liberation Serif" size=4>'s'</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Save project</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Save</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Ctrl-s'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Save project</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>Save As…</font></td>
                <td align="left"><font face="Liberation Serif" size=4>'z'</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Undo from history previous operation</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><b><font face="Liberation Serif" size=4>    Edit</font></b></td>
+               <td align="left"><font face="Liberation Serif" size=4>Undo clear</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Ctrl-z'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Undo from history previous operation</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4>    Pulldown</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Redo</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Alt-e</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Bring up the Transcode menu</font></td>
        </tr>
+       <tr>
+               <td height="26" align="right"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Align cursor on frames</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Ctrl-a</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Toggle Align cursor on frames</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
-               <td align="left"><font face="Liberation Serif" size=4>Save settings</font></td>
-               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Save settings now</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Ctrl-Shift-S</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Save Cinelerra_rc</font></td>
        </tr>
        <tr>
         </tr>
         <tr>
                 <td height="26" align="left"><b><font face="Liberation Serif" size=4>     Edits </font></b></td>
+                <td align="left"><font face="Liberation Serif" size=4>Select Edits</font></td>
+                <td align="left"><font face="Liberation Serif" size=4>Ctrl-Alt-a</font></td>
+                <td align="left"><font face="Liberation Serif" size=4>Add highlighted to selected edits</font></td>
+        </tr>
+        <tr>
+                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                 <td align="left"><font face="Liberation Serif" size=4>Copy</font></td>
                 <td align="left"><font face="Liberation Serif" size=4>Ctrl-c</font></td>
                 <td align="left"><font face="Liberation Serif" size=4>Copy selected edits into copy buffer</font></td>
         <tr>
                 <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                 <td align="left"><font face="Liberation Serif" size=4>Cut Pack</font></td>
-                <td align="left"><font face="Liberation Serif" size=4>Ctrl-z</font></td>
+                <td align="left"><font face="Liberation Serif" size=4>Ctrl-Alt-z</font></td>
                 <td align="left"><font face="Liberation Serif" size=4>Delete selected edits/put in buffer/collapse</font></td>
         </tr>
         <tr>
index a5f92148ce5d6103a07278fb213684d3ec9736cd..845a25453dd68c496cca04b2e31228efb442d941 100644 (file)
@@ -20,8 +20,8 @@ agate
 #ainterleave
 #alimiter
 allpass
-#allrgb
-#allyuv
+allrgb
+allyuv
 aloop
 #alphaextract ###Operation not permitted
 #alphamerge ###Input/output error
@@ -71,7 +71,7 @@ boxblur
 #buffer size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1 ###Invalid argument
 #buffersink ###Input/output error
 bwdif
-#cellauto p=@:s=100x400:full=0:rule=18
+cellauto p=@:s=100x400:full=0:rule=18
 #channelmap 1|2|0|5|3|4:5.1 ###Invalid argument
 #channelsplit ###Operation not permitted
 chorus in_gain=0.400000:out_gain=0.400000:delays=1|1:decays=1|1:speeds=1|1:depths=1|1
@@ -87,8 +87,8 @@ colorspace iall=smpte170m:all=bt709
 compand
 compensationdelay
 #concat ###Operation not permitted
-#convolution 0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0
-#copy
+#convolution ###Invalid argument
+#copy ###not appropriate
 cover_rect
 crop
 cropdetect
@@ -133,11 +133,11 @@ fillborders
 #firequalizer delay=0.1:fixed=on:zero_phase=on
 flanger
 format pix_fmts=yuv420p|yuv444p|yuv410p
-#fps 30
+#fps 30 ###not appropriate
 #framepack ###Input/output error
 framerate
 framestep step=30
-#freezedetect
+#freezedetect ###not appropriate
 fspp
 gblur
 #geq ###Invalid argument
@@ -153,9 +153,9 @@ hqdn3d
 hqx
 #hstack ###Operation not permitted
 hue
-#hwdownload
-#hwmap
-#hwupload
+#hwdownload ###Operation not permitted
+#hwmap ###Input/output error
+#hwupload ###Operation not permitted
 #hwupload_cuda
 #hysteresis ###Input/output error
 idet
@@ -191,28 +191,28 @@ nlmeans r=15:p=7:s=2
 #nnedi ###Invalid argument
 #noformat ###not part of frame data
 noise
-#null
+#null ###not appropriate
 #nullsink ###Input/output error
 #nullsrc
 #overlay x=main_w-overlay_w-10:y=main_h-overlay_h-10 ###Input/output error
 owdenoise
 pad
-#palettegen
+#palettegen ###Resource temporarily unavailable
 #paletteuse ###Input/output error
 pan 1c|c0=0.9*c0+0.1*c1
 perms
 perspective
 phase
-#pixdesctest
+#pixdesctest ###not appropriate
 pp
 pp7
 #premultiply ###Operation not permitted
 prewitt
 #procamp_vaapi ###Operation not permitted
 #psnr PSNR=10*log10(MAX^2/MSE) ###Input/output error
-#pullup
-#qp     ###not part of frame data
-#random seed=-1
+pullup
+#qp     ###Operation not permitted
+#random seed =-1 ###Resource temporarily unavailable
 readeia608
 readvitc
 realtime
@@ -221,7 +221,7 @@ removegrain
 #removelogo ###Invalid argument
 repeatfields
 #replaygain
-#reverse
+#reverse ###Resource temporarily unavailable
 rgbtestsrc
 rotate
 sab
@@ -230,14 +230,14 @@ scale 200:100
 #scale_vaapi ###Operation not permitted
 #scale2ref ###Input/output error
 #select ###Operation not permitted
-#selectivecolor greens=.5 0 -.33 0:blues=0 .27
+selectivecolor greens=.5 0 -.33 0:blues=0 .27
 #sendcmd ###Invalid argument
 separatefields
 #setdar   ###will not work because Format already set
 #setfield ###not part of frame data
 #setpts   ###not part of frame data
 #setsar   ###will not work because Format already set
-#settb
+#settb ###not appropriate
 #sharpness_vaapi ###Operation not permitted
 #showcqt ###Input/output error
 #showfreqs ###Input/output error
@@ -327,8 +327,8 @@ roberts
 #superequalizer
 #surround
 tlut2
-#tonemap
-#vmafmotion
+tonemap
+#vmafmotion ###not appropriate
 ; new in 4.0
 acontrast
 #afir ###Operation not permitted
index 9c5e8a1be05f57f1de3564f865af574114bf50a2..cfd4235cb8f2033a5cf14fe6c747a8d71ea1deef 100644 (file)
@@ -243,6 +243,8 @@ Zoom Blur:  Blur the video and use a zoom effect.
 #
 #  Description of FFmpeg Video Plugins
 #
+F_allrgb:      Generate all rgb colors.
+F_allyuv:      Generate all yuv colors.
 F_addroi:      Mark a region of interest in a video frame.
 F_amplify:     Amplify changes between successive video frames.
 F_atadenoise:  Apply an Adaptive Temporal Averaging Denoiser.
@@ -258,7 +260,9 @@ F_boxblur:  Blurs the input video. Through the settings you are
                able to change the power and the radius of the
                boxblur applied to luma, chroma and alpha.
 F_bwdif:       Deinterlaces the input image.
-F_cas:         Apply Contrast Adaptive Sharpen filter to video. 
+F_cas:         Apply Contrast Adaptive Sharpen filter to video.
+F_cellauto:    Create pattern generated by an elementart cellular
+               automaton.
 F_chromahold:  Turns a certain color range into gray.
 F_chromakey:   Turns a certain color into transparency. Operates on
                YUV colors.
@@ -363,6 +367,7 @@ F_mcdeint:  Applies motion compensating deinterlacing.
 F_median:      Pick median pixel from rectangle defined by radius.
 F_mestimate:   Generate motion vectors.
 F_metadata:    Manipulate video frame metadata.
+F_minterpolate:        Frame rate conversion using Motion Interpolation.
 F_mpdecimate:  Remove near-duplicate frames.
 F_mptestsrc:   Generate various test pattern.
 F_negate:      Negates input video.
@@ -392,6 +397,7 @@ F_pp:               Filters video using libpostproc.
 F_pp7:         Applies Postprocessing 7 filter.
 F_prewitt:     Apply prewitt operator.
 F_pseudocolor: Make pseudocolored video frames.
+F_pullup:      Pullup from field sequence to frames.
 F_readeia608:  Read EIA-608 Closed Caption codes from
                input video and write them to frame metadata.
 F_readvitc:    Reads vertical interval timecode and writes it to
@@ -414,6 +420,7 @@ F_scale_cuda:       GPU accelerated video resizer.
 F_scdet:       Detect video scene change.
 F_scroll:      Scroll input video horizontally and/or vertically
                by constant speed.
+F_selectivecolor: Apply cmyk adjustments to specific color ranges.
 F_separatefields: Split input video frames into fields.
 F_setparams:   Force field, or color property for the output video
                frame.
@@ -449,6 +456,7 @@ F_tlut2:    Compute and apply a lookup table from two
                successive frames.
 F_tmedian:     Pick median pixels from successive frames.
 F_tmix:                Mix successive video frames.
+F_tonemap:     Conversion to/from different dynamic ranges.
 F_transpose:   Transposes input video.
 F_transpose_vaapi: VAAPI VPP for transpose.
 F_unsharp:     Sharpen or blur the input video.
index 1f58c67a0005b05f6212502aa2d050e53dbdbcc4..c080f1b8f8fac8ab29b94a9e82e1efa404fcae52 100644 (file)
@@ -7,6 +7,13 @@ Cinfinity icons selected in Preferences Sam (CC BY 3.0,
 Cakewalk and Neophyte themes by Olaf Wolff (CC BY 4.0,
   https://creativecommons.org/licenses/by/4.0/)
 .
+August 2020 New Features of note:
+  Bump Autos new feature; especially useful for speed.
+  Language preference now in Settings->Preferences.
+  Align Timecodes time-reference added as an improvement.
+  Ctrl-s and Ctrl-z more standard usage implemented.
+  Added drag speed highlighting for easier usage of auto.
+  Option and shortcut to select multiple edits.
 July 2020 New Features of note:
   Align Timecodes for various timecodes/stamps is available.
   FFmpeg plugins will have changes take effect when use Enter.
index 7bcbb2cf0c26d2a575e57d00b33485393d836ecc..8671672ce6d2fb4c7d1496790ecc64110f9c9db3 100644 (file)
Binary files a/cinelerra-5.1/plugins/theme_suv/data/span_off.png and b/cinelerra-5.1/plugins/theme_suv/data/span_off.png differ