Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tvg_set_frame API returns imprecise frame number in tvg_get_current_frame after upgrade to v0.13.3 #2266

Closed
theashraf opened this issue May 10, 2024 · 2 comments
Assignees
Labels
bug Something isn't working lottie Lottie animation

Comments

@theashraf
Copy link
Member

When upgrading thorvg from version v0.13.0 to v0.13.3 in dotLottie-rs, we encountered a failing test related to the tvg_set_frame API. When tvg_set_frame is called with a specific frame number and tvg_get_current_frame is subsequently called, the returned frame number occasionally differs slightly from what was originally set, causing the player to render a different frame than expected.

During the dotLottie player's event tests, we observed discrepancies between the frame number set by the user and the frame actually rendered. The mismatch is evident in the recorded events from the test case, shown below:

Recorded Events:

[
    "on_load",
    "on_play",
    "on_frame: 1",
    "on_render: 1",
    "on_frame: 2",
    "on_render: 2",
    "on_frame: 3", // This is when the player calls tvg_set_frame
    "on_render: 3.0000002", // This is when the player triggers a render event with the frame number returned from tvg_get_current_frame()
    "on_frame: 4",
    "on_render: 4",
    "on_frame: 5",
    "on_render: 5",
    "on_frame: 6",
    "on_render: 6.0000005",
    "on_frame: 7",
    "on_render: 7.0000005",
    "on_frame: 8",
    "on_render: 8",
    "on_frame: 9",
    "on_render: 9",
    "on_frame: 10",
    "on_render: 10",
    "on_frame: 11",
    "on_render: 11.000001",
    "on_frame: 12",
    "on_render: 12.000001",
    "on_frame: 13",
    "on_render: 13.000001",
    "on_frame: 14",
    "on_render: 14.000001",
    "on_frame: 15",
    "on_render: 15.000001",
    "on_frame: 16",
    "on_render: 16",
    "on_frame: 17",
    "on_render: 17",
    "on_frame: 18",
    "on_render: 18",
    "on_frame: 19",
    "on_render: 19",
    "on_frame: 20",
    "on_render: 20",
    "on_frame: 21",
    "on_render: 21.000002",
    "on_frame: 22",
    "on_render: 22.000002",
    "on_frame: 23",
    "on_render: 23.000002",
    "on_frame: 24",
    "on_render: 24.000002",
    "on_frame: 25",
    "on_render: 25.000002",
    "on_frame: 26",
    "on_render: 26.000002",
    "on_frame: 27",
    "on_render: 27.000002",
    "on_frame: 28",
    "on_render: 28.000002",
    "on_frame: 29",
    "on_render: 29.000002",
    "on_frame: 30",
    "on_render: 30.000002",
    "on_frame: 31",
    "on_render: 31.000002",
    "on_frame: 32",
    "on_render: 32",
    "on_frame: 33",
    "on_render: 33",
    "on_frame: 34",
    "on_render: 34",
    "on_frame: 35",
    "on_render: 35",
    "on_frame: 36",
    "on_render: 36",
    "on_frame: 37",
    "on_render: 37",
    "on_frame: 38",
    "on_render: 38",
    "on_frame: 39",
    "on_render: 39",
    "on_frame: 40",
    "on_render: 40",
    "on_frame: 41",
    "on_render: 41.000004",
    "on_loop: 1",
    "on_pause",
    "on_stop"
]
@hermet
Copy link
Member

hermet commented May 11, 2024

relative issue: #2147

@hermet hermet self-assigned this May 13, 2024
hermet added a commit that referenced this issue May 13, 2024
Refined the logic for updating frame numbers
to ensure greater accuracy in value precision.

issue: #2266
hermet added a commit that referenced this issue May 13, 2024
Refined the logic for updating frame numbers
to ensure greater accuracy in value precision.

issue: #2266
hermet added a commit that referenced this issue May 13, 2024
Refined the logic for updating frame numbers
to ensure greater accuracy in value precision.

issue: #2266
hermet added a commit that referenced this issue May 13, 2024
Refined the logic for updating frame numbers
to ensure greater accuracy in value precision.

issue: #2266
@hermet
Copy link
Member

hermet commented May 13, 2024

@theashraf Hello, I expect this could help with your issue: #2270.

But please keep in mind that basically thorvg will ignore those values below 0.6f decimal point, not guarantee the accurate data.

hermet added a commit that referenced this issue May 13, 2024
Refined the logic for updating frame numbers
to ensure greater accuracy in value precision.

issue: #2266
hermet added a commit that referenced this issue May 14, 2024
Refined the logic for updating frame numbers
to ensure greater accuracy in value precision.

issue: #2266
hermet added a commit that referenced this issue May 14, 2024
Refined the logic for updating frame numbers
to ensure greater accuracy in value precision.

issue: #2266
@hermet hermet closed this as completed May 16, 2024
hermet added a commit that referenced this issue May 17, 2024
Refined the logic for updating frame numbers
to ensure greater accuracy in value precision.

issue: #2266
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working lottie Lottie animation
Projects
None yet
Development

No branches or pull requests

2 participants