Skip to content

Instantly share code, notes, and snippets.

@wiiaboo
Created December 28, 2010 18:56
Show Gist options
  • Save wiiaboo/757551 to your computer and use it in GitHub Desktop.
Save wiiaboo/757551 to your computer and use it in GitHub Desktop.
CorrectNTSCRationalFramerate() port
from fractions import Fraction
from math import floor
class AVRational:
num = 1
den = 1
def av_q2d(rational):
return float(Fraction(rational.num,rational.den))
def CorrectNTSCRationalFramerate(num,den):
TempFPS = AVRational
TempFPS.num = den
TempFPS.den = num
if TempFPS.num == 1:
Num = TempFPS.den
Den = TempFPS.num
else:
FTimebase = av_q2d(TempFPS)
NearestNTSC = floor(FTimebase * 1001 + 0.5) / 1001
SmallInterval = 1/120
if abs(FTimebase - NearestNTSC) < SmallInterval:
num = int((1001 / FTimebase) + 0.5)
den = 1001
return num, den
num = 2997
den = 100
print("before:",num,den)
num, den = CorrectNTSCRationalFramerate(num,den)
print("after:",num,den)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment