Feature #3400
closed
mobile: implement GAPK based audio capture / playback (via ALSA)
Added by fixeria almost 6 years ago.
Updated over 1 year ago.
Category:
OsmocomBB mobile (host)
Description
There is an initial implementation of GAPK based audio back-end in fixeria/audio.
The current implementation is limited, so TODO/FIXME:
- init both I/O processing chains when CHANNEL MODE MODIFY is received,
- deinit both I/O chains when a call is finished,
- take care about PHY specific frame formats (e.g. TI),
- optimize the application loop in order to improve performance,
- support other than GSM FR codecs (currently FR is hardcoded),
- compose codec support in Classmark depending on PHY capabilities and GAPK codec support.
Some points require a possibility to know the PHY features, such as:
- TCH frame forwarding capability,
- preferred TCH frame format,
- full rate / half rate channel support,
- AMR codec over FR / HR channel support.
- Tracker changed from Bug to Feature
- Blocked by Feature #1461: include some version information / negotiation in the L1CTL protocol added
- Status changed from New to In Progress
- % Done changed from 0 to 50
The performance problem is actually caused by blocking calls of src/pq_alsa.c/pq_cb_alsa_input()/snd_pcm_readi().
Setting both buffer and period size values seems to solve the issue. A separate issue needs to be created...
- Status changed from In Progress to Stalled
- Related to Feature #4422: implement audio loop-back in mobile added
- Status changed from Stalled to In Progress
After rebasing fixeria/audio
on top of the recent master I got the audio working with Mot C1xx.
Still need to test with trxcon. Will update commit messages and submit patches to Gerrit soon.
With a few additional patches applied:
https://gerrit.osmocom.org/c/osmocom-bb/+/30483 mobile: do not enforce RTP format for Uplink TCH frames [NEW]
https://gerrit.osmocom.org/c/osmocom-bb/+/30484 firmware: remove TCH/F specific bit re-ordering [NEW]
https://gerrit.osmocom.org/c/gapk/+/30482 libgsmhr/fetch_sources.py: convert to Python 3
I have successfully tested GAPK based audio I/O with both trxcon and a Mot C1xx phone. The non-adaptive codecs (HR, FR, EFR) are all confirmed to work. AMR implementation is currently incomplete in trxcon, and is completely missing in the layer1 firmware (needs DSP patches); adding a checklist item for this. I think at the current state it qualifies as a working voice call functionality, so I am stopping to work on this ticket and setting it to Stalled.
On Mon, Dec 05, 2022 at 10:57:58PM +0000, fixeria wrote:
I have successfully tested GAPK based audio I/O with both trxcon and a Mot C1xx phone. The non-adaptive codecs (HR, FR, EFR) are all confirmed to work. AMR implementation is currently incomplete in trxcon, and is completely missing in the layer1 firmware (needs DSP patches); adding a checklist item for this. I think at the current state it qualifies as a working voice call functionality, so I am stopping to work on this ticket and setting it to Stalled.
IMHO it makes mor sence to resolve this ticket once all patches for non-AMR are merged. Add a new issue for
AMR support, with no assignee and low priority.
- Checklist item deleted (
AMR (AHS/AFS) support)
laforge wrote in #note-16:
IMHO it makes mor sence to resolve this ticket once all patches for non-AMR are merged. Add a new issue for
AMR support, with no assignee and low priority.
Ack, please see #5812.
- Related to Feature #5815: mobile: compose Bearer Capability IE depending on PHY capabilities and GAPK codec support added
- Blocked by deleted (Feature #1461: include some version information / negotiation in the L1CTL protocol)
- Checklist item deleted (
Compose codec support in Classmark depending on PHY capabilities and GAPK codec support)
- Status changed from Stalled to Feedback
- Status changed from Feedback to Resolved
- % Done changed from 80 to 100
All patches have been merged. Voice quality is good, except when using libgsmhr (via libosmo-gapk.so). This can be investigated later.
Also available in: Atom
PDF