Add colour grading presets feature#870
Open
jaygaikar-09 wants to merge 18 commits into
Open
Conversation
|
@jaygaikar-09 is attempting to deploy a commit to the magic-peach1's projects Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
👋 Thanks for your PR, @jaygaikar-09!Welcome to Reframe — a browser-based video editor built for everyone 🎬
What happens next
Quick checklist
Useful links
Happy coding! 🎉 |
Contributor
|
Owner
|
Hey @jaygaikar-09! This PR has merge conflicts with git fetch origin
git rebase origin/main
git push --force-with-leaseThe color grading presets feature looks great — just need to resolve the conflicts and re-run CI! |
Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
* feat: show ffmpeg engine download progress * fix: remove package-lock.json and unused prettier dev dependencies * fix: wire FFmpeg load progress * fix: restore ffmpeg progress message state * feat: show ffmpeg engine download progress * fix: remove package-lock.json and unused prettier dev dependencies * fix: wire FFmpeg load progress * fix: restore ffmpeg progress message state * fix: restore video editor + ffmpeg modules Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
* feat: add audio waveform to trim control * fix: remove package-lock.json and unused prettier dev dependencies * fix: repair TrimControl typecheck * feat: add audio waveform to trim control * fix: remove package-lock.json and unused prettier dev dependencies fix: repair TrimControl typecheck * fix: resolve trim validation icon/messages * fix: resolve CI failures - fix TS error, remove unused imports, add package-lock.json to gitignore Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
magic-peach#724) * feat: integrate ffmpeg deshake filter for video stabilization Signed-off-by: Vagventure <ankitverma0366@gmail.com> * feat: add social media quick-action row to PresetSelector Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com> * feat: implement two-pass high-quality GIF export via FFmpeg Signed-off-by: Vagventure <ankitverma0366@gmail.com> --------- Signed-off-by: Vagventure <ankitverma0366@gmail.com>
* feat: add thumbnail strip for video frame navigation * fix: clean up all merge conflicts, fix memory leak in videoSrc * feat: add audio normalization, fix preview mute and speed * fix: correct useEffect dependency array syntax in VideoPreview * fix: export buildAudioFilter function * fix: add recipe to useEffect deps, add track element to video Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
…ne (magic-peach#794) Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
* nvda-testing-01 * nvda-testing-02 Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
* fix(ui): hide number input spinners to prevent value visibility overlap (magic-peach#776) Browser-native increment/decrement arrows on <input type='number'> fields overlap with entered values in narrow containers, making text hard to read. Fix: suppress the spinner UI using cross-browser Tailwind arbitrary-value classes: - [appearance:textfield] — Firefox - [&::-webkit-outer-spin-button]:appearance-none — Chrome/Brave/Edge/Safari - [&::-webkit-inner-spin-button]:appearance-none — Chrome/Brave/Edge/Safari Affected inputs: - TrimControl.tsx — Start (sec) and End (sec) number fields - PresetSelector.tsx — Custom Width (px) and Height (px) fields Keyboard up/down arrow key stepping still works; only the visual spinner arrows are removed, which fully resolves the overlap/readability bug. Closes magic-peach#776 * feat(ui): add highlighted box around REFRAME title (magic-peach#775) The REFRAME title blended into the background without clear visual distinction. Wrap the h1 + subtitle in a styled container to make the brand mark prominent and immediately recognisable. Changes to src/components/VideoEditor.tsx: - Wrap <h1>REFRAME</h1> and its subtitle <p> in a div with: border border-[var(--border)] — respects light / dark mode border token border-l-4 border-l-film-600 — film-red left accent bar for brand identity bg-[var(--surface)] — lifted surface so it reads off the page bg rounded-xl — consistent corner radius with card system px-5 py-3 — breathing room around the text shadow-sm — subtle depth to separate from background - aria-label added so screen readers announce the landmark correctly The box reuses existing design tokens and film-600 brand colour, so it adapts automatically to light, dark and high-contrast themes. Closes magic-peach#775 Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
…ap (magic-peach#776) (magic-peach#778) Browser-native increment/decrement arrows on <input type='number'> fields overlap with entered values in narrow containers, making text hard to read. Fix: suppress the spinner UI using cross-browser Tailwind arbitrary-value classes: - [appearance:textfield] — Firefox - [&::-webkit-outer-spin-button]:appearance-none — Chrome/Brave/Edge/Safari - [&::-webkit-inner-spin-button]:appearance-none — Chrome/Brave/Edge/Safari Affected inputs: - TrimControl.tsx — Start (sec) and End (sec) number fields - PresetSelector.tsx — Custom Width (px) and Height (px) fields Keyboard up/down arrow key stepping still works; only the visual spinner arrows are removed, which fully resolves the overlap/readability bug. Closes magic-peach#776 Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
magic-peach#57) (magic-peach#772) - Add min-h-[44px] to the export button to guarantee the minimum 44px touch target height on all screen sizes (WCAG 2.5.5 recommendation) - w-full already present so button spans full container width on mobile (grid collapses to single column on screens < lg breakpoint) - Also update ffmpeg.test.ts to match new buildAudioFilter(speed, normalizeAudio) signature introduced in upstream main Closes magic-peach#57 Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
…ic-peach#751) * feat(shortcut): add M key to toggle audio mute (magic-peach#173) - Move M-key handler from AudioSpeedControl into useVideoEditor hook so the shortcut is guarded by ile (only fires when a video is loaded) - Protect against text input focus (INPUT, TEXTAREA, contentEditable) - Also guard against Ctrl/Meta/Alt modifiers to avoid conflicts - Use setRecipe functional update (no stale-closure risk; no extra deps) - Add visible M kbd badge on the mute toggle button for discoverability - Add collapsible KeyboardShortcutsPanel in the right sidebar documenting both shortcuts: M (mute) and Ctrl+Enter (export) Closes magic-peach#173 * fix(lint): remove redundant ul role and add missing useCallback deps - VideoEditor.tsx: remove role='list' from <ul> (jsx-a11y/no-redundant-roles) ul already has an implicit list role; the explicit attribute is redundant - useVideoEditor.ts: add loopMusic, musicFile, musicVolume, originalAudioVolume to handleExport dependency array (react-hooks/exhaustive-deps) * fix(typecheck): update ffmpeg.test.ts for new buildAudioFilter signature Upstream added normalizeAudio: boolean as a required second param to buildAudioFilter. Update all test call sites to pass false (no normalization), and add a new test case verifying the loudnorm filter is appended when normalizeAudio is true. Also fix stray '++' syntax corruption in presets.ts introduced during merge. Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
Extends the existing exportEstimate.ts utility with a more accurate file size estimation model. Changes: - Fix preset resolution lookup — previously always used customWidth/Height even when a named preset (1080p, 4K, etc.) was selected - Replace 4-bucket CRF lookup with exponential curve fit to real H.264 reference points (CRF 18 ≈ 8 Mbps, 23 ≈ 3 Mbps, 30 ≈ 0.6 Mbps) - Fix speed scaling — was incorrectly dividing bitrate by speed; speed now only scales output duration - Add sqrt-damped resolution multiplier for more accurate high-res estimates - Add format overhead factor (webm ~15% smaller, mkv ~2% larger than mp4) - Add audio track estimate (AAC 128 kbps) - Add unit tests covering all estimation behaviours Closes magic-peach#657 Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
* fix: remove duplicate file format text in upload area * fix: add unique page titles for /privacy and /contact pages --------- Co-authored-by: Akanksha Trehun <146705736+magic-peach@users.noreply.github.com>
a3a09fb to
2adec63
Compare
Contributor
Author
|
@magic-peach Now check |
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.
Description
Added colour grading preset support to the video editor with integrated preset handling and preview updates.
Related Issue
Closes #669
Type of Contribution
Participant Info
Screen Recording
Video.Project.2.1.mp4
Checklist
bun run lintpasses (no ESLint errors)bunx tsc --noEmitpasses (no TypeScript errors)aria-label/ accessible namesconsole.logstatements left in