static void S3_HLS_Upload_Queue_Item()

in S3_HLS_SDK.c [57:102]


static void S3_HLS_Upload_Queue_Item() {
    SDK_DEBUG("Ready For Upload!\n");
    int32_t ret = sem_wait(&s3_hls_put_send_sem);
	if(0 != ret) {
	    SDK_DEBUG("Error Semaphore impared! %d\n", ret);
	}
	
    S3_HLS_BUFFER_PART_CTX part_ctx;
    ret = S3_HLS_Get_Item_From_Queue(s3_hls_queue_ctx, &part_ctx);

	if(S3_HLS_OK != ret) {
	    SDK_DEBUG("Failed to get item from queue!\n");
	    return;
	}

    struct tm* time_tm = gmtime(&part_ctx.timestamp);
    
    if(0 >= sprintf(object_key_buffer, S3_HLS_TS_OBJECT_KEY_FORMAT, object_prefix ? object_prefix : S3_HLS_SDK_EMPTY_STRING, time_tm->tm_year + 1900, time_tm->tm_mon + 1, time_tm->tm_mday, time_tm->tm_hour, time_tm->tm_min, time_tm->tm_sec)) {
        SDK_DEBUG("Unkown Internal Error!\n");
        return;
    }

	SDK_DEBUG("Get Queue Info!\n");
	SDK_DEBUG("Queue Info: %p, %d, %p, %d\n", part_ctx.first_part_start, part_ctx.first_part_length, part_ctx.second_part_start, part_ctx.second_part_length);
	S3_HLS_Client_Upload_Buffer(s3_client, object_key_buffer, part_ctx.first_part_start, part_ctx.first_part_length, part_ctx.second_part_start, part_ctx.second_part_length);
	
	SDK_DEBUG("Upload Complete, Clear Queue Buffer!\n");
	
	if(S3_HLS_OK != S3_HLS_Release_Queue(s3_hls_queue_ctx)) {
        SDK_DEBUG("Release Queue Failed!\n");
	    return;
	}

    if(S3_HLS_OK != S3_HLS_Lock_Buffer(s3_hls_buffer_ctx)) {
        SDK_DEBUG("Get Buffer Lock Failed!\n");
        return;
    }
    
    SDK_DEBUG("Release Buffer!\n");
    S3_HLS_Clear_Buffer(s3_hls_buffer_ctx, &part_ctx);
    
    if(S3_HLS_OK != S3_HLS_Unlock_Buffer(s3_hls_buffer_ctx)) {
        SDK_DEBUG("Get Buffer Unlock Failed!\n");
        return;
    }
}