Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| adbdfaa2aa | |||
| 6f1e1a5f9a | |||
| f9bbcdee47 |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@chat-app/desktop",
|
"name": "@chat-app/desktop",
|
||||||
"version": "0.11.1",
|
"version": "0.11.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Tauri v2 desktop client (Windows / macOS / Linux)",
|
"description": "Tauri v2 desktop client (Windows / macOS / Linux)",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
Generated
+1
-1
@@ -834,7 +834,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "chat-app-desktop"
|
name = "chat-app-desktop"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"dryoc",
|
"dryoc",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "chat-app-desktop"
|
name = "chat-app-desktop"
|
||||||
version = "0.11.1"
|
version = "0.11.2"
|
||||||
description = "ChatApp desktop client"
|
description = "ChatApp desktop client"
|
||||||
authors = ["Dennis"]
|
authors = ["Dennis"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ pub fn start_screen_capture(
|
|||||||
fps: u32,
|
fps: u32,
|
||||||
channel: Channel<FramePayload>,
|
channel: Channel<FramePayload>,
|
||||||
) -> Result<u32, String> {
|
) -> 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_w = max_width.max(320).min(3840);
|
||||||
let clamped_h = max_height.max(180).min(2160);
|
let clamped_h = max_height.max(180).min(2160);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "ChatApp",
|
"productName": "ChatApp",
|
||||||
"version": "0.11.1",
|
"version": "0.11.2",
|
||||||
"identifier": "com.meinname.chatapp",
|
"identifier": "com.meinname.chatapp",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "pnpm vite:dev",
|
"beforeDevCommand": "pnpm vite:dev",
|
||||||
|
|||||||
@@ -1310,9 +1310,17 @@ export function CallProvider({ children }: { children: ReactNode }) {
|
|||||||
stream.getTracks().forEach((t) => t.stop());
|
stream.getTracks().forEach((t) => t.stop());
|
||||||
throw new Error('no video track from chromeMediaSource');
|
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, {
|
const videoPub = await lp.publishTrack(videoMst, {
|
||||||
source: LkTrack.Source.ScreenShare,
|
source: LkTrack.Source.ScreenShare,
|
||||||
videoCodec: 'vp9',
|
videoCodec: 'h264',
|
||||||
});
|
});
|
||||||
const audioRes = await startWasapiAudio(LkTrack);
|
const audioRes = await startWasapiAudio(LkTrack);
|
||||||
videoMst.addEventListener('ended', () => {
|
videoMst.addEventListener('ended', () => {
|
||||||
@@ -1358,9 +1366,10 @@ export function CallProvider({ children }: { children: ReactNode }) {
|
|||||||
nativeCaptureRef.current = null;
|
nativeCaptureRef.current = null;
|
||||||
throw new NativeCaptureUnavailable('canvas stream produced no video track');
|
throw new NativeCaptureUnavailable('canvas stream produced no video track');
|
||||||
}
|
}
|
||||||
|
videoMst.contentHint = 'detail';
|
||||||
const videoPub = await lp.publishTrack(videoMst, {
|
const videoPub = await lp.publishTrack(videoMst, {
|
||||||
source: LkTrack.Source.ScreenShare,
|
source: LkTrack.Source.ScreenShare,
|
||||||
videoCodec: 'vp9',
|
videoCodec: 'h264',
|
||||||
});
|
});
|
||||||
const audioRes = await startWasapiAudio(LkTrack);
|
const audioRes = await startWasapiAudio(LkTrack);
|
||||||
videoMst.addEventListener('ended', () => {
|
videoMst.addEventListener('ended', () => {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ export interface PresetParams {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const PRESET_PARAMS: Record<ScreenSharePreset, 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': {
|
'720p30': {
|
||||||
dims: { width: 1280, height: 720 },
|
dims: { width: 1280, height: 720 },
|
||||||
framerate: 30,
|
framerate: 30,
|
||||||
|
|||||||
Reference in New Issue
Block a user