Commit a7ae7b8b authored by Stefan Westerfeld's avatar Stefan Westerfeld

Return decoded mp3 data from mp3_try_load().

Signed-off-by: Stefan Westerfeld's avatarStefan Westerfeld <stefan@space.twc.de>
parent 67a4ca2d
......@@ -47,6 +47,7 @@ mp3_try_load (const string& filename, WavData& wav_data)
printf ("# %zd\n", mpg123_outblock (mh));
vector<unsigned char> buffer (mpg123_outblock (mh));
vector<float> samples;
size_t done = 0;
do
......@@ -56,12 +57,13 @@ mp3_try_load (const string& filename, WavData& wav_data)
printf ("# done=%zd err=%d\n", done, err);
float *f = reinterpret_cast<float *> (&buffer[0]);
for (int i = 0; i < buffer.size() / 8; i++)
for (int i = 0; i < buffer.size() / 4; i++)
{
printf ("%f\n", f[i*2]);
samples.push_back (f[i]);
}
}
while (done);
wav_data = WavData (samples, channels, rate, 24);
return true;
}
......@@ -4,5 +4,15 @@ int
main (int argc, char **argv)
{
WavData wd;
mp3_try_load (argv[1], wd);
if (argc >= 2 && mp3_try_load (argv[1], wd))
{
int sec = wd.n_values() / wd.sample_rate();
printf ("loaded mp3 %s: %d:%02d\n", argv[1], sec / 60, sec % 60);
if (argc == 3)
{
wd.save (argv[2]);
printf ("saved wav: %s\n", argv[2]);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment