|
|
|
@ -735,15 +735,13 @@ static const char *janus_videoroom_configure(struct websocket_message *wm, struc |
|
|
|
json_builder_set_member_name(builder, "configured"); |
|
|
|
json_builder_add_string_value(builder, "ok"); |
|
|
|
|
|
|
|
json_builder_set_member_name(builder, "streams"); |
|
|
|
json_builder_begin_array(builder); |
|
|
|
|
|
|
|
const char *a_codec = NULL, *v_codec = NULL; |
|
|
|
|
|
|
|
for (GList *l = ml->medias.head; l; l = l->next) { |
|
|
|
struct call_media *media = l->data; |
|
|
|
const char *ent = NULL; |
|
|
|
if (media->type_id == MT_AUDIO) |
|
|
|
ent = "audio_codec"; |
|
|
|
else if (media->type_id == MT_VIDEO) |
|
|
|
ent = "video_codec"; |
|
|
|
else |
|
|
|
continue; |
|
|
|
|
|
|
|
const char *codec = NULL; |
|
|
|
for (GList *k = media->codecs.codec_prefs.head; k; k = k->next) { |
|
|
|
@ -752,13 +750,46 @@ static const char *janus_videoroom_configure(struct websocket_message *wm, struc |
|
|
|
// XXX check codec support? |
|
|
|
break; |
|
|
|
} |
|
|
|
if (!codec) |
|
|
|
continue; |
|
|
|
|
|
|
|
json_builder_set_member_name(builder, ent); |
|
|
|
json_builder_add_string_value(builder, codec); |
|
|
|
json_builder_begin_object(builder); |
|
|
|
|
|
|
|
json_builder_set_member_name(builder, "type"); |
|
|
|
json_builder_add_string_value(builder, media->type.s); |
|
|
|
json_builder_set_member_name(builder, "mindex"); |
|
|
|
json_builder_add_int_value(builder, media->index - 1); |
|
|
|
json_builder_set_member_name(builder, "mid"); |
|
|
|
if (media->media_id.s) |
|
|
|
json_builder_add_string_value(builder, media->media_id.s); |
|
|
|
else |
|
|
|
json_builder_add_null_value(builder); |
|
|
|
json_builder_set_member_name(builder, "codec"); |
|
|
|
if (codec) |
|
|
|
json_builder_add_string_value(builder, codec); |
|
|
|
else |
|
|
|
json_builder_add_null_value(builder); |
|
|
|
|
|
|
|
json_builder_end_object(builder); |
|
|
|
|
|
|
|
if (media->type_id == MT_AUDIO) |
|
|
|
a_codec = codec; |
|
|
|
else if (media->type_id == MT_VIDEO) |
|
|
|
v_codec = codec; |
|
|
|
} |
|
|
|
|
|
|
|
json_builder_end_array(builder); |
|
|
|
|
|
|
|
json_builder_set_member_name(builder, "audio_codec"); |
|
|
|
if (a_codec) |
|
|
|
json_builder_add_string_value(builder, a_codec); |
|
|
|
else |
|
|
|
json_builder_add_null_value(builder); |
|
|
|
|
|
|
|
json_builder_set_member_name(builder, "video_codec"); |
|
|
|
if (v_codec) |
|
|
|
json_builder_add_string_value(builder, v_codec); |
|
|
|
else |
|
|
|
json_builder_add_null_value(builder); |
|
|
|
|
|
|
|
janus_notify_publishers(wm, room_id, handle->id); |
|
|
|
} |
|
|
|
|
|
|
|
|