Menu

#38 ImplAAFTimecodeStream::GetPositionTimecode() - 24 fps error

open
nobody
None
5
2003-05-08
2003-05-08
Jim Trainor
No

ImplAAFTimecodeStream::GetPositionTimecode() has
the following code fragment:

-- frag start --
//!!! Need a better algorithm here
floatRate = (double)rate.numerator / (double)
rate.denominator;
if((floatRate >= 29.96) && (floatRate <= 30.0))
fps = 30;
else
fps = (aafUInt32)floatRate;
-- frag end --

Aside from the fact that it is not necessary to resort to
floating point math (perhaps that is what is the comment
recognizes??), it will generate the wrong fps value for
non integeger 24 Hz rates. That will be a problem for
24 Hz high definition formats, won't it?

ImplAAFTimecodeStream::GetPositionTimecode is
called by
ImplAAFTimecodeStream::SegmentOffsetToTimecode(),
which in turn is used by
ImplAAMob::OffsetToMobTimecode().

Discussion