2.4.9 Timecode/Timecode user bits¶
The capture and output of VITC and RP188 timecodes are supported on certain DeckLink models. VITC timecodes are only supported with SD video modes. On non-4K DeckLink devices, RP188 timecodes are only supported with HD video modes.
To use this feature please refer to the following points:
2.4.9.1 Timecode Capture¶
An application performing timecode capture should perform the following steps. For an example of timecode capture please refer to the CapturePreview sample application in the DeckLink SDK.
For HDMI capture, call
IDeckLinkProfileAttributes::GetFlag()
usingBMDDeckLinkSupportsHDMITimecode
to check that the DeckLink hardware supports HDMI timecode.
While streams are running:
Receive calls to
IDeckLinkInputCallback::VideoInputFrameArrived()
with video frame and corresponding audio packet.Call
IDeckLinkVideoInputFrame::GetTimecode()
IDeckLinkTimecode::GetTimecodeUserBits()
(User bits are not supported for HDMI timecode).
2.4.9.2 Timecode Output¶
An application performing timecode output should perform the following steps. For an example of timecode output please refer to the SignalGenerator sample application in the DeckLink SDK.
For HDMI output, call
IDeckLinkProfileAttributes::GetFlag()
usingBMDDeckLinkSupportsHDMITimecode
to check that the DeckLink hardware supports HDMI timecode.Call
IDeckLinkOutput::EnableVideoOutput()
with eitherbmdVideoOutputVITC
orbmdVideoOutputRP188
.
While more frames or audio need to be pre-rolled:
Create video frames with
IDeckLinkOutput::CreateVideoFrame()
orIDeckLinkOutput::CreateVideoFrameWithBuffer()
.Set the timecode into the frame with
IDeckLinkMutableVideoFrame::SetTimecode()
orIDeckLinkMutableVideoFrame::SetTimecodeFromComponents()
.Return audio data from
IDeckLinkAudioOutputCallback::RenderAudioSamples()
. When audio preroll is complete, callIDeckLinkOutput::EndAudioPreroll()
.
While playback is running:
Create video frames and set the timecode.
Schedule more video frames from
IDeckLinkVideoOutputCallback::ScheduledFrameCompleted()
.Schedule more audio from
IDeckLinkAudioOutputCallback::RenderAudioSamples()
.