Repository navigation
docs: bilingual README overhaul with competitive edge positioning - #88
Merged
Merged
Conversation
added 3 commits
June 23, 2026 10:27
Timeline playback was a throttled GPU composite-frame sequence (~11 fps, silent) — "帧序列的播放完全不一样" vs upstream's smooth AVPlayer playback. Replace it, while PLAYING, with the actual <video>/<audio> elements for the clips under the playhead (native decode → smooth motion + sound), mirroring upstream VideoEngine's "one clock plays the composition" model: - TimelinePlaybackLayer mounts the top visual clip's <video>/<img> + every non-muted audio-track <audio>; the active AUDIO element is the master clock (never re-seeked), the playhead is read from its currentTime; with no audio the visual video is master; with no media a dt fallback advances through gaps. - Followers are nudged only past a 0.35s drift; a master-alignment guard avoids snapping the playhead when starting playback mid-timeline; scrub-while-playing is detected and pushed to the elements. - playbackClock ownership flag makes usePlaybackTicker yield while the media clock runs. The GPU composite is now fetched only when PAUSED/scrubbing (accurate text/effects, and no per-frame ffmpeg/PNG churn while playing — fixes the playback jank/memory spike). Pure model (clip-at-frame, source-time mapping, volume) unit-tested.
Code-review follow-ups on the timeline playback engine: - Mute the visual video's own audio when an audio track plays the SAME source (linked-audio split). The check compared ActiveMedia objects by reference (`m === v`), which are freshly allocated per call and never equal, so the mute never fired → double audio. Compare clip ids instead. - Cache the per-clip ref callback so a stable clip's <video>/<audio> isn't detached/re-attached on every rAF re-render. - Reference-count the media-clock ownership flag so overlapping claim/release (StrictMode double-invoke, mount/unmount overlap) can't strand it.
…guide - Rewrite README in tri-lingual format (CN / EN / JP) with TOC anchors - Focus on competitive advantages vs CapCut / DaVinci / FCPX - Add version history, platform support table, Rust workspace map - Add community section with Discord badges (EN + CN) and stars counters - Add Mermaid architecture diagram, quick start guide - Add WeChat contact group placeholder (TBD) - Create minimal CONTRIBUTING.md Closes: Update README to bilingual format with competitive positioning
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rewrites README.md as a tri-lingual (CN / EN / JP) document with:
Also adds a minimal CONTRIBUTING.md.
Changes
README.md: Complete bilingual overhaul (321 lines, +158/-121)CONTRIBUTING.md: New file with dev setup and contribution guidelinesRelated