X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedl.C;h=3082788c2a85d5d647982ef2eb4b892adcf8cd01;hb=fe4662624d711faab6b406490a64c2382661997e;hp=e167e48ad4477a8006694d67d5cce620c12e444b;hpb=5820b5f022aeec75ec03f7dd0121aa8a3d7f7590;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/edl.C b/cinelerra-5.1/cinelerra/edl.C index e167e48a..3082788c 100644 --- a/cinelerra-5.1/cinelerra/edl.C +++ b/cinelerra-5.1/cinelerra/edl.C @@ -75,9 +75,9 @@ EDL::EDL(EDL *parent_edl) folders.set_array_delete(); - new_folder(CLIP_FOLDER); - - new_folder(MEDIA_FOLDER); +// persistent for now +// new_folder(CLIP_FOLDER); +// new_folder(MEDIA_FOLDER); id = next_id(); path[0] = 0; @@ -1024,7 +1024,7 @@ int EDL::dump(FILE *fp) local_session->loop_end); for(int i = 0; i < TOTAL_PANES; i++) { - fprintf(fp," pane %d view_start=%jd track_start=%jd\n", i, + fprintf(fp," pane %d view_start=%jd track_start=%d\n", i, local_session->view_start[i], local_session->track_start[i]); } @@ -1286,48 +1286,12 @@ void EDL::get_shared_tracks(Track *track, // Convert position to frames if cursor alignment is enabled double EDL::align_to_frame(double position, int round) { -//printf("EDL::align_to_frame 1 %f\n", position); - if(session->cursor_on_frames) - { -// Seconds -> Frames - double temp = (double)position * session->frame_rate; -//printf("EDL::align_to_frame 2 %f\n", temp); - -// Assert some things - if(session->sample_rate == 0) - printf("EDL::align_to_frame: sample_rate == 0\n"); - - if(session->frame_rate == 0) - printf("EDL::align_to_frame: frame_rate == 0\n"); - -// Round frames -// Always round down negative numbers -// but round up only if requested - if(round) - { - temp = Units::round(temp); - } - else - { -// if(temp < 0) -// { -// temp -= 0.5; -// } -// else - temp = Units::to_int64(temp); - } -//printf("EDL::align_to_frame 3 %f\n", temp); - -// Frames -> Seconds - temp /= session->frame_rate; - -//printf("EDL::align_to_frame 5 %f\n", temp); - - return temp; + if( session->cursor_on_frames && session->frame_rate > 0 ) { + double frame_no = position * session->frame_rate; + int64_t frame_pos = frame_no + (round ? 0.5 : 1e-6); + double pos = frame_pos / session->frame_rate; + if( !EQUIV(pos, position) ) position = pos; } -//printf("EDL::align_to_frame 3 %d\n", position); - - return position; } @@ -1464,7 +1428,7 @@ if(debug) printf("EDL::get_use_vconsole %d\n", __LINE__); // Asset and output device must have same resulting de-interlacing method if( ilaceautofixmethod2(session->interlace_mode, asset->interlace_autofixoption, asset->interlace_mode, - asset->interlace_fixmethod) != BC_ILACE_FIXMETHOD_NONE ) + asset->interlace_fixmethod) != ILACE_FIXMETHOD_NONE ) return 1; // If we get here the frame is going to be directly copied. Whether it is