Commit Graph

45 Commits

Author SHA1 Message Date
Marcin Smoczyński
f1fc9df152 [EGD-4977] Reduce audio lag during voice call
Reduce audio delay by reducing audio buffer size in router operation.
Audio streams are now created directly in the operations, not in the
audio service, which gives more flexibility.

Audio Buffer size is calculated based on endpoints (source, sink) and
operation capabilities. This commit also enables allocations in a
non-cacheable region of OCRAM for endpoints that use DMA for data
transport.

Introduce power-of-two operations that use built-in functions and
possibly dedicated hardware instructions of an MCU. These operations
are required by the audio stream buffer size calculation algorithm.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-02-01 22:22:12 +01:00
Radoslaw Wicik
d14e40d378 [EGD-4831] Add license headers to c, h and sql files
Add license headers to `h`, `c` and `sql` files as this files haven't
been checked previously, script now to automatically updates current
year in existing licenses.
2021-01-28 14:41:33 +01:00
Marcin Smoczyński
40bf381eca [EGD-5086] Fix voice not starting when calling
Due to a race condition between source and sink voice is not always
starting when calling. Introduce audio stream connections to avoid
race condition and improve handling of audio start and stop operations.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-01-14 11:03:47 +01:00
Hubert Chrzaniuk
1bdc829588 [EGD-5086] Change audio device switching logic
Upon hardware change event, audio profile had been switched multiple
times forcing redundant initializations of all related objects. Logic
has been optimized and prepared for further refactor. Now upon hardware
event objects are initialized exactly once.
2021-01-11 09:48:52 +01:00
Marcin Smoczyński
871b250d86 [EGD-4534] Change audio data path synchronization
Refactor audio data path to fix several synchronization issues and
excessive copy operations on large memory blocks. Introduce
audio::Stream data structure to allow connecting audio source and sink
with a zero-copy capability.

Introduce system mechanisms:
 - critical section guard lock needed for stream synchronization
 - non-cacheable memory allocator to allocate memory for DMA safe
   buffers

