Make sure the ECU (Error Concealment Unit) is working correctly
In 69d0d506775c82eb2bde66fe748100a94a3173a0 "osmo-bts-trx: perform error concealment for FR frames",
the ECU (Error Concealment Unit) was introduced. In short, if one (or more) speech frame is lost,
one may experience some unpleasant audio effects. The ECU is used to avoid such effects.
While working on audio support in OsmocomBB, I have discovered that the libosmocoding API
actually produces decoded speech frames in RTP format, and I guess the ECU implementation
may expect speech frames in canonical format.
I think it makes sense to:
- clarify, which frame format is expected by the libosmocodec's ECU FR implementation?
- add some comments there (I couldn't find any);
- manually test with a regular phone (by dripping TCH bursts somehow);
- add some TTCN-3 testing coverage;
The RTP order and "canonical order" are the same (and different from the order "on-the-air" where bits are priority shuffled).
Only difference is the "marker" in the first 4 bits, but we never use the canonical format anywhere.
The ECU takes a frame in RTP payload format for sure and AFAICT it works and it has a test included in libosmocore.