mirror of
https://github.com/openharmony/third_party_tinyalsa.git
synced 2026-07-18 13:25:09 -04:00
30ced281cdf1cafe4e756272b203fabc16fe89c3
It would result in a double free: $ tinyplay example.wav failed to open for pcm 0,0 *** glibc detected *** ./utils/tinyplay: double free or corruption (fasttop): 0x402dc258 *** Aborted $ The crash happens here: Program received signal SIGABRT, Aborted. 0x40070e78 in raise () from /lib/libc.so.6 Missing separate debuginfos, use: debuginfo-install glibc-2.16-34.olpc.0.fc18.armv7hl libgcc-4.7.2-8.fc18.armv7hl (gdb) bt #0 0x40070e78 in raise () from /lib/libc.so.6 #1 0x400724b8 in abort () from /lib/libc.so.6 #2 0x400ad6e0 in ?? () from /lib/libc.so.6 #3 0x400b54e8 in ?? () from /lib/libc.so.6 #4 0x2a00486c in pcm_hw_close () #5 0x2a0032e0 in pcm_close () #6 0x2a0016b0 in ctx_init () #7 0x2a000c98 in main () (gdb) The previous free was done here: Breakpoint 1, 0x400b8b8c in free () from /lib/libc.so.6 (gdb) bt #0 0x400b8b8c in free () from /lib/libc.so.6 #1 0x2a00486c in pcm_hw_close () #2 0x2a003674 in pcm_open () #3 0x2a0015e8 in ctx_init () #4 0x2a000c98 in main () (gdb)
TinyALSA
TinyALSA is a small library to interface with ALSA in the Linux kernel.
The aims are:
- Provide a basic pcm and mixer API.
- If it's not absolutely needed, don't add it to the API.
- Avoid supporting complex and unnecessary operations, that could be dealt with at a higher level.
- Provide comprehensive documentation.
Building
TinyALSA uses Makefile as the primary build system.
To build and install with Make, run the commands:
make
sudo make install
sudo ldconfig
Installing
TinyALSA is now available as a set of the following debian packages from launchpad:
| Package Name: | Description: |
|---|---|
| tinyalsa | Contains tinyplay, tinycap, tinymix and tinypcminfo |
| libtinyalsa | Contains the shared library |
| libtinyalsa-dev | Contains the static library and header files |
To install these packages, run the commands:
sudo apt-add-repository ppa:taylorcholberton/tinyalsa
sudo apt-get update
sudo apt-get install tinyalsa
sudo apt-get install libtinyalsa-dev
Documentation
Once installed, the man pages are available via:
man tinyplay
man tinycap
man tinymix
man tinypcminfo
man libtinyalsa-pcm
man libtinyalsa-mixer
Description
Languages
C
77.3%
C++
14.9%
Roff
2.1%
Shell
1.9%
Makefile
1.6%
Other
2.2%