nested clips, big rework and cleanup, sams new icons, leaks and tweaks
[goodguy/history.git] / cinelerra-5.1 / cinelerra / dvdcreate.C
index 46990386f35bc7a697dff0bfad6e52e32a5a5916..1014baf5e2368312a739e01b0d5bac51aedcbc76 100644 (file)
@@ -194,6 +194,8 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs, const ch
                        fprintf(fp, "ffmpeg -f concat -safe 0 -i <(for f in \"$1/dvd.mpg0\"*; do "
                                        "echo \"file '$f'\"; done) -c copy -y $1/dvd.mpg\n");
        }
+       else
+               fprintf(fp, "mplex -f 8 -o $1/dvd.mpg $1/dvd.m2v $1/dvd.ac3\n");
        fprintf(fp,"rm -rf $1/iso\n");
        fprintf(fp,"mkdir -p $1/iso\n");
        fprintf(fp,"\n");
@@ -248,24 +250,13 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs, const ch
        fprintf(fp,"\n");
        fclose(fp);
 
-       if( use_wide_audio ) {
-               session->audio_channels = session->audio_tracks = DVD_WIDE_CHANNELS;
-               session->achannel_positions[0] = 90;
-               session->achannel_positions[1] = 150;
-               session->achannel_positions[2] = 30;
-               session->achannel_positions[3] = 210;
-               session->achannel_positions[4] = 330;
-               session->achannel_positions[5] = 270;
-               if( edl->tracks->recordable_audio_tracks() == DVD_WIDE_CHANNELS )
-                       mwindow->remap_audio(MWindow::AUDIO_1_TO_1);
-       }
-       else {
-               session->audio_channels = session->audio_tracks = DVD_CHANNELS;
-               session->achannel_positions[0] = 180;
-               session->achannel_positions[1] = 0;
-               if( edl->tracks->recordable_audio_tracks() == DVD_WIDE_CHANNELS )
-                       mwindow->remap_audio(MWindow::AUDIO_5_1_TO_2);
-       }
+       session->audio_channels = session->audio_tracks =
+               !use_wide_audio ? DVD_CHANNELS : DVD_WIDE_CHANNELS;
+       for( int i=0; i<MAX_CHANNELS; ++i )
+               session->achannel_positions[i] = default_audio_channel_position(i, session->audio_channels);
+       int audio_mapping = edl->tracks->recordable_audio_tracks() == DVD_WIDE_CHANNELS &&
+               !use_wide_audio ? MWindow::AUDIO_5_1_TO_2 : MWindow::AUDIO_1_TO_1;
+       mwindow->remap_audio(audio_mapping);
 
        double new_samplerate = session->sample_rate;
        double new_framerate = session->frame_rate;
@@ -284,7 +275,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs, const ch
        char xml_filename[BCTEXTLEN];
        sprintf(xml_filename, "%s/dvd.xml", asset_dir);
        FileXML xml_file;
-       edl->save_xml(&xml_file, xml_filename, 0, 0);
+       edl->save_xml(&xml_file, xml_filename);
        xml_file.terminate_string();
        if( xml_file.write_to_file(xml_filename) ) {
                char msg[BCTEXTLEN];