| @@ -2,6 +2,7 @@ package ingest | |||||
| import ( | import ( | ||||
| "context" | "context" | ||||
| "log" | |||||
| "sync" | "sync" | ||||
| "sync/atomic" | "sync/atomic" | ||||
| "time" | "time" | ||||
| @@ -225,10 +226,12 @@ func (r *Runtime) handleChunk(chunk PCMChunk) { | |||||
| // SetSampleRate writes atomically, so the StreamResampler's NextFrame() | // SetSampleRate writes atomically, so the StreamResampler's NextFrame() | ||||
| // picks up the corrected ratio without any additional locking. | // picks up the corrected ratio without any additional locking. | ||||
| if chunk.SampleRateHz > 0 && chunk.SampleRateHz != r.workSampleRate { | if chunk.SampleRateHz > 0 && chunk.SampleRateHz != r.workSampleRate { | ||||
| prev := r.workSampleRate | |||||
| r.workSampleRate = chunk.SampleRateHz | r.workSampleRate = chunk.SampleRateHz | ||||
| if r.sink != nil { | if r.sink != nil { | ||||
| r.sink.SetSampleRate(chunk.SampleRateHz) | r.sink.SetSampleRate(chunk.SampleRateHz) | ||||
| } | } | ||||
| log.Printf("ingest: actual decoded sample rate %d Hz (was %d Hz) — resampler and pacer updated", chunk.SampleRateHz, prev) | |||||
| } | } | ||||
| r.mu.Unlock() | r.mu.Unlock() | ||||