From: Good Guy Date: Sun, 30 Aug 2020 23:01:00 +0000 (-0600) Subject: add ctrl-z for undo, addition 7 ffmpeg plugins activated, add select highlighted... X-Git-Tag: 2020-08~1 X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=commitdiff_plain;h=0678b17975f50a831fb8a1cda6baaa961e3b6de7 add ctrl-z for undo, addition 7 ffmpeg plugins activated, add select highlighted edits, update shortcuts --- diff --git a/cinelerra-5.1/cinelerra/editpopup.C b/cinelerra-5.1/cinelerra/editpopup.C index da9b06ba..60dcafb8 100644 --- a/cinelerra-5.1/cinelerra/editpopup.C +++ b/cinelerra-5.1/cinelerra/editpopup.C @@ -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() diff --git a/cinelerra-5.1/cinelerra/editpopup.h b/cinelerra-5.1/cinelerra/editpopup.h index 2c34be62..ed3fe2f8 100644 --- a/cinelerra-5.1/cinelerra/editpopup.h +++ b/cinelerra-5.1/cinelerra/editpopup.h @@ -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: diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index 954d245a..2f89d2d9 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -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(); diff --git a/cinelerra-5.1/cinelerra/mwindowedit.C b/cinelerra-5.1/cinelerra/mwindowedit.C index eac149e9..7b359ce2 100644 --- a/cinelerra-5.1/cinelerra/mwindowedit.C +++ b/cinelerra-5.1/cinelerra/mwindowedit.C @@ -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(); diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index 34638e18..5f9edd92 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -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; diff --git a/cinelerra-5.1/cinelerra/tracks.C b/cinelerra-5.1/cinelerra/tracks.C index 101e7cdb..73e7706d 100644 --- a/cinelerra-5.1/cinelerra/tracks.C +++ b/cinelerra-5.1/cinelerra/tracks.C @@ -126,6 +126,20 @@ void Tracks::get_selected_edits(ArrayList *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, diff --git a/cinelerra-5.1/cinelerra/tracks.h b/cinelerra-5.1/cinelerra/tracks.h index e839b772..78d1fe59 100644 --- a/cinelerra-5.1/cinelerra/tracks.h +++ b/cinelerra-5.1/cinelerra/tracks.h @@ -59,6 +59,7 @@ public: void clear_selected_edits(); int clear_hard_edges(double start, double end); void get_selected_edits(ArrayList *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); diff --git a/cinelerra-5.1/doc/shortcuts.html b/cinelerra-5.1/doc/shortcuts.html index 9f54f568..4c0c7730 100644 --- a/cinelerra-5.1/doc/shortcuts.html +++ b/cinelerra-5.1/doc/shortcuts.html @@ -57,13 +57,13 @@
- load tool - 'Alt-a' + 'Ctrl-a' Selects all files
- load tool - 'Alt-z' + 'Ctrl-z' Deselects any selected files @@ -72,6 +72,12 @@ 's' Save project + +
+ Save + 'Ctrl-s' + Save project +
Save As… @@ -174,6 +180,12 @@ 'z' Undo from history previous operation + + Edit + Undo clear + 'Ctrl-z' + Undo from history previous operation + Pulldown Redo @@ -552,10 +564,16 @@ Alt-e Bring up the Transcode menu + +
+ Align cursor on frames + Ctrl-a + Toggle Align cursor on frames +
- Save settings -
+ Save settings now + Ctrl-Shift-S Save Cinelerra_rc @@ -1154,6 +1172,12 @@ Edits + Select Edits + Ctrl-Alt-a + Add highlighted to selected edits + + +
Copy Ctrl-c Copy selected edits into copy buffer @@ -1185,7 +1209,7 @@
Cut Pack - Ctrl-z + Ctrl-Alt-z Delete selected edits/put in buffer/collapse diff --git a/cinelerra-5.1/ffmpeg/plugin.opts b/cinelerra-5.1/ffmpeg/plugin.opts index a5f92148..845a2545 100644 --- a/cinelerra-5.1/ffmpeg/plugin.opts +++ b/cinelerra-5.1/ffmpeg/plugin.opts @@ -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 diff --git a/cinelerra-5.1/info/plugins.txt b/cinelerra-5.1/info/plugins.txt index 9c5e8a1b..cfd4235c 100644 --- a/cinelerra-5.1/info/plugins.txt +++ b/cinelerra-5.1/info/plugins.txt @@ -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. diff --git a/cinelerra-5.1/msg/txt b/cinelerra-5.1/msg/txt index 1f58c67a..c080f1b8 100644 --- a/cinelerra-5.1/msg/txt +++ b/cinelerra-5.1/msg/txt @@ -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. diff --git a/cinelerra-5.1/plugins/theme_suv/data/span_off.png b/cinelerra-5.1/plugins/theme_suv/data/span_off.png index 7bcbb2cf..8671672c 100644 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