Commit Graph
111 Commits
Author SHA1 Message Date
webadderall bf99108719 fix(windows): use WGC for window capture 2026-06-06 20:57:45 +10:00
webadderall 18041911df revert: undo linux cursor-overlay portal guards 2026-06-05 10:32:51 +10:00
webadderall 79f1356652 Revert "fix(linux): route X11 capture through real sources"
This reverts commit 067070d405.
2026-06-05 10:31:28 +10:00
wiiiii123 c0627d0e8c fix(linux): stabilize portal selection HUD 2026-05-29 23:20:22 +07:00
wiiiii123 532d194e27 fix(linux): tighten portal source fallback routing 2026-05-29 01:05:21 +07:00
wiiiii123 067070d405 fix(linux): route X11 capture through real sources 2026-05-29 00:48:59 +07:00
wiiiii123 32bb6e4025 fix(linux): guard cursor overlay when portal embeds cursor 2026-05-28 16:41:03 +07:00
wiiiii123 fe828433ad fix(recording): stabilize capture quality and CUDA export canvas 2026-05-27 18:12:21 +07:00
wiiiii123 31d1022fef fix(capture): stabilize platform source handling 2026-05-26 23:12:01 +07:00
wiiiii123 ebac9ba1be fix(recording): warn when cursor hiding fails 2026-05-24 20:17:46 +07:00
wiiiii123 7c863e588d fix(recording): preserve browser cursor after WGC fallback 2026-05-24 20:04:06 +07:00
Alan Trebugeais ccbeb5fa1d fix: webcam recording, now it works, alongside the microphone etc 2026-05-10 23:37:07 +02:00
Alan Trebugeais 34dcddc455 add: video editor use screen recorder fix code rabbits 2026-05-10 21:36:52 +02:00
Alan Trebugeais 55a81a0b6a fix screenrecorder webcam 2026-05-10 18:05:29 +02:00
Alan Trebugeais 2537952a94 fix: editor loads instantly 2026-05-10 13:18:26 +02:00
Alan Trebugeais 3d8ae1942a add: 20 seconds -> 2 seconds fix, for now behind a flag to be sure to be able to revert. 2026-05-10 13:01:45 +02:00
wiiiii123 4f0361e43a fix(recording): clamp cursor samples at pause boundary 2026-05-09 12:57:05 +07:00
wiiiii123 0fce11792d test(recording): cover paused recorder flush order 2026-05-09 09:01:39 +07:00
wiiiii123 6ebd15edef fix(recording): stop browser recorder before cleanup 2026-05-09 08:53:53 +07:00
wiiiii123 c77007560b fix(recording): account for mic pause gaps 2026-05-08 01:35:17 +07:00
wiiiii123 3455475f38 fix(export): harden native beta pipeline 2026-05-07 22:37:27 +07:00
wiiiii123 5cff4e0d08 fix(recording): quiet browser mic processing notice 2026-05-07 05:10:28 +07:00
wiiiii123 7e94355bb0 fix(recording): default windows mic to browser processing 2026-05-07 04:51:30 +07:00
wiiiii123 7dd827be43 fix(recording): add windows mic diagnostics fallback 2026-05-07 04:00:46 +07:00
wiiiii123 9ac4c55ccf feat(export): prepare native GPU beta candidate
Add validated native CUDA/D3D11 timeline retime, pause-aware capture timing, webcam source-time sampling, edited-track audio duration padding, packaged helper updates, and focused tests for PR #410 tester branch.
2026-05-06 01:50:12 +07:00
wiiiii123 df8a1a3ed3 Merge remote-tracking branch 'origin/main' into perf/native-chunked-export-fastpath
# Conflicts:
#	electron/ipc/register/recording.ts
#	src/components/video-editor/VideoEditor.tsx
#	src/components/video-editor/VideoPlayback.tsx
#	src/hooks/useScreenRecorder.ts
#	src/lib/exporter/modernFrameRenderer.ts
#	src/lib/exporter/modernVideoExporter.ts
2026-05-05 16:59:32 +07:00
webadderall 0b0e43ccd6 fix: address review issues and preserve editor rollback 2026-05-05 16:18:47 +10:00
webadderall b773f98ad0 fix: address PR feedback regressions 2026-05-05 16:17:47 +10:00
webadderall 2c0c436267 Reapply "feat: bundle cursor motion and temporal blur updates"
This reverts commit be01bccb7a.
2026-05-05 16:16:56 +10:00
webadderall be01bccb7a Revert "feat: bundle cursor motion and temporal blur updates" 2026-05-04 18:17:04 +10:00
webadderall 0abc7a3098 feat: bundle cursor motion and temporal blur updates 2026-05-04 18:12:47 +10:00
wiiiii123 94bbd0280f Add NVIDIA CUDA export compositor 2026-05-04 09:59:41 +07:00
wiiiii123 9c81006e5c Add native GPU static layout export path 2026-05-03 22:43:23 +07:00
webadderall 5570c119ca [codex] Fix cursor sync after recording pause (#399)
* Fix cursor sync after recording pause

* Align recorder and cursor pause boundaries
2026-05-01 17:18:35 +10:00
Amaan ba89539b3e fix(linux): move fallback out of audio-only branch and surface audio downgrade 2026-04-27 17:10:12 +05:30
Amaan 39673f1c65 fix(linux): fallback to desktop capture when getDisplayMedia fails 2026-04-27 16:09:00 +05:30
webadderall 624c3047be Improve HUD and update prompt UI 2026-04-25 21:34:55 +10:00
webadderall 62f2a52860 Fix companion audio sync for trimmed and long exports 2026-04-24 12:04:21 +10:00
webadderall 05a6d3f1b6 Fix embedded audio fallback handling and audio diagnostics (#309)
* Fix embedded audio fallback handling and audio diagnostics

* Add recording fallback diagnostics toasts

* Fix Windows audio fallback cleanup and path matching

* Format rebased recording fallback changes

* Fix embedded audio preview and export fallback handling
2026-04-24 11:30:10 +10:00
webadderall 235a01c561 Merge pull request #314 from soufian3hm/fix/windows-recording-validation
Fix invalid Windows recording finalization
2026-04-22 17:19:56 +10:00
soufian3hm 726808a8ad Fix invalid Windows recording finalization 2026-04-21 17:38:37 +01:00
wiiiii123 1e102b3540 fix(recording): always clean up failed starts 2026-04-21 21:05:36 +07:00
wiiiii123 92ee514f5e fix(recording): recover from fullscreen countdown failures 2026-04-21 20:46:37 +07:00
webadderallandmeiiie daf99c0387 fix(recording): prefer playable browser capture codecs (#275)
Verifies the selected recording MIME type can also be decoded by the
in-app <video> element via canPlayType(), so that codecs like av1 —
which MediaRecorder.isTypeSupported() reports as supported for encoding
but are not decodable on fresh Windows installs without the AV1 Video
Extension — are not chosen.

Also passes undefined (not an unsupported fallback string) into
new MediaRecorder() when no preferred type is supported, letting the
browser pick a default instead of throwing NotSupportedError.

Replaces the previous 'as ProcessedDesktopSource' cast with a properly
typed LINUX_PORTAL_SOURCE constant.

Co-authored-by: meiiie <meiiie@users.noreply.github.com>
2026-04-20 01:08:12 +10:00
webadderall 92bb1065a2 fix: cast Linux portal sentinel as ProcessedDesktopSource to fix TS build error 2026-04-20 00:42:36 +10:00
Uri b200deddca fix(linux/wayland): address PR review feedback
- electron/main.ts: treat missing sourceId on linux as portal sentinel
  so the request handler never calls getSources() (which itself opens
  an extra portal dialog) on fresh sessions.
- useScreenRecorder.ts: persist the synthesized portal sentinel via
  selectSource() so main has the source set before getDisplayMedia.
  Extract acquireLinuxPortalStream() helper to dedupe the three
  duplicated getDisplayMedia constraint blocks.
- LaunchWindow.tsx: hide the screen-source selector button (and its
  separator) on Linux so users cannot trigger an extra portal dialog
  via the dropdown.
2026-04-18 16:38:52 +03:00
Uri 571bbb9434 fix(linux/wayland): collapse 3-step capture flow into a single portal dialog
Previously on Linux/Wayland, starting a fullscreen recording required three
separate picker interactions: an in-app source dropdown plus two xdg-desktop-portal
dialogs. The duplicate portal dialogs were caused by:

1. resolveBrowserCaptureSource() calling desktopCapturer.getSources() in the
   renderer, which itself triggers the portal on Wayland.
2. setDisplayMediaRequestHandler() in main also calling getSources(), which
   triggers another portal.
3. Returning a pre-enumerated source id to Chromium, which on Wayland is stale
   and forces Chromium to re-prompt via the portal during MediaStream creation.

Additionally, the editor window failed to appear after recording on some
Wayland sessions because 'ready-to-show' did not fire reliably.

Changes:
- LaunchWindow: skip the in-app source dropdown on Linux and start recording
  directly; the OS portal becomes the source picker.
- useScreenRecorder: introduce a 'screen:linux-portal' sentinel source. When
  set, route capture through navigator.mediaDevices.getDisplayMedia() so the
  portal handles selection in a single dialog. Skip resolveBrowserCaptureSource
  for the sentinel to avoid an extra getSources() call.
- electron/main: in setDisplayMediaRequestHandler, when the sentinel is set,
  skip desktopCapturer.getSources() entirely and return a synthetic source so
  Chromium opens the portal exactly once for the actual capture.
- electron/windows: in createEditorWindow, also call win.show() from
  did-finish-load as a fallback for Linux/Wayland where ready-to-show may
  not fire.
2026-04-18 16:17:08 +03:00
webadderall ffc5959994 fix: address CodeRabbit review feedback
- Fix telemetry drift reset: use nextExpectedMs - now for delay instead
  of stale drift value after baseline reset (avoids 1ms rapid sample)
- Use RECORDER_TIMESLICE_MS for mic fallback recorder (was hardcoded 1000)
- Return requested timeMs in extensionHost getCursorAt boundary clamps
- Remove premature null of webcam URL to prevent flicker on path change
- Use fs.realpath in IPC get-local-media-url to match media server check
2026-04-18 19:03:36 +10:00
webadderall f024c89890 fix: always apply aresample sync filter and tighten audio sync tolerances
- Always route audio through aresample=async=1:first_pts=0 filter during
  muxing on both macOS and Windows, even when duration delta is small.
  Previously skipped when delta ≤50ms, which left progressive clock drift
  (from CPU load) completely uncorrected.
- Lower sync detection threshold from 50ms to 20ms so tempo correction
  kicks in earlier.
- Use explicit 48kHz AudioContext sample rate in both browser recording
  and export rendering to prevent sample rate mismatch drift.
- Reduce MediaRecorder timeslice from 1000ms to 250ms to reduce chunk
  loss under CPU pressure.
- Tighten export audio sync: seek threshold 300ms→150ms, tolerance
  15ms→8ms, correction window 2s→0.5s, max adjustment ±8%→±12%.
- Lower companion audio start delay threshold from 50ms to 25ms.
2026-04-18 19:03:36 +10:00
webadderall 41142af68f Merge remote-tracking branch 'origin/main' into feat/settings-extensions
# Conflicts:
#	src/components/video-editor/timeline/TimelineEditor.tsx
2026-04-17 14:07:46 +10:00