Skip to content

Commit 88fbb6c

Browse files
authored
Fix compiler warnings (#37)
* Use const for event payloads * Remove const qualifier * Add const qualifiers in engine * Use safe string copy * Use explicit casting * Add compiler flag
1 parent f3a27c7 commit 88fbb6c

File tree

10 files changed

+67
-65
lines changed

10 files changed

+67
-65
lines changed

components/livekit/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,6 @@ idf_component_register(
1717
)
1818

1919
idf_component_get_property(LIVEKIT_SDK_VERSION ${COMPONENT_NAME} COMPONENT_VERSION)
20-
target_compile_definitions(${COMPONENT_LIB} PUBLIC "LIVEKIT_SDK_VERSION=\"${LIVEKIT_SDK_VERSION}\"")
20+
target_compile_definitions(${COMPONENT_LIB} PUBLIC "LIVEKIT_SDK_VERSION=\"${LIVEKIT_SDK_VERSION}\"")
21+
22+
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wconversion")

components/livekit/core/engine.c

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ typedef struct {
7676

7777
/// Detail for `EV_PEER_SDP`.
7878
struct {
79-
const char *sdp;
79+
char *sdp;
8080
peer_role_t role;
8181
} peer_sdp;
8282

@@ -163,7 +163,7 @@ static engine_err_t subscribe_tracks(engine_t *eng, livekit_pb_track_info_t *tra
163163
// For now, subscribe to the first audio track.
164164
ESP_LOGI(TAG, "Subscribing to audio track: sid=%s", track->sid);
165165
signal_send_update_subscription(eng->signal_handle, track->sid, true);
166-
strncpy(eng->session.sub_audio_track_sid, track->sid, sizeof(eng->session.sub_audio_track_sid));
166+
strlcpy(eng->session.sub_audio_track_sid, track->sid, sizeof(eng->session.sub_audio_track_sid));
167167
break;
168168
}
169169
return ENGINE_ERR_NONE;
@@ -190,7 +190,7 @@ static void on_peer_sub_audio_frame(esp_peer_audio_frame_t* frame, void *ctx)
190190
av_render_audio_data_t audio_data = {
191191
.pts = frame->pts,
192192
.data = frame->data,
193-
.size = frame->size,
193+
.size = (uint32_t)frame->size,
194194
};
195195
av_render_add_audio_data(eng->renderer_handle, &audio_data);
196196
}
@@ -320,8 +320,8 @@ static engine_err_t send_add_video_track(engine_t *eng)
320320
{
321321
livekit_pb_video_layer_t video_layer = {
322322
.quality = LIVEKIT_PB_VIDEO_QUALITY_HIGH,
323-
.width = eng->options.media.video_info.width,
324-
.height = eng->options.media.video_info.height
323+
.width = (uint32_t)eng->options.media.video_info.width,
324+
.height = (uint32_t)eng->options.media.video_info.height
325325
};
326326
livekit_pb_add_track_request_t req = {
327327
.cid = "v0",
@@ -473,20 +473,20 @@ static void destroy_peer_connections(engine_t *eng)
473473
/// - Strings are not copied, so the caller must ensure the original ICE
474474
/// server list stays alive until the peers are created.
475475
///
476-
static inline size_t map_ice_servers(
477-
livekit_pb_ice_server_t *pb_servers_list,
478-
int pb_servers_count,
476+
static inline uint8_t map_ice_servers(
477+
const livekit_pb_ice_server_t *pb_servers_list,
478+
pb_size_t pb_servers_count,
479479
esp_peer_ice_server_cfg_t *server_list,
480-
size_t server_list_capacity
480+
uint8_t server_list_capacity
481481
) {
482482
if (pb_servers_list == NULL ||
483483
server_list == NULL ||
484484
server_list_capacity == 0) {
485485
return 0;
486486
}
487-
size_t count = 0;
488-
for (int i = 0; i < pb_servers_count; i++) {
489-
for (int j = 0; j < pb_servers_list[i].urls_count; j++) {
487+
uint8_t count = 0;
488+
for (pb_size_t i = 0; i < pb_servers_count; i++) {
489+
for (pb_size_t j = 0; j < pb_servers_list[i].urls_count; j++) {
490490
if (count >= server_list_capacity) {
491491
ESP_LOGW(TAG, "ICE server list capacity exceeded");
492492
return count;
@@ -500,10 +500,10 @@ static inline size_t map_ice_servers(
500500
return count;
501501
}
502502

503-
static bool establish_peer_connections(engine_t *eng, livekit_pb_join_response_t *join)
503+
static bool establish_peer_connections(engine_t *eng, const livekit_pb_join_response_t *join)
504504
{
505505
esp_peer_ice_server_cfg_t server_list[CONFIG_LK_MAX_ICE_SERVERS];
506-
int server_count = map_ice_servers(
506+
uint8_t server_count = map_ice_servers(
507507
join->ice_servers,
508508
join->ice_servers_count,
509509
server_list,
@@ -671,13 +671,13 @@ static inline void timer_stop(engine_t *eng)
671671
xTimerStop(eng->timer, 0);
672672
}
673673

674-
static bool handle_join(engine_t *eng, livekit_pb_join_response_t *join)
674+
static bool handle_join(engine_t *eng, const livekit_pb_join_response_t *join)
675675
{
676676
// 1. Store connection settings
677677
eng->session.is_subscriber_primary = join->subscriber_primary;
678678

679679
// 2. Store local Participant SID
680-
strncpy(
680+
strlcpy(
681681
eng->session.local_participant_sid,
682682
join->participant.sid,
683683
sizeof(eng->session.local_participant_sid)
@@ -704,7 +704,7 @@ static bool handle_join(engine_t *eng, livekit_pb_join_response_t *join)
704704
return true;
705705
}
706706

707-
static void handle_trickle(engine_t *eng, livekit_pb_trickle_request_t *trickle)
707+
static void handle_trickle(engine_t *eng, const livekit_pb_trickle_request_t *trickle)
708708
{
709709
char* candidate = NULL;
710710
if (!protocol_signal_trickle_get_candidate(trickle, &candidate)) {
@@ -716,18 +716,18 @@ static void handle_trickle(engine_t *eng, livekit_pb_trickle_request_t *trickle)
716716
free(candidate);
717717
}
718718

719-
static void handle_room_update(engine_t *eng, livekit_pb_room_update_t *room_update)
719+
static void handle_room_update(engine_t *eng, const livekit_pb_room_update_t *room_update)
720720
{
721721
if (eng->options.on_room_info && room_update->has_room) {
722722
eng->options.on_room_info(&room_update->room, eng->options.ctx);
723723
}
724724
}
725725

726-
static void handle_participant_update(engine_t *eng, livekit_pb_participant_update_t *update)
726+
static void handle_participant_update(engine_t *eng, const livekit_pb_participant_update_t *update)
727727
{
728728
bool found_local = false;
729729
for (pb_size_t i = 0; i < update->participants_count; i++) {
730-
livekit_pb_participant_info_t *participant = &update->participants[i];
730+
const livekit_pb_participant_info_t *participant = &update->participants[i];
731731
bool is_local = !found_local && strncmp(
732732
participant->sid,
733733
eng->session.local_participant_sid,
@@ -794,37 +794,37 @@ static bool handle_state_connecting(engine_t *eng, const engine_event_t *ev)
794794
ESP_LOGW(TAG, "Engine already connecting, ignoring connect command");
795795
break;
796796
case EV_SIG_RES:
797-
livekit_pb_signal_response_t *res = &ev->detail.res;
797+
const livekit_pb_signal_response_t *res = &ev->detail.res;
798798
switch (res->which_message) {
799799
case LIVEKIT_PB_SIGNAL_RESPONSE_LEAVE_TAG:
800-
livekit_pb_leave_request_t *leave = &res->message.leave;
800+
const livekit_pb_leave_request_t *leave = &res->message.leave;
801801
eng->failure_reason = map_disconnect_reason(leave->reason);
802802
eng->state = ENGINE_STATE_DISCONNECTED;
803803
break;
804804
case LIVEKIT_PB_SIGNAL_RESPONSE_ROOM_UPDATE_TAG:
805-
livekit_pb_room_update_t *room_update = &res->message.room_update;
805+
const livekit_pb_room_update_t *room_update = &res->message.room_update;
806806
handle_room_update(eng, room_update);
807807
break;
808808
case LIVEKIT_PB_SIGNAL_RESPONSE_UPDATE_TAG:
809-
livekit_pb_participant_update_t *update = &res->message.update;
809+
const livekit_pb_participant_update_t *update = &res->message.update;
810810
handle_participant_update(eng, update);
811811
break;
812812
case LIVEKIT_PB_SIGNAL_RESPONSE_JOIN_TAG:
813-
livekit_pb_join_response_t *join = &res->message.join;
813+
const livekit_pb_join_response_t *join = &res->message.join;
814814
if (!handle_join(eng, join)) {
815815
eng->state = ENGINE_STATE_BACKOFF;
816816
}
817817
break;
818818
case LIVEKIT_PB_SIGNAL_RESPONSE_ANSWER_TAG:
819-
livekit_pb_session_description_t *answer = &res->message.answer;
819+
const livekit_pb_session_description_t *answer = &res->message.answer;
820820
peer_handle_sdp(eng->pub_peer_handle, answer->sdp);
821821
break;
822822
case LIVEKIT_PB_SIGNAL_RESPONSE_OFFER_TAG:
823-
livekit_pb_session_description_t *offer = &res->message.offer;
823+
const livekit_pb_session_description_t *offer = &res->message.offer;
824824
peer_handle_sdp(eng->sub_peer_handle, offer->sdp);
825825
break;
826826
case LIVEKIT_PB_SIGNAL_RESPONSE_TRICKLE_TAG:
827-
livekit_pb_trickle_request_t *trickle = &res->message.trickle;
827+
const livekit_pb_trickle_request_t *trickle = &res->message.trickle;
828828
handle_trickle(eng, trickle);
829829
break;
830830
default:
@@ -896,31 +896,31 @@ static bool handle_state_connected(engine_t *eng, const engine_event_t *ev)
896896
ESP_LOGW(TAG, "Engine already connected, ignoring connect command");
897897
break;
898898
case EV_SIG_RES:
899-
livekit_pb_signal_response_t *res = &ev->detail.res;
900-
switch (ev->detail.res.which_message) {
899+
const livekit_pb_signal_response_t *res = &ev->detail.res;
900+
switch (res->which_message) {
901901
case LIVEKIT_PB_SIGNAL_RESPONSE_LEAVE_TAG:
902-
livekit_pb_leave_request_t *leave = &res->message.leave;
902+
const livekit_pb_leave_request_t *leave = &res->message.leave;
903903
eng->failure_reason = map_disconnect_reason(leave->reason);
904904
eng->state = ENGINE_STATE_DISCONNECTED;
905905
break;
906906
case LIVEKIT_PB_SIGNAL_RESPONSE_ROOM_UPDATE_TAG:
907-
livekit_pb_room_update_t *room_update = &res->message.room_update;
907+
const livekit_pb_room_update_t *room_update = &res->message.room_update;
908908
handle_room_update(eng, room_update);
909909
break;
910910
case LIVEKIT_PB_SIGNAL_RESPONSE_UPDATE_TAG:
911-
livekit_pb_participant_update_t *update = &res->message.update;
911+
const livekit_pb_participant_update_t *update = &res->message.update;
912912
handle_participant_update(eng, update);
913913
break;
914914
case LIVEKIT_PB_SIGNAL_RESPONSE_ANSWER_TAG:
915-
livekit_pb_session_description_t *answer = &res->message.answer;
915+
const livekit_pb_session_description_t *answer = &res->message.answer;
916916
peer_handle_sdp(eng->pub_peer_handle, answer->sdp);
917917
break;
918918
case LIVEKIT_PB_SIGNAL_RESPONSE_OFFER_TAG:
919-
livekit_pb_session_description_t *offer = &res->message.offer;
919+
const livekit_pb_session_description_t *offer = &res->message.offer;
920920
peer_handle_sdp(eng->sub_peer_handle, offer->sdp);
921921
break;
922922
case LIVEKIT_PB_SIGNAL_RESPONSE_TRICKLE_TAG:
923-
livekit_pb_trickle_request_t *trickle = &res->message.trickle;
923+
const livekit_pb_trickle_request_t *trickle = &res->message.trickle;
924924
handle_trickle(eng, trickle);
925925
break;
926926
default:
@@ -1127,9 +1127,9 @@ engine_handle_t engine_init(const engine_options_t *options)
11271127
},
11281128
.video_info = {
11291129
.format_id = capture_video_codec_type(eng->options.media.video_info.codec),
1130-
.width = eng->options.media.video_info.width,
1131-
.height = eng->options.media.video_info.height,
1132-
.fps = eng->options.media.video_info.fps,
1130+
.width = (uint16_t)eng->options.media.video_info.width,
1131+
.height = (uint16_t)eng->options.media.video_info.height,
1132+
.fps = (uint8_t)eng->options.media.video_info.fps,
11331133
},
11341134
};
11351135
if (options->media.audio_info.codec != ESP_PEER_AUDIO_CODEC_NONE) {

components/livekit/core/livekit.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ static void on_eng_room_info(const livekit_pb_room_t* info, void *ctx)
147147
if (room->options.on_room_info == NULL) {
148148
return;
149149
}
150-
livekit_room_info_t room_info = {
150+
const livekit_room_info_t room_info = {
151151
.sid = info->sid,
152152
.name = info->name,
153153
.metadata = info->metadata,
@@ -163,7 +163,7 @@ static void on_eng_participant_info(const livekit_pb_participant_info_t* info, b
163163
if (room->options.on_participant_info == NULL) {
164164
return;
165165
}
166-
livekit_participant_info_t participant_info = {
166+
const livekit_participant_info_t participant_info = {
167167
.sid = info->sid,
168168
.identity = info->identity,
169169
.name = info->name,
@@ -358,7 +358,7 @@ livekit_err_t livekit_room_publish_data(livekit_room_handle_t handle, livekit_da
358358
if (bytes_array == NULL) {
359359
return LIVEKIT_ERR_NO_MEM;
360360
}
361-
bytes_array->size = options->payload->size;
361+
bytes_array->size = (pb_size_t)options->payload->size;
362362
memcpy(bytes_array->bytes, options->payload->bytes, options->payload->size);
363363

364364
livekit_pb_user_packet_t user_packet = {
@@ -369,7 +369,7 @@ livekit_err_t livekit_room_publish_data(livekit_room_handle_t handle, livekit_da
369369
packet.which_value = LIVEKIT_PB_DATA_PACKET_USER_TAG;
370370
packet.value.user = user_packet;
371371

372-
packet.destination_identities_count = options->destination_identities_count;
372+
packet.destination_identities_count = (pb_size_t)options->destination_identities_count;
373373
packet.destination_identities = options->destination_identities;
374374
// TODO: Set sender identity
375375

components/livekit/core/peer.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ static int on_data(esp_peer_data_frame_t *frame, void *ctx)
238238
}
239239

240240
livekit_pb_data_packet_t packet = {};
241-
if (!protocol_data_packet_decode((const uint8_t *)frame->data, frame->size, &packet)) {
241+
if (!protocol_data_packet_decode((const uint8_t *)frame->data, (size_t)frame->size, &packet)) {
242242
ESP_LOGE(TAG(peer), "Failed to decode data packet");
243243
return -1;
244244
}
@@ -408,7 +408,7 @@ peer_err_t peer_handle_sdp(peer_handle_t handle, const char *sdp)
408408
esp_peer_msg_t msg = {
409409
.type = ESP_PEER_MSG_TYPE_SDP,
410410
.data = (void *)sdp,
411-
.size = strlen(sdp)
411+
.size = (int)strlen(sdp)
412412
};
413413
if (esp_peer_send_msg(peer->connection, &msg) != ESP_PEER_ERR_NONE) {
414414
ESP_LOGE(TAG(peer), "Failed to handle answer");
@@ -427,7 +427,7 @@ peer_err_t peer_handle_ice_candidate(peer_handle_t handle, const char *candidate
427427
esp_peer_msg_t msg = {
428428
.type = ESP_PEER_MSG_TYPE_CANDIDATE,
429429
.data = (void *)candidate,
430-
.size = strlen(candidate)
430+
.size = (int)strlen(candidate)
431431
};
432432
if (esp_peer_send_msg(peer->connection, &msg) != ESP_PEER_ERR_NONE) {
433433
ESP_LOGE(TAG(peer), "Failed to handle ICE candidate");
@@ -469,7 +469,7 @@ peer_err_t peer_send_data_packet(peer_handle_t handle, const livekit_pb_data_pac
469469
break;
470470
}
471471
frame_info.data = enc_buf;
472-
frame_info.size = encoded_size;
472+
frame_info.size = (int)encoded_size;
473473
if (esp_peer_send_data(peer->connection, &frame_info) != ESP_PEER_ERR_NONE) {
474474
ESP_LOGE(TAG(peer), "Data channel send failed");
475475
ret = PEER_ERR_RTC;

components/livekit/core/peer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ typedef struct {
4848
esp_peer_ice_server_cfg_t* server_list;
4949

5050
/// Number of servers in the list.
51-
int server_count;
51+
uint8_t server_count;
5252

5353
/// Weather to force the use of relay ICE candidates.
5454
bool force_relay;

components/livekit/core/rpc_manager.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ static bool on_result(const livekit_rpc_result_t* result, void* ctx)
5050
livekit_pb_data_packet_t res_packet = {
5151
.which_value = LIVEKIT_PB_DATA_PACKET_RPC_RESPONSE_TAG
5252
};
53-
strncpy(res_packet.value.rpc_response.request_id,
53+
strlcpy(res_packet.value.rpc_response.request_id,
5454
result->id,
5555
sizeof(res_packet.value.rpc_response.request_id));
5656

@@ -79,7 +79,7 @@ static rpc_manager_err_t handle_request_packet(rpc_manager_t *manager, const liv
7979
livekit_pb_data_packet_t ack_packet = {
8080
.which_value = LIVEKIT_PB_DATA_PACKET_RPC_ACK_TAG
8181
};
82-
strncpy(ack_packet.value.rpc_ack.request_id,
82+
strlcpy(ack_packet.value.rpc_ack.request_id,
8383
request->id,
8484
sizeof(ack_packet.value.rpc_ack.request_id));
8585

@@ -98,7 +98,7 @@ static rpc_manager_err_t handle_request_packet(rpc_manager_t *manager, const liv
9898
}
9999
}
100100
};
101-
strncpy(res_packet.value.rpc_response.request_id,
101+
strlcpy(res_packet.value.rpc_response.request_id,
102102
request->id,
103103
sizeof(res_packet.value.rpc_response.request_id));
104104

@@ -120,7 +120,7 @@ static rpc_manager_err_t handle_request_packet(rpc_manager_t *manager, const liv
120120
}
121121
}
122122
};
123-
strncpy(res_packet.value.rpc_response.request_id,
123+
strlcpy(res_packet.value.rpc_response.request_id,
124124
request->id,
125125
sizeof(res_packet.value.rpc_response.request_id));
126126

components/livekit/core/signaling.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ static signal_err_t send_request(signal_t *sg, livekit_pb_signal_request_t *requ
8686
}
8787
if (esp_websocket_client_send_bin(sg->ws,
8888
(const char *)enc_buf,
89-
encoded_size,
89+
(int)encoded_size,
9090
portMAX_DELAY) < 0) {
9191
//ESP_LOGE(TAG, "Failed to send request");
9292
ret = SIGNAL_ERR_MESSAGE;
@@ -195,7 +195,7 @@ static void on_ws_event(void *ctx, esp_event_base_t base, int32_t event_id, void
195195
}
196196
if (data->data_len < 1) break;
197197
livekit_pb_signal_response_t res = {};
198-
if (!protocol_signal_response_decode((const uint8_t *)data->data_ptr, data->data_len, &res)) {
198+
if (!protocol_signal_response_decode((const uint8_t *)data->data_ptr, (size_t)data->data_len, &res)) {
199199
break;
200200
}
201201
if (res.which_message == 0) {

components/livekit/core/system.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ static void capture_scheduler(const char *name, esp_capture_thread_schedule_cfg_
7878
cfg->stack_in_ext = true;
7979
cfg->stack_size = media_lib_cfg.stack_size;
8080
cfg->priority = media_lib_cfg.priority;
81-
cfg->core_id = media_lib_cfg.core_id;
81+
cfg->core_id = (uint8_t)(media_lib_cfg.core_id & 0x0F);
8282
}
8383

8484
// MARK: - Public API

0 commit comments

Comments
 (0)