user20442: The pattern for dropping frames in 29.97 drop-frame SMPTE timecode is well documented (2 frames at every minute except when minute is a multiple of 10).
I was wondering how it works with 59.94 fps drop-frame timecode? I guess it needs to be twice the amount of frames dropped, but what is the exact pattern?

user1871: Apparently, the frames are dropped at the same cadence, but with double frequency.
From FFmpeg's timecode drop function,
if (fps == 30) {
    drop_frames = 2;
    frames_per_10mins = 17982;
} else if (fps == 60) {
    drop_frames = 4;
    frames_per_10mins = 35964;
} 
....
d = framenum / frames_per_10mins;
m = framenum % frames_per_10mins;

return framenum + 9*drop_frames*d + drop_frames*((m - drop_frames)/(frames_per_10mins/10));

and the string is
ff = framenum % fps;
ss = framenum / fps      % 60;
mm = framenum / (fps*60) % 60;
hh = framenum / (fps*3600) % 24;


20442: <p>The pattern for dropping frames in 29.97 drop-frame SMPTE timecode is well documented (2 frames at every minute except when minute is a multiple of 10).</p>

<p>I was wondering how it works with 59.94 fps drop-frame timecode? I guess it needs to be twice the amount of frames dropped, but what is the exact pattern?</p>
 1871: <p>Apparently, the frames are dropped at the same cadence, but with double frequency.</p>

<p>From FFmpeg's timecode drop function,</p>

<pre><code>if (fps == 30) {
    drop_frames = 2;
    frames_per_10mins = 17982;
} else if (fps == 60) {
    drop_frames = 4;
    frames_per_10mins = 35964;
} 
....
d = framenum / frames_per_10mins;
m = framenum % frames_per_10mins;

return framenum + 9*drop_frames*d + drop_frames*((m - drop_frames)/(frames_per_10mins/10));
</code></pre>

<p>and the string is</p>

<pre><code>ff = framenum % fps;
ss = framenum / fps      % 60;
mm = framenum / (fps*60) % 60;
hh = framenum / (fps*3600) % 24;
</code></pre>
