- last_smpte_valid = false;
- // smpte type bits are the middle two in the upper nibble
- switch ((int) ceil (fps)) {
+ break;
+ case timecode_25:
+ return false;
+
+ break;
+ case timecode_2997:
+ return false;
+
+ break;
+ case timecode_2997drop:
+ return true;
+
+ break;
+ case timecode_30:
+ return false;
+
+ break;
+ case timecode_30drop:
+ return true;
+
+ break;
+ case timecode_5994:
+ return false;
+
+ break;
+ case timecode_60:
+ return false;
+
+ break;
+ default:
+ error << "Editor received unexpected timecode type" << endmsg;
+ }
+
+ return false;
+}
+void
+Session::sync_time_vars ()
+{
+ _current_frame_rate = (nframes_t) round (_base_frame_rate * (1.0 + (config.get_video_pullup()/100.0)));
+ _frames_per_timecode_frame = (double) _current_frame_rate / (double) timecode_frames_per_second();
+ if (timecode_drop_frames()) {
+ _frames_per_hour = (int32_t)(107892 * _frames_per_timecode_frame);
+ } else {
+ _frames_per_hour = (int32_t)(3600 * rint(timecode_frames_per_second()) * _frames_per_timecode_frame);
+ }
+ _timecode_frames_per_hour = (nframes_t)rint(timecode_frames_per_second() * 3600.0);
+
+ last_timecode_valid = false;
+ // timecode type bits are the middle two in the upper nibble
+ switch ((int) ceil (timecode_frames_per_second())) {