You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
814B

  1. package recorder
  2. import (
  3. "log"
  4. "sdr-visual-suite/internal/demod/gpudemod"
  5. )
  6. func tryGPUAudio(gpu *gpudemod.Engine, label string, iq []complex64, offset float64, bw float64, gpuMode gpudemod.DemodType) ([]float32, int, bool) {
  7. if gpu == nil {
  8. return nil, 0, false
  9. }
  10. if gpuAudio, gpuRate, err := gpu.DemodFused(iq, offset, bw, gpuMode); err == nil {
  11. log.Printf("gpudemod: fused GPU demod used (%s)", label)
  12. return gpuAudio, gpuRate, true
  13. } else {
  14. log.Printf("gpudemod: fused GPU demod failed (%s): %v", label, err)
  15. }
  16. if gpuAudio, gpuRate, err := gpu.Demod(iq, offset, bw, gpuMode); err == nil {
  17. log.Printf("gpudemod: legacy GPU demod used (%s)", label)
  18. return gpuAudio, gpuRate, true
  19. } else {
  20. log.Printf("gpudemod: legacy GPU demod failed (%s): %v", label, err)
  21. }
  22. return nil, 0, false
  23. }