diff --git a/libraries/pcm-player/worker/worker.ts b/libraries/pcm-player/worker/worker.ts index 33409892e..0bcc54539 100644 --- a/libraries/pcm-player/worker/worker.ts +++ b/libraries/pcm-player/worker/worker.ts @@ -21,6 +21,7 @@ abstract class SourceProcessor #chunkSampleCounts: number[] = []; #totalSampleCount = 0; + #starting = true; #speedUp = false; #readOffset = 0; #inputOffset = 0; @@ -33,8 +34,7 @@ abstract class SourceProcessor this.#readBuffer = new Float32Array(this.channelCount); this.port.onmessage = (event) => { - while (this.#totalSampleCount > 16000) { - console.log("[Audio] Buffer overflow, dropping samples"); + while (this.#totalSampleCount > 0.35 * 48000) { this.#chunks.shift(); const count = this.#chunkSampleCounts.shift()!; this.#totalSampleCount -= count; @@ -46,8 +46,7 @@ abstract class SourceProcessor this.#chunkSampleCounts.push(length); this.#totalSampleCount += length; - if (!this.#speedUp && this.#totalSampleCount > 8000) { - console.log("[Audio] Speeding up"); + if (!this.#speedUp && this.#totalSampleCount > 0.25 * 48000) { this.#speedUp = true; this.#readOffset = 0; this.#inputOffset = 0; @@ -59,10 +58,17 @@ abstract class SourceProcessor protected abstract createSource(data: ArrayBuffer[]): [T, number]; process(_inputs: Float32Array[][], [outputs]: Float32Array[][]) { - // Stop speeding up when buffer is below 0.05s - if (this.#speedUp && this.#totalSampleCount < 3000) { - console.log("[Audio] Restoring normal speed"); + if (this.#starting) { + if (this.#totalSampleCount < 0.1 * 48000) { + return true; + } else { + this.#starting = false; + } + } + + if (this.#speedUp && this.#totalSampleCount < 0.15 * 48000) { this.#speedUp = false; + this.#starting = true; } const outputLength = outputs![0]!.length; @@ -153,14 +159,6 @@ abstract class SourceProcessor this.#chunks.shift(); this.#chunkSampleCounts.shift(); } - - if (outputIndex < outputLength) { - console.log( - `[Audio] Buffer underflow, inserting silence: ${ - outputLength - outputIndex - } samples`, - ); - } } #read(offset: number) { diff --git a/libraries/scrcpy/src/options/codec.ts b/libraries/scrcpy/src/options/codec.ts index 40b0c7bd1..0b4d50fab 100644 --- a/libraries/scrcpy/src/options/codec.ts +++ b/libraries/scrcpy/src/options/codec.ts @@ -37,7 +37,7 @@ export class ScrcpyAudioCodec implements ScrcpyOptionValue { "raw", 0x00_72_61_77, "audio/raw", - "1", + "", ); readonly optionValue: string;