From: Good Guy Date: Sat, 30 Dec 2017 17:24:04 +0000 (-0700) Subject: mixer undo fix, new ffmpeg opts, docs X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=commitdiff_plain;h=a88121d876acc81c5a28dbd2cc71e7c6856e2ac0 mixer undo fix, new ffmpeg opts, docs --- diff --git a/cinelerra-5.1/cinelerra/assetpopup.C b/cinelerra-5.1/cinelerra/assetpopup.C index bb0e2a33..cd3c703b 100644 --- a/cinelerra-5.1/cinelerra/assetpopup.C +++ b/cinelerra-5.1/cinelerra/assetpopup.C @@ -300,39 +300,9 @@ AssetPopupMixer::~AssetPopupMixer() int AssetPopupMixer::handle_event() { - ArrayListnew_mixers; - - mwindow->select_zwindow(0); - for( int i=0; isession->drag_assets->total; ++i ) { - Indexable *indexable = mwindow->session->drag_assets->values[i]; - ArrayList new_assets; - new_assets.append(indexable); - Track *track = mwindow->edl->tracks->last; - mwindow->load_assets(&new_assets, -1, LOADMODE_NEW_TRACKS, 0, 0, 0, 0, 0, 0); - track = !track ? mwindow->edl->tracks->first : track->next; - Mixer *mixer = 0; - ZWindow *zwindow = mwindow->get_mixer(mixer); - while( track ) { - track->play = track->record = 0; - if( track->data_type == TRACK_VIDEO ) { - sprintf(track->title, _("Mixer %d"), zwindow->idx); - } - mixer->mixer_ids.append(track->get_mixer_id()); - track = track->next; - } - char *path = indexable->path; - char *tp = strrchr(path, '/'); - if( !tp ) tp = path; else ++tp; - zwindow->set_title(tp); - new_mixers.append(zwindow); - } - - mwindow->tile_mixers(); - for( int i=0; istart(); - - mwindow->refresh_mixers(); - mwindow->resync_guis(); + mwindow->gui->lock_window("AssetPopupMixer::handle_event"); + mwindow->create_mixers(); + mwindow->gui->unlock_window(); return 1; } diff --git a/cinelerra-5.1/cinelerra/mainundo.C b/cinelerra-5.1/cinelerra/mainundo.C index 4e7a6fca..7890343d 100644 --- a/cinelerra-5.1/cinelerra/mainundo.C +++ b/cinelerra-5.1/cinelerra/mainundo.C @@ -293,6 +293,8 @@ int MainUndo::redo() // Here the master EDL loads int MainUndo::load_from_undo(FileXML *file, uint32_t load_flags) { + if( load_flags & LOAD_SESSION ) + mwindow->close_mixers(); mwindow->edl->load_xml(file, load_flags); for(Asset *asset = mwindow->edl->assets->first; asset; @@ -308,6 +310,8 @@ int MainUndo::load_from_undo(FileXML *file, uint32_t load_flags) } mwindow->mainindexes->start_build(); mwindow->update_plugin_guis(1); + if( load_flags & LOAD_SESSION ) + mwindow->open_mixers(); return 0; } diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index 9bab2c61..4c875c97 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -1273,6 +1273,50 @@ void MWindow::close_mixers() } } +void MWindow::create_mixers() +{ + if( !session->drag_assets->size() ) return; + undo->update_undo_before(); + + select_zwindow(0); + ArrayListnew_mixers; + + for( int i=0; idrag_assets->total; ++i ) { + Indexable *indexable = session->drag_assets->values[i]; + ArrayList new_assets; + new_assets.append(indexable); + Track *track = edl->tracks->last; + load_assets(&new_assets, -1, LOADMODE_NEW_TRACKS, 0, 0, 0, 0, 0, 0); + track = !track ? edl->tracks->first : track->next; + Mixer *mixer = 0; + ZWindow *zwindow = get_mixer(mixer); + while( track ) { + track->play = track->record = 0; + if( track->data_type == TRACK_VIDEO ) { + sprintf(track->title, _("Mixer %d"), zwindow->idx); + } + mixer->mixer_ids.append(track->get_mixer_id()); + track = track->next; + } + char *path = indexable->path; + char *tp = strrchr(path, '/'); + if( !tp ) tp = path; else ++tp; + zwindow->set_title(tp); + new_mixers.append(zwindow); + } + + tile_mixers(); + for( int i=0; istart(); + + refresh_mixers(); + save_backup(); + undo->update_undo_after(_("create mixers"), LOAD_ALL); + restart_brender(); + gui->update(1, 2, 1, 1, 1, 1, 0); + sync_parameters(CHANGE_ALL); +} + void MWindow::open_mixers() { for( int i=0; imixers.size(); ++i ) { diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index ef4ca955..12dac24f 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -206,6 +206,7 @@ public: void queue_mixers(EDL *edl, int command, int wait_tracking, int use_inout, int update_refresh, int toggle_audio); + void create_mixers(); void refresh_mixers(); void stop_mixers(); void close_mixers(); diff --git a/cinelerra-5.1/cinelerra/mwindowedit.C b/cinelerra-5.1/cinelerra/mwindowedit.C index c0dcd61d..c569c920 100644 --- a/cinelerra-5.1/cinelerra/mwindowedit.C +++ b/cinelerra-5.1/cinelerra/mwindowedit.C @@ -1862,7 +1862,6 @@ void MWindow::redo_entry(BC_WindowBase *calling_window_gui) { calling_window_gui->unlock_window(); stop_playback(0); - close_mixers(); cwindow->gui->lock_window("MWindow::redo_entry 1"); for( int i = 0; i < vwindows.size(); i++ ) { @@ -1897,7 +1896,6 @@ void MWindow::redo_entry(BC_WindowBase *calling_window_gui) if( calling_window_gui != gui ) gui->unlock_window(); - open_mixers(); awindow->gui->async_update_assets(); cwindow->refresh_frame(CHANGE_ALL); @@ -2176,7 +2174,6 @@ void MWindow::undo_entry(BC_WindowBase *calling_window_gui) { calling_window_gui->unlock_window(); stop_playback(0); - close_mixers(); cwindow->gui->lock_window("MWindow::undo_entry 1"); for( int i = 0; i < vwindows.size(); i++ ) { @@ -2213,7 +2210,6 @@ void MWindow::undo_entry(BC_WindowBase *calling_window_gui) awindow->gui->async_update_assets(); - open_mixers(); cwindow->refresh_frame(CHANGE_ALL); calling_window_gui->lock_window("MWindow::undo_entry 4"); } diff --git a/cinelerra-5.1/doc/Features5.pdf b/cinelerra-5.1/doc/Features5.pdf index 752ba304..778e7942 100644 Binary files a/cinelerra-5.1/doc/Features5.pdf and b/cinelerra-5.1/doc/Features5.pdf differ diff --git a/cinelerra-5.1/ffmpeg/audio/mkv.dfl b/cinelerra-5.1/ffmpeg/audio/mkv.dfl index f4dda749..ebbbaad7 100644 --- a/cinelerra-5.1/ffmpeg/audio/mkv.dfl +++ b/cinelerra-5.1/ffmpeg/audio/mkv.dfl @@ -1 +1 @@ -u2b.mkv +opus.mkv diff --git a/cinelerra-5.1/ffmpeg/audio/mov.dfl b/cinelerra-5.1/ffmpeg/audio/mov.dfl new file mode 100644 index 00000000..b284da93 --- /dev/null +++ b/cinelerra-5.1/ffmpeg/audio/mov.dfl @@ -0,0 +1 @@ +mov.mov diff --git a/cinelerra-5.1/ffmpeg/audio/mov.mov b/cinelerra-5.1/ffmpeg/audio/mov.mov new file mode 100644 index 00000000..207c7b64 --- /dev/null +++ b/cinelerra-5.1/ffmpeg/audio/mov.mov @@ -0,0 +1 @@ +mov libfdk_aac diff --git a/cinelerra-5.1/ffmpeg/audio/u2b.mkv b/cinelerra-5.1/ffmpeg/audio/u2b.mkv deleted file mode 100644 index e3dbcb7d..00000000 --- a/cinelerra-5.1/ffmpeg/audio/u2b.mkv +++ /dev/null @@ -1 +0,0 @@ -matroska libvorbis diff --git a/cinelerra-5.1/ffmpeg/video/huffyuv_screencapture.mov b/cinelerra-5.1/ffmpeg/video/huffyuv_screencapture.mov new file mode 100644 index 00000000..b0f201d7 --- /dev/null +++ b/cinelerra-5.1/ffmpeg/video/huffyuv_screencapture.mov @@ -0,0 +1,5 @@ +mov huffyuv +#probesize=100M +#thread_queue_size=512 +#pix_fmt=bgra +pixel_format=bgra diff --git a/cinelerra-5.1/ffmpeg/video/mjpeg_444.qt b/cinelerra-5.1/ffmpeg/video/mjpeg_444.qt new file mode 100644 index 00000000..031ae314 --- /dev/null +++ b/cinelerra-5.1/ffmpeg/video/mjpeg_444.qt @@ -0,0 +1,4 @@ +mov mjpeg +qmax=4 +pixel_format=yuvj444p +threads=3 \ No newline at end of file diff --git a/cinelerra-5.1/ffmpeg/video/mkv.dfl b/cinelerra-5.1/ffmpeg/video/mkv.dfl index f4dda749..489996a7 100644 --- a/cinelerra-5.1/ffmpeg/video/mkv.dfl +++ b/cinelerra-5.1/ffmpeg/video/mkv.dfl @@ -1 +1 @@ -u2b.mkv +vp9_1280x720_24or25or30fps.mkv \ No newline at end of file diff --git a/cinelerra-5.1/ffmpeg/video/mov.dfl b/cinelerra-5.1/ffmpeg/video/mov.dfl new file mode 100644 index 00000000..b284da93 --- /dev/null +++ b/cinelerra-5.1/ffmpeg/video/mov.dfl @@ -0,0 +1 @@ +mov.mov diff --git a/cinelerra-5.1/ffmpeg/video/mov.mov b/cinelerra-5.1/ffmpeg/video/mov.mov new file mode 100644 index 00000000..d0faa352 --- /dev/null +++ b/cinelerra-5.1/ffmpeg/video/mov.mov @@ -0,0 +1,2 @@ +mov mpeg4 +bitrate=1800k diff --git a/cinelerra-5.1/ffmpeg/video/u2b.mkv b/cinelerra-5.1/ffmpeg/video/u2b.mkv deleted file mode 100644 index cf64e073..00000000 --- a/cinelerra-5.1/ffmpeg/video/u2b.mkv +++ /dev/null @@ -1,7 +0,0 @@ -matroska libx264 -preset slow -crf 18 -g 25 -qmin 10 -qmax 51 -qdiff 4 diff --git a/cinelerra-5.1/libzmpeg3/mpeg3.C b/cinelerra-5.1/libzmpeg3/mpeg3.C index 7fa89bec..9f2d2232 100644 --- a/cinelerra-5.1/libzmpeg3/mpeg3.C +++ b/cinelerra-5.1/libzmpeg3/mpeg3.C @@ -658,13 +658,13 @@ mpeg3_skip_video_frame(mpeg3_t *zsrc,int stream) extern "C" int64_t mpeg3_video_tell_byte(mpeg3_t *zsrc, int stream) { - return zsrc->vtrack[stream]->demuxer->tell_byte(); + return zsrc->vtrack[stream]->demuxer->absolute_position(); } extern "C" int64_t mpeg3_audio_tell_byte(mpeg3_t *zsrc, int stream) { - return zsrc->atrack[stream]->demuxer->tell_byte(); + return zsrc->atrack[stream]->demuxer->absolute_position(); } #ifdef ZDVB diff --git a/cinelerra-5.1/msg/txt b/cinelerra-5.1/msg/txt index 785aa98d..862a6326 100644 --- a/cinelerra-5.1/msg/txt +++ b/cinelerra-5.1/msg/txt @@ -9,6 +9,14 @@ For usage help, refer to the following: Cinfinity icons selected in Preferences (Creative Common By https://creativecommons.org/licenses/by/3.0/) . +December 2017 New Features of note: + Cinfinity Square plugin icons available as new choice. + New Transition picons for a more modern look by Sam. + Libopus included with upgraded ffmpeg to 3.4.1. + HistEq plugin for improved color was added. + BT2020 color space/color range options available. + Grabshot is a new option to do a screen grab. + Added date/time sort to Resources Media/Proxy folder. November 2017 New Features of note: Mixer Viewer for multiple media/cameras was added. Blade cut and hard edges are now available.