mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-14 00:04:13 +09:00
whitespace cleanup
This commit is contained in:
@@ -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]);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user