Closed podaen closed 2 years ago
That's strange, I remember having tested this and that it was working. Are you sure that your mp3 files contain metadata ? In my streams-url_mp3-metadata2.ino test I point to a file which contains metadata. Maybe you can use that one to double check.
I will retest as soon I have the player setup ready on the Raspberry Pico...
Yeah, but I diden't test if further. Can you give an example with the callback like you sad here #27
you can do the approach that I used in my player to register a callback in the copy and process the additional output from there
I used the one of the example player, but it isn't working for me...
the example player_sd_i2s was working for me with all my mp3 files.
I looked and test it again. Not for me.
Only by doing this...
player.setMetadataCallback(printMetaData);
void printMetaData(MetaDataType type, const char* str, int len) { Serial.print("==> "); Serial.print(MetaDataTypeStr[type]); Serial.print(": "); Serial.println(str); }
Did you also test with the file that I have indicated: this definitively has metadata defined. Right now my guess would be that your files do not contain any metdata.
This is metadata right?
Did you also test with the file that I have indicated
Which file?
In my streams-url_mp3-metadata2.ino
Cann't find this one
I will retest as soon I have the player setup ready on the Raspberry Pico...
I am working on an esp32.
Yes I know, but right now I am working on Picos and it does not make any difference. The file is https://pschatzmann.github.io/arduino-audio-tools/resources/audio.mp3 Can you share your file as well ?
you are definetly talking about other data than I do. I downloaded the file from your url link and if I do right click - properties... I get no information on Title, album or what ever.
I am using https://en.wikipedia.org/wiki/ID3 It would be interesting to know what your format is...
Wait a minute... I have seen this before.
Now I am confused,
As you can see below the picture, the file contains ID3 v1 and v2 information. What the information contains for type 1 or 2, I can not tell.
I have implemented all versions, but not tested them all. I was happy when all my files were working and called it a day.
The test file I have just produced with some free web service.
ps. the ID3 v1 are only reported at the end!
You can make your own attribute information by rightclick on the file and fill in the properties. I think this is the most common... Maybe not for a stream, but for an mp3 it does.
Hmm, not on osx and linux... I haven't used Windows for more the 20 years now.
I have not much experence on that, but maybe you could download an music player. there you will find properties. I use media monkey, but there are other ones too.
Your right in Audacity I don't see any metadata for that file either...
what I could do is copy the file with filled in attributes to an usb stick and try it on an old auto radio to see if the information is displayed. I know it works with a2dp and spotify. diden't test it with mp3 extensions.
I was just checking with my other files which also work - and there I see the metadata also in Audacity. I think the best thing is if you share one of your files which is not working and we concentrate on that
Just had a quick look at the source code. I am currently only supporting frame_header.encoding == 0 || frame_header.encoding == 3; which is ASCII and UTF8. I think Windows uses some strange cp1252 ...
I have send you the file I was talking about.
I try to access it but it seems that you still need to approve my request...
Does it work now?
yes, thanks...
I tried the player with my files: - it's working
19:11:06.798 -> [I] AudioPlayer.h : 768 - virtual void audio_tools::AudioPlayer::setMetadataCallback(void (*)(audio_tools::MetaDataType, const char*, int))
19:11:06.798 -> [I] AudioPlayer.h : 270 - directory: /Music
19:11:06.833 -> [I] AudioPlayer.h : 261 - -> isValidAudioFile: '01 ?guas de mar?o.mp3': 1
19:11:06.833 -> [I] AudioPlayer.h : 337 - ==> found: '01 ?guas de mar?o.mp3' at index 0
19:11:06.833 -> [W] AudioPlayer.h : 215 - -> selectStream: 0 '01 ?guas de mar?o.mp3'
19:11:06.833 -> libhelix - -> invalid frame size: 0 / max: 1600
19:11:06.833 -> ==> Title: Elis & Tom
19:11:06.833 -> ==> Genre: Revival
19:11:06.833 -> [I] AudioCopy.h : 96 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
19:11:06.867 -> libhelix - -> invalid frame size: 0 / max: 1600
19:11:06.867 -> libhelix - -> invalid frame size: 0 / max: 1600
19:11:06.867 -> [I] AudioCopy.h : 96 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
19:11:06.867 -> [I] AudioPlayer.h : 633 - sample_rate: 44100
19:11:06.901 -> [I] AudioPlayer.h : 634 - bits_per_sample: 16
19:11:06.901 -> [I] AudioPlayer.h : 635 - channels: 2
19:11:06.901 -> [I] I2SStream.h : 103 - virtual voi
I created a test sketch with your file: -> its working as well
18:54:10.225 -> [I] I2SConfig.h : 63 - rx/tx mode: TX
18:54:10.225 -> [I] I2SConfig.h : 64 - port_no: 0
18:54:10.225 -> [I] I2SConfig.h : 65 - is_master: Master
18:54:10.225 -> [I] I2SConfig.h : 66 - sample rate: 44100
18:54:10.225 -> [I] I2SConfig.h : 67 - bits per sample: 16
18:54:10.225 -> [I] I2SConfig.h : 68 - number of channels: 2
18:54:10.260 -> [I] I2SConfig.h : 69 - i2s_format: I2S_STD_FORMAT
18:54:10.260 -> [I] I2SConfig.h : 77 - pin_ws: 15
18:54:10.260 -> [I] I2SConfig.h : 78 - pin_bck: 14
18:54:10.260 -> [I] I2SConfig.h : 79 - pin_data: 22
18:54:10.260 -> ==> Title: Talespin (Promo)
18:54:10.260 -> ==> Album: 0sfx Louie's Place
18:54:10.260 -> ==> Genre: Soundtrack
18:54:10.260 -> [I] I2SStream.h : 103 - virtu
I am not getting it... Did you enabled something in the configuration file or in the sdfat library?
No, I am wondering as well what it could be. Here is the test sketch:
// set this in AudioConfig.h or here after installing https://github.com/pschatzmann/arduino-libhelix.git
#define USE_HELIX
#include "AudioTools.h"
#include "AudioCodecs/CodecMP3Helix.h"
#include <SPI.h>
#include <SdFat.h>
using namespace audio_tools;
// -> EncodedAudioStream -> I2SStream
// URLStream -> MultiOutput -|
// -> MetaDataPrint
File audioFile;
MetaDataPrint outMeta; // final output of metadata
I2SStream i2s; // I2S output
EncodedAudioStream out2dec(&i2s, new MP3DecoderHelix()); // Decoding stream
MultiOutput out(outMeta, out2dec);
StreamCopy copier(out, audioFile); // copy url to decoder
const int chipSelect=CS;
// callback for meta data
void printMetaData(MetaDataType type, const char* str, int len){
Serial.print("==> ");
Serial.print(toStr(type));
Serial.print(": ");
Serial.println(str);
}
void setup(){
Serial.begin(115200);
AudioLogger::instance().begin(Serial, AudioLogger::Info);
// setup file
SD.begin(SdSpiConfig(PIN_CS, DEDICATED_SPI, SD_SCK_MHZ(2)));
//audioFile = SD.open("/Music/Conquistadores.mp3");
audioFile = SD.open("/test/002.mp3");
// setup metadata
outMeta.setCallback(printMetaData);
outMeta.begin()
// setup i2s
auto config = i2s.defaultConfig(TX_MODE);
i2s.begin(config);
// setup I2S based on sampling rate provided by decoder
out2dec.setNotifyAudioChange(i2s);
out2dec.begin();
}
void loop(){
copier.copy();
}
Now I see. You need to update the sd example. I think it will work now.
Cann't make it work for the player
const char startFilePath = "/"; const char ext = "mp3"; AudioSourceSdFat source(startFilePath, ext, SD_CS_PIN,16); File audioFile; MetaDataPrint outMeta; // final output of metadata I2SStream i2s; VolumeOutput volume(i2s); LogarithmicVolumeControl lvc(0.1); //MP3DecoderHelix decoder; EncodedAudioStream out2dec(&volume, new MP3DecoderHelix()); // Decoding stream //AudioPlayer player(source, i2s, decoder); AudioPlayer player(source, volume, out2dec); MultiOutput out(outMeta, out2dec); StreamCopy copier(out, audioFile); // copy url to decoder
out2dec is not valid for the player.
and if I make it work for the player
MP3DecoderHelix decoder; //EncodedAudioStream out2dec(&volume, new MP3DecoderHelix()); // Decoding stream AudioPlayer player(source, volume, decoder); MultiOutput out(outMeta, decoder); StreamCopy copier(out, audioFile); // copy url to decoder
It doesn't accept MultiOutput out(outMeta, decoder);
in the player player.setMetadataCallback(printMetaData); should be good enough. It was working for me in the player_sd_i2s.ino example
nop
Can you double check why in your case the AudioPlayer the following code on line 594 is not executed ?
if (meta_active) {
copier.setCallbackOnWrite(decodeMetaData, this);
}
You can also double check if the method decodeMetaData is called at all
it seems that audioplayer is not called... or the serial monitor is not ready to plot what I ask. If I do a check when I select stream the meta_active returns 1.
setMetadataCallback in the audioplayer is called
if you set the log level to Debug is the decodeMetaData() method called ? That should happen after every copy step
This works too in the MetaDataID3 class
void begin() {
Serial.println("test");
id3v1.begin();
id3v2.begin();
}
Opening port Port open end setup here [D] I2SStream.h : 87 - void audio_tools::I2SStream::begin(audio_tools::I2SConfig) [D] I2SESP32.h : 38 - void audio_tools::I2SBase::begin(audio_tools::I2SConfig) [I] I2SConfig.h : 63 - rx/tx mode: TX [I] I2SConfig.h : 64 - port_no: 0 [I] I2SConfig.h : 65 - is_master: Master [I] I2SConfig.h : 66 - sample rate: 44100 [I] I2SConfig.h : 67 - bits per sample: 16 [I] I2SConfig.h : 68 - number of channels: 2 [I] I2SConfig.h : 69 - i2s_format: I2S_STD_FORMAT [I] I2SConfig.h : 77 - pin_ws: 25 [I] I2SConfig.h : 78 - pin_bck: 26 [I] I2SConfig.h : 79 - pin_data: 22 [D] I2SESP32.h : 93 - begin - started [I] AudioPlayer.h : 779 - virtual void audio_tools::AudioPlayer::setMetadataCallback(void ()(audio_tools::MetaDataType, const char, int)) [D] AudioPlayer.h : 599 - virtual bool audio_tools::AudioPlayer::begin(int, bool) [D] AudioOutput.h : 310 - void audio_tools::EncodedAudioStream::begin() [D] CodecMP3Helix.h : 76 - virtual void audio_tools::MP3DecoderHelix::begin() [D] AudioPlayer.h : 207 - virtual void audio_tools::AudioSourceSdFat::begin() [I] AudioPlayer.h : 281 - directory: / [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 0 [D] AudioPlayer.h : 340 - -> processing: Playlist.csv with index 0 [I] AudioPlayer.h : 272 - -> isValidAudioFile: 'Playlist.csv': 0 [D] AudioPlayer.h : 360 - -> close: 'Playlist.csv' [D] AudioPlayer.h : 340 - -> processing: 22 with index 0 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 0 [D] AudioPlayer.h : 340 - -> processing: 001.mp3 with index 0 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '001.mp3': 1 [I] AudioPlayer.h : 348 - ==> found: '001.mp3' at index 0 [D] AudioPlayer.h : 360 - -> close: '22' [D] AudioPlayer.h : 340 - -> processing: 01 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '01' [D] AudioPlayer.h : 340 - -> processing: 02 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '02' [D] AudioPlayer.h : 340 - -> processing: 03 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '03' [D] AudioPlayer.h : 340 - -> processing: 04 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '04' [D] AudioPlayer.h : 340 - -> processing: 05 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '05' [D] AudioPlayer.h : 340 - -> processing: 06 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '06' [D] AudioPlayer.h : 340 - -> processing: 07 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '07' [D] AudioPlayer.h : 340 - -> processing: 08 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '08' [D] AudioPlayer.h : 340 - -> processing: 09 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '09' [D] AudioPlayer.h : 340 - -> processing: 10 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '10' [D] AudioPlayer.h : 340 - -> processing: 21 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '21' [D] AudioPlayer.h : 340 - -> processing: 23 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '23' [D] AudioPlayer.h : 340 - -> processing: 24 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '24' [D] AudioPlayer.h : 340 - -> processing: 25 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '25' [D] AudioPlayer.h : 340 - -> processing: 26 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '26' [D] AudioPlayer.h : 340 - -> processing: 27 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '27' [D] AudioPlayer.h : 340 - -> processing: 28 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '28' [D] AudioPlayer.h : 340 - -> processing: 29 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '29' [D] AudioPlayer.h : 340 - -> processing: 30 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '30' [D] AudioPlayer.h : 340 - -> processing: 5.mp3 with index 1 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '5.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '5.mp3' [D] AudioPlayer.h : 340 - -> processing: 4.mp3 with index 2 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '4.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '4.mp3' [D] AudioPlayer.h : 340 - -> processing: 3.mp3 with index 3 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '3.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '3.mp3' [D] AudioPlayer.h : 340 - -> processing: 010.mp3 with index 4 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '010.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '010.mp3' [D] AudioPlayer.h : 340 - -> processing: 14.mp3 with index 5 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '14.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '14.mp3' [D] AudioPlayer.h : 340 - -> processing: 015.mp3 with index 6 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '015.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '015.mp3' [D] AudioPlayer.h : 340 - -> processing: 2.mp3 with index 7 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '2.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '2.mp3' [D] AudioPlayer.h : 340 - -> processing: 001.mp3 with index 8 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '001.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '001.mp3' [D] AudioPlayer.h : 291 - -> getFile: '001.mp3': 0 [W] AudioPlayer.h : 224 - -> selectStream: 0 '001.mp3' [D] AudioCopy.h : 175 - void audio_tools::StreamCopyT
::setCallbackOnWrite(void ()(void, void, size_t), void) [with T = unsigned char; size_t = unsigned int] [I] AudioOutput.h : 450 - setVolume: 0.100000 tracknumber: 0 Playlist opened read read song form playlist pfileName: 001.mp3 set path [D] AudioPlayer.h : 685 - virtual bool audio_tools::AudioPlayer::setPath(char) [D] StrExt.h : 109 - StrExt::grow(4) [D] StrExt.h : 109 - StrExt::grow(7) [D] AudioPlayer.h : 319 - -> getFileByPath: /10/ , 001.mp3 [W] AudioPlayer.h : 231 - -> selectStream: /10/001.mp3 [D] AudioPlayer.h : 636 - virtual void audio_tools::AudioPlayer::end() [D] AudioOutput.h : 323 - void audio_tools::EncodedAudioStream::end() [D] CodecMP3Helix.h : 85 - virtual void audio_tools::MP3DecoderHelix::end() [D] AudioOutput.h : 310 - void audio_tools::EncodedAudioStream::begin() [D] CodecMP3Helix.h : 76 - virtual void audio_tools::MP3DecoderHelix::begin() [D] AudioPlayer.h : 705 - open selected stream [D] AudioPlayer.h : 744 - virtual void audio_tools::AudioPlayer::copy() [D] AudioCopy.h : 71 - size_t audio_tools::StreamCopyT ::copy() [with T = unsigned char; size_t = unsigned int] [D] AudioOutput.h : 331 - virtual size_t audio_tools::EncodedAudioStream::write(const uint8_t , size_t): 11268 [D] CodecMP3Helix.h : 104 - virtual size_t audio_tools::MP3DecoderHelix::write(const void, size_t): 11268 [D] CodecMP3Helix.h : 131 - static void audio_tools::MP3DecoderHelix::infoCallback(MP3FrameInfo&) [D] AudioPlayer.h : 643 - virtual void audio_tools::AudioPlayer::setAudioInfo(audio_tools::AudioBaseInfo) [I] AudioPlayer.h : 644 - sample_rate: 44100 [I] AudioPlayer.h : 645 - bits_per_sample: 16 [I] AudioPlayer.h : 646 - channels: 2 [D] AudioOutput.h : 428 - virtual void audio_tools::VolumeOutput::setAudioInfo(audio_tools::AudioBaseInfo) [D] AudioOutput.h : 428 - virtual void audio_tools::VolumeOutput::setAudioInfo(audio_tools::AudioBaseInfo) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioPlayer.h : 816 - static void audio_tools::AudioPlayer::decodeMetaData(void, void, size_t), 11268 [I] AudioCopy.h : 96 - StreamCopy::copy 11268 -> 11268 -> 11268 bytes - in 1 hops [D] AudioPlayer.h : 744 - virtual void audio_tools::AudioPlayer::copy() [D] AudioCopy.h : 71 - size_t audio_tools::StreamCopyT::copy() [with T = unsigned char; size_t = unsigned int] [D] AudioOutput.h : 331 - virtual size_t audio_tools::EncodedAudioStream::write(const uint8_t , size_t): 11268 [D] CodecMP3Helix.h : 104 - virtual size_t audio_tools::MP3DecoderHelix::write(const void, size_t): 11268 [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioPlayer.h : 816 - static void audio_tools::AudioPlayer::decodeMetaData(void, void, size_t), 11268 [I] AudioCopy.h : 96 - StreamCopy::copy 11268 -> 11268 -> 11268 bytes - in 1 hops [D] AudioPlayer.h : 744 - virtual void audio_tools::AudioPlayer::copy() [D] AudioCopy.h : 71 - size_t audio_tools::StreamCopyT::copy() [with T = unsigned char; size_t = unsigned int] [D] AudioOutput.h : 331 - virtual size_t audio_tools::EncodedAudioStream::write(const uint8_t, size_t): 11268 [D] CodecMP3Helix.h : 104 - virtual size_t audio_tools::MP3DecoderHelix::write(const void, size_t): 11268 [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes
I don't get it - so decodeMetaData() is called. Will you try with the same file that you have sent to me ?
Something is really different between my and your code:
virtual bool begin(int index=0, bool isActive = true) {
LOGD(LOG_METHOD);
bool result = false;
// navigation supoort
autonext = p_source->isAutoNext();
// start dependent objects
p_out_decoding->begin();
p_source->begin();
meta_out.begin();
In your log you get:
[D] I2SESP32.h : 93 - begin - started
[I] AudioPlayer.h : 779 - virtual void audio_tools::AudioPlayer::setMetadataCallback(void ()(audio_tools::MetaDataType, const char, int))
[D] AudioPlayer.h : 599 - virtual bool audio_tools::AudioPlayer::begin(int, bool)
[D] AudioOutput.h : 310 - void audio_tools::EncodedAudioStream::begin()
[D] CodecMP3Helix.h : 76 - virtual void audio_tools::MP3DecoderHelix::begin()
[D] AudioPlayer.h : 207 - virtual void audio_tools::AudioSourceSdFat::begin()
[I] AudioPlayer.h : 281 - directory: /
[D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 0
So the meta_out.begin(); seems to be missing
MetaDataID3 has
void begin() {
LOGD(LOG_METHOD);
id3v1.begin();
id3v2.begin();
}
So there should be a line in the log!
This is the log from the file I send you.
Opening port Port open �end setup here [D] I2SStream.h : 87 - void audio_tools::I2SStream::begin(audio_tools::I2SConfig) [D] I2SESP32.h : 38 - void audio_tools::I2SBase::begin(audio_tools::I2SConfig) [I] I2SConfig.h : 63 - rx/tx mode: TX [I] I2SConfig.h : 64 - port_no: 0 [I] I2SConfig.h : 65 - is_master: Master [I] I2SConfig.h : 66 - sample rate: 44100 [I] I2SConfig.h : 67 - bits per sample: 16 [I] I2SConfig.h : 68 - number of channels: 2 [I] I2SConfig.h : 69 - i2s_format: I2S_STD_FORMAT [I] I2SConfig.h : 77 - pin_ws: 25 [I] I2SConfig.h : 78 - pin_bck: 26 [I] I2SConfig.h : 79 - pin_data: 22 [D] I2SESP32.h : 93 - begin - started [I] AudioPlayer.h : 779 - virtual void audio_tools::AudioPlayer::setMetadataCallback(void ()(audio_tools::MetaDataType, const char, int)) [D] AudioPlayer.h : 599 - virtual bool audio_tools::AudioPlayer::begin(int, bool) [D] AudioOutput.h : 310 - void audio_tools::EncodedAudioStream::begin() [D] CodecMP3Helix.h : 76 - virtual void audio_tools::MP3DecoderHelix::begin() [D] AudioPlayer.h : 207 - virtual void audio_tools::AudioSourceSdFat::begin() [I] AudioPlayer.h : 281 - directory: / [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 0 [D] AudioPlayer.h : 340 - -> processing: Playlist.csv with index 0 [I] AudioPlayer.h : 272 - -> isValidAudioFile: 'Playlist.csv': 0 [D] AudioPlayer.h : 360 - -> close: 'Playlist.csv' [D] AudioPlayer.h : 340 - -> processing: 22 with index 0 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 0 [D] AudioPlayer.h : 340 - -> processing: 001.mp3 with index 0 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '001.mp3': 1 [I] AudioPlayer.h : 348 - ==> found: '001.mp3' at index 0 [D] AudioPlayer.h : 360 - -> close: '22' [D] AudioPlayer.h : 340 - -> processing: 01 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '01' [D] AudioPlayer.h : 340 - -> processing: 02 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '02' [D] AudioPlayer.h : 340 - -> processing: 03 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '03' [D] AudioPlayer.h : 340 - -> processing: 04 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '04' [D] AudioPlayer.h : 340 - -> processing: 05 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '05' [D] AudioPlayer.h : 340 - -> processing: 06 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '06' [D] AudioPlayer.h : 340 - -> processing: 07 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '07' [D] AudioPlayer.h : 340 - -> processing: 08 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '08' [D] AudioPlayer.h : 340 - -> processing: 09 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '09' [D] AudioPlayer.h : 340 - -> processing: 10 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '10' [D] AudioPlayer.h : 340 - -> processing: 21 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '21' [D] AudioPlayer.h : 340 - -> processing: 23 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '23' [D] AudioPlayer.h : 340 - -> processing: 24 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '24' [D] AudioPlayer.h : 340 - -> processing: 25 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '25' [D] AudioPlayer.h : 340 - -> processing: 26 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '26' [D] AudioPlayer.h : 340 - -> processing: 27 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '27' [D] AudioPlayer.h : 340 - -> processing: 28 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '28' [D] AudioPlayer.h : 340 - -> processing: 29 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '29' [D] AudioPlayer.h : 340 - -> processing: 30 with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: '30' [D] AudioPlayer.h : 340 - -> processing: bak with index 1 [D] AudioPlayer.h : 329 - void audio_tools::AudioSourceSdFat::getFileAtIndex(audio_tools::AudioFile, size_t, size_t&, audio_tools::AudioFile&): 1 [D] AudioPlayer.h : 360 - -> close: 'bak' [D] AudioPlayer.h : 340 - -> processing: 002.mp3 with index 1 [I] AudioPlayer.h : 272 - -> isValidAudioFile: '002.mp3': 1 [D] AudioPlayer.h : 360 - -> close: '002.mp3' [D] AudioPlayer.h : 291 - -> getFile: '001.mp3': 0 [W] AudioPlayer.h : 224 - -> selectStream: 0 '001.mp3' [D] AudioCopy.h : 175 - void audio_tools::StreamCopyT
::setCallbackOnWrite(void ()(void, void, size_t), void) [with T = unsigned char; size_t = unsigned int] [I] AudioOutput.h : 450 - setVolume: 0.100000 tracknumber: 0 Playlist opened read read song form playlist pfileName: 002.mp3 set path [D] AudioPlayer.h : 685 - virtual bool audio_tools::AudioPlayer::setPath(char) [D] StrExt.h : 109 - StrExt::grow(1) [D] StrExt.h : 109 - StrExt::grow(7) [D] AudioPlayer.h : 319 - -> getFileByPath: / , 002.mp3 [W] AudioPlayer.h : 231 - -> selectStream: /002.mp3 [D] AudioPlayer.h : 636 - virtual void audio_tools::AudioPlayer::end() [D] AudioOutput.h : 323 - void audio_tools::EncodedAudioStream::end() [D] CodecMP3Helix.h : 85 - virtual void audio_tools::MP3DecoderHelix::end() [D] AudioOutput.h : 310 - void audio_tools::EncodedAudioStream::begin() [D] CodecMP3Helix.h : 76 - virtual void audio_tools::MP3DecoderHelix::begin() [D] AudioPlayer.h : 705 - open selected stream [D] AudioPlayer.h : 744 - virtual void audio_tools::AudioPlayer::copy() [D] AudioCopy.h : 71 - size_t audio_tools::StreamCopyT ::copy() [with T = unsigned char; size_t = unsigned int] [D] AudioOutput.h : 331 - virtual size_t audio_tools::EncodedAudioStream::write(const uint8_t , size_t): 11268 [D] CodecMP3Helix.h : 104 - virtual size_t audio_tools::MP3DecoderHelix::write(const void, size_t): 11268 [D] CodecMP3Helix.h : 131 - static void audio_tools::MP3DecoderHelix::infoCallback(MP3FrameInfo&) [D] AudioPlayer.h : 643 - virtual void audio_tools::AudioPlayer::setAudioInfo(audio_tools::AudioBaseInfo) [I] AudioPlayer.h : 644 - sample_rate: 44100 [I] AudioPlayer.h : 645 - bits_per_sample: 16 [I] AudioPlayer.h : 646 - channels: 2 [D] AudioOutput.h : 428 - virtual void audio_tools::VolumeOutput::setAudioInfo(audio_tools::AudioBaseInfo) [D] AudioOutput.h : 428 - virtual void audio_tools::VolumeOutput::setAudioInfo(audio_tools::AudioBaseInfo) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioPlayer.h : 816 - static void audio_tools::AudioPlayer::decodeMetaData(void, void, size_t), 11268 [I] AudioCopy.h : 96 - StreamCopy::copy 11268 -> 11268 -> 11268 bytes - in 1 hops [D] AudioPlayer.h : 744 - virtual void audio_tools::AudioPlayer::copy() [D] AudioCopy.h : 71 - size_t audio_tools::StreamCopyT::copy() [with T = unsigned char; size_t = unsigned int] [D] AudioOutput.h : 331 - virtual size_t audio_tools::EncodedAudioStream::write(const uint8_t , size_t): 11268 [D] CodecMP3Helix.h : 104 - virtual size_t audio_tools::MP3DecoderHelix::write(const void, size_t): 11268 [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioPlayer.h : 816 - static void audio_tools::AudioPlayer::decodeMetaData(void, void, size_t), 11268 [I] AudioCopy.h : 96 - StreamCopy::copy 11268 -> 11268 -> 11268 bytes - in 1 hops [D] AudioPlayer.h : 744 - virtual void audio_tools::AudioPlayer::copy() [D] AudioCopy.h : 71 - size_t audio_tools::StreamCopyT::copy() [with T = unsigned char; size_t = unsigned int] [D] AudioOutput.h : 331 - virtual size_t audio_tools::EncodedAudioStream::write(const uint8_t, size_t): 11268 [D] CodecMP3Helix.h : 104 - virtual size_t audio_tools::MP3DecoderHelix::write(const void, size_t): 11268 [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioOutput.h : 412 - virtual size_t audio_tools::VolumeOutput::write(const uint8_t, size_t) [D] AudioStreams.h : 277 - virtual size_t audio_tools::BufferedStream::write(const uint8_t, size_t): 4608 [D] I2SStream.h : 128 - virtual size_t audio_tools::I2SStream::writeExt(const uint8_t, size_t) [D] I2SESP32.h : 110 - size_t audio_tools::I2SBase::writeBytes(const void*, size_t) [D] I2SESP32.h : 117 - i2s_write 4608 -> 4608 bytes
in the MetaDataId3.h I check...
/// provide the (partial) data which might contain the meta data
size_t write(const uint8_t* data, size_t len){
if (armed){
Serial.print("Status: ");
Serial.println(status);
switch(status){
case TagNotFound:
processTagNotFound(data,len);
break;
case PartialTagAtTail:
processPartialTagAtTail(data,len);
break;
case TagFoundPartial:
Serial.print("len: ");
Serial.println(len);
processTagFoundPartial(data,len);
break;
default:
// do nothing
break;
}
}
return len;
}
Here below my data doesn't contain anything
/// We have the beginning of the metadata and need to process the remainder
void processTagFoundPartial(const uint8_t* data, size_t len) {
//String str = (char*)data;//gives me special charachters
//Serial.print(str);
if (tag!=nullptr){
Serial.print("tag: ");
int remainder = sizeof(ID3v1) - use_bytes_of_next_write;
memcpy(tag,data+use_bytes_of_next_write,remainder);
processNotify();
use_bytes_of_next_write = 0;
} else if (tag_ext!=nullptr){
Serial.print("tag_ext");
int remainder = sizeof(ID3v1Enhanced) - use_bytes_of_next_write;
memcpy(tag_ext,data+use_bytes_of_next_write,remainder);
processNotify();
use_bytes_of_next_write = 0;
}
}
The serial monitor
Opening port Port open end setup here [W] AudioPlayer.h : 224 - -> selectStream: 0 '001.mp3' tracknumber: 0 Playlist opened read read song form playlist pfileName: 002.mp3 set path [W] AudioPlayer.h : 231 - -> selectStream: /002.mp3 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 0 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Status: 2 len: 11268 Next Stream
It takes a long time before it see a status change.
So the meta_out.begin(); seems to be missing
MetaDataID3 has
void begin() { LOGD(LOG_METHOD); id3v1.begin(); id3v2.begin(); }
So there should be a line in the log!
I checked the MetadataID3.h file and indeed I have an old version. Very strang because I updated this morning. I take a look what is going on.
This should not be. With your big write size, it should find it after the first write in the processing for processTagNotFound() in your first Status: 0
If you can double check your file should contain ID3 The file that you have sent me starts with a ID3. So the following should succeed:
/// try to find the metatdata tag in the provided data
void processTagNotFound(const uint8_t* data, size_t len) {
// activate tag processing when we have an ID3 Tag
if (!tag_active && !tag_processed){
int pos = findTag("ID3", (const char*) data, len);
if (pos>=0){
Maybe we should add a tag_processed = false; to the begin method!
I will do that, but first I need to get the latest version of the MetaDataID3.h file. There is something within my git extension why it is not doing it. My githtml is uptodate... I have updated the extension not so long a go and I think I do something wrong. I says it's up to date but it issen't.
I see now it was uptodate... I think you are using
https://github.com/pschatzmann/arduino-audio-tools/blob/main/src/AudioTools/MetaDataID3.h
and I am using
https://github.com/pschatzmann/arduino-audio-tools/blob/main/src/AudioMetaData/MetaDataID3.h
Oh I did not notice. I thought I moved everything to the new directory!
glad we find something.
Soo we have the metadata from the url player working with icy... Now I tried to recieving data in the player-sd-i2s example from printMetaData, but nothing so far.