@@ -256,32 +256,41 @@ func (tm *TranscoderManager) encodeOpus(ctx context.Context, inst *TranscoderIns
256256 opusPacket := make ([]byte , 4000 ) // Max opus packet size
257257
258258 var granulePos uint64
259+ var sentCount int64 = 0
259260
261+ logrus .Infof ("Opus Transcoder %s: Entering main loop" , inst .Config .Name )
260262 for {
261263 select {
262264 case <- ctx .Done ():
265+ logrus .Infof ("Opus Transcoder %s: Context cancelled" , inst .Config .Name )
263266 return
264267 default :
265- _ , err := io .ReadFull (decoder , pcmBuf )
266- if err != nil {
268+ rn , rerr := io .ReadFull (decoder , pcmBuf )
269+ if rerr != nil {
270+ logrus .WithError (rerr ).Warnf ("Opus Transcoder %s: PCM read error" , inst .Config .Name )
267271 return
268272 }
269273
274+ if sentCount == 0 {
275+ logrus .Infof ("Opus Transcoder %s: Successfully read first PCM frame (%d bytes)" , inst .Config .Name , rn )
276+ }
277+
270278 for i := 0 ; i < len (pcmSamples ); i ++ {
271279 pcmSamples [i ] = int16 (pcmBuf [i * 2 ]) | int16 (pcmBuf [i * 2 + 1 ])<< 8
272280 }
273281
274- n , err := enc .Encode (pcmSamples , frameSize , opusPacket )
275- if err != nil {
276- logrus .WithError (err ).Error ("Opus encode error" )
282+ en , eerr := enc .Encode (pcmSamples , frameSize , opusPacket )
283+ if eerr != nil {
284+ logrus .WithError (eerr ).Error ("Opus encode error" )
277285 return
278286 }
279287
280288 granulePos += uint64 (frameSize )
281- if err := pw .WritePacket (opusPacket [:n ], granulePos , false , false ); err != nil {
289+ if err := pw .WritePacket (opusPacket [:en ], granulePos , false , false ); err != nil {
282290 return
283291 }
284292
293+ sentCount ++
285294 atomic .AddInt64 (& inst .FramesProcessed , 1 )
286295 }
287296 }
0 commit comments