pschatzmann / arduino-audio-tools

Arduino Audio Tools (a powerful Audio library not only for Arduino)
GNU General Public License v3.0
1.44k stars 222 forks source link

stack collision/corruption when trying to read sample mp3 with URLStream #528

Closed 0x0fe closed 1 year ago

0x0fe commented 1 year ago

So, while experimenting with the multioutput on the sdfat-ffti2s example (modified to play an UrlStream) i face a stack corruption / stack smashing protection which is not random as it occurs everytime (in loop). The file is this one, 1.61MB and the stack corruption occurs after about 5 or 6 seconds https://filesamples.com/samples/audio/mp3/sample3.mp3 In the code below i commented the FFT display since it is not useful to show the bug and it fills the debug output. What i notice is that after few second streamcopy::copy get messed up and it crashes right after that. StreamCopy::copy 1024 -> 4294967295 -> 0 bytes What could be the cause of this issue? The platform is ESP32S3 and it plays on an external DAC.

#include "AudioTools.h"
#include "AudioLibs/AudioSourceSD.h"
#include "AudioCodecs/CodecMP3Helix.h"
#include "AudioLibs/AudioRealFFT.h" // or AudioKissFFT or others
const char *urls[] = {
  "https://filesamples.com/samples/audio/mp3/sample3.mp3",
  "https://ice6.somafm.com/groovesalad-128-mp3",
  "http://stream.srg-ssr.ch/m/rsj/mp3_128",
};
const char *startFilePath="/";
const char* ext="mp3";
const char *wifi = "SSID";
const char *password = "PASS";
//AudioSourceSD source(startFilePath, ext);
URLStream urlStream(wifi, password);
AudioSourceURL source(urlStream, urls, "audio/mp3");
MultiOutput multi_output;
MP3DecoderHelix decoder;
AudioPlayer player(source, multi_output, decoder);
I2SStream i2s; // output to i2s
AudioRealFFT fft; // or AudioKissFFT or others

#define MCK             17
#define WS              18
#define BCK             21
#define DAT             4
#define MUTE            3

// display fft result
void fftResult(AudioFFTBase &fft){
//    int diff;
//    auto result = fft.result();
//    if (result.magnitude>100){
//        Serial.print(result.frequency);
//        Serial.print(" ");
//        Serial.print(result.magnitude);  
//        Serial.print(" => ");
//        Serial.print(result.frequencyAsNote(diff));
//        Serial.print( " diff: ");
//        Serial.println(diff);
//    }
}

void setup() {

  Serial.begin(115200);
  AudioLogger::instance().begin(Serial, AudioLogger::Info);

  // setup I2S
  auto cfg = i2s.defaultConfig(TX_MODE);
  cfg.pin_mck = MCK;
  cfg.pin_bck = BCK;
  cfg.pin_ws = WS;
  cfg.pin_data = DAT;    
  i2s.begin(cfg);

  // Setup FFT
  auto tcfg = fft.defaultConfig();
  tcfg.copyFrom(cfg);
  tcfg.length = 1024;
  tcfg.callback = &fftResult;
  fft.begin(tcfg);

  multi_output.add(fft);
  multi_output.add(i2s);
  printf("length %d\n",urlStream.httpRequest().getReceivedContentLength()); //reads 0 at this point
  player.begin();
  player.setVolume(0.3);
}

