|
|
|
|
@ -154,11 +154,21 @@ static __typeof__(codec_chain_client_pcmu2opus_runner_new) *cc_client_pcmu2opus_
|
|
|
|
|
static __typeof__(codec_chain_client_opus2pcma_runner_new) *cc_client_opus2pcma_runner_new;
|
|
|
|
|
static __typeof__(codec_chain_client_opus2pcmu_runner_new) *cc_client_opus2pcmu_runner_new;
|
|
|
|
|
|
|
|
|
|
static __typeof__(codec_chain_client_pcma2opus_runner_free) *cc_client_pcma2opus_runner_free;
|
|
|
|
|
static __typeof__(codec_chain_client_pcmu2opus_runner_free) *cc_client_pcmu2opus_runner_free;
|
|
|
|
|
static __typeof__(codec_chain_client_opus2pcma_runner_free) *cc_client_opus2pcma_runner_free;
|
|
|
|
|
static __typeof__(codec_chain_client_opus2pcmu_runner_free) *cc_client_opus2pcmu_runner_free;
|
|
|
|
|
|
|
|
|
|
static __typeof__(codec_chain_client_pcma2opus_async_runner_new) *cc_client_pcma2opus_async_runner_new;
|
|
|
|
|
static __typeof__(codec_chain_client_pcmu2opus_async_runner_new) *cc_client_pcmu2opus_async_runner_new;
|
|
|
|
|
static __typeof__(codec_chain_client_opus2pcma_async_runner_new) *cc_client_opus2pcma_async_runner_new;
|
|
|
|
|
static __typeof__(codec_chain_client_opus2pcmu_async_runner_new) *cc_client_opus2pcmu_async_runner_new;
|
|
|
|
|
|
|
|
|
|
static __typeof__(codec_chain_client_pcma2opus_async_runner_free) *cc_client_pcma2opus_async_runner_free;
|
|
|
|
|
static __typeof__(codec_chain_client_pcmu2opus_async_runner_free) *cc_client_pcmu2opus_async_runner_free;
|
|
|
|
|
static __typeof__(codec_chain_client_opus2pcma_async_runner_free) *cc_client_opus2pcma_async_runner_free;
|
|
|
|
|
static __typeof__(codec_chain_client_opus2pcmu_async_runner_free) *cc_client_opus2pcmu_async_runner_free;
|
|
|
|
|
|
|
|
|
|
static __typeof__(codec_chain_pcma2opus_runner_do) *cc_pcma2opus_runner_do;
|
|
|
|
|
static __typeof__(codec_chain_pcmu2opus_runner_do) *cc_pcmu2opus_runner_do;
|
|
|
|
|
static __typeof__(codec_chain_opus2pcma_runner_do) *cc_opus2pcma_runner_do;
|
|
|
|
|
@ -1302,10 +1312,13 @@ static void avc_def_init(struct codec_def_s *def) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void cc_cleanup(void);
|
|
|
|
|
|
|
|
|
|
void codeclib_free(void) {
|
|
|
|
|
g_hash_table_destroy(codecs_ht);
|
|
|
|
|
g_hash_table_destroy(codecs_ht_by_av);
|
|
|
|
|
avformat_network_deinit();
|
|
|
|
|
cc_cleanup();
|
|
|
|
|
if (evs_lib_handle)
|
|
|
|
|
dlclose(evs_lib_handle);
|
|
|
|
|
if (cc_lib_handle)
|
|
|
|
|
@ -1371,6 +1384,15 @@ static void cc_dlsym_resolve(const char *fn) {
|
|
|
|
|
cc_client_opus2pcmu_runner_new = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_opus2pcmu_runner_new", fn);
|
|
|
|
|
|
|
|
|
|
cc_client_pcma2opus_runner_free = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_pcma2opus_runner_free", fn);
|
|
|
|
|
cc_client_pcmu2opus_runner_free = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_pcmu2opus_runner_free", fn);
|
|
|
|
|
cc_client_opus2pcma_runner_free = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_opus2pcma_runner_free", fn);
|
|
|
|
|
cc_client_opus2pcmu_runner_free = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_opus2pcmu_runner_free", fn);
|
|
|
|
|
|
|
|
|
|
cc_client_pcma2opus_async_runner_new = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_pcma2opus_async_runner_new", fn);
|
|
|
|
|
cc_client_pcmu2opus_async_runner_new = dlsym_assert(cc_lib_handle,
|
|
|
|
|
@ -1380,6 +1402,15 @@ static void cc_dlsym_resolve(const char *fn) {
|
|
|
|
|
cc_client_opus2pcmu_async_runner_new = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_opus2pcmu_async_runner_new", fn);
|
|
|
|
|
|
|
|
|
|
cc_client_pcma2opus_async_runner_free = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_pcma2opus_async_runner_free", fn);
|
|
|
|
|
cc_client_pcmu2opus_async_runner_free = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_pcmu2opus_async_runner_free", fn);
|
|
|
|
|
cc_client_opus2pcma_async_runner_free = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_opus2pcma_async_runner_free", fn);
|
|
|
|
|
cc_client_opus2pcmu_async_runner_free = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_client_opus2pcmu_async_runner_free", fn);
|
|
|
|
|
|
|
|
|
|
cc_pcma2opus_runner_do = dlsym_assert(cc_lib_handle,
|
|
|
|
|
"codec_chain_pcma2opus_runner_do", fn);
|
|
|
|
|
cc_pcmu2opus_runner_do = dlsym_assert(cc_lib_handle,
|
|
|
|
|
@ -1512,9 +1543,25 @@ static void cc_init(void) {
|
|
|
|
|
ilog(LOG_DEBUG, "CUDA codecs initialised");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void cc_cleanup(void) {
|
|
|
|
|
if (!cc_lib_handle)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
cc_client_opus2pcma_runner_free(cc_client, &opus2pcma_runner);
|
|
|
|
|
cc_client_opus2pcmu_runner_free(cc_client, &opus2pcmu_runner);
|
|
|
|
|
cc_client_pcma2opus_runner_free(cc_client, &pcma2opus_runner);
|
|
|
|
|
cc_client_pcmu2opus_runner_free(cc_client, &pcmu2opus_runner);
|
|
|
|
|
|
|
|
|
|
cc_client_opus2pcma_async_runner_free(cc_client, &opus2pcma_async_runner);
|
|
|
|
|
cc_client_opus2pcmu_async_runner_free(cc_client, &opus2pcmu_async_runner);
|
|
|
|
|
cc_client_pcma2opus_async_runner_free(cc_client, &pcma2opus_async_runner);
|
|
|
|
|
cc_client_pcmu2opus_async_runner_free(cc_client, &pcmu2opus_async_runner);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
|
|
static void cc_init(void) { }
|
|
|
|
|
static void cc_cleanup(void) { }
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|