Skip to content

Fix sticker blinking and audio library export issues#148

Merged
theunavailableguy merged 2 commits into
masterfrom
fix/sticker-blinking-and-audio-export
Jul 12, 2026
Merged

Fix sticker blinking and audio library export issues#148
theunavailableguy merged 2 commits into
masterfrom
fix/sticker-blinking-and-audio-export

Conversation

@AIEraDev

Copy link
Copy Markdown
Owner

Summary

This PR fixes two critical issues:

1. Sticker/Text Blinking Issue

Problem: Stickers and text were blinking/flickering during playback and export.

Root Cause: The timeline evaluator was generating unique layer IDs containing the frame time (${clip.id}-${evalTime}) on every frame. This caused the rendering engine to destroy and recreate Lottie players, text canvases, and WebGL textures on every frame, resulting in visible blinking.

Solution: Changed to static, consistent layer IDs (clip.id and clip.id-audio). This allows the engine to reuse resources across frames, eliminating blinking and significantly improving performance.

2. Audio Library Export Issue

Problem: Audio clips from the audio library weren't being exported with the video.

Root Cause: Audio library items are deliberately kept out of the project's media assets list to avoid cluttering the media upload tab. However, the export's audio filter only checked clips that mapped to a project asset, so library items were ignored.

Solution: Updated getActiveAudioClips to recognize and export clips that have a direct audioPath fallback property, mirroring the preview player's logic.

Changes

  • src/core/evaluation/evaluator.ts: Use static layer IDs instead of dynamic time-based IDs
  • src/core/timeline/audioClips.ts: Support direct audioPath fallback for audio library clips

Testing

All existing tests pass. Both issues have been verified as resolved.

AIEraDev added 2 commits July 12, 2026 07:06
- Changed layerId from dynamic clip.id-evalTime to static clip.id
- Prevents recreation of Lottie players, text canvases, and WebGL textures on every frame
- Resolves blinking issue and improves rendering performance
- Audio layers now use consistent clip.id-audio format
- Updated getActiveAudioClips to check for direct audioPath fallback property
- Allows export of audio library items that aren't in project media assets
- Mirrors preview player logic for consistent audio handling
- Resolves issue where dedicated audio clips weren't exported
@theunavailableguy theunavailableguy merged commit f056306 into master Jul 12, 2026
2 checks passed
@theunavailableguy theunavailableguy deleted the fix/sticker-blinking-and-audio-export branch July 12, 2026 06:09
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.

2 participants