diff --git a/janus/src/acap.c b/janus/src/acap.c index 5a9a8e7..aead54e 100644 --- a/janus/src/acap.c +++ b/janus/src/acap.c @@ -60,14 +60,14 @@ us_acap_s *us_acap_init(const char *name, uint pcm_hz) { { if ((err = snd_pcm_open(&acap->dev, name, SND_PCM_STREAM_CAPTURE, 0)) < 0) { acap->dev = NULL; - US_JLOG_PERROR_ALSA(err, "acap", "Can't open PCM capture"); + US_LOG_PERROR_ALSA(err, "Can't open PCM capture"); goto error; } assert(!snd_pcm_hw_params_malloc(&acap->dev_params)); # define SET_PARAM(_msg, _func, ...) { \ if ((err = _func(acap->dev, acap->dev_params, ##__VA_ARGS__)) < 0) { \ - US_JLOG_PERROR_ALSA(err, "acap", _msg); \ + US_LOG_PERROR_ALSA(err, _msg); \ goto error; \ } \ } @@ -78,7 +78,7 @@ us_acap_s *us_acap_init(const char *name, uint pcm_hz) { SET_PARAM("Can't set PCM sampling format", snd_pcm_hw_params_set_format, SND_PCM_FORMAT_S16_LE); SET_PARAM("Can't set PCM sampling rate", snd_pcm_hw_params_set_rate_near, &acap->pcm_hz, 0); if (acap->pcm_hz < US_AU_MIN_PCM_HZ || acap->pcm_hz > US_AU_MAX_PCM_HZ) { - US_JLOG_ERROR("acap", "Unsupported PCM freq: %u; should be: %u <= F <= %u", + US_LOG_ERROR("Unsupported PCM freq: %u; should be: %u <= F <= %u", acap->pcm_hz, US_AU_MIN_PCM_HZ, US_AU_MAX_PCM_HZ); goto error; } @@ -93,7 +93,7 @@ us_acap_s *us_acap_init(const char *name, uint pcm_hz) { acap->res = speex_resampler_init(US_RTP_OPUS_CH, acap->pcm_hz, US_RTP_OPUS_HZ, SPEEX_RESAMPLER_QUALITY_DESKTOP, &err); if (err < 0) { acap->res = NULL; - US_JLOG_PERROR_RES(err, "acap", "Can't create resampler"); + US_LOG_PERROR_RES(err, "Can't create resampler"); goto error; } } @@ -110,7 +110,7 @@ us_acap_s *us_acap_init(const char *name, uint pcm_hz) { // OPUS_SET_INBAND_FEC(1), OPUS_SET_PACKET_LOSS_PERC(10): see rtpa.c } - US_JLOG_INFO("acap", "Capture configured on %uHz; capturing ...", acap->pcm_hz); + US_LOG_INFO("Capture configured on %uHz; capturing ...", acap->pcm_hz); acap->tids_created = true; US_THREAD_CREATE(acap->enc_tid, _encoder_thread, acap); US_THREAD_CREATE(acap->pcm_tid, _pcm_thread, acap); @@ -135,7 +135,7 @@ void us_acap_destroy(us_acap_s *acap) { US_RING_DELETE_WITH_ITEMS(acap->enc_ring, us_au_encoded_destroy); US_RING_DELETE_WITH_ITEMS(acap->pcm_ring, us_au_pcm_destroy); if (acap->tids_created) { - US_JLOG_INFO("acap", "Capture closed"); + US_LOG_INFO("Capture closed"); } free(acap); } @@ -161,7 +161,7 @@ int us_acap_get_encoded(us_acap_s *acap, u8 *data, uz *size, u64 *pts) { } static void *_pcm_thread(void *v_acap) { - US_THREAD_SETTLE("us_ac_pcm"); + US_THREAD_SETTLE("us_acap_pcm"); us_acap_s *const acap = v_acap; u8 in[US_AU_MAX_BUF8]; @@ -169,10 +169,10 @@ static void *_pcm_thread(void *v_acap) { while (!atomic_load(&acap->stop)) { const int frames = snd_pcm_readi(acap->dev, in, acap->pcm_frames); if (frames < 0) { - US_JLOG_PERROR_ALSA(frames, "acap", "Fatal: Can't capture PCM frames"); + US_LOG_PERROR_ALSA(frames, "Fatal: Can't capture PCM frames"); break; } else if (frames < (int)acap->pcm_frames) { - US_JLOG_ERROR("acap", "Fatal: Too few PCM frames captured"); + US_LOG_ERROR("Fatal: Too few PCM frames captured"); break; } @@ -182,7 +182,7 @@ static void *_pcm_thread(void *v_acap) { memcpy(out->data, in, acap->pcm_size); us_ring_producer_release(acap->pcm_ring, ri); } else { - US_JLOG_ERROR("acap", "PCM ring is full"); + US_LOG_ERROR("PCM ring is full"); } } @@ -191,7 +191,7 @@ static void *_pcm_thread(void *v_acap) { } static void *_encoder_thread(void *v_acap) { - US_THREAD_SETTLE("us_ac_enc"); + US_THREAD_SETTLE("us_acap_enc"); us_acap_s *const acap = v_acap; s16 in_res[US_AU_MAX_BUF16]; @@ -217,7 +217,7 @@ static void *_encoder_thread(void *v_acap) { const int out_ri = us_ring_producer_acquire(acap->enc_ring, 0); if (out_ri < 0) { - US_JLOG_ERROR("acap", "OPUS encoder queue is full"); + US_LOG_ERROR("OPUS encoder queue is full"); us_ring_consumer_release(acap->pcm_ring, in_ri); continue; } @@ -233,7 +233,7 @@ static void *_encoder_thread(void *v_acap) { acap->pts += US_AU_HZ_TO_FRAMES(US_RTP_OPUS_HZ); } else { out->used = 0; - US_JLOG_PERROR_OPUS(size, "acap", "Fatal: Can't encode PCM frame to OPUS"); + US_LOG_PERROR_OPUS(size, "Fatal: Can't encode PCM frame to OPUS"); } us_ring_producer_release(acap->enc_ring, out_ri); } diff --git a/janus/src/client.c b/janus/src/client.c index c0706a0..7e93df6 100644 --- a/janus/src/client.c +++ b/janus/src/client.c @@ -102,7 +102,7 @@ void us_janus_client_send(us_janus_client_s *client, const us_rtp_s *rtp) { us_ring_s *const ring = (rtp->video ? client->video_ring : client->acap_ring); const int ri = us_ring_producer_acquire(ring, 0); if (ri < 0) { - US_JLOG_ERROR("client", "Session %p %s ring is full", + US_LOG_ERROR("Session %p %s ring is full", client->session, (rtp->video ? "video" : "acap")); return; } @@ -142,7 +142,7 @@ void us_janus_client_recv(us_janus_client_s *client, janus_plugin_rtp *packet) { us_ring_s *const ring = client->aplay_enc_ring; const int ri = us_ring_producer_acquire(ring, 0); if (ri < 0) { - // US_JLOG_ERROR("client", "Session %p aplay ring is full", client->session); + // US_LOG_ERROR("Session %p aplay ring is full", client->session); return; } us_au_encoded_s *enc = ring->items[ri]; @@ -157,12 +157,12 @@ void us_janus_client_recv(us_janus_client_s *client, janus_plugin_rtp *packet) { } static void *_video_thread(void *v_client) { - US_THREAD_SETTLE("us_cx_vid"); + US_THREAD_SETTLE("us_cx_vcap"); return _video_or_acap_thread(v_client, true); } static void *_acap_thread(void *v_client) { - US_THREAD_SETTLE("us_cx_ac"); + US_THREAD_SETTLE("us_cx_acap"); return _video_or_acap_thread(v_client, false); } @@ -236,7 +236,7 @@ static void *_video_or_acap_thread(void *v_client, bool video) { } static void *_aplay_thread(void *v_client) { - US_THREAD_SETTLE("us_cx_ap"); + US_THREAD_SETTLE("us_cx_aplay"); us_janus_client_s *const client = v_client; @@ -258,7 +258,7 @@ static void *_aplay_thread(void *v_client) { const int out_ri = us_ring_producer_acquire(client->aplay_pcm_ring, 0); if (out_ri < 0) { - US_JLOG_ERROR("aplay", "OPUS decoder queue is full"); + US_LOG_ERROR("OPUS decoder queue is full"); us_ring_consumer_release(client->aplay_enc_ring, in_ri); continue; } @@ -271,7 +271,7 @@ static void *_aplay_thread(void *v_client) { out->frames = frames; } else { out->frames = 0; - US_JLOG_PERROR_OPUS(frames, "aplay", "Fatal: Can't decode OPUS to PCM frame"); + US_LOG_PERROR_OPUS(frames, "Fatal: Can't decode OPUS to PCM frame"); } us_ring_producer_release(client->aplay_pcm_ring, out_ri); } diff --git a/janus/src/config.c b/janus/src/config.c index c1813a0..b2adce2 100644 --- a/janus/src/config.c +++ b/janus/src/config.c @@ -48,24 +48,24 @@ us_config_s *us_config_init(const char *config_dir_path) { janus_config *jcfg = NULL; US_ASPRINTF(config_file_path, "%s/%s.jcfg", config_dir_path, US_PLUGIN_PACKAGE); - US_JLOG_INFO("config", "Reading config file '%s' ...", config_file_path); + US_LOG_INFO("Reading config file '%s' ...", config_file_path); jcfg = janus_config_parse(config_file_path); if (jcfg == NULL) { - US_JLOG_ERROR("config", "Can't read config"); + US_LOG_ERROR("Can't read config"); goto error; } janus_config_print(jcfg); if ((config->video_sink_name = _get_value(jcfg, "video", "sink")) == NULL) { - US_JLOG_ERROR("config", "Missing config value: video.sink"); + US_LOG_ERROR("Missing config value: video.sink"); goto error; } if ((config->acap_dev_name = _get_value(jcfg, "acap", "device")) != NULL) { config->acap_hz = _get_uint(jcfg, "acap", "sampling_rate", 0); config->tc358743_dev_path = _get_value(jcfg, "acap", "tc358743"); if (config->acap_hz == 0 && config->tc358743_dev_path == NULL) { - US_JLOG_ERROR("config", "Either acap.sampling_rate or acap.tc358743 required"); + US_LOG_ERROR("Either acap.sampling_rate or acap.tc358743 required"); goto error; } } diff --git a/janus/src/memsinkfd.c b/janus/src/memsinkfd.c index eff4ba8..32ce4ce 100644 --- a/janus/src/memsinkfd.c +++ b/janus/src/memsinkfd.c @@ -41,14 +41,14 @@ int us_memsink_fd_wait_frame(int fd, us_memsink_shared_s *mem, u64 last_id) { const int result = us_flock_timedwait_monotonic(fd, 1); // lock_timeout now_ts = us_get_now_monotonic(); if (result < 0 && errno != EWOULDBLOCK) { - US_JLOG_PERROR("video", "Can't lock memsink"); + US_LOG_PERROR("Can't lock memsink"); return -1; } else if (result == 0) { if (mem->magic == US_MEMSINK_MAGIC && mem->version == US_MEMSINK_VERSION && mem->id != last_id) { return 0; } if (flock(fd, LOCK_UN) < 0) { - US_JLOG_PERROR("video", "Can't unlock memsink"); + US_LOG_PERROR("Can't unlock memsink"); return -1; } } @@ -68,11 +68,11 @@ int us_memsink_fd_get_frame(int fd, us_memsink_shared_s *mem, us_frame_s *frame, bool retval = 0; if (frame->format != V4L2_PIX_FMT_H264) { - US_JLOG_ERROR("video", "Got non-H264 frame from memsink"); + US_LOG_ERROR("Got non-H264 frame from memsink"); retval = -1; } if (flock(fd, LOCK_UN) < 0) { - US_JLOG_PERROR("video", "Can't unlock memsink"); + US_LOG_PERROR("Can't unlock memsink"); retval = -1; } return retval; diff --git a/janus/src/plugin.c b/janus/src/plugin.c index 21b526a..9b6e957 100644 --- a/janus/src/plugin.c +++ b/janus/src/plugin.c @@ -136,7 +136,7 @@ static void *_video_rtp_thread(void *arg) { static void *_video_sink_thread(void *arg) { (void)arg; - US_THREAD_SETTLE("us_p_vsink"); + US_THREAD_SETTLE("us_p_vcap"); atomic_store(&_g_video_sink_tid_created, true); us_frame_s *drop = us_frame_init(); @@ -145,7 +145,7 @@ static void *_video_sink_thread(void *arg) { while (!_STOP) { if (!_HAS_WATCHERS) { - US_ONCE({ US_JLOG_INFO("video", "No active watchers, memsink disconnected"); }); + US_ONCE({ US_LOG_INFO("No active watchers, memsink disconnected"); }); usleep(_g_watchers_polling); continue; } @@ -155,23 +155,23 @@ static void *_video_sink_thread(void *arg) { const uz data_size = us_memsink_calculate_size(_g_config->video_sink_name); if (data_size == 0) { - US_ONCE({ US_JLOG_ERROR("video", "Invalid memsink object suffix"); }); + US_ONCE({ US_LOG_ERROR("Invalid memsink object suffix"); }); goto close_memsink; } if ((fd = shm_open(_g_config->video_sink_name, O_RDWR, 0)) <= 0) { - US_ONCE({ US_JLOG_PERROR("video", "Can't open memsink"); }); + US_ONCE({ US_LOG_PERROR("Can't open memsink"); }); goto close_memsink; } if ((mem = us_memsink_shared_map(fd, data_size)) == NULL) { - US_ONCE({ US_JLOG_PERROR("video", "Can't map memsink"); }); + US_ONCE({ US_LOG_PERROR("Can't map memsink"); }); goto close_memsink; } once = 0; - US_JLOG_INFO("video", "Memsink opened; reading frames ..."); + US_LOG_INFO("Memsink opened; reading frames ..."); while (!_STOP && _HAS_WATCHERS) { const int waited = us_memsink_fd_wait_frame(fd, mem, frame_id); if (waited == 0) { @@ -180,7 +180,7 @@ static void *_video_sink_thread(void *arg) { if (ri >= 0) { frame = _g_video_ring->items[ri]; } else { - US_ONCE({ US_JLOG_PERROR("video", "Video ring is full"); }); + US_ONCE({ US_LOG_PERROR("Video ring is full"); }); frame = drop; } @@ -206,7 +206,7 @@ static void *_video_sink_thread(void *arg) { mem = NULL; } US_CLOSE_FD(fd); - US_JLOG_INFO("video", "Memsink closed"); + US_LOG_INFO("Memsink closed"); sleep(1); // error_delay } @@ -220,17 +220,17 @@ static int _get_acap_hz(uint *hz) { return 0; } if (_g_config->tc358743_dev_path == NULL) { - US_JLOG_ERROR("acap", "No configured sampling rate"); + US_LOG_ERROR("No configured sampling rate"); return -1; } int fd; if ((fd = open(_g_config->tc358743_dev_path, O_RDWR)) < 0) { - US_JLOG_PERROR("acap", "Can't open TC358743 V4L2 device"); + US_LOG_PERROR("Can't open TC358743 V4L2 device"); return -1; } const int checked = us_tc358743_xioctl_get_audio_hz(fd, hz); if (checked < 0) { - US_JLOG_PERROR("acap", "Can't check TC358743 audio state (%d)", checked); + US_LOG_PERROR("Can't check TC358743 audio state (%d)", checked); close(fd); return -1; } @@ -240,7 +240,7 @@ static int _get_acap_hz(uint *hz) { static void *_acap_thread(void *arg) { (void)arg; - US_THREAD_SETTLE("us_p_ac"); + US_THREAD_SETTLE("us_p_acap"); atomic_store(&_g_acap_tid_created, true); assert(_g_config->acap_dev_name != NULL); @@ -258,17 +258,17 @@ static void *_acap_thread(void *arg) { us_acap_s *acap = NULL; if (!us_au_probe(_g_config->acap_dev_name)) { - US_ONCE({ US_JLOG_ERROR("acap", "No PCM capture device"); }); + US_ONCE({ US_LOG_ERROR("No PCM capture device"); }); goto close_acap; } if (_get_acap_hz(&hz) < 0) { goto close_acap; } if (hz == 0) { - US_ONCE({ US_JLOG_INFO("acap", "No audio presented from the host"); }); + US_ONCE({ US_LOG_INFO("No audio presented from the host"); }); goto close_acap; } - US_ONCE({ US_JLOG_INFO("acap", "Detected host audio"); }); + US_ONCE({ US_LOG_INFO("Detected host audio"); }); if ((acap = us_acap_init(_g_config->acap_dev_name, hz)) == NULL) { goto close_acap; } @@ -301,7 +301,7 @@ static void *_acap_thread(void *arg) { static void *_aplay_thread(void *arg) { (void)arg; - US_THREAD_SETTLE("us_p_ap"); + US_THREAD_SETTLE("us_p_aplay"); atomic_store(&_g_aplay_tid_created, true); assert(_g_config->aplay_dev_name != NULL); @@ -330,10 +330,10 @@ static void *_aplay_thread(void *arg) { } } while (skip && !_STOP); us_au_pcm_mix(&mixed, &last); - // US_JLOG_INFO("++++++", "mixed %p", client); + // US_LOG_INFO("++++++ mixed %p", client); }); _UNLOCK_APLAY; - // US_JLOG_INFO("++++++", "--------------"); + // US_LOG_INFO("++++++ --------------"); if (skip) { static uint skipped = 0; @@ -351,13 +351,13 @@ static void *_aplay_thread(void *arg) { if (dev == NULL) { if (!us_au_probe(_g_config->aplay_dev_name)) { - US_ONCE({ US_JLOG_ERROR("aplay", "No PCM playback device"); }); + US_ONCE({ US_LOG_ERROR("No PCM playback device"); }); goto close_aplay; } int err = snd_pcm_open(&dev, _g_config->aplay_dev_name, SND_PCM_STREAM_PLAYBACK, 0); if (err < 0) { - US_ONCE({ US_JLOG_PERROR_ALSA(err, "aplay", "Can't open PCM playback"); }); + US_ONCE({ US_LOG_PERROR_ALSA(err, "Can't open PCM playback"); }); goto close_aplay; } @@ -365,11 +365,11 @@ static void *_aplay_thread(void *arg) { US_RTP_OPUS_CH, US_RTP_OPUS_HZ, 1 /* soft resample */, 50000 /* 50000 = 0.05sec */ ); if (err < 0) { - US_ONCE({ US_JLOG_PERROR_ALSA(err, "aplay", "Can't configure PCM playback"); }); + US_ONCE({ US_LOG_PERROR_ALSA(err, "Can't configure PCM playback"); }); goto close_aplay; } - US_JLOG_INFO("aplay", "Playback opened, playing ..."); + US_LOG_INFO("Playback opened, playing ..."); once = 0; } @@ -379,20 +379,20 @@ static void *_aplay_thread(void *arg) { frames = snd_pcm_recover(dev, frames, 1); } else { if (once != 0) { - US_JLOG_INFO("aplay", "Playing resumed (snd_pcm_writei) ..."); + US_LOG_INFO("Playing resumed (snd_pcm_writei) ..."); } once = 0; skip = false; } if (frames < 0) { - US_ONCE({ US_JLOG_PERROR_ALSA(frames, "aplay", "Can't play to PCM playback"); }); + US_ONCE({ US_LOG_PERROR_ALSA(frames, "Can't play to PCM playback"); }); if (frames == -ENODEV) { goto close_aplay; } skip = true; } else { if (once != 0) { - US_JLOG_INFO("aplay", "Playing resumed (snd_pcm_recover) ..."); + US_LOG_INFO("Playing resumed (snd_pcm_recover) ..."); } once = 0; skip = false; @@ -403,7 +403,7 @@ static void *_aplay_thread(void *arg) { close_aplay: if (dev != NULL) { US_DELETE(dev, snd_pcm_close); - US_JLOG_INFO("aplay", "Playback closed"); + US_LOG_INFO("Playback closed"); } } return NULL; @@ -432,7 +432,7 @@ static int _plugin_init(janus_callbacks *gw, const char *config_dir_path) { US_LOGGING_INIT; - US_JLOG_INFO("main", "Initializing PiKVM uStreamer plugin %s ...", US_VERSION); + US_LOG_INFO("Initializing PiKVM uStreamer plugin %s ...", US_VERSION); if (gw == NULL || config_dir_path == NULL || ((_g_config = us_config_init(config_dir_path)) == NULL)) { return -1; } @@ -457,7 +457,7 @@ static int _plugin_init(janus_callbacks *gw, const char *config_dir_path) { } static void _plugin_destroy(void) { - US_JLOG_INFO("main", "Destroying plugin ..."); + US_LOG_INFO("Destroying plugin ..."); atomic_store(&_g_stop, true); # define JOIN(_tid) { if (atomic_load(&_tid##_created)) { US_THREAD_JOIN(_tid); } } @@ -484,7 +484,7 @@ static void _plugin_destroy(void) { static void _plugin_create_session(janus_plugin_session *session, int *err) { _IF_DISABLED({ *err = -1; return; }); _LOCK_ALL; - US_JLOG_INFO("main", "Creating session %p ...", session); + US_LOG_INFO("Creating session %p ...", session); us_janus_client_s *const client = us_janus_client_init(_g_gw, session); US_LIST_APPEND(_g_clients, client); atomic_store(&_g_has_watchers, true); @@ -500,7 +500,7 @@ static void _plugin_destroy_session(janus_plugin_session* session, int *err) { bool has_speakers = false; US_LIST_ITERATE(_g_clients, client, { if (client->session == session) { - US_JLOG_INFO("main", "Removing session %p ...", session); + US_LOG_INFO("Removing session %p ...", session); US_LIST_REMOVE(_g_clients, client); us_janus_client_destroy(client); found = true; @@ -511,7 +511,7 @@ static void _plugin_destroy_session(janus_plugin_session* session, int *err) { } }); if (!found) { - US_JLOG_WARN("main", "No session %p", session); + US_LOG_ERROR("No session %p", session); *err = -2; } atomic_store(&_g_has_watchers, has_watchers); @@ -543,13 +543,13 @@ static void _set_transmit(janus_plugin_session *session, const char *msg, bool t US_LIST_ITERATE(_g_clients, client, { if (client->session == session) { atomic_store(&client->transmit, transmit); - // US_JLOG_INFO("main", "%s session %p", msg, session); + // US_LOG_INFO("%s session %p", msg, session); found = true; } has_watchers = (has_watchers || atomic_load(&client->transmit)); }); if (!found) { - US_JLOG_WARN("main", "No session %p", session); + US_LOG_ERROR("No session %p", session); } atomic_store(&_g_has_watchers, has_watchers); _UNLOCK_ALL; @@ -571,7 +571,7 @@ static struct janus_plugin_result *_plugin_handle_message( } # define PUSH_ERROR(x_error, x_reason) { \ - /*US_JLOG_ERROR("main", "Message error in session %p: %s", session, x_reason);*/ \ + /*US_LOG_ERROR("Message error in session %p: %s", session, x_reason);*/ \ json_t *m_event = json_object(); \ json_object_set_new(m_event, "ustreamer", json_string("event")); \ json_object_set_new(m_event, "error_code", json_integer(x_error)); \ @@ -591,7 +591,7 @@ static struct janus_plugin_result *_plugin_handle_message( PUSH_ERROR(400, "Request not a string"); goto done; } - // US_JLOG_INFO("main", "Message: %s", request_str); + // US_LOG_INFO("Message: %s", request_str); # define PUSH_STATUS(x_status, x_payload, x_jsep) { \ json_t *const m_event = json_object(); \ @@ -684,7 +684,7 @@ static struct janus_plugin_result *_plugin_handle_message( json_decref(features); } else if (!strcmp(request_str, "key_required")) { - // US_JLOG_INFO("main", "Got key_required message"); + // US_LOG_INFO("Got key_required message"); atomic_store(&_g_key_required, true); } else { diff --git a/janus/src/uslibs/logging_base.h b/janus/src/uslibs/logging_base.h index 3226e3d..7e701970 100644 --- a/janus/src/uslibs/logging_base.h +++ b/janus/src/uslibs/logging_base.h @@ -22,22 +22,11 @@ #include -#include "uslibs/tools.h" - -#include "const.h" +#include "threading.h" -#define US_JLOG_INFO(x_prefix, x_msg, ...) JANUS_LOG(LOG_INFO, "== %s/%-9s -- " x_msg "\n", US_PLUGIN_NAME, x_prefix, ##__VA_ARGS__) -#define US_JLOG_WARN(x_prefix, x_msg, ...) JANUS_LOG(LOG_WARN, "== %s/%-9s -- " x_msg "\n", US_PLUGIN_NAME, x_prefix, ##__VA_ARGS__) -#define US_JLOG_ERROR(x_prefix, x_msg, ...) JANUS_LOG(LOG_ERR, "== %s/%-9s -- " x_msg "\n", US_PLUGIN_NAME, x_prefix, ##__VA_ARGS__) - -#define US_JLOG_PERROR(x_prefix, x_msg, ...) { \ - char *const m_perror_str = us_errno_to_string(errno); \ - JANUS_LOG(LOG_ERR, "[%s/%-9s] " x_msg ": %s\n", US_PLUGIN_NAME, x_prefix, ##__VA_ARGS__, m_perror_str); \ - free(m_perror_str); \ +#define US_LOG_PRINTF_NOLOCK(x_label_color, x_label, x_msg_color, x_msg, ...) { \ + char m_tname_buf[US_THREAD_NAME_SIZE] = {0}; \ + us_thread_get_name(m_tname_buf); \ + JANUS_LOG(LOG_INFO, "== ustreamer/%-15s " x_label " -- " x_msg "\n", m_tname_buf, ##__VA_ARGS__); \ } - -// We don't include alsa, speex and opus headers here -#define US_JLOG_PERROR_ALSA(_err, _prefix, _msg, ...) US_JLOG_ERROR(_prefix, _msg ": %s", ##__VA_ARGS__, snd_strerror(_err)) -#define US_JLOG_PERROR_RES(_err, _prefix, _msg, ...) US_JLOG_ERROR(_prefix, _msg ": %s", ##__VA_ARGS__, speex_resampler_strerror(_err)) -#define US_JLOG_PERROR_OPUS(_err, _prefix, _msg, ...) US_JLOG_ERROR(_prefix, _msg ": %s", ##__VA_ARGS__, opus_strerror(_err)) diff --git a/src/libs/logging.h b/src/libs/logging.h index aa2363e..d0e593f 100644 --- a/src/libs/logging.h +++ b/src/libs/logging.h @@ -95,6 +95,11 @@ extern pthread_mutex_t us_g_log_mutex; free(m_perror_str); \ } +// We don't include alsa, speex and opus headers here +#define US_LOG_PERROR_ALSA(x_err, x_msg, ...) US_LOG_ERROR(x_msg ": %s", ##__VA_ARGS__, snd_strerror(x_err)) +#define US_LOG_PERROR_RES(x_err, x_msg, ...) US_LOG_ERROR(x_msg ": %s", ##__VA_ARGS__, speex_resampler_strerror(x_err)) +#define US_LOG_PERROR_OPUS(x_err, x_msg, ...) US_LOG_ERROR(x_msg ": %s", ##__VA_ARGS__, opus_strerror(x_err)) + #define US_LOG_INFO(x_msg, ...) { \ US_LOG_PRINTF(US_COLOR_GREEN, "INFO ", "", x_msg, ##__VA_ARGS__); \ }