Skip to content

feat: add real-time preview for video aspect ratios, filter adjustments and rotation#875

Open
SatyaViswas wants to merge 1 commit into
magic-peach:mainfrom
SatyaViswas:feat/live-preview-transform
Open

feat: add real-time preview for video aspect ratios, filter adjustments and rotation#875
SatyaViswas wants to merge 1 commit into
magic-peach:mainfrom
SatyaViswas:feat/live-preview-transform

Conversation

@SatyaViswas
Copy link
Copy Markdown

Description

This PR introduces a complete architectural upgrade to the core video display layer inside src/components/VideoPreview.tsx, enabling a real-time, high-fidelity WYSIWYG (What You See Is What You Get) interface.

Key changes include:

  • Dynamic Canvas Crop Mask: Replaced the static, hardcoded rendering boundaries with an absolute percentage positioning system calculated dynamically from active editing parameters. The viewport accurately scales to all dimensions (including vertical configurations like 9:16 / 4:5 and panoramic modes like 47:10) without warping the application dashboard layout.
  • Real-Time Transformation Rendering: Bound state parameters for rotation, framing styles (fit vs fill), and micro-level color corrections directly to native hardware-accelerated CSS style overrides on the local player tracking node. Adjusting settings instantly cascades visual feedback onto the workspace preview without requiring an intermediate export cycle.
  • Visual Canvas Contrast Isolation: Added a subtle contrast separating border configuration (ring-1 ring-white/10 shadow-2xl bg-black) outlining the dynamic canvas window. This explicitly defines pixel-accurate output frame regions even when manipulating dark source footages that match underlying dark-mode panels.
  • Redundant Logic Pruning: Cleaned up obsolete overlay simulation elements and reference states, keeping the presentation layout lightweight, accessible, and performant.

Related Issue

Fixes #867

Type of Contribution

  • Bug fix
  • New feature
  • Documentation update
  • GSSoC contribution

Participant Info

  • GitHub username: @SatyaViswas
  • Contribution level (Beginner/Intermediate/Advanced): Intermediate

Screen Recording

Screen.Recording.2026-05-21.at.11.09.24.PM.mov

Checklist

  • I have read the contribution guidelines
  • My changes follow the project structure
  • I have tested my changes in Chrome, Firefox, and Safari
  • bun run lint passes (no ESLint errors)
  • bunx tsc --noEmit passes (no TypeScript errors)
  • New interactive elements have aria-label / accessible names
  • No console.log statements left in
  • This PR is related to a valid issue
  • Screen recording attached above (required for UI/feature/design changes)

@vercel
Copy link
Copy Markdown

vercel Bot commented May 21, 2026

@SatyaViswas 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.

@github-actions github-actions Bot added level:advanced Advanced level - 55 pts type:bug Bug fix type:design UI/UX design type:docs Documentation type:feature New feature labels May 21, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 21, 2026

✅ PR Format Check Passed — @SatyaViswas

Basic format checks passed. A maintainer will review your code changes.

This does not mean the PR is approved — it just means the format is correct.

@github-actions
Copy link
Copy Markdown
Contributor

👋 Thanks for your PR, @SatyaViswas!

Welcome to Reframe — a browser-based video editor built for everyone 🎬

🟠 GSSoC'26 PR detected — thanks for contributing under GirlScript Summer of Code 2026!

What happens next

  1. 🤖 Automated checks — build & TypeScript typecheck will run automatically
  2. Vercel preview — a preview deployment will be created (requires maintainer authorization for fork PRs)
  3. 👀 Code review — a maintainer will review your changes
  4. 🚀 Merge — once approved, your PR will be merged!

Quick checklist

  • PR title follows Conventional Commits (e.g. feat: add dark mode)
  • Linked the issue this PR closes (e.g. Closes #123)
  • Tested the changes locally (bun run dev)
  • Build passes (bun run build)

Useful links

Happy coding! 🎉

@github-actions github-actions Bot added the gssoc'26 GirlScript Summer of Code 2026 label May 21, 2026
@SatyaViswas SatyaViswas force-pushed the feat/live-preview-transform branch from 1927fd5 to 3cdd4ed Compare May 22, 2026 06:26
@SatyaViswas
Copy link
Copy Markdown
Author

Hey @magic-peach , just to remind, I resolved all conflicts and my PR is upto date with the main branch. Please review and merge my PR!

@SatyaViswas SatyaViswas force-pushed the feat/live-preview-transform branch from 3cdd4ed to 01b92ca Compare May 23, 2026 03:20
@SatyaViswas
Copy link
Copy Markdown
Author

Hey @magic-peach. I resolved all the latest conflicts and my PR is upto date with the main branch. Please review and merge my PR!

@SatyaViswas SatyaViswas force-pushed the feat/live-preview-transform branch from 01b92ca to c9fc9d7 Compare May 23, 2026 11:25
@SatyaViswas
Copy link
Copy Markdown
Author

SatyaViswas commented May 23, 2026

Hey @magic-peach , could you please review this PR and close it, so that I could work on new issue!

I also solved the Application error shown in image which occurs when we use adjustment options too many times:
Screenshot 2026-05-23 at 5 06 19 PM

@SatyaViswas SatyaViswas force-pushed the feat/live-preview-transform branch from c9fc9d7 to 64028be Compare May 23, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc'26 GirlScript Summer of Code 2026 level:advanced Advanced level - 55 pts type:bug Bug fix type:design UI/UX design type:docs Documentation type:feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Add real-time video preview for rotation, framing, and color adjustments

1 participant