diff options
Diffstat (limited to 'libs/timecode/src/time.cc')
-rw-r--r-- | libs/timecode/src/time.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libs/timecode/src/time.cc b/libs/timecode/src/time.cc index 10dfd2fb59..b39da34d6d 100644 --- a/libs/timecode/src/time.cc +++ b/libs/timecode/src/time.cc @@ -623,6 +623,24 @@ std::string timecode_format_sampletime ( return timecode_format_time(t); } +bool parse_timecode_format(std::string tc, Timecode::Time &TC) { + char negative[2]; + char ignored[2]; + TC.subframes = 0; + if (sscanf (tc.c_str(), "%[- ]%" PRId32 ":%" PRId32 ":%" PRId32 "%[:;]%" PRId32, + negative, &TC.hours, &TC.minutes, &TC.seconds, ignored, &TC.frames) != 6) { + TC.hours = TC.minutes = TC.seconds = TC.frames = 0; + TC.negative = false; + return false; + } + if (negative[0]=='-') { + TC.negative = true; + } else { + TC.negative = false; + } + return true; +} + void timecode_to_sample( Timecode::Time& timecode, int64_t& sample, |