i2s audio element 无法resume 和destroy。 (AUD-6235)
IDF 5.4.1 ADF master
在使用过程中,突然出现i2s audio element无法stop和resume,但aac、和file缺是正常的。 LOG如下:
W (362701) AUDIO_PIPELINE: Without stop, st:7 W (362711) AUDIO_PIPELINE: Without wait stop, st:7 W (362716) AUDIO_EVT: There are no space to dispatch queue E (362721) AUDIO_ELEMENT: [i2s] Send destroy command failed W (362726) AUDIO_ELEMENT: [file] Element has not create when AUDIO_ELEMENT_TERMINATE, tick:2000 W (362735) AUDIO_ELEMENT: OUT-[aac] AEL_IO_ABORT [0;33mW (362739) AAC_DECODER: Output aborted -3 4096[0m [0;32mI (362744) AAC_DECODER: Closed by [3][0m I (362749) AUDIO_THREAD: The file task allocate stack on internal memory I (362755) AUDIO_ELEMENT: [file-0x3f80dcfc] Element task created I (362761) AUDIO_THREAD: The aac task allocate stack on internal memory I (362767) AUDIO_ELEMENT: [aac-0x3f80dbc0] Element task created I (362772) AUDIO_PIPELINE: Func:audio_pipeline_run, Line:359, MEM Total:4192836 Bytes, Inter:77567 Bytes, Dram:76843 Bytes, Dram largest free:73728Bytes
W (362786) AUDIO_EVT: There are no space to dispatch queue W (362791) AUDIO_ELEMENT: [i2s] Send resume command failed I (362797) AUDIO_ELEMENT: [file] AEL_MSG_CMD_RESUME,state:1 I (362802) AUDIO_ELEMENT: [aac] AEL_MSG_CMD_RESUME,state:1 E (362807) AUDIO_PIPELINE: audio_pipeline_resume failed W (362812) AUDIO_EVT: There are no space to dispatch queue E (362817) AUDIO_ELEMENT: [i2s] Send destroy command failed I (362833) FATFS_STREAM: File size: 41496 byte, file position: 0 [0;32mI (362837) CODEC_ELEMENT_HELPER: The element is 0x3f80dbc0. The reserve data 2 is 0x0.[0m [0;32mI (362837) AAC_DECODER: A new song playing[0m [0;32mI (362842) AAC_DECODER: This audio is RAW AAC[0m
代码如下: audio_element_stop(fatfs_stream_reader); audio_element_stop(aac_decoder); audio_pipeline_stop(pipeline); audio_pipeline_wait_for_stop_with_ticks(pipeline, pdMS_TO_TICKS(21000)) audio_pipeline_terminate_with_ticks(pipeline, pdMS_TO_TICKS(21000)); audio_pipeline_reset_ringbuffer(pipeline); audio_pipeline_reset_elements(pipeline); audio_pipeline_run(pipeline);
你提供的代码里似乎没有涉及到I2S的部分,能否提供更多的上下文和需求应用场景