The previous GAPK implementation was represented by a single
executable. So, all audio transcoding operations were available
only via calling the 'gapk' binary. This approach didn't allow
external applications to benefit from using GAPK API directly.
The following set of changes separates the common code into a
shared library called 'libosmogapk', linking the 'gapk' binary
against it:
- 95e6664 Introduce a shared 'libosmogapk' library
- 30209ce Install GAPK headers to '${includedir}/osmocom/gapk/'
- a8d4657 Add an 'osmo_gapk' prefix to the exposed symbols
- 40d59f1 Add a pkg-config manifest for libosmogapk
- 4f0a47d Add the symbol export map for libosmogapk
All memory management operations are now based on talloc library:
- 3c20dac libosmogapk: use talloc for memory management
- 5cabe1e osmo-gapk: use talloc for memory management
Integrated Osmocom logging framework:
- c35ba8a libosmogapk: use Osmocom logging framework
- 4b7cd2c osmo-gapk: drop useless printf calls
- 0fe18af osmo-gapk: use Osmocom logging framework
- 11943bf osmo-gapk: adjust application verbosity
Integrated GNU Autotest environment and basic test coverage:
- f069eb3 Init automake test environment
- 1fe6a9b tests: add procqueue test
- 3e9e57f tests: add pq_file test
- 9d2b15d tests: add pq_rtp test
- f59f3f1 tests: add format / codec transcoding tests
For more details, see commits history.
Change-Id: I3c6d4a9d326ee49153e4ad83823d094831c112da
The BENCHMARK_STOP should be called with a correct codec type and
a correct operation type (encode or decode). Otherwise the results
could be incorrect.
Change-Id: Ie90e85ca8d9ec3175a58dde60525e0b7d6daf608
There is no need to expose the implementation details of both
BENCHMARK_START and BENCHMARK_STOP macros via public header.
This change moves them to a separate private header 'bench.h'.
To avoid a naming conflict between libosmogapk and other projects
during linkage, all the exposed symbols should have an unique
prefix. Let's use 'osmo_gapk' for that.
To be able to use the library, external applications need to know,
which symbols are exposed. This information is provided by header
files, which are being installed to a system's ${includedir}
since this change.