Skip to main content
dkt0
Inspiring
July 24, 2026
Question

Can the AE SDK recover keyframe times with greater precision than A_Time ticks?

  • July 24, 2026
  • 0 replies
  • 7 views

I'm working on a plugin where very small differences in keyframe timing affect the final result.

From what I understand, keyframe times in the SDK are represented by A_Time:

typedef struct {
A_long value;
A_u_long scale;
} A_Time;

 

For example, suppose I have a 60 fps composition with a duration of 666 ms. A keyframe is intended to be placed at 13.947372 ms.

Since AE uses a time scale of 30720 ticks/second, that time corresponds to:

13.947372 ms × 30720 / 1000 = 428.46 ticks

Because only whole ticks can be stored, the keyframe becomes:

428 ticks

or

428 / 30720 = 13.932292 ms

When I later retrieve it:

A_Time kfTime;
AEGP_GetKeyframeTime(stream, keyIndex, AEGP_LTimeMode_LayerTime, &kfTime);

I only receive those integer tick values. The original time of 13.947372 ms appears to be unrecoverable.

 

My question:

Is the integer A_Time representation the fundamental precision limit of After Effects, or is there any SDK/API that can recover keyframe times with greater precision than the tick values returned by AEGP_GetKeyframeTime()? Basically, is there any way to not lose the 0.46 ticks (in this case)?