int AssetPopupMixer::handle_event()
{
- ArrayList<ZWindow *>new_mixers;
-
- mwindow->select_zwindow(0);
- for( int i=0; i<mwindow->session->drag_assets->total; ++i ) {
- Indexable *indexable = mwindow->session->drag_assets->values[i];
- ArrayList<Indexable*> 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; i<new_mixers.size(); ++i )
- new_mixers[i]->start();
-
- mwindow->refresh_mixers();
- mwindow->resync_guis();
+ mwindow->gui->lock_window("AssetPopupMixer::handle_event");
+ mwindow->create_mixers();
+ mwindow->gui->unlock_window();
return 1;
}
// 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;
}
mwindow->mainindexes->start_build();
mwindow->update_plugin_guis(1);
+ if( load_flags & LOAD_SESSION )
+ mwindow->open_mixers();
return 0;
}
}
}
+void MWindow::create_mixers()
+{
+ if( !session->drag_assets->size() ) return;
+ undo->update_undo_before();
+
+ select_zwindow(0);
+ ArrayList<ZWindow *>new_mixers;
+
+ for( int i=0; i<session->drag_assets->total; ++i ) {
+ Indexable *indexable = session->drag_assets->values[i];
+ ArrayList<Indexable*> 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; i<new_mixers.size(); ++i )
+ new_mixers[i]->start();
+
+ 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; i<edl->mixers.size(); ++i ) {
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();
{
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++ ) {
if( calling_window_gui != gui )
gui->unlock_window();
- open_mixers();
awindow->gui->async_update_assets();
cwindow->refresh_frame(CHANGE_ALL);
{
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++ ) {
awindow->gui->async_update_assets();
- open_mixers();
cwindow->refresh_frame(CHANGE_ALL);
calling_window_gui->lock_window("MWindow::undo_entry 4");
}
--- /dev/null
+mov libfdk_aac
+++ /dev/null
-matroska libvorbis
--- /dev/null
+mov huffyuv
+#probesize=100M
+#thread_queue_size=512
+#pix_fmt=bgra
+pixel_format=bgra
--- /dev/null
+mov mjpeg
+qmax=4
+pixel_format=yuvj444p
+threads=3
\ No newline at end of file
-u2b.mkv
+vp9_1280x720_24or25or30fps.mkv
\ No newline at end of file
--- /dev/null
+mov mpeg4
+bitrate=1800k
+++ /dev/null
-matroska libx264
-preset slow
-crf 18
-g 25
-qmin 10
-qmax 51
-qdiff 4
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
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.