Now the specified --listentry is honoured as the first track, then it continues randomly.
git-svn-id: svn://scm.orgis.org/mpg123/trunk@5488 35dc7657-300d-0410-a2e5-dc2837fedb53
version.h for the project distribution version, the individual
library API headers for their respective API and patch levels.
The libraries now report their build-time version information via
foo123_distversion() and foo123_libversion().
This removes one item of preprocessing from the public headers. Remaining
are some conditional headers that we might just use, and the dreaded
largefile business in the form of MPG123_NO_LARGENAME.
git-svn-id: svn://scm.orgis.org/mpg123/trunk@5213 35dc7657-300d-0410-a2e5-dc2837fedb53
This adds out123_devices() and an extension in the module format
(version 3) to enumerate output devices. Now we can add
implementations to fill
mpg123 --list-devices
with some life.
git-svn-id: svn://scm.orgis.org/mpg123/trunk@4850 35dc7657-300d-0410-a2e5-dc2837fedb53
Now the integration of the libsyn123 resampler and handling of the
NtoM decoder are hopefully correct in the again-enlarged audio.c,
which became a hollow shell with the advent of libout123, and now
is strong again.
Settling decoder and output formats has historically been the most
confusing aspect of libmpg123 and I raise that with the integration
of post-decoder resampling and pitching in the decoder, in the
output device, or in said resampling between these two. Insanity!
The new resampler is the default for forcing output rates now. If
you wonder why, try this in the current mpg123 source tree with
your fresh build:
for resampler in ntom dirty fine
do
src/mpg123 -r 22040 --resample $resampler --pitch -0.72 \
src/tests/sweep.mp3
done
With a pure sine sweep like that (generated via out123), you
can appreciate
a) the quality differences between resamplers, and
b) how little those seem to matter when you just listen
to music.
Really, without a detailed comparison and some noisy pop/rock
music, it is surprisingly hard to tell how bad the drop-sample
resampling of the NtoM decoder really is.
But this has a price: Even when I took great pains in designing
the syn123 resampler, it needs more computing time than the
MPEG decoder itself. That's life. You can make resamplers that
are faster, but at the cost of increased latency which makes
programming tedious. Here, I just ignored that aspect, as the
syn123 resampling latency is just a handful of samples, well
below the farts you get from ALSA on closing a device.
git-svn-id: svn://scm.orgis.org/mpg123/trunk@4662 35dc7657-300d-0410-a2e5-dc2837fedb53
This introduces software muting in libout123, to be triggered via terminal control
key 'u' (m was taken) or the remote control commands 'mute' and 'unmute'. For this,
libout123 needs to know what a zero looks like in the current encoding. I hope
I handled that smartly enough with the MPG123_ZEROSAMPLE macro in fmt123.
I explicitly decided against linking in libsyn123. That makes only sense when
going all-in and deciding that libout123 shall convert, resample, and mix
on-the-fly to make input data match the output. This might be nice to have,
but it is also nice to have a library that does not really care about the
content it transports. It is a simple transporter with a buffer. Said buffer
necessitates that the transporter knows what empty sound looks like, but I
really don't want to burden it with more knowledge for simplicity.
This muting needs to be inside libout123 whe the buffer is used. Feeding
silence from the client application does not have latency you expect when
(un)pause is already negotiated with the buffer.
git-svn-id: svn://scm.orgis.org/mpg123/trunk@4589 35dc7657-300d-0410-a2e5-dc2837fedb53
See the updated man page. If one input track is complete rubbish, there is
exit(1) now.
git-svn-id: svn://scm.orgis.org/mpg123/trunk@4588 35dc7657-300d-0410-a2e5-dc2837fedb53
Applied patch from Andreas Neustifter (with one added witty bootnote in the man page).
git-svn-id: svn://scm.orgis.org/mpg123/trunk@2113 35dc7657-300d-0410-a2e5-dc2837fedb53
...in the course of that, don't mention the "pause" that is a loop.
git-svn-id: svn://scm.orgis.org/mpg123/trunk@1602 35dc7657-300d-0410-a2e5-dc2837fedb53