Update the Googletest CMake template to match the capabilities of the
Catch2 template.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@mudita.com>
2020-12-17 12:20:40 +01:00
Hubert Chrzaniuk
f69384525a [EGD-4332][EGD-4482] Fix playback of mono sound in headphones (#1080)
Addressed problem - when playing files containing only one
audio channel the sound could be heard in only one speaker.
2020-11-26 09:46:30 +01:00
jimmorrisson
70126e07ac [EGD-4439] New filesystem handling - module audio. (#1037)
[EGD-4439] Taglib revision update
2020-11-19 10:18:24 +01:00
Lucjan Bryndza
0a407135e5 [EGD-4181] move taglib from audio (#932)
* [EGD-4181] Move submodule taglib to utils

* [EGD-4181] LibTag moved to util lib.

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-10-30 12:41:46 +01:00
Hubert Chrzaniuk
4c22ef5107 [EGD-4099] BT set stream (#846) 2020-10-20 13:43:53 +02:00
Przemyslaw Brudny
e131dae68f [EGD-3743] Removed old doxygen copyright statements from project. 2020-10-20 12:55:10 +02:00
Radoslaw Wicik
2276ceed67 [EGD-3743] Update copyrights in fies 2020-10-20 12:55:10 +02:00
Hubert Chrzaniuk
8c748a39b2 [EGD-4100] Fix playback restart on audio profile change (#848) 2020-10-16 13:53:57 +02:00
Hubert Chrzaniuk
ebcef7a692 [EGD-4054] Audio API for setting stream parameters (#826) 2020-10-15 09:27:15 +02:00
Bartek Cichocki
305d43a176 [EGD-3773] added A2DP playback backend 2020-10-14 09:23:53 +02:00
Adam Dobrowolski
7b4a706cd6 EGD-4036 Application windows - added register mechanism
* Moved ApplicationLauncher to separate files - declutering
* WindowsStore renamed to WindowsFactory - Store needs to be splitted toavoid antipattern
* Options window build dynamically onBeforeShow
* Dialog windows dynamically built
2020-10-13 17:46:10 +02:00
Lucjan Bryndza
0014dae259 [EGD-3854] Removing goto's from the code (#797)
It is generic cleanup task for removing all goto files

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-10-08 08:58:49 +02:00
Adam
f5f27d642f EGD-2955 EGD-3588 Timers fully refactored & updated (#721)
* Timers now are Application thread safe
* Timers now have consistent API independend of Application (no more c style timers)
* Timers can have either: callback or override onTimer() method - this
  way we can create more complicated timers or just use existing ones
* gui::Timer added via adapter class GuiTimer to decouple sys::Timer
  with gui::Timer
* Fixed race in wrapper
* Updated docs
* fixed using std and cpp_freertos and DataReceivedHandler hidden in Application.hpp
2020-10-02 14:04:57 +02:00
pawpMudita
9311e33aa5 EGD-3808 Scrolling contacts list with a particular letter - part 2 2020-10-02 10:09:36 +02:00
SP2FET
ca03073cc4 [EGD-3643] added BT dedicated bonding (simple pairing) 2020-10-01 17:19:41 +02:00
Marcin Smoczyński
af85469c26 [EGD-3864] main file cleanup (#761)
Remove dead code; cleanup and sort include list. Introduce config file.
2020-10-01 14:47:53 +02:00
hubert-chrzaniuk
ea88f765a9 [EGD-3468] Bump taglib repo (#752) 2020-09-30 09:12:05 +02:00
kkleczkowski
06e3bb0f3f Egd 3709 - Application antenna - added parameter history window. (#713)
* [EGD-3709] Applicatgion antenna switch parameters window.

* [EGD-3709] Changelog + service-antenna disabled.

* [EGD-3709] PR suggestions + missing antenna rquest.

Co-authored-by: Kuba Kleczkowski <dd>
2020-09-22 14:35:00 +02:00
Hubert Chrzaniuk
f66212e28a [EGD-3468] Bump taglib repo
* newer commit adds third_party_source_optimization support
2020-09-17 12:36:21 +02:00
Hubert Chrzaniuk
6e9bdb3dc1 [EGD-3468] Fix metadata of audio files 2020-09-14 16:55:17 +02:00
alek
9821cd77c6 [EGD-3558] remove memalloc 2020-09-04 11:45:50 +02:00
alek
da8f35c2c6 [EGD-3464] fix playaback of mp3 files 2020-08-28 09:46:00 +02:00
Marcin Smoczyński
a61de1a5dc audio: fix build warnings 2020-05-22 16:15:15 +02:00
Adam Dobrowolski
6c6d9208df EGD-3055 Added misssing break in dr_flac.c 2020-04-08 12:23:53 +02:00
Adam Dobrowolski
09adf35eb5 EGD-3026 Database record unified ID field name 2020-03-24 14:17:12 +01:00
Adam Dobrowolski
abe6813ce6 EGD-3026 Wall Werror and Wextra added to project 2020-03-24 14:17:12 +01:00
Radoslaw Wicik
a8573a404c Apply new style 2020-03-17 10:03:16 +01:00
rkubiak01
e721aed271 [FIX] warning fixes
this alsow fixes the release build warnings for the audio decoder
those did not pop-up when building in debug mode
2020-01-28 06:41:43 -05:00
Mateusz
dd4474f3c3 WiP: Massive refactor in module-bsp, cleaned up include paths and compilation warnings/errors 2019-08-08 10:27:45 +02:00
Mateusz
fce0de53ef WiP: routing tests 2019-08-05 08:05:40 +02:00
Mateusz
0df92c22c7 WiP: Fixed error handling in decoder/encoder/Operation layer 2019-08-02 13:55:25 +02:00
Mateusz
16c5965d10 WiP: changes in drflac decoder in order to save on stack usage 2019-08-01 21:47:49 +02:00
Mateusz
0fced67c65 WiP: optimized ram usage by MP3 decoder 2019-08-01 21:07:48 +02:00
Mateusz
655fe5fd06 WiP: mp3 decoder optimization 2019-08-01 15:43:32 +02:00
Mateusz
d3a76d8b99 WiP: new BSP layer for I2C, RT1051 driver for audiocodec 2019-07-29 19:49:43 +02:00
Mateusz
4336ac7b2d WiP: fixed bug in MP3 decoder 2019-07-29 09:26:03 +02:00
Mati
48bd11aba9 WiP: fun with mp3 decoder 2019-07-28 23:43:58 +02:00
Mati
5970fe7762 WiP: proper support for mono streams inside AudioDevice 2019-07-28 22:50:22 +02:00
Mateusz
5b4719ed7c WiP: Profiles implementation, Recorder template, various fixes in BSP layer, extended BSP & module-audio API 2019-07-23 16:10:29 +02:00
Mateusz
fdbfc73b5e WiP: necessary changes in old decoder code
Added some unit tests
2019-07-22 22:48:56 +02:00
Mateusz
fd17c1a0d9 WiP: module-audio template
Moved decoder layer from old NXPhone project
2019-07-22 15:06:25 +02:00