{
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));
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')
{
}
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()
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:
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();
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();
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;
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;
}
}
+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,
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);
<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>
#ainterleave
#alimiter
allpass
-#allrgb
-#allyuv
+allrgb
+allyuv
aloop
#alphaextract ###Operation not permitted
#alphamerge ###Input/output error
#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
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
#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
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
#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
#removelogo ###Invalid argument
repeatfields
#replaygain
-#reverse
+#reverse ###Resource temporarily unavailable
rgbtestsrc
rotate
sab
#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
#superequalizer
#surround
tlut2
-#tonemap
-#vmafmotion
+tonemap
+#vmafmotion ###not appropriate
; new in 4.0
acontrast
#afir ###Operation not permitted
#
# 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.
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.
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.
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
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.
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.
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.