int main() { GMainContext *ctx = g_main_context_default(); GMainLoop *loop = g_main_loop_new(ctx, FALSE); owr_init_with_main_context(ctx); owr_get_capture_sources(OWR_MEDIA_TYPE_AUDIO|OWR_MEDIA_TYPE_VIDEO, got_sources, NULL); g_main_loop_run(loop); return 0; }
int main() { GMainContext *ctx = g_main_context_default(); GMainLoop *loop = g_main_loop_new(ctx, FALSE); /* PREPARE FOR RECEIVING */ OwrPayload *receive_payload; owr_init_with_main_context(ctx); recv_transport_agent = owr_transport_agent_new(FALSE); g_assert(OWR_IS_TRANSPORT_AGENT(recv_transport_agent)); owr_transport_agent_set_local_port_range(recv_transport_agent, 5000, 5999); owr_transport_agent_add_local_address(recv_transport_agent, "127.0.0.1"); // SEND send_transport_agent = owr_transport_agent_new(TRUE); g_assert(OWR_IS_TRANSPORT_AGENT(send_transport_agent)); owr_transport_agent_set_local_port_range(send_transport_agent, 5000, 5999); owr_transport_agent_add_local_address(send_transport_agent, "127.0.0.1"); recv_session_audio = owr_media_session_new(FALSE); recv_session_video = owr_media_session_new(FALSE); send_session_audio = owr_media_session_new(TRUE); send_session_video = owr_media_session_new(TRUE); g_signal_connect(recv_session_audio, "on-new-candidate", G_CALLBACK(got_candidate), send_session_audio); g_signal_connect(recv_session_video, "on-new-candidate", G_CALLBACK(got_candidate), send_session_video); g_signal_connect(send_session_audio, "on-new-candidate", G_CALLBACK(got_candidate), recv_session_audio); g_signal_connect(send_session_video, "on-new-candidate", G_CALLBACK(got_candidate), recv_session_video); // VIDEO g_signal_connect(recv_session_video, "on-incoming-source", G_CALLBACK(got_remote_source), NULL); receive_payload = owr_video_payload_new(OWR_CODEC_TYPE_VP8, 103, 90000, TRUE, FALSE); g_object_set(receive_payload, "rtx-payload-type", 123, NULL); owr_media_session_add_receive_payload(recv_session_video, receive_payload); g_object_unref(receive_payload); owr_transport_agent_add_session(recv_transport_agent, OWR_SESSION(recv_session_video)); // AUDIO g_signal_connect(recv_session_audio, "on-incoming-source", G_CALLBACK(got_remote_source), NULL); receive_payload = owr_audio_payload_new(OWR_CODEC_TYPE_OPUS, 100, 48000, 1); owr_media_session_add_receive_payload(recv_session_audio, receive_payload); g_object_unref(receive_payload); owr_transport_agent_add_session(recv_transport_agent, OWR_SESSION(recv_session_audio)); /* PREPARE FOR SENDING */ owr_get_capture_sources(OWR_MEDIA_TYPE_AUDIO|OWR_MEDIA_TYPE_VIDEO, got_sources, NULL); g_timeout_add_seconds(5, (GSourceFunc)dump_cb, NULL); g_main_loop_run(loop); return 0; }