|
Paraslash Audio Streaming |
About News Download Documentation Development |
Development happens in topic branches where each topic corresponds to one branch. These topic branches are not pushed to the public repository, however, to keep the number of branches small, Instead, the topic branches are merged into an integration branch which is then pushed to the public repository.
Two integration branches named pu ("proposed updates") and next exist. Topics in early development are only merged into the pu branch. When the topic is feature-complete, has been tested and is fully documented, it graduates to next. Thus, topics in next are expected to be of higher quality than those in pu.
The table below shows the current development topics. Run git
checkout pu
to get all topics or git checkout next
to enable only the mature topics.
Topic | IB | #C | Description |
---|---|---|---|
afs | pu | 31 | Improvements to the audio file selector |
autogen | next | 1 | Revamp autogen.sh |
for-maint | pu | 0 | urgent fixes for old bugs |
ll | pu | 4 | new ll commands to set the log level |
misc | pu | 7 | smallish miscellaneous changes for master |
mixer | pu | 5 | Improvements to para_mixer |
mp4ff | next | 139 | provide our own copy of libmp4ff |
net | pu | 7 | Cleanup net.c and net.h |
openssl-3 | pu | 2 | Don't use openssl APIs anymore which got depreciated in openssl-3. |
overflow | pu | 7 | be more careful wrt. integer overflows |
poll | pu | 14 | Switch from select(2) to poll(2) |
sf_float | pu | 1 | support 32 bit float sample format. |
When a topic is merged into master, it vanishes from here since it is no longer considered as being in development.
The SHA1 number shown as tip can be used to checkout a commit which only contains the changes introduced in this topic.
This series starts with a fair number of patches which clean up all parts of the audio file selector. The last patch implements a new feature for the ls command.
A major cleanup of the audio file selector.
The –admissible option of the ls command now takes an optional argument. When invoked like –admissible=m/foo, only files which are admissible with respect to mood foo are listed.
afs.c | 195 ++++++++-------------
afs.h | 52 +++---
aft.c | 66 +++++--
attribute.c | 27 +--
blob.c | 28 ++-
error.h | 2 -
m4/lls/server_cmd.suite.m4 | 14 +-
mood.c | 421 +++++++++++++++++++++++----------------------
mood.h | 7 -
mp.c | 2 +-
playlist.c | 168 ++++++++++--------
score.c | 161 ++++++++---------
12 files changed, 566 insertions(+), 577 deletions(-)
A single patch which removes everything from autogen.sh except the autoconf and autoheader commands.
The autogen.sh script now only creates the autoconf specific files but no longer runs configure, make and the test suite.
.gitignore | 1 +
autogen.sh | 22 +---------------------
2 files changed, 2 insertions(+), 21 deletions(-)
rebase count: 1
Makefile.real | 2 ++
afs.c | 11 +++++++++++
audioc.c | 6 ++++++
audiod.c | 6 ++----
audiod_command.c | 36 ++++++++++++++++++++++++++++++++++
client.c | 6 ++++++
command.c | 43 ++++++++++++++++++++++++++++++++++++++---
daemon.c | 48 ++++++++++++++++++++++++++++++++--------------
daemon.h | 3 ++-
error.h | 1 -
interactive.c | 22 +++++++++++++++++++++
interactive.h | 2 ++
m4/lls/audiod_cmd.suite.m4 | 2 ++
m4/lls/include/com_ll.m4 | 10 ++++++++++
m4/lls/makefile | 1 +
m4/lls/server_cmd.suite.m4 | 2 ++
server.c | 9 +++++++--
server.h | 15 ++-------------
string.c | 31 ------------------------------
string.h | 1 -
20 files changed, 187 insertions(+), 70 deletions(-)
This series switches over the complete code base from select(2) to poll(2) to avoid known shortcomings of the select API, in particular its limit to 1024 descriptors and the fact that fds above 1023 cannot be monitored with select(2), even if fewer than 1024 fds are open.
The first patches of the series prepare this switch, converting the easy cases, hiding select specific data structures such as fd sets, and adjusting function names and documentation. The crucial commit is the last one. See its rather verbose log message for details.
All calls to select(2) have been replaced by calls to poll(2).
aacdec_filter.c | 6 +-
afh_recv.c | 10 +--
afs.c | 39 +++++----
alsa_write.c | 14 ++--
amp_filter.c | 6 +-
ao_write.c | 8 +-
audioc.c | 16 ++--
audiod.c | 41 +++++-----
audiod.h | 2 +-
audiod_command.c | 11 ++-
buffer_tree.c | 4 +-
check_wav.c | 20 ++---
check_wav.h | 4 +-
client.c | 18 ++---
client_common.c | 39 +++++----
command.c | 2 +-
compress_filter.c | 6 +-
configure.ac | 4 +-
dccp_recv.c | 14 ++--
dccp_send.c | 15 ++--
fd.c | 146 +++++++++++++--------------------
fd.h | 12 ++-
fecdec_filter.c | 6 +-
file_write.c | 12 +--
filter.c | 7 +-
filter.h | 40 ++++-----
filter_common.c | 15 ++--
flacdec_filter.c | 8 +-
grab_client.c | 16 ++--
gui.c | 48 +++++------
http_recv.c | 20 ++---
http_send.c | 20 ++---
interactive.c | 48 ++++-------
interactive.h | 3 +-
mp3dec_filter.c | 8 +-
net.c | 8 +-
net.h | 2 +-
oggdec_filter.c | 10 +--
opusdec_filter.c | 8 +-
oss_write.c | 12 +--
para.h | 2 +
play.c | 38 ++++-----
prebuffer_filter.c | 8 +-
recv.c | 7 +-
recv.h | 50 +++++-------
recv_common.c | 18 ++---
resample_filter.c | 14 ++--
sched.c | 233 +++++++++++++++++++++++++++++++++++++++--------------
sched.h | 69 ++++++++++------
send.h | 27 ++-----
send_common.c | 7 +-
server.c | 41 +++++-----
signal.c | 8 +-
signal.h | 21 +++--
spxdec_filter.c | 6 +-
stdin.c | 21 +++--
stdout.c | 18 ++---
sync_filter.c | 12 +--
udp_recv.c | 14 ++--
udp_send.c | 2 +-
vss.c | 36 ++++-----
wav_filter.c | 8 +-
wmadec_filter.c | 7 +-
write.c | 15 ++--
write.h | 30 +++----
write_common.c | 4 +-
66 files changed, 728 insertions(+), 716 deletions(-)
Stuff in here is too small to get its own topic branch, and safe enough to be applied to master without cooking in next.
Makefile.real | 105 ++++++++++++++++++++++------------------------------------
aft.c | 15 ++++-----
audiod.c | 4 +--
command.c | 26 ++++++---------
play.c | 27 +++++++--------
string.c | 50 ----------------------------
string.h | 2 --
7 files changed, 72 insertions(+), 157 deletions(-)
rebase count: 0
m4/lls/mixer.suite.m4 | 29 +++++++++++++++++++----
mixer.c | 64 +++++++++++++++++++++++++++++++++++++++------------
2 files changed, 73 insertions(+), 20 deletions(-)
This 130+ patch behemoth adds a stripped down copy of libmp4ff to the repo. This has become necessary because the library was dropped from the faad project.
The series starts with a patch which adds an unmodified copy of the relevant parts of libmp4ff to the repo. All code is combined in a single file, mp4.c, which contains approximately 2K lines of code. The public API is defined in the new mp4.h.
The remaining patches clean up the two new files, simplifying and removing large parts of it. Some of the patches modify the API, and those require small changes to the aac audio format handler, which also becomes simpler due to these changes. The aac decoder, however, is not touched in this series.
A stripped down copy of the discontinued libmp4ff library has become part of the paraslash code base. As a result it is no longer necessary to install faad from source to get support for aac/m4a files. The faad decoder package must still be installed.
aac_afh.c | 262 +++++----------
configure.ac | 12 +-
error.h | 15 +-
mp4.c | 1055 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mp4.h | 87 +++++
5 files changed, 1243 insertions(+), 188 deletions(-)
rebase count: 7
client_common.c | 2 +-
dccp_recv.c | 7 ++++
dccp_send.c | 11 ++++++
http_recv.c | 2 +-
net.c | 43 ++++++++++++++++++++++--
net.h | 101 +++++++-------------------------------------------------
udp_send.c | 4 +--
7 files changed, 75 insertions(+), 95 deletions(-)
rebase count: 26
Makefile.real | 1 +
openssl.c | 31 ++++++++++++++++++++++++++++++-
2 files changed, 31 insertions(+), 1 deletion(-)
New memory allocation API which checks for overflows. The first part of the series renames the main allocation functions. Later patches in the series implement allocators which take two size_t arguments, like calloc(3) does, and check whether the multiplication overflows by employing the __builtin_mul_overflow() primitive supported by gcc and clang. This requires us to bump the lowest supported gcc and clang version.
All allocation functions now check for integer overflow. Since this requires support from the compiler, the oldest supported gcc version has been bumped to gcc-5.4 (released in 2015).
Makefile.real | 1 +
aac_afh.c | 4 +-
aacdec_filter.c | 4 +-
acl.c | 2 +-
afh_recv.c | 4 +-
afs.c | 2 +-
aft.c | 16 ++---
alsa_mix.c | 2 +-
alsa_write.c | 2 +-
amp_filter.c | 4 +-
ao_write.c | 2 +-
audioc.c | 4 +-
audiod.c | 23 ++++---
audiod_command.c | 2 +-
base64.c | 2 +-
bitstream.c | 4 +-
blob.c | 2 +-
buffer_tree.c | 18 +++---
check_wav.c | 2 +-
chunk_queue.c | 4 +-
client.c | 4 +-
client_common.c | 7 +--
close_on_fork.c | 2 +-
command.c | 6 +-
compress_filter.c | 4 +-
crypt_common.c | 2 +-
dccp_recv.c | 2 +-
dccp_send.c | 2 +-
fd.c | 2 +-
fec.c | 20 +++----
fecdec_filter.c | 8 +--
file_write.c | 2 +-
filter.c | 4 +-
flac_afh.c | 6 +-
flacdec_filter.c | 4 +-
gcrypt.c | 6 +-
grab_client.c | 2 +-
gui.c | 2 +-
http_recv.c | 2 +-
http_send.c | 2 +-
imdct.c | 8 +--
interactive.c | 10 ++--
mood.c | 6 +-
mp.c | 4 +-
mp3_afh.c | 8 +--
mp3dec_filter.c | 4 +-
net.c | 6 +-
ogg_afh_common.c | 8 +--
oggdec_filter.c | 6 +-
openssl.c | 8 +--
opus_afh.c | 2 +-
opusdec_filter.c | 6 +-
oss_mix.c | 2 +-
oss_write.c | 2 +-
para.h | 1 -
play.c | 10 ++--
prebuffer_filter.c | 2 +-
recv_common.c | 2 +-
resample_filter.c | 8 +--
ringbuffer.c | 4 +-
sched.c | 2 +-
score.c | 4 +-
send_common.c | 10 ++--
server.c | 4 +-
sideband.c | 6 +-
signal.c | 2 +-
spx_afh.c | 2 +-
spxdec_filter.c | 4 +-
string.c | 173 ++++++++++++++++++++++++++++++++++-------------------
string.h | 7 ++-
sync_filter.c | 8 +--
udp_send.c | 4 +-
user_list.c | 2 +-
vss.c | 8 +--
wav_filter.c | 4 +-
web/manual.md | 4 +-
wma_afh.c | 12 ++--
wmadec_filter.c | 8 +--
write.c | 2 +-
write_common.c | 2 +-
yy/mp.y | 6 +-
81 files changed, 310 insertions(+), 264 deletions(-)
This series switches over the complete code base from select(2) to poll(2) to avoid known shortcomings of the select API, in particular its limit to 1024 descriptors and the fact that fds above 1023 cannot be monitored with select(2), even if fewer than 1024 fds are open.
The first patches of the series prepare this switch, converting the easy cases, hiding select specific data structures such as fd sets, and adjusting function names and documentation. The crucial commit is the last one. See its rather verbose log message for details.
All calls to select(2) have been replaced by calls to poll(2).
aacdec_filter.c | 6 +-
afh_recv.c | 10 +--
afs.c | 39 +++++----
alsa_write.c | 14 ++--
amp_filter.c | 6 +-
ao_write.c | 8 +-
audioc.c | 16 ++--
audiod.c | 41 +++++-----
audiod.h | 2 +-
audiod_command.c | 11 ++-
buffer_tree.c | 4 +-
check_wav.c | 20 ++---
check_wav.h | 4 +-
client.c | 18 ++---
client_common.c | 39 +++++----
command.c | 2 +-
compress_filter.c | 6 +-
configure.ac | 4 +-
dccp_recv.c | 14 ++--
dccp_send.c | 15 ++--
fd.c | 146 +++++++++++++--------------------
fd.h | 12 ++-
fecdec_filter.c | 6 +-
file_write.c | 12 +--
filter.c | 7 +-
filter.h | 40 ++++-----
filter_common.c | 15 ++--
flacdec_filter.c | 8 +-
grab_client.c | 16 ++--
gui.c | 48 +++++------
http_recv.c | 20 ++---
http_send.c | 20 ++---
interactive.c | 48 ++++-------
interactive.h | 3 +-
mp3dec_filter.c | 8 +-
net.c | 8 +-
net.h | 2 +-
oggdec_filter.c | 10 +--
opusdec_filter.c | 8 +-
oss_write.c | 12 +--
para.h | 2 +
play.c | 38 ++++-----
prebuffer_filter.c | 8 +-
recv.c | 7 +-
recv.h | 50 +++++-------
recv_common.c | 18 ++---
resample_filter.c | 14 ++--
sched.c | 233 +++++++++++++++++++++++++++++++++++++++--------------
sched.h | 69 ++++++++++------
send.h | 27 ++-----
send_common.c | 7 +-
server.c | 41 +++++-----
signal.c | 8 +-
signal.h | 21 +++--
spxdec_filter.c | 6 +-
stdin.c | 21 +++--
stdout.c | 18 ++---
sync_filter.c | 12 +--
udp_recv.c | 14 ++--
udp_send.c | 2 +-
vss.c | 36 ++++-----
wav_filter.c | 8 +-
wmadec_filter.c | 7 +-
write.c | 15 ++--
write.h | 30 +++----
write_common.c | 4 +-
66 files changed, 728 insertions(+), 716 deletions(-)
A single patch which adds two new sample formats for 32 bit IEEE float waveform data.
The alsa writer also supports 32 bit float sample formats.
alsa_write.c | 2 ++
ao_write.c | 2 ++
check_wav.c | 20 +++++++++++++++++---
m4/lls/include/sample-format.m4 | 4 +++-
para.h | 2 ++
5 files changed, 26 insertions(+), 4 deletions(-)