Skip to content

Support SMPTE ST12-3 high frame rate variants#66

Merged
eoyilmaz merged 6 commits intoeoyilmaz:developfrom
nickswalker:feature/hfr
Dec 29, 2025
Merged

Support SMPTE ST12-3 high frame rate variants#66
eoyilmaz merged 6 commits intoeoyilmaz:developfrom
nickswalker:feature/hfr

Conversation

@nickswalker
Copy link

This required only minor code changes to handle 119.88 drop frame, but significant additional testing to check correctness.
Closes #37

eoyilmaz and others added 4 commits May 2, 2025 17:19
….88)

- Update `timecode/__init__.py` to handle "119.88" framerate explicitly, setting `_int_framerate` to 120 and enabling drop frame.
- Add support for 72, 96, 100, 120 fps via generic integer handling (verified).
- Add comprehensive tests in `tests/test_timecode.py` for new frame rates, including string representation, frame count, and rollover behavior.
Change names of tests where name didn't
match what was actually tested
@cubicibo
Copy link

You could automate NTSC detection to anything multiple of 23.976 or 29.97. All of the following framerates are valid NTSC rates, some of which can be seen in studios, and occasionally on consumer-grade products.

  • $47.952 \approx \frac{48000}{1001} = 2\frac{24000}{1001}$
  • $71.928 \approx \frac{72000}{1001} = 3\frac{24000}{1001}$
  • $89.91 \approx \frac{90000}{1001} = 3\frac{30000}{1001}$
  • $95.904 \approx \frac{96000}{1001} = 4\frac{24000}{1001}$

and so on. Of course, drop frame does not apply to multiples of 23.976 that aren't a multiple of 29.97 as well. Perhaps 47.952 is the most common of the bunch. TV broadcast of HFR theatrical features (e.g. The Hobbit) are typically rate changed to 47.952 and a pulldown is applied to make them display at 59.94.

@eoyilmaz eoyilmaz changed the base branch from master to develop December 29, 2025 11:01
@eoyilmaz eoyilmaz merged commit cb924ad into eoyilmaz:develop Dec 29, 2025
5 checks passed
@eoyilmaz
Copy link
Owner

Thanks for the PR, merged 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Any plans to add support for high-frame rate timecode frame rates?

3 participants

Comments