How do you capture discontinuous non-ascending timecode?

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message
Offline

Betamale

  • Posts: 1
  • Joined: Fri Dec 22, 2023 10:23 am
  • Real Name: Steven Snedker

How do you capture discontinuous non-ascending timecode?

PostFri Jan 12, 2024 10:40 am

My old tapes have discontinuous, non-ascending timecode. Is it possible to capture it correctly tweaking the SDK?

Setup
Video and audio is coming thorough the Blackmagic MiniConverter Analog to SDI fine
Image
The timecode is coming through perfectly over the RS422-cable and BlackMagic Media Express is displaying it on top of the video:
Image

Timecode on tape
I may have three segments on a tape in this sequence

Segment 1: timecode 00:20:00 to 00:21:00
Segment 2: timecode 00:10:00 to 00:11:00
Segment 3: timecode 00:40:00 to 00:41:00

During capture the timecodes are accurately displayed by on screen by BlackMagic Media Express.

Yet, when the capture is saved as ProRes, BlackMagic Media Express saves a very simple timecode stream:

Format": "QuickTime TC",
"Duration": "17.240",
"FrameRate": "25.000",
"TimeCode_FirstFrame": "00:20:00:00",

What I would ideally like is a stream/track/file with this data:

Code: Select all
Framecount - Timecode
0 - 00:20:00
3170 - 00:10:00
6200 - 00:40:00


I've read that BlackMagic Media Express does not record ancilllary data. But I'm wondering if it can be persuaded. What do you do?

Code
In /Blackmagic DeckLink SDK 12.7/Linux/Samples/Capture/Capture.cpp
there are bits like

Code: Select all
 if (videoFrame->GetTimecode(g_config.m_timecodeFormat, &timecode) == S_OK)
    {
     timecode->GetString(&timecodeString);
    }


and

Code: Select all
 videoFrame->GetBytes(&frameBytes);
    write(g_videoOutputFile, frameBytes, videoFrame->GetRowBytes() * videoFrame->GetHeight());


Would a correctly placed

Code: Select all
write(g_timecodeOutputFile, timecodeString);

actually record the discontinuous non-ascending timecode correctly?

Of course g_timecodeOutputFile should somewhere be defined as g_videoOutputFile+”timecode”.extension
I.e tape003.mov would have tape003timecodes.txt as a companion file.

Do you think there is an elegant software solution here?

Hardware
Years ago experts discussed various hardware solutions viewtopic.php?f=4&t=92253 . I've also heard that a Teranex Mini Audio to SDI 12G might be able to turn a Right Audio Timecode into a LTC which can be embedded in the mov-file. But I'm not sure how it would handle discontinous timecodes.

The software solution seems much better. The correct timecode is being shown - it's just not being recorded along with the video and sound.

Any help and pointers appreciated.

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 15 guests