diff --git a/renderers/audio_renderer.c b/renderers/audio_renderer.c index 5075018..9a669d3 100644 --- a/renderers/audio_renderer.c +++ b/renderers/audio_renderer.c @@ -103,15 +103,15 @@ static gboolean check_plugin_feature (const gchar *needed_feature) plugin_feature = gst_registry_find_feature (registry, needed_feature, GST_TYPE_ELEMENT_FACTORY); if (!plugin_feature) { - g_print ("Required gstreamer libav plugin feature '%s' not found:\n\n" - "This may be missing because the FFmpeg package used by GStreamer-1.x-libav is incomplete.\n" - "(Some distributions provide an incomplete FFmpeg due to License or Patent issues:\n" - "in such cases a complete version for that distribution is usually made available elsewhere)\n", - needed_feature); - ret = FALSE; + g_print ("Required gstreamer libav plugin feature '%s' not found:\n\n" + "This may be missing because the FFmpeg package used by GStreamer-1.x-libav is incomplete.\n" + "(Some distributions provide an incomplete FFmpeg due to License or Patent issues:\n" + "in such cases a complete version for that distribution is usually made available elsewhere)\n", + needed_feature); + ret = FALSE; } else { - gst_object_unref (plugin_feature); - plugin_feature = NULL; + gst_object_unref (plugin_feature); + plugin_feature = NULL; } if (ret == FALSE) { g_print ("\nif the plugin feature is installed, but not found, your gstreamer registry may have been corrupted.\n" @@ -187,7 +187,7 @@ void audio_renderer_init(logger_t *render_logger, const char* audiosink, const b g_assert (renderer_type[i]->pipeline); gst_pipeline_use_clock(GST_PIPELINE_CAST(renderer_type[i]->pipeline), clock); - renderer_type[i]->bus = gst_element_get_bus(renderer_type[i]->pipeline); + renderer_type[i]->bus = gst_element_get_bus(renderer_type[i]->pipeline); renderer_type[i]->appsrc = gst_bin_get_by_name (GST_BIN (renderer_type[i]->pipeline), "audio_source"); renderer_type[i]->volume = gst_bin_get_by_name (GST_BIN (renderer_type[i]->pipeline), "volume"); switch (i) { @@ -369,12 +369,12 @@ void audio_renderer_destroy() { audio_renderer_stop(); for (int i = 0; i < NFORMATS ; i++ ) { gst_object_unref (renderer_type[i]->bus); - renderer_type[i]->bus = NULL; + renderer_type[i]->bus = NULL; gst_object_unref (renderer_type[i]->volume); - renderer_type[i]->volume = NULL; + renderer_type[i]->volume = NULL; gst_object_unref (renderer_type[i]->appsrc); renderer_type[i]->appsrc = NULL; - gst_object_unref (renderer_type[i]->pipeline); + gst_object_unref (renderer_type[i]->pipeline); renderer_type[i]->pipeline = NULL; free(renderer_type[i]); } diff --git a/renderers/video_renderer.c b/renderers/video_renderer.c index 4086312..979c53f 100644 --- a/renderers/video_renderer.c +++ b/renderers/video_renderer.c @@ -211,8 +211,8 @@ GstElement *make_video_sink(const char *videosink, const char *videosink_options pval++; const gchar *property_name = (const gchar *) token; const gchar *value = (const gchar *) pval; - g_print("playbin_videosink property: \"%s\" \"%s\"\n", property_name, value); - gst_util_set_object_arg(G_OBJECT (video_sink), property_name, value); + g_print("playbin_videosink property: \"%s\" \"%s\"\n", property_name, value); + gst_util_set_object_arg(G_OBJECT (video_sink), property_name, value); } } free(options); @@ -283,7 +283,7 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, vide } logger_log(logger, LOGGER_INFO, "Will use GStreamer playbin version %u to play HLS streamed video", playbin_version); g_assert(renderer_type[i]->pipeline); - renderer_type[i]->codec = hls; + renderer_type[i]->codec = hls; /* if we are not using an autovideosink, build a videosink based on the string "videosink" */ if (!auto_videosink) { GstElement *playbin_videosink = make_video_sink(videosink, videosink_options); @@ -297,9 +297,9 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, vide gint flags; g_object_get(renderer_type[i]->pipeline, "flags", &flags, NULL); flags |= GST_PLAY_FLAG_DOWNLOAD; - flags |= GST_PLAY_FLAG_BUFFERING; // set by default in playbin3, but not in playbin2; is it needed? + flags |= GST_PLAY_FLAG_BUFFERING; // set by default in playbin3, but not in playbin2; is it needed? g_object_set(renderer_type[i]->pipeline, "flags", flags, NULL); - g_object_set (G_OBJECT (renderer_type[i]->pipeline), "uri", uri, NULL); + g_object_set (G_OBJECT (renderer_type[i]->pipeline), "uri", uri, NULL); } else { bool jpeg_pipeline = false; switch (i) { @@ -320,9 +320,9 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, vide g_assert(0); } GString *launch = g_string_new("appsrc name=video_source ! "); - if (jpeg_pipeline) { + if (jpeg_pipeline) { g_string_append(launch, "jpegdec "); - } else { + } else { g_string_append(launch, "queue ! "); g_string_append(launch, parser); g_string_append(launch, " ! "); @@ -370,7 +370,7 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, vide logger_log(logger, LOGGER_ERR, "GStreamer gst_parse_launch failed to create video pipeline %d\n" "*** error message from gst_parse_launch was:\n%s\n" "launch string parsed was \n[%s]", i + 1, error->message, launch->str); - if (strstr(error->message, "no element")) { + if (strstr(error->message, "no element")) { logger_log(logger, LOGGER_ERR, "This error usually means that a uxplay option was mistyped\n" " or some requested part of GStreamer is not installed\n"); } @@ -385,7 +385,7 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, vide g_object_set(renderer_type[i]->appsrc, "caps", caps, "stream-type", 0, "is-live", TRUE, "format", GST_FORMAT_TIME, NULL); g_string_free(launch, TRUE); gst_caps_unref(caps); - gst_object_unref(clock); + gst_object_unref(clock); } #ifdef X_DISPLAY_FIX use_x11 = (strstr(videosink, "xvimagesink") || strstr(videosink, "ximagesink") || auto_videosink); @@ -704,9 +704,9 @@ static gboolean gstreamer_video_pipeline_bus_callback(GstBus *bus, GstMessage *m g_print("GStreamer %s bus message %s %s %s %s\n", renderer_type[type]->codec, GST_MESSAGE_SRC_NAME(message), GST_MESSAGE_TYPE_NAME(message), old_state_name, new_state_name); } - if (name) { - g_free(name); - } + if (name) { + g_free(name); + } } /* monitor hls video position until seek to hls_start_position is achieved */ @@ -716,21 +716,21 @@ static gboolean gstreamer_video_pipeline_bus_callback(GstBus *bus, GstMessage *m if (!GST_CLOCK_TIME_IS_VALID(hls_duration)) { gst_element_query_duration (renderer->pipeline, GST_FORMAT_TIME, &hls_duration); } - gst_element_query_position (renderer_type[type]->pipeline, GST_FORMAT_TIME, &pos); + gst_element_query_position (renderer_type[type]->pipeline, GST_FORMAT_TIME, &pos); //g_print("HLS position %" GST_TIME_FORMAT " requested_start_position %" GST_TIME_FORMAT " duration %" GST_TIME_FORMAT " %s\n", // GST_TIME_ARGS(pos), GST_TIME_ARGS(hls_requested_start_position), GST_TIME_ARGS(hls_duration), // (hls_seek_enabled ? "seek enabled" : "seek not enabled")); if (pos > hls_requested_start_position) { hls_requested_start_position = 0; } - if ( hls_requested_start_position && pos < hls_requested_start_position && hls_seek_enabled) { + if ( hls_requested_start_position && pos < hls_requested_start_position && hls_seek_enabled) { g_print("***************** seek to hls_requested_start_position %" GST_TIME_FORMAT "\n", GST_TIME_ARGS(hls_requested_start_position)); if (gst_element_seek_simple (renderer_type[type]->pipeline, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, hls_requested_start_position)) { hls_requested_start_position = 0; } - } - } + } + } } switch (GST_MESSAGE_TYPE (message)) { @@ -742,8 +742,8 @@ static gboolean gstreamer_video_pipeline_bus_callback(GstBus *bus, GstMessage *m gint percent = -1; gst_message_parse_buffering(message, &percent); hls_buffer_empty = TRUE; - hls_buffer_full = FALSE; - if (percent > 0) { + hls_buffer_full = FALSE; + if (percent > 0) { hls_buffer_empty = FALSE; renderer_type[type]->buffering_level = percent; logger_log(logger, LOGGER_DEBUG, "Buffering :%d percent done", percent); @@ -772,11 +772,11 @@ static gboolean gstreamer_video_pipeline_bus_callback(GstBus *bus, GstMessage *m "*** to select a videosink of your choice (see \"man uxplay\").\n\n" "*** Raspberry Pi models 4B and earlier using Video4Linux2 may need \"-bt709\" uxplay option"); } - g_error_free (err); + g_error_free (err); g_free (debug); - if (renderer_type[type]->appsrc) { + if (renderer_type[type]->appsrc) { gst_app_src_end_of_stream (GST_APP_SRC(renderer_type[type]->appsrc)); - } + } gst_bus_set_flushing(bus, TRUE); gst_element_set_state (renderer_type[type]->pipeline, GST_STATE_READY); renderer_type[type]->terminate = TRUE; @@ -789,7 +789,7 @@ static gboolean gstreamer_video_pipeline_bus_callback(GstBus *bus, GstMessage *m if (hls_video) { gst_bus_set_flushing(bus, TRUE); gst_element_set_state (renderer_type[type]->pipeline, GST_STATE_READY); - renderer_type[type]->terminate = TRUE; + renderer_type[type]->terminate = TRUE; g_main_loop_quit( (GMainLoop *) loop); } break; @@ -824,14 +824,14 @@ static gboolean gstreamer_video_pipeline_bus_callback(GstBus *bus, GstMessage *m char *sink = strstr(GST_MESSAGE_SRC_NAME(message), "-actual-sink-"); if (sink) { sink += strlen("-actual-sink-"); - if (strstr(GST_MESSAGE_SRC_NAME(message), renderer_type[type]->codec)) { + if (strstr(GST_MESSAGE_SRC_NAME(message), renderer_type[type]->codec)) { logger_log(logger, LOGGER_DEBUG, "GStreamer: automatically-selected videosink" " (renderer %d: %s) is \"%ssink\"", renderer_type[type]->id + 1, renderer_type[type]->codec, sink); #ifdef X_DISPLAY_FIX renderer_type[type]->use_x11 = (strstr(sink, "ximage") || strstr(sink, "xvimage")); #endif - renderer_type[type]->autovideo = false; + renderer_type[type]->autovideo = false; } } } @@ -889,7 +889,7 @@ int video_renderer_choose_codec (bool video_is_jpeg, bool video_is_h265) { if (video_is_h265) { logger_log(logger, LOGGER_ERR, "video is h265 but the -h265 option was not used"); return -1; - } + } renderer_used = renderer_type[1]; } else { renderer_used = video_is_h265 ? renderer_type[2] : renderer_type[1]; @@ -906,7 +906,7 @@ int video_renderer_choose_codec (bool video_is_jpeg, bool video_is_h265) { GstState old_state, new_state; if (gst_element_get_state(renderer->pipeline, &old_state, &new_state, 100 * GST_MSECOND) == GST_STATE_CHANGE_FAILURE) { g_error("video pipeline failed to go into playing state"); - return -1; + return -1; } logger_log(logger, LOGGER_DEBUG, "video_pipeline state change from %s to %s\n", gst_element_state_get_name (old_state),gst_element_state_get_name (new_state)); @@ -932,12 +932,12 @@ unsigned int video_reset_callback(void * loop) { if (video_terminate) { video_terminate = false; if (renderer->appsrc) { - gst_app_src_end_of_stream (GST_APP_SRC(renderer->appsrc)); + gst_app_src_end_of_stream (GST_APP_SRC(renderer->appsrc)); } gboolean flushing = TRUE; gst_bus_set_flushing(renderer->bus, flushing); - gst_element_set_state (renderer->pipeline, GST_STATE_NULL); - g_main_loop_quit( (GMainLoop *) loop); + gst_element_set_state (renderer->pipeline, GST_STATE_NULL); + g_main_loop_quit( (GMainLoop *) loop); } return (unsigned int) TRUE; }