diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-04-19 16:45:50 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-04-19 16:45:50 +1000 |
| commit | 4c77950e702a329f3136456a932efbea36e03d42 (patch) | |
| tree | 5df7e8717b751846655c16b50c352712b642658b /src/audio/audio_task.cpp | |
| parent | 561f9d2a07ee6ee1c2f18dc375125f87ea7b0d55 (diff) | |
| download | tangara-fw-4c77950e702a329f3136456a932efbea36e03d42.tar.gz | |
Pipeline working and outputting correctly, but noisy
Diffstat (limited to 'src/audio/audio_task.cpp')
| -rw-r--r-- | src/audio/audio_task.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/audio/audio_task.cpp b/src/audio/audio_task.cpp index 3a2a5941..1670f9f6 100644 --- a/src/audio/audio_task.cpp +++ b/src/audio/audio_task.cpp @@ -45,7 +45,7 @@ auto StartPipeline(Pipeline* pipeline, IAudioSink* sink) -> void { ESP_LOGI(kTag, "starting audio pipeline task"); xTaskCreatePinnedToCore(&AudioTaskMain, "pipeline", kStackSize, args, - kTaskPriorityAudio, NULL, kAudioCore); + kTaskPriorityAudioPipeline, NULL, kAudioCore); } auto StartDrain(IAudioSink* sink) -> void { @@ -57,8 +57,8 @@ auto StartDrain(IAudioSink* sink) -> void { }; ESP_LOGI(kTag, "starting audio drain task"); - xTaskCreatePinnedToCore(&AudioDrainMain, "drain", kDrainStackSize, drain_args, - kTaskPriorityAudio, NULL, kAudioCore); + xTaskCreate(&AudioDrainMain, "drain", kDrainStackSize, drain_args, + kTaskPriorityAudioDrain, NULL); } void AudioTaskMain(void* args) { @@ -134,7 +134,7 @@ void AudioTaskMain(void* args) { // The format of the stream within the sink stream has changed. We // need to reconfigure the sink, but shouldn't do so until we've fully // drained the current buffer. - if (xStreamBufferIsEmpty(sink->buffer())) { + if (xStreamBufferIsEmpty(*sink->buffer())) { ESP_LOGI(kTag, "reconfiguring dac"); output_format = sink_stream.info().format; sink->Configure(*output_format); @@ -149,7 +149,7 @@ void AudioTaskMain(void* args) { // throttle this task's CPU time. Maybe also hold off on the pipeline // if the buffer is already close to full? std::size_t sent = xStreamBufferSend( - sink->buffer(), sink_stream.data().data(), + *sink->buffer(), sink_stream.data().data(), sink_stream.data().size_bytes(), pdMS_TO_TICKS(10)); sink_stream.consume(sent); } @@ -172,7 +172,7 @@ void AudioDrainMain(void* args) { // TODO(jacqueline): implement PAUSE without busy-waiting. while (*command != QUIT) { - std::size_t len = xStreamBufferReceive(sink->buffer(), sDrainBuf, + std::size_t len = xStreamBufferReceive(*sink->buffer(), sDrainBuf, sizeof(sDrainBuf), portMAX_DELAY); if (len > 0) { sink->Send({sDrainBuf, len}); |
