resample filter: Implementation.
authorAndre Noll <maan@systemlinux.org>
Sun, 28 Oct 2012 14:10:59 +0000 (15:10 +0100)
committerAndre Noll <maan@systemlinux.org>
Sun, 25 Nov 2012 13:08:55 +0000 (14:08 +0100)
commit0eb69b6d45c54deda1724b2db2202cf4057b0309
tree50ba214e2a358242a19709c81836505fda2c54dc
parentcad2842e228ab3e42702a05af759ad292b89bed9
resample filter: Implementation.

The resample filter allows to change the sample rate of a stream on the
fly. All the magic happens within libsamplerate, so the implementation
is quite simple.

However, one tricky thing to consider is how wav headers are treated:
Although the resample filter creates only a single task, it adds
two different nodes to the buffer tree, one for the wav detector and
another one for the resample filter itself.

At startup the generic code of para_filter or para_audiod adds only
the resample filter node, which in turn inserts the wav detector as
its own parent node. This requires to insert a new internal node to
the buffer tree which is currently not supported by the buffer tree
API. It is easy to implement this feature though, so this commit adds
the missing functionality to buffer_tree.c.
buffer_tree.c
check_wav.c
check_wav.h
error.h
m4/gengetopt/makefile
m4/gengetopt/resample_filter.m4
resample_filter.c
write.c