[alsa-devel] alsa-utils: axfer: rewrite aplay, adding 'timer-based scheduling' option
GitHub pull_request - opened
github at alsa-project.org
Tue Nov 13 07:24:59 CET 2018
alsa-project/alsa-utils pull request #3 was opened from takaswie:
Hi,
This patchset is an updated version of my previous RFCv3, and for
merging to upstream.
[alsa-devel] [RFCv3][PATCH 00/39] axfer: rewrite aplay, adding 'timer-based scheduling' option
http://mailman.alsa-project.org/pipermail/alsa-devel/2017-October/125961.html
As I noted in RFCv3, some patches are dropped in this patchset, due to
some technical issues. In detail, please refer to RFCv3.
Changes from RFCv3:
- rename scheduling option to 'sched-model'
- improve waiter implementation and add support for select(2)
- categorize supported options as common and backend-dependent
- release alsa-lib configuration space at the end of runtime
- valgrind test and fix some memory leaks
- add 'frame-cache' internal interface to share implementation by
several backends.
- add 'libffado' backend just for technical preview (linkage of this
library brings problems. Please refet to patch comment.)
I apologize but in this time I don't prepare any help document and
manuals as well as RFCv3. Let me put them to a part of task for this
development period.
Regards
Takashi Sakamoto (35):
axfer: add an entry point for this command
axfer: add a sub-command to print list of PCMs/devices
axfer: add a common interface to handle a file with audio-specific
data format
axfer: add support for a container of Microsoft/IBM RIFF/Wave format
axfer: add support for a container of Sparc AU format
axfer: add support for a container of Creative Tech. voice format
axfer: add support for a container of raw data
axfer: add unit test for container interface
axfer: add a common interface to align data frames on different layout
axfer: add support for a mapper for single target
axfer: add support for a mapper for multiple target
axfer: add a unit test for mapper interface
axfer: add a common interface to transfer data frames
axfer: add a parser for command-line options
axfer: add support to transfer data frames by alsa-lib PCM APIs
axfer: add support for blocking data transmission operation of
alsa-lib PCM API
axfer: add a sub-command to transfer data frames
axfer: add informative output and an option to suppress it
axfer: add an option to dump available hardware parameters
axfer: add options related to duration and obsolete '--max-file-size'
option
axfer: add an option to finish transmission at XRUN
axfer: add support for non-blocking operation
axfer: add support for MMAP PCM operation
axfer: add an option to suppress event waiting
axfer: add options for buffer arrangement
axfer: add options for software parameters of PCM substream
axfer: add options for plugins in alsa-lib
axfer: add a common interface of waiter for I/O event notification
axfer: add an option for waiter type
axfer: add an implementation of waiter for poll(2)
axfer: add an implementation of waiter for select(2)
axfer: add an implementation of waiter for epoll(7)
axfer: add support for timer-based scheduling model with MMAP
operation
axfer: obsolete some unimplemented options
axfer: add support for libffado transmission backend
```
Makefile.am | 2 +-
axfer/Makefile.am | 62 +++
axfer/container-au.c | 203 +++++++
axfer/container-raw.c | 66 +++
axfer/container-riff-wave.c | 575 +++++++++++++++++++
axfer/container-voc.c | 833 +++++++++++++++++++++++++++
axfer/container.c | 457 +++++++++++++++
axfer/container.h | 126 +++++
axfer/frame-cache.c | 111 ++++
axfer/frame-cache.h | 47 ++
axfer/main.c | 229 ++++++++
axfer/mapper-multiple.c | 259 +++++++++
axfer/mapper-single.c | 191 +++++++
axfer/mapper.c | 150 +++++
axfer/mapper.h | 87 +++
axfer/misc.h | 19 +
axfer/subcmd-list.c | 234 ++++++++
axfer/subcmd-transfer.c | 467 ++++++++++++++++
axfer/subcmd.h | 18 +
axfer/test/Makefile.am | 31 ++
axfer/test/container-test.c | 299 ++++++++++
axfer/test/generator.c | 260 +++++++++
axfer/test/generator.h | 47 ++
axfer/test/mapper-test.c | 491 ++++++++++++++++
axfer/waiter-epoll.c | 107 ++++
axfer/waiter-poll.c | 45 ++
axfer/waiter-select.c | 100 ++++
axfer/waiter.c | 104 ++++
axfer/waiter.h | 61 ++
axfer/xfer-libasound-irq-mmap.c | 282 ++++++++++
axfer/xfer-libasound-irq-rw.c | 427 ++++++++++++++
axfer/xfer-libasound-timer-mmap.c | 455 +++++++++++++++
axfer/xfer-libasound.c | 898 ++++++++++++++++++++++++++++++
axfer/xfer-libasound.h | 92 +++
axfer/xfer-libffado.c | 555 ++++++++++++++++++
axfer/xfer-options.c | 589 ++++++++++++++++++++
axfer/xfer.c | 254 +++++++++
axfer/xfer.h | 115 ++++
configure.ac | 15 +-
39 files changed, 9361 insertions(+), 2 deletions(-)
create mode 100644 axfer/Makefile.am
create mode 100644 axfer/container-au.c
create mode 100644 axfer/container-raw.c
create mode 100644 axfer/container-riff-wave.c
create mode 100644 axfer/container-voc.c
create mode 100644 axfer/container.c
create mode 100644 axfer/container.h
create mode 100644 axfer/frame-cache.c
create mode 100644 axfer/frame-cache.h
create mode 100644 axfer/main.c
create mode 100644 axfer/mapper-multiple.c
create mode 100644 axfer/mapper-single.c
create mode 100644 axfer/mapper.c
create mode 100644 axfer/mapper.h
create mode 100644 axfer/misc.h
create mode 100644 axfer/subcmd-list.c
create mode 100644 axfer/subcmd-transfer.c
create mode 100644 axfer/subcmd.h
create mode 100644 axfer/test/Makefile.am
create mode 100644 axfer/test/container-test.c
create mode 100644 axfer/test/generator.c
create mode 100644 axfer/test/generator.h
create mode 100644 axfer/test/mapper-test.c
create mode 100644 axfer/waiter-epoll.c
create mode 100644 axfer/waiter-poll.c
create mode 100644 axfer/waiter-select.c
create mode 100644 axfer/waiter.c
create mode 100644 axfer/waiter.h
create mode 100644 axfer/xfer-libasound-irq-mmap.c
create mode 100644 axfer/xfer-libasound-irq-rw.c
create mode 100644 axfer/xfer-libasound-timer-mmap.c
create mode 100644 axfer/xfer-libasound.c
create mode 100644 axfer/xfer-libasound.h
create mode 100644 axfer/xfer-libffado.c
create mode 100644 axfer/xfer-options.c
create mode 100644 axfer/xfer.c
create mode 100644 axfer/xfer.h
```
Request URL : https://github.com/alsa-project/alsa-utils/pull/3
Patch URL : https://github.com/alsa-project/alsa-utils/pull/3.patch
Repository URL: https://github.com/alsa-project/alsa-utils
More information about the Alsa-devel
mailing list