Add Chiaki Lib to Android

This commit is contained in:
Florian Märkl 2019-09-14 15:14:55 +02:00
commit 7fb4c67f33
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
11 changed files with 142 additions and 7 deletions

View file

@ -74,8 +74,11 @@ include_directories("${NANOPB_SOURCE_DIR}")
set_source_files_properties(${CHIAKI_LIB_PROTO_SOURCE_FILES} ${CHIAKI_LIB_PROTO_HEADER_FILES} PROPERTIES GENERATED TRUE)
include_directories("${CHIAKI_LIB_PROTO_INCLUDE_DIR}")
find_package(Opus REQUIRED)
include_directories(${Opus_INCLUDE_DIRS})
if(CHIAKI_LIB_ENABLE_OPUS)
find_package(Opus REQUIRED)
include_directories(${Opus_INCLUDE_DIRS})
add_definitions(-DCHIAKI_LIB_ENABLE_OPUS)
endif()
add_library(chiaki-lib ${HEADER_FILES} ${SOURCE_FILES} ${CHIAKI_LIB_PROTO_SOURCE_FILES} ${CHIAKI_LIB_PROTO_HEADER_FILES})
add_dependencies(chiaki-lib chiaki-pb)
@ -90,10 +93,16 @@ target_include_directories(chiaki-lib PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/includ
find_package(Threads REQUIRED)
target_link_libraries(chiaki-lib Threads::Threads)
find_package(OpenSSL REQUIRED)
target_link_libraries(chiaki-lib OpenSSL::Crypto)
if(CHIAKI_LIB_OPENSSL_EXTERNAL_PROJECT)
target_link_libraries(chiaki-lib OpenSSL_Crypto)
else()
find_package(OpenSSL REQUIRED)
target_link_libraries(chiaki-lib OpenSSL::Crypto)
endif()
target_link_libraries(chiaki-lib protobuf-nanopb-static)
target_link_libraries(chiaki-lib jerasure)
target_link_libraries(chiaki-lib ${Opus_LIBRARIES})
if(CHIAKI_LIB_ENABLE_OPUS)
target_link_libraries(chiaki-lib ${Opus_LIBRARIES})
endif()

View file

@ -18,7 +18,9 @@
#include <chiaki/audioreceiver.h>
#include <chiaki/session.h>
#ifdef CHIAKI_LIB_ENABLE_OPUS
#include <opus/opus.h>
#endif
#include <string.h>
@ -47,7 +49,9 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_audio_receiver_init(ChiakiAudioReceiver *au
CHIAKI_EXPORT void chiaki_audio_receiver_fini(ChiakiAudioReceiver *audio_receiver)
{
#ifdef CHIAKI_LIB_ENABLE_OPUS
opus_decoder_destroy(audio_receiver->opus_decoder);
#endif
chiaki_mutex_fini(&audio_receiver->mutex);
free(audio_receiver->pcm_buf);
}
@ -65,6 +69,7 @@ CHIAKI_EXPORT void chiaki_audio_receiver_stream_info(ChiakiAudioReceiver *audio_
CHIAKI_LOGI(audio_receiver->log, " unknown = %d", audio_header->unknown);
memcpy(&audio_receiver->audio_header, audio_header, sizeof(audio_receiver->audio_header));
#ifdef CHIAKI_LIB_ENABLE_OPUS
opus_decoder_destroy(audio_receiver->opus_decoder);
int error;
@ -97,6 +102,9 @@ CHIAKI_EXPORT void chiaki_audio_receiver_stream_info(ChiakiAudioReceiver *audio_
if(audio_receiver->session->audio_settings_cb)
audio_receiver->session->audio_settings_cb(audio_header->channels, audio_header->rate, audio_receiver->session->audio_cb_user);
#else
CHIAKI_LOGE(audio_receiver->log, "Opus disabled, not initializing decoder");
#endif
beach:
chiaki_mutex_unlock(&audio_receiver->mutex);
@ -160,6 +168,7 @@ CHIAKI_EXPORT void chiaki_audio_receiver_av_packet(ChiakiAudioReceiver *audio_re
static void chiaki_audio_receiver_frame(ChiakiAudioReceiver *audio_receiver, ChiakiSeqNum16 frame_index, uint8_t *buf, size_t buf_size)
{
#ifdef CHIAKI_LIB_ENABLE_OPUS
chiaki_mutex_lock(&audio_receiver->mutex);
if(!audio_receiver->opus_decoder)
@ -181,4 +190,5 @@ static void chiaki_audio_receiver_frame(ChiakiAudioReceiver *audio_receiver, Chi
beach:
chiaki_mutex_unlock(&audio_receiver->mutex);
#endif
}

View file

@ -72,7 +72,7 @@ CHIAKI_EXPORT void *chiaki_aligned_alloc(size_t alignment, size_t size)
{
#if defined(_WIN32)
return _aligned_malloc(size, alignment);
#elif __APPLE__
#elif __APPLE__ || __ANDROID__
void *r;
if(posix_memalign(&r, alignment, size) == 0)
return r;