Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| adbdfaa2aa | |||
| 6f1e1a5f9a | |||
| f9bbcdee47 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chat-app/desktop",
|
||||
"version": "0.11.1",
|
||||
"version": "0.11.2",
|
||||
"private": true,
|
||||
"description": "Tauri v2 desktop client (Windows / macOS / Linux)",
|
||||
"type": "module",
|
||||
|
||||
Generated
+1
-1
@@ -834,7 +834,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "chat-app-desktop"
|
||||
version = "0.11.0"
|
||||
version = "0.11.1"
|
||||
dependencies = [
|
||||
"base64 0.22.1",
|
||||
"dryoc",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "chat-app-desktop"
|
||||
version = "0.11.1"
|
||||
version = "0.11.2"
|
||||
description = "ChatApp desktop client"
|
||||
authors = ["Dennis"]
|
||||
edition = "2021"
|
||||
|
||||
@@ -62,7 +62,7 @@ pub fn start_screen_capture(
|
||||
fps: u32,
|
||||
channel: Channel<FramePayload>,
|
||||
) -> Result<u32, String> {
|
||||
let clamped_fps = fps.clamp(5, 30);
|
||||
let clamped_fps = fps.clamp(5, 60);
|
||||
let clamped_w = max_width.max(320).min(3840);
|
||||
let clamped_h = max_height.max(180).min(2160);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://schema.tauri.app/config/2",
|
||||
"productName": "ChatApp",
|
||||
"version": "0.11.1",
|
||||
"version": "0.11.2",
|
||||
"identifier": "com.meinname.chatapp",
|
||||
"build": {
|
||||
"beforeDevCommand": "pnpm vite:dev",
|
||||
|
||||
@@ -1310,9 +1310,17 @@ export function CallProvider({ children }: { children: ReactNode }) {
|
||||
stream.getTracks().forEach((t) => t.stop());
|
||||
throw new Error('no video track from chromeMediaSource');
|
||||
}
|
||||
// H.264 lets Chromium's hardware encoder take over on Windows
|
||||
// (Intel QuickSync / NVENC / AMD VCE) — VP9 is software-only in
|
||||
// Chromium's WebRTC path and collapses under the L3T3_KEY
|
||||
// scalability mode we set globally for camera. `contentHint` is
|
||||
// what setScreenShareEnabled sets internally; pushing it by hand
|
||||
// here tells the encoder to weight sharpness over smoothness,
|
||||
// which is right for UI/text-heavy screen content.
|
||||
videoMst.contentHint = 'detail';
|
||||
const videoPub = await lp.publishTrack(videoMst, {
|
||||
source: LkTrack.Source.ScreenShare,
|
||||
videoCodec: 'vp9',
|
||||
videoCodec: 'h264',
|
||||
});
|
||||
const audioRes = await startWasapiAudio(LkTrack);
|
||||
videoMst.addEventListener('ended', () => {
|
||||
@@ -1358,9 +1366,10 @@ export function CallProvider({ children }: { children: ReactNode }) {
|
||||
nativeCaptureRef.current = null;
|
||||
throw new NativeCaptureUnavailable('canvas stream produced no video track');
|
||||
}
|
||||
videoMst.contentHint = 'detail';
|
||||
const videoPub = await lp.publishTrack(videoMst, {
|
||||
source: LkTrack.Source.ScreenShare,
|
||||
videoCodec: 'vp9',
|
||||
videoCodec: 'h264',
|
||||
});
|
||||
const audioRes = await startWasapiAudio(LkTrack);
|
||||
videoMst.addEventListener('ended', () => {
|
||||
|
||||
@@ -46,7 +46,7 @@ export interface PresetParams {
|
||||
}
|
||||
|
||||
const PRESET_PARAMS: Record<ScreenSharePreset, PresetParams> = {
|
||||
auto: { dims: null, framerate: 60, bitrateKbps: 8000, label: 'Auto (Original)' },
|
||||
auto: { dims: null, framerate: 30, bitrateKbps: 8000, label: 'Auto (Original)' },
|
||||
'720p30': {
|
||||
dims: { width: 1280, height: 720 },
|
||||
framerate: 30,
|
||||
|
||||
Reference in New Issue
Block a user