in S3_HLS_SDK.c [154:215]
int32_t S3_HLS_SDK_Initialize(uint32_t buffer_size, char* region, char* bucket, char* prefix, char* endpint) {
SDK_DEBUG("SDK Init!\n");
CURLcode res = curl_global_init(CURL_GLOBAL_DEFAULT);
/* Check for errors */
if(res != CURLE_OK) {
SDK_DEBUG("CURL Init Failed!\n");
goto l_cleanup_curl;
}
if(0 !=sem_init(&s3_hls_put_send_sem, 0 ,0)) {
SDK_DEBUG("Semaphore Init Failed!\n");
goto l_cleanup_curl;
}
SDK_DEBUG("SDK Buffer Init!\n");
s3_hls_buffer_ctx = S3_HLS_Initialize_Buffer(buffer_size, S3_HLS_Add_Buffer_To_Queue);
if(NULL == s3_hls_buffer_ctx) {
SDK_DEBUG("Buffer Init Failed!\n");
goto l_cleanup_curl;
}
SDK_DEBUG("SDK S3 Client Init!\n");
// initialize S3 upload process
s3_client = S3_HLS_Client_Initialize(region, bucket, endpint);
if(NULL == s3_client) {
SDK_DEBUG("S3 Client Init Failed!\n");
goto l_finalize_buffer;
}
SDK_DEBUG("Upload Thread Init!\n");
s3_hls_worker_thread = S3_HLS_Upload_Thread_Initialize(S3_HLS_Upload_Queue_Item);
if(NULL == s3_hls_worker_thread) {
SDK_DEBUG("Upload Thread Init Failed!\n");
goto l_finalize_client;
}
s3_hls_queue_ctx = S3_HLS_Initialize_Queue();
if(NULL == s3_hls_queue_ctx) {
SDK_DEBUG("Upload Queue Init Failed!\n");
goto l_finalize_client;
}
object_prefix = prefix;
SDK_DEBUG("SDK Init Finished!\n");
return S3_HLS_OK;
l_finalize_client:
S3_HLS_Client_Finalize(s3_client);
s3_client = NULL;
l_finalize_buffer:
S3_HLS_Finalize_Buffer(s3_hls_buffer_ctx);
s3_hls_buffer_ctx = NULL;
l_cleanup_curl:
curl_global_cleanup();
return S3_HLS_UNKNOWN_INTERNAL_ERROR;
}