void loop() {
  player.copy();
}
[I] I2SConfig.h : 98 - rx/tx mode: TX_MODE
[I] I2SConfig.h : 99 - port_no: 0
[I] I2SConfig.h : 100 - is_master: Master
[I] I2SConfig.h : 101 - sample rate: 44100
[I] I2SConfig.h : 102 - bits per sample: 16
[I] I2SConfig.h : 103 - number of channels: 2
[I] I2SConfig.h : 104 - i2s_format: I2S_STD_FORMAT
[I] I2SConfig.h : 106 - auto_clear:1
[I] I2SConfig.h : 113 - buffer_count:10
[I] I2SConfig.h : 114 - buffer_size:512
[I] I2SConfig.h : 118 - pin_bck: 21
[I] I2SConfig.h : 119 - pin_ws: 18
[I] I2SConfig.h : 120 - pin_data: 4
[W] HttpRequest.h : 153 - no CONTENT_LENGTH found in reply
length 0
[I] AudioPlayer.h : 279 - setVolume(1.000000)
[I] AudioStreams.h : 1113 - setVolume: 1.000000
[I] AudioStreams.h : 1113 - setVolume: 1.000000
[I] MetaDataID3.h : 544 - virtual void audio_tools::MetaDataID3::begin()
[I] AudioSource.h : 172 - selectStream: 0/2 -> https://filesamples.com/samples/audio/mp3/sample3.mp3
[I] URLStream.h : 73 - virtual bool audio_tools::URLStreamDefault::begin(const char*, const char*, MethodID, const char*, const char*): https://filesamples.com/samples/audio/mp3/sample3.mp3
[I] Url.h : 73 - Url::parse
[I] Url.h : 109 - url->https://filesamples.com/samples/audio/mp3/sample3.mp3
[I] Url.h : 110 - host->filesamples.com
[I] Url.h : 111 - protocol->https
[I] Url.h : 112 - path->/samples/audio/mp3/sample3.mp3
[I] Url.h : 113 - port->443
.
[I] URLStream.h : 247 - WiFiClientSecure
[I] URLStream.h : 247 - WiFiClientSecure
[I] HttpRequest.h : 193 - process connecting to host filesamples.com port 443
[I] HttpRequest.h : 181 - connected 1 timeout 60000
[I] HttpRequest.h : 204 - Free heap: 163196
[I] HttpHeader.h : 358 - HttpRequestHeader::setValues - path: /samples/audio/mp3/sample3.mp3
[I] HttpHeader.h : 255 - HttpHeader::write
[I] HttpHeader.h : 367 - HttpRequestHeader::write1stLine
[I] HttpHeader.h : 382 - -> GET /samples/audio/mp3/sample3.mp3 HTTP/1.1
[I] HttpHeader.h : 192 -  -> Host: filesamples.com 
[I] HttpHeader.h : 192 -  -> Connection: close 
[I] HttpHeader.h : 192 -  -> Accept: audio/mp3 
[I] HttpHeader.h : 298 -  -> <CR LF> 
[I] HttpRequest.h : 227 - Request written ... waiting for reply
[I] HttpHeader.h : 225 - HttpHeader::read
[W] HttpHeader.h : 232 - Waiting for data...
[I] HttpHeader.h : 162 - HttpHeader::readLine -> HTTP/1.1 200 OK
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Date: Thu, 15 Dec 2022 21:31:59 GMT
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Content-Type: audio/mpeg
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Transfer-Encoding: chunked
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Connection: close
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Cache-Control: public, max-age=2592000
[I] HttpHeader.h : 162 - HttpHeader::readLine -> display: staticcontent_sol
[I] HttpHeader.h : 162 - HttpHeader::readLine -> etag: W/"5def04f1-19d6dd-gzip"
[I] HttpHeader.h : 162 - HttpHeader::readLine -> last-modified: Thu, 01 Dec 2022 00:14:50 GMT
[I] HttpHeader.h : 162 - HttpHeader::readLine -> response: 200
[I] HttpHeader.h : 162 - HttpHeader::readLine -> vary: Accept-Encoding,User-Agent,Origin
[I] HttpHeader.h : 162 - HttpHeader::readLine -> x-ezoic-cdn: Hit ds;ds;5036ac3a7393bb4f2defc33dddfed0df;2-176527-2;b684dc05-1033-441b-54fd-8e10e46faf63
[I] HttpHeader.h : 162 - HttpHeader::readLine -> x-middleton-display: staticcontent_sol
[I] HttpHeader.h : 162 - HttpHeader::readLine -> x-middleton-response: 200
[I] HttpHeader.h : 162 - HttpHeader::readLine -> x-origin-cache-control: 
[I] HttpHeader.h : 162 - HttpHeader::readLine -> CF-Cache-Status: HIT
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Age: 8367
[E] HttpLineReader.h : 73 - Line cut off: Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=GmSUJowMKRzRfNNH9STPbiNJB9ycV2A0Ho0yuzlryl5DggBzXFOaTbZO3%2B4oP73CC1xWPSepfQykhfZipXA70INaVIIwJmW9KB3fIr9LrmItSeGpHug2VgbxFxeXQT%2BQ89M%3D"}],"group":"cf-nel","m
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=GmSUJowMKRzRfNNH9STPbiNJB9ycV2A0Ho0yuzlryl5DggBzXFOaTbZO3%2B4oP73CC1xWPSepfQykhfZipXA70INaVIIwJmW9KB3fIr9LrmItSeGpHug2VgbxFxeXQT%2BQ89M%3D"}],"group":"cf
[I] HttpHeader.h : 162 - HttpHeader::readLine -> NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Server: cloudflare
[I] HttpHeader.h : 162 - HttpHeader::readLine -> CF-RAY: 77a24a101d500db2-MRS
[I] HttpHeader.h : 162 - HttpHeader::readLine -> alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 
[W] HttpRequest.h : 153 - no CONTENT_LENGTH found in reply
[I] URLStream.h : 88 - size: 0
[I] AudioCopy.h : 68 - buffer_size=1024
[I] AudioPlayer.h : 279 - setVolume(0.300000)
[I] AudioStreams.h : 1113 - setVolume: 0.300000
[I] AudioStreams.h : 1113 - setVolume: 0.300000
[I] AudioPlayer.h : 193 - sample_rate: 44100
[I] AudioPlayer.h : 194 - bits_per_sample: 16
[I] AudioPlayer.h : 195 - channels: 2
[I] AudioStreams.h : 1113 - setVolume: 0.300000
[I] AudioStreams.h : 1113 - setVolume: 0.300000
[I] I2SStream.h : 65 - virtual void audio_tools::I2SStream::setAudioInfo(audio_tools::AudioBaseInfo)
[I] AudioTypes.h : 55 - sample_rate: 44100
[I] AudioTypes.h : 56 - channels: 2
[I] AudioTypes.h : 57 - bits_per_sample: 16
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 374 -> 374 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 960 -> 960 -> 960 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 339 -> 339 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 345 -> 345 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 13 -> 13 -> 13 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 127 -> 127 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 91 -> 91 -> 91 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 127 -> 127 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 91 -> 91 -> 91 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 685 -> 685 -> 685 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 127 -> 127 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 93 -> 93 -> 93 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 127 -> 127 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 91 -> 91 -> 91 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 127 -> 127 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 133 -> 133 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 1024 -> 1024 -> 1024 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 514 -> 492 -> 492 bytes - in 1 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 22 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 23 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 24 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 25 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 26 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 27 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 28 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 29 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 30 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 31 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 32 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 33 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 34 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 35 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 36 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 37 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 38 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 39 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 40 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 41 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 42 -> 4294967295 -> 0 bytes - in 0 hops
[I] AudioCopy.h : 133 - StreamCopy::copy 43 -> 4294967295 -> 0 bytes - in 0 hops
[E] HttpLineReader.h : 73 - Line cut off: ⸮⸮Ѳm⸮⸮<⸮⸮q⸮⸮⸮쨔\⸮ mH⸮l⸮.1W⸮⸮>⸮ʔ?r7s|ݖS⸮ѷ⸮
[I] HttpHeader.h : 424 - HttpReplyHeader::readExt
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Ѯ⸮⸮4⸮⸮Xr⸮⸮    ⸮⸮=?⸮⸮⸮%⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> A⸮⸮`
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> J⸮⸮⸮b⸮#
[I] HttpHeader.h : 162 - HttpHeader::readLine -> "⸮ ⸮H=⸮)D⸮U⸮bQ⸮⸮#FA⸮O
⸮p⸮Xl6¿⸮⸮⸮7⸮q⸮⸮⸮ƍ⸮7⸮⸮⸮⸮⸮⸮ބ⸮k⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮۾⸮`2TL⸮@@⸮"R–⸮$T@⸮e⸮,⸮W⸮⸮ @⸮⸮d⸮5⸮⸮⸮⸮L⸮j,⸮J⸮⸮⸮Yj_?⸮⸮˳T⸮⸮⸮,⸮Uev\$⸮⸮⸮&⸮`a9⸮`⸮sTz⸮T⸮⸮⸮⸮4⸮z¦⸮G⸮"!)µ|C⸮⸮⸮⸮⸮C⸮⸮⸮ ,,⸮px4⸮⸮⸮7D,[⸮⸮⸮>⸮⸮=⸮⸮×⸮⸮⸮⸮$
[E] HttpLineReader.h : 73 - Line cut off: ⸮N⸮1⸮i⸮⸮⸮⸮⸮⸮⸮8⸮?t⸮⸮Z⸮⸮j⸮_⸮⸮;⸮߷-⸮⸮⸮⸮⸮d⸮370[#H⸮R⸮4=⸮>
⸮⸮mlQ⸮i⸮- ⸮    8ހ#)U⸮(G⸮⸮>3ND%⸮++⸮!x⸮~|x⸮⸮⸮&⸮>'@⸮8⸮dz⸮+;⸮33⸮⸮⸮23⸮⸮6⸮fٴO⸮⸮⸮⸮⸮⸮⸮⸮umkhZBlH⸮⸮⸮⸮(-)⸮⸮⸮&⸮⸮Ր⸮'⸮⸮⸮ P⸮⸮a⸮⸮⸮⸮v⸮W⸮)⸮⸮⸮Dz⸮⸮ʡP16
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮N⸮1⸮i⸮⸮⸮⸮⸮⸮⸮8⸮?t⸮⸮Z⸮⸮j⸮_⸮⸮;⸮߷-⸮⸮⸮⸮⸮d⸮370[#H⸮R⸮4=⸮>
⸮⸮mlQ⸮i⸮- ⸮    8ހ#)U⸮(G⸮⸮>3ND%⸮++⸮!x⸮~|x⸮⸮⸮&⸮>'@⸮8⸮dz⸮+;⸮33⸮⸮⸮23⸮⸮6⸮fٴO⸮⸮⸮⸮⸮⸮⸮⸮umkhZBlH⸮⸮⸮⸮(-)⸮⸮⸮&⸮⸮Ր⸮'⸮⸮⸮ P⸮⸮a⸮⸮⸮⸮v⸮W⸮)⸮⸮⸮Dz⸮⸮ʡP16
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮w$⸮0⸮&⸮Y$F⸮⸮⸮⸮>⸮⸮8⸮ޚhQ⸮)wt⸮⸮`⸮ࣂ0⸮⸮⸮⸮UXea⸮⸮⸮=J|!8⸮⸮⸮L]⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 4⸮og⸮⸮pmy⸮
x<<N⸮K⸮(s⸮⸮i0⸮t⸮⸮go⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> g⸮*⸮⸮⸮!,P⸮B⸮⸮O⸮⸮H⸮k⸮SV2⸮yw|_Zg܁⸮ئ⸮⸮⸮jS⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮⸮⸮⸮4hSs⸮⸮⸮⸮1⸮`⸮⸮⸮⸮⸮⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Z⸮hZti⸮⸮⸮J⸮⸮⸮⸮⸮⸮⸮#'⸮7F⸮⸮⸮   ⸮J⸮⸮C^*Ϧ⸮⸮⸮{⸮Y}S⸮⸮C   +s⸮⸮>⸮nM!t⸮⸮8⸮⸮ǂ⸮⸮⸮⸮⸮⸮~=⸮⸮⸮⸮[V⸮⸮GW⸮2⸮⸮⸮⸮⸮0⸮⸮
& 
[E] HttpLineReader.h : 73 - Line cut off: ⸮⸮ݜ$⸮⸮⸮'⸮⸮⸮Ɖ⸮s=<⸮⸮]_⸮}7⸮Z⸮⸮⸮|⸮p
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮ݜ$⸮⸮⸮'⸮⸮⸮Ɖ⸮s=<⸮⸮]_⸮}7⸮Z⸮⸮⸮|⸮p
[E] HttpLineReader.h : 73 - Line cut off: ⸮⸮*⸮⸮⸮⸮,⸮K⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮*⸮⸮⸮⸮,⸮K⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮L⸮8ߜe⸮_⸮2⸮,⸮e⸮⸮⸮⸮X⸮HxM:⸮⸮I⸮⸮ye(Z)@⸮JX(I"$K$⸮2c⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 0,⸮⸮⸮k뿥*⸮⸮⸮"D'⸮⸮⸮⸮X⸮}4⸮!⸮2⸮8](⸮ߖ[k5⸮⸮⸮⸮⸮⸮\Tt⸮'%>⸮o$⸮⸮zHޚ7⸮⸮⸮⸮⸮O-⸮⸮⸮⸮#⸮?ɕ⸮_ֳ0⸮gE⸮}⸮>⸮E⸮={⸮Q?⸮⸮A⸮Tȱ%    A⸮⸮'J⸮⸮:⸮T(p⸮⸮VE⸮⸮/⸮⸮ͬ.m
⸮3BZč⸮⸮r3⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮b⸮^⸮2⸮⸮丸xa⸮⸮⸮W⸮⸮Z⸮|߻⸮U*⸮
[E] HttpLineReader.h : 73 - Line cut off: P⸮⸮⸮⸮⸮⸮⸮d⸮3N8YC/pb⸮⸮(<²⸮⸮gl⸮qAAm ⸮
⸮⸮x⸮2.e⸮Ņ⸮uCײ⸮,⸮⸮iI⸮R⸮    ⸮⸮L⸮ye⸮⸮Y]p`⸮⸮⸮⸮pq⸮⸮⸮-⸮⸮_⸮/⸮⸮f⸮O⸮⸮^⸮S⸮*J⸮⸮Pf⸮⸮Q⸮⸮]⸮⸮⸮@3⸮⸮2⸮f⸮⸮V⸮⸮⸮?⸮⸮4⸮⸮⸮⸮@⸮⸮⸮⸮⸮c蚺?⸮⸮Bj~!D⸮⸮WwJ⸮⸮?⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> P⸮⸮⸮⸮⸮⸮⸮d⸮3N8YC/pb⸮⸮(<²⸮⸮gl⸮qAAm ⸮
⸮⸮x⸮2.e⸮Ņ⸮uCײ⸮,⸮⸮iI⸮R⸮    ⸮⸮L⸮ye⸮⸮Y]p`⸮⸮⸮⸮pq⸮⸮⸮-⸮⸮_⸮/⸮⸮f⸮O⸮⸮^⸮S⸮*J⸮⸮Pf⸮⸮Q⸮⸮]⸮⸮⸮@3⸮⸮2⸮f⸮⸮V⸮⸮⸮?⸮⸮4⸮⸮⸮⸮@⸮⸮⸮⸮⸮c蚺?⸮⸮Bj~!D⸮⸮WwJ⸮⸮?⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮|⸮⸮⸮"⸮⸮⸮⸮⸮"-⸮⸮⸮
[E] HttpLineReader.h : 73 - Line cut off: ⸮ӂ⸮Q⸮⸮G;⸮⸮⸮B⸮s⸮⸮⸮pX(⸮⸮⸮JP,⸮⸮Fx⸮⸮v⸮QG,⸮:,f⸮Cb⸮h⸮%⸮j⸮⸮ZN߼=⸮⸮d⸮⸮⸮o⸮W⸮⸮⸮  ⸮@?⸮!⸮⸮⸮>VPd⸮⸮7⸮⸮⸮L⸮1⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮ӂ⸮Q⸮⸮G;⸮⸮⸮B⸮s⸮⸮⸮pX(⸮⸮⸮JP,⸮⸮Fx⸮⸮v⸮QG,⸮:,f⸮Cb⸮h⸮%⸮j⸮⸮ZN߼=⸮⸮d⸮⸮⸮o⸮W⸮⸮⸮   ⸮@?⸮!⸮⸮⸮>VPd⸮⸮7⸮⸮⸮L⸮1⸮
[E] HttpLineReader.h : 73 - Line cut off: ⸮:⸮⸮⸮"⸮⸮⸮⸮;]⸮v⸮⸮=E߄L⸮$,⸮⸮⸮@f(
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮:⸮⸮⸮"⸮⸮⸮⸮;]⸮v⸮⸮=E߄L⸮$,⸮⸮⸮@f(
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮Q⸮6Rm⸮⸮⸮⸮|o⸮s⸮)CRŧ޿Tӡ}⸮7⸮ο⸮g}⸮=⸮⸮9⸮⸮"
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮⸮⸮D⸮#'Z⸮⸮⸮d#⸮m=&`
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮uk⸮⸮z⸮,⸮⸮⸮([k⸮⸮⸮U⸮⸮I⸮ 
[E] HttpLineReader.h : 73 - Line cut off: J⸮e⸮⸮%⸮⸮ט⸮ ⸮⸮⸮*⸮Ϥ⸮⸮i_⸮⸮⸮⸮۷⸮⸮⸮^⸮ ⸮⸮'O⸮Я⸮⸮@⸮⸮⸮&3⸮⸮⸮0K⸮N⸮⸮⸮W⸮⸮+ęC⸮⸮]55+MÉ⸮]⸮ñr⸮೿⸮I⸮⸮ѹ4⸮[⸮⸮⸮5i⸮e⸮ܯU⸮$
[I] HttpHeader.h : 162 - HttpHeader::readLine -> J⸮e⸮⸮%⸮⸮ט⸮ ⸮⸮⸮*⸮Ϥ⸮⸮i_⸮⸮⸮⸮۷⸮⸮⸮^⸮ ⸮⸮'O⸮Я⸮⸮@⸮⸮⸮&3⸮⸮⸮0K⸮N⸮⸮⸮W⸮⸮+ęC⸮⸮]55+MÉ⸮]⸮ñr⸮೿⸮I⸮⸮ѹ4⸮[⸮⸮⸮5i⸮e⸮ܯU⸮$
[E] HttpLineReader.h : 73 - Line cut off: ⸮yz⸮g*yx⸮"Ս@⸮l⸮⸮X3⸮&⸮}p
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮yz⸮g*yx⸮"Ս@⸮l⸮⸮X3⸮&⸮}p
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Β⸮⸮w⸮⸮^⸮{⸮⸮y7⸮<⸮Bv⸮Z[-6~z⸮9&B
⸮0⸮O,⸮A@⸮⸮X
[E] HttpLineReader.h : 73 - Line cut off: ⸮K(⸮⸮24~?⸮⸮⸮
⸮㱿⸮U⸮⸮⸮Z⸮f⸮⸮⸮%h}⸮⸮⸮u⸮Z⸮) ⸮Qix⸮⸮\⸮8⸮<c⸮.⸮)=⸮⸮iv\;{:y⸮⸮⸮⸮⸮_n⸮I⸮k⸮IM⸮y⸮⸮_⸮
⸮⸮0>0⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮K(⸮⸮24~?⸮⸮⸮
⸮㱿⸮U⸮⸮⸮Z⸮f⸮⸮⸮%h}⸮⸮⸮u⸮Z⸮) ⸮Qix⸮⸮\⸮8⸮<c⸮.⸮)=⸮⸮iv\;{:y⸮⸮⸮⸮⸮_n⸮I⸮k⸮IM⸮y⸮⸮_⸮
⸮⸮0>0⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 1⸮`c 
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮⸮⸮⸮⸮⸮⸮^
[I] HttpHeader.h : 162 - HttpHeader::readLine -> <h/⸮⸮⸮⸮⸮q⸮⸮⸮]⸮(⸮'⸮5⸮⸮⸮⸮*Ò⸮?⸮DA⸮⸮O=#⸮⸮⸮⸮[[z⸮-DMm⸮Sc~M⸮3V⸮⸮u%⸮⸮⸮&m⸮⸮f⸮ZDN,[(⸮U⸮⸮⸮⸮&ڛֽ,⸮⸮⸮⸮פ⸮⸮D⸮⸮⸮u⸮⸮⸮⸮⸮⸮⸮⸮L⸮⸮^Yq`⸮"'i⸮vEF
[I] HttpHeader.h : 162 - HttpHeader::readLine -> t⸮⸮⸮⸮7⸮gRgYQ8⸮⸮I⸮⸮Wc⸮⸮.LV⸮ξ⸮D⸮⸮5⸮⸮bȩ(⸮fB 2⸮t!⸮⸮⸮eh⸮⸮⸮FA$)⸮B⸮⸮⸮f⸮bw⸮{⸮⸮⸮Dс3>\YA⸮pdk⸮="n
[E] HttpLineReader.h : 73 - Line cut off: ⸮⸮ig⸮⸮X⸮,⸮⸮⸮⸮⸮?⸮o⸮⸮}/⸮⸮ >⸮⸮>⸮)wxÀp1⸮X1⸮⸮⸮⸮708/⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮/I⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮ig⸮⸮X⸮,⸮⸮⸮⸮⸮?⸮o⸮⸮}/⸮⸮ >⸮⸮>⸮)wxÀp1⸮X1⸮⸮⸮⸮708/⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮/I⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ̑
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮Lձ[⸮ؘ`3⸮⸮⸮⸮⸮1⸮⸮u
C⸮"⸮⸮t⸮⸮⸮i⸮⸮:⸮)⸮ˑ
[I] HttpHeader.h : 162 - HttpHeader::readLine -> X⸮⸮]C⸮H⸮r⸮#⸮⸮"⸮⸮+⸮⸮7⸮Wm⸮:j9⸮⸮    .⸮0-⸮Zb⸮O⸮j⸮C  ⸮⸮⸮M⸮⸮Np⸮⸮⸮s⸮⸮Η⸮?⸮O⸮⸮⸮4⸮⸮⸮(!⸮⸮⸮Dԃ3.[Y!⸮⸮\*⸮.<⸮t9EiǠQ⸮I⸮,x⸮⸮⸮o⸮0⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮(
[E] HttpLineReader.h : 73 - Line cut off: ⸮⸮K⸮){S
3nvS⸮⸮⸮⸮D⸮⸮⸮⸮⸮Yk&YdkIx63⸮⸮ВB⸮d⸮炌⸮⸮⸮?ǃ⸮⸮⸮ฤ⸮⸮c⸮}c8⸮⸮5⸮⸮⸮⸮zp⸮⸮ѽB⸮Vu\⸮t⸮3⸮!⸮⸮⸮Å⸮⸮⸮;⸮/⸮⸮[InV⸮*⸮⸮⸮⸮⸮Z0⸮Y'⸮⸮W⸮R](d⸮⸮!LԮ   ⸮^f⸮Nfd&⸮⸮\⸮⸮⸮⸮⸮$⸮⸮6⸮S⸮.J⸮ ⸮⸮}W⸮\⸮С⸮]I⸮⸮⸮⸮7⸮Ě⸮⸮U⸮⸮M⸮⸮`⸮(^j⸮⸮⸮⸮f⸮⸮G⸮⸮iu⸮B⸮l
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮K⸮){S
3nvS⸮⸮⸮⸮D⸮⸮⸮⸮⸮Yk&YdkIx63⸮⸮ВB⸮d⸮炌⸮⸮⸮?ǃ⸮⸮⸮ฤ⸮⸮c⸮}c8⸮⸮5⸮⸮⸮⸮zp⸮⸮ѽB⸮Vu\⸮t⸮3⸮!⸮⸮⸮Å⸮⸮⸮;⸮/⸮⸮[InV⸮*⸮⸮⸮⸮⸮Z0⸮Y'⸮⸮W⸮R](d⸮⸮!LԮ   ⸮^f⸮Nfd&⸮⸮\⸮⸮⸮⸮⸮$⸮⸮6⸮S⸮.J⸮ ⸮⸮}W⸮\⸮С⸮]I⸮⸮⸮⸮7⸮Ě⸮⸮U⸮⸮M⸮⸮`⸮(^j⸮⸮⸮⸮f⸮⸮G⸮⸮i
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮⸮⸮6⸮⸮8⸮&d⸮⸮⸮D⸮3(\X⸮⸮⸮[J[<⸮|
[E] HttpLineReader.h : 73 - Line cut off: ԗkg⸮p⸮5⸮8⸮P⸮>⸮⸮8⸮<⸮⸮⸮⸮⸮H⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ԗkg⸮p⸮5⸮8⸮P⸮>⸮⸮8⸮<⸮⸮⸮⸮⸮H⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> a⸮⸮⸮M&⸮F⸮⸮⸮]⸮ѻ⸮َ⸮}iM⸮::⸮⸮⸮⸮К⸮⸮@
[E] HttpLineReader.h : 73 - Line cut off: Pmgg⸮⸮⸮g+ll⸮⸮⸮x⸮⸮⸮~a⸮⸮⸮⸮h⸮<l⸮⸮⸮⸮⸮⸮⸮0⸮O⸮⸮⸮⸮⸮ƛ⸮rz⸮⸮⸮<⸮K⸮y⸮⸮⸮⸮%⸮⸮⸮ ^⸮WLO⸮⸮⸮(⸮2⸮W,⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> Pmgg⸮⸮⸮g+ll⸮⸮⸮x⸮⸮⸮~a⸮⸮⸮⸮h⸮<l⸮⸮⸮⸮⸮⸮⸮0⸮O⸮⸮⸮⸮⸮ƛ⸮rz⸮⸮⸮<⸮K⸮y⸮⸮⸮⸮%⸮⸮⸮ ^⸮WLO⸮⸮⸮(⸮2⸮W,⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮f⸮⸮⸮⸮⸮+⸮⸮⸮0@⸮⸮⸮j⸮*⸮B@⸮j⸮0Y4ܸ⸮⸮c⸮a⸮⸮@H4D⸮⸮^⸮}H⸮Lp⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> @⸮⸮⸮s⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮x⸮Rw⸮P⸮ѥ⸮⸮C⸮⸮E⸮F⸮⸮;M @⸮⸮`tӜm⸮s⸮⸮$#⸮⸮p⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮ ⸮c⸮
⸮JtB|"h2⸮⸮(P⸮⸮⸮(⸮⸮⸮⸮⸮!
[E] HttpLineReader.h : 73 - Line cut off: 668yՍ⸮?⸮⸮{⸮_⸮W⸮X⸮⸮⸮*a"⸮r⸮⸮⸮7⸮S6⸮X⸮j⸮~W⸮?⸮⸮⸮<\&+#i4B⸮9?~/r}ߤ⸮⸮zh⸮I$  н⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 668yՍ⸮?⸮⸮{⸮_⸮W⸮X⸮⸮⸮*a"⸮r⸮⸮⸮7⸮S6⸮X⸮j⸮~W⸮?⸮⸮⸮<\&+#i4B⸮9?~/r}ߤ⸮⸮zh⸮I$   н⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> P!
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮٢Ei⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮⸮⸮\⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 8,⸮X⸮⸮⸮⸮⸮p@```C⸮?⸮0?⸮8/⸮⸮
⸮࿍⸮⸮⸮ID
[E] HttpLineReader.h : 73 - Line cut off: ⸮e"|⸮_l$⸮⸮,ꁧ⸮⸮3⸮⸮⸮⸮⸮⸮$g>-⸮"l*⸮u⸮⸮ 
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮e"|⸮_l$⸮⸮,ꁧ⸮⸮3⸮⸮⸮⸮⸮⸮$g>-⸮"l*⸮u⸮⸮ 
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮B⸮⸮6?⸮>we⸮⸮⸮⸮⸮q⸮⸮⸮$⸮M⸮v⸮*#    A
[E] HttpLineReader.h : 73 - Line cut off: =MC;⸮<0⸮⸮wC⸮F⸮⸮b⸮".3⸮⸮⸮⸮1g"{⸮⸮d܈Y0@Qq⸮⸮⸮⸮ޚ!⸮D⸮⸮~⸮4⸮t_⸮⸮⸮⸮zi⸮s⸮⸮F⸮    d⸮⸮⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> =MC;⸮<0⸮⸮wC⸮F⸮⸮b⸮".3⸮⸮⸮⸮1g"{⸮⸮d܈Y0@Qq⸮⸮⸮⸮ޚ!⸮D⸮⸮~⸮4⸮t_⸮⸮⸮⸮zi⸮s⸮⸮F⸮ d⸮⸮⸮⸮⸮
[E] HttpLineReader.h : 73 - Line cut off: j⸮<⸮x⸮⸮\⸮<c⸮+⸮+⸮⸮⸮4P⸮@8b⸮-ۂ⸮O⸮⸮⸮⸮⸮⸮4⸮H⸮⸮ۋ⸮lH⸮D⸮-⸮⸮⸮⸮6⸮؆T⸮z*⸮Cv⸮&⸮⸮⸮/⸮ȣ⸮#i⸮⸮sܭ⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> j⸮<⸮x⸮⸮\⸮<c⸮+⸮+⸮⸮⸮4P⸮@8b⸮-ۂ⸮O⸮⸮⸮⸮⸮⸮4⸮H⸮⸮ۋ⸮lH⸮D⸮-⸮⸮⸮⸮6⸮؆T⸮z*⸮Cv⸮&⸮⸮⸮/⸮ȣ⸮#i⸮⸮sܭ⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 49@X⸮⸮C:4l⸮⸮cm⸮Q⸮⸮⸮⸮⸮X
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮}\s⸮c$u⸮⸮Яq/⸮Y|BR⸮`b!⸮^⸮.⸮)⸮b[h⸮;⸮Z⸮V⸮0]X⸮x⸮Y⸮˵7⸮kM⸮N⸮Պ⸮ݪ⸮⸮'⸮N⸮0⸮o⸮⸮w
[I] HttpHeader.h : 162 - HttpHeader::readLine -> +ګ⸮⸮ޝ⸮d⸮⸮⸮o⸮S⸮$E⸮⸮5⸮⸮⸮⸮i3ā"Lј  ⸮⸮⸮_⸮⸮4
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> :⸮=Bv)Z
⸮⸮⸮⸮,@É⸮$⸮B⸮4HS@⸮⸮&{⸮C⸮K⸮⸮⸮⸮⸮wrhL⸮5⸮"⸮⸮   ⸮⸮⸮⸮YD/⸮2-⸮⸮֤as.⸮hV7\
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮tkL⸮z⸮⸮⸮⸮⸮U⸮F⸮⸮8@⸮8⸮_⸮⸮@
ZT/Xl⸮⸮
[E] HttpLineReader.h : 73 - Line cut off: ؎G⸮*⸮/⸮⸮2⸮)J⸮.7⸮⸮@⸮⸮+⸮SO⸮⸮⸮ӗ⸮⸮⸮⸮be(⸮⸮j⸮⸮(⸮⸮⸮e⸮D `
⸮3⸮ ⸮⸮>⸮⸮⸮  ⸮rÎYT⸮kW⸮⸮ ⸮zʺT⸮⸮G ⸮}i9$⸮I⸮4⸮⸮⸮`⸮>4`U:؉⸮8 x((⸮⸮l⸮⸮⸮⸮⸮⸮
\
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ؎G⸮*⸮/⸮⸮2⸮)J⸮.7⸮⸮@⸮⸮+⸮SO⸮⸮⸮ӗ⸮⸮⸮⸮be(⸮⸮j⸮⸮(⸮⸮⸮e⸮D `
⸮3⸮ ⸮⸮>⸮⸮⸮  ⸮rÎYT⸮kW⸮⸮ ⸮zʺT⸮⸮G ⸮}i9$⸮I⸮4⸮⸮⸮`⸮>4`U:؉⸮8 x((⸮⸮l⸮⸮⸮⸮⸮⸮
\
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 
⸮⸮⸮⸮⸮B⧥⸮⸮⸮⸮+⸮w⸮@⸮9餒}⸮⸮⸮⸮⸮⸮?⸮r⸮'&⸮7 IM}'⸮⸮$⸮⸮⸮⸮⸮⸮C⸮ 5Z⸮e⸮̲⸮⸮0⸮\A⸮@=⸮)⸮囥⸮ 2%Gw⸮*⸮⸮e⸮_&ϡ⸮`8 /⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 8⸮8ౠ
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮'⸮   ⸮=%⸮⸮⸮@@⸮b⸮
[E] HttpLineReader.h : 73 - Line cut off: ⸮⸮s⸮釄⸮D⸮⸮⸮ror]H⸮@⸮$⸮⸮=⸮!⸮⸮4⸮$⸮@⸮⸮⸮x⸮I⸮⸮⸮"⸮⸮⸮P?7@⸮⸮⸮⸮⸮d⸮3⸮<Z⸮I⸮Jț=%⸮
⸮⸮g1'⸮l⸮⸮    Л⸮eK$⸮⸮⸮⸮a⸮⸮⸮q9⸮h
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮⸮s⸮釄⸮D⸮⸮⸮ror]H⸮@⸮$⸮⸮=⸮!⸮⸮4⸮$⸮@⸮⸮⸮x⸮I⸮⸮⸮"⸮⸮⸮P?7@⸮⸮⸮⸮⸮d⸮3⸮<Z⸮I⸮Jț=%⸮
⸮⸮g1'⸮l⸮⸮    Л⸮eK$⸮⸮⸮⸮a⸮⸮⸮q9⸮h
[I] HttpHeader.h : 162 - HttpHeader::readLine -> w⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> ⸮9e⸮N⸮⸮⸮⸮ߡ
[E] HttpLineReader.h : 73 - Line cut off: W⸮⸮⸮⸮@⸮͒%⸮⸮*⸮⸮⸮⸮
[I] HttpHeader.h : 162 - HttpHeader::readLine -> W⸮⸮⸮⸮@⸮͒%⸮⸮*⸮⸮⸮⸮
[E] HttpLineReader.h : 73 - Line cut off: "
[I] HttpHeader.h : 162 - HttpHeader::readLine -> "
[I] HttpHeader.h : 162 - HttpHeader::readLine -> 

Stack smashing protect failure!

abort() was called at PC 0x4201f8d3 on core 1

Backtrace:0x4037791e:0x3fce2c900x4037cc1d:0x3fce2cb0 0x40382691:0x3fce2cd0 0x4201f8d3:0x3fce2d50 0x420096fe:0x3fce2d70 0x42007259:0x3fce00f0 0x4200727f:0x3fce0014  |<-CORRUPTED
pschatzmann commented 1 year ago

You were really taking the combination of the most RAM demanding functionalities possible:

I assume that you pushed it a litte bit too far. I suggest that you print out the available ram in the loop as well to check if my assumption is right.

If this is the case you can also consider to use PSRAM, if your microcontroller support this.

ps. I only looked at the speed difference of the different FFT implementations but I am pretty sure that they have different memory requirements as well...

0x0fe commented 1 year ago

i see, that makes sense. The S3 variant i use has and additional 2MB internal PSRAM but it is not put to contribution yet. As a side note i tested with another sample URL (https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_2MG.mp3) and it worked fine, i could read the file in full, so the issue is also related to how the file is served apparently, maybe the drops increases buffer usage and lead to the stack collision.

Anyway i will disable the FFT (of no use here) and write to the file. Later i will try to figure how to assign some of the PSRAM to audio-tools so i can increase buffering.

ffaerber commented 2 days ago

I had this "Line cut off" problem with URLStream too. the problem is the server. the mp3 is not send via chunked. i fixed it via highWaterMark

here is a nestjs controller example

@Get(':id/audio')
  @Header('Content-Type', 'audio/mpeg')
  @Header('Cache-Control', 'no-cache')
  async getAudio(
    @Param('id') id: string,
    @Req() req, 
    @Res({ passthrough: true }) res
  ): Promise<StreamableFile> {
    const message: Message = await this.messagesService.findUnique({ where: { id } });
    try {
      const filePath = path.join(messagesPath, message.fileName);
      const readStream = createReadStream(filePath, { highWaterMark: 1024 });

      res.set({
        'Content-Disposition': 'attachment; filename=audio.mp3',
        'Transfer-Encoding': 'chunked',  // Enable chunked transfer
        'Connection': 'keep-alive',      // Keep the connection open
      });
      return new StreamableFile(readStream);
    } catch (error) {
      throw new Error('File not found or could not be read');
    }
  }

took me a few hours to figure this out.