From e3180b5ad1c43f99cfb62feefff02fa87dbb8aa7 Mon Sep 17 00:00:00 2001 From: "ekko.bao" Date: Sat, 3 May 2025 17:00:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=9D=9C=E6=85=8B=E5=9C=96?= =?UTF-8?q?=E7=89=87=E9=A1=AF=E7=A4=BA=E7=9A=84pipeline=EF=BC=8C=E7=B7=A8?= =?UTF-8?q?=E8=AD=AFok=EF=BC=8C=E5=8F=AF=E4=BB=A5=E9=81=8B=E8=A1=8C?= =?UTF-8?q?=EF=BC=8C=E4=BD=86=E6=98=AF=E9=82=84=E6=B2=92=E9=A9=97=E8=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- renderers/video_renderer.c | 92 +++++++++++++++++++++++-------------- test.jpg | Bin 0 -> 98590 bytes uxplay.cpp | 17 ++++--- 3 files changed, 65 insertions(+), 44 deletions(-) create mode 100755 test.jpg diff --git a/renderers/video_renderer.c b/renderers/video_renderer.c index c89be2e..d9bd75c 100644 --- a/renderers/video_renderer.c +++ b/renderers/video_renderer.c @@ -192,8 +192,8 @@ GstElement *make_video_sink(const char *videosink, const char *videosink_options } void video_renderer_init(logger_t *render_logger, const char *server_name, videoflip_t videoflip[2], const char *parser, - const char *decoder, const char *converter, const char *videosink, const char *videosink_options, - bool initial_fullscreen, bool video_sync, bool h265_support, const char *uri) { + const char *decoder, const char *converter, const char *videosink, const char *videosink_options, + bool initial_fullscreen, bool video_sync, bool h265_support, const char *uri, const char *default_image) { GError *error = NULL; GstCaps *caps = NULL; hls_video = (uri != NULL); @@ -204,10 +204,18 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, video logger_debug = (logger_get_level(logger) >= LOGGER_DEBUG); video_terminate = false; + /* this call to g_set_application_name makes server_name appear in the X11 display window title bar, */ + /* (instead of the program name uxplay taken from (argv[0]). It is only set one time. */ + const gchar *appname = g_get_application_name(); if (!appname || strcmp(appname,server_name)) g_set_application_name(server_name); appname = NULL; + /* the renderer for hls video will only be built if a HLS uri is provided in + * the call to video_renderer_init, in which case the h264 and 265 mirror-mode + * renderers will not be built. This is because it appears that we cannot + * put playbin into GST_STATE_READY before knowing the uri (?), so cannot use a + * unified renderer structure with h264, h265 and hls */ if (hls_video) { n_renderers = 1; } else { @@ -219,15 +227,18 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, video renderer_type[i] = (video_renderer_t *) calloc(1, sizeof(video_renderer_t)); g_assert(renderer_type[i]); renderer_type[i]->autovideo = auto_videosink; - renderer_type[i]->id = i; - renderer_type[i]->bus = NULL; + renderer_type[i]->id = i; + renderer_type[i]->bus = NULL; if (hls_video) { + /* use playbin3 to play HLS video: replace "playbin3" by "playbin" to use playbin2 */ renderer_type[i]->pipeline = gst_element_factory_make("playbin3", "hls-playbin3"); g_assert(renderer_type[i]->pipeline); renderer_type[i]->appsrc = NULL; - renderer_type[i]->codec = hls; + renderer_type[i]->codec = hls; + /* if we are not using autovideosink, build a videossink based on the stricng "videosink" */ if(strcmp(videosink, "autovideosink")) { - GstElement *playbin_videosink = make_video_sink(videosink, videosink_options); + GstElement *playbin_videosink = make_video_sink(videosink, videosink_options); + if (!playbin_videosink) { logger_log(logger, LOGGER_ERR, "video_renderer_init: failed to create playbin_videosink"); } else { @@ -235,6 +246,7 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, video g_object_set(G_OBJECT (renderer_type[i]->pipeline), "video-sink", playbin_videosink, NULL); } } + g_object_set (G_OBJECT (renderer_type[i]->pipeline), "uri", uri, NULL); } else { switch (i) { @@ -251,35 +263,38 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, video } GString *launch = g_string_new(""); - // Add static image source - g_string_append(launch, "filesrc location=/path/to/placeholder.jpg ! jpegdec ! imagefreeze ! videoconvert ! "); - g_string_append(launch, "queue ! "); - g_string_append(launch, "input-selector name=selector ! "); + // Create input-selector and video sink + g_string_append(launch, "input-selector name=selector ! "); + g_string_append(launch, videosink); + g_string_append(launch, " name="); + g_string_append(launch, videosink); + g_string_append(launch, "_"); + g_string_append(launch, renderer_type[i]->codec); + g_string_append(launch, videosink_options); - // Add video source - g_string_append(launch, "appsrc name=video_source ! "); - g_string_append(launch, "queue ! "); - g_string_append(launch, parser); - g_string_append(launch, " ! "); - g_string_append(launch, decoder); - g_string_append(launch, " ! "); - append_videoflip(launch, &videoflip[0], &videoflip[1]); - g_string_append(launch, converter); - g_string_append(launch, " ! "); - g_string_append(launch, "videoscale ! "); - g_string_append(launch, videosink); - g_string_append(launch, " name="); - g_string_append(launch, videosink); - g_string_append(launch, "_"); - g_string_append(launch, renderer_type[i]->codec); - g_string_append(launch, videosink_options); - if (video_sync) { - g_string_append(launch, " sync=true"); - sync = true; - } else { - g_string_append(launch, " sync=false"); - sync = false; - } + if (video_sync) { + g_string_append(launch, " sync=true"); + sync = true; + } else { + g_string_append(launch, " sync=false"); + sync = false; + } + // Add static image source branch + g_string_append_printf(launch, " filesrc location=%s ! jpegdec ! imagefreeze ! videoconvert ! videoscale ! queue ! selector.sink_0 ", default_image); + + // Add video source branch + g_string_append(launch, " appsrc name=video_source ! "); + g_string_append(launch, "queue ! "); + g_string_append(launch, parser); + g_string_append(launch, " ! "); + g_string_append(launch, decoder); + g_string_append(launch, " ! "); + append_videoflip(launch, &videoflip[0], &videoflip[1]); + g_string_append(launch, converter); + g_string_append(launch, " ! "); + g_string_append(launch, "videoscale ! "); + g_string_append(launch, "queue ! "); + g_string_append(launch, "selector.sink_1 "); if (!strcmp(renderer_type[i]->codec, h264)) { char *pos = launch->str; @@ -429,6 +444,7 @@ bool waiting_for_x11_window() { void video_renderer_render_buffer(unsigned char* data, int *data_len, int *nal_count, uint64_t *ntp_time) { GstBuffer *buffer; GstClockTime pts = (GstClockTime) *ntp_time; /*now in nsecs */ + //GstClockTimeDiff latency = GST_CLOCK_DIFF(gst_element_get_current_clock_time (renderer->appsrc), pts); if (sync) { if (pts >= gst_video_pipeline_base_time) { pts -= gst_video_pipeline_base_time; @@ -439,6 +455,10 @@ void video_renderer_render_buffer(unsigned char* data, int *data_len, int *nal_c } } g_assert(data_len != 0); + /* first four bytes of valid h264 video data are 0x00, 0x00, 0x00, 0x01. * + * nal_count is the number of NAL units in the data: short SPS, PPS, SEI NALs * + * may precede a VCL NAL. Each NAL starts with 0x00 0x00 0x00 0x01 and is * + * byte-aligned: the first byte of invalid data (decryption failed) is 0x01 */ if (data[0]) { logger_log(logger, LOGGER_ERR, "*** ERROR decryption of video packet failed "); } else { @@ -450,6 +470,7 @@ void video_renderer_render_buffer(unsigned char* data, int *data_len, int *nal_c } buffer = gst_buffer_new_allocate(NULL, *data_len, NULL); g_assert(buffer != NULL); + //g_print("video latency %8.6f\n", (double) latency / SECOND_IN_NSECS); if (sync) { GST_BUFFER_PTS(buffer) = pts; } @@ -482,7 +503,8 @@ void video_renderer_stop() { video_renderer_switch_source(false); } gst_element_set_state (renderer->pipeline, GST_STATE_NULL); - } + //gst_element_set_state (renderer->playbin, GST_STATE_NULL); + } } static void video_renderer_destroy_h26x(video_renderer_t *renderer) { diff --git a/test.jpg b/test.jpg new file mode 100755 index 0000000000000000000000000000000000000000..293286c983a18778689a9707d8e96ac869f9a90f GIT binary patch literal 98590 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 V4n2ZdzoDCl^Qmk_&7yY3{s(X7ekuR} literal 0 HcmV?d00001 diff --git a/uxplay.cpp b/uxplay.cpp index 867329b..02d0388 100644 --- a/uxplay.cpp +++ b/uxplay.cpp @@ -86,7 +86,6 @@ static bool reset_loop = false; static unsigned int open_connections= 0; static std::string videosink = "autovideosink"; static std::string videosink_options = ""; -static std::string default_image = ""; // Add this line static videoflip_t videoflip[2] = { NONE , NONE }; static bool use_video = true; static unsigned char compression_type = 0; @@ -150,6 +149,7 @@ static std::string url = ""; static guint gst_x11_window_id = 0; static guint gst_hls_position_id = 0; static bool preserve_connections = false; +static std::string default_image_path = ""; /* logging */ @@ -609,7 +609,7 @@ static void print_info (char *name) { printf("-h265 Support h265 (4K) video (with h265 versions of h264 plugins)\n"); printf("-hls Support HTTP Live Streaming (currently Youtube video only) \n"); printf("-pin[xxxx]Use a 4-digit pin code to control client access (default: no)\n"); - printf("-di Set default image file to display when video is not available\n"); + printf("-di Set default image path for video placeholder\n"); printf(" default pin is random: optionally use fixed pin xxxx\n"); printf("-reg [fn] Keep a register in $HOME/.uxplay.register to verify returning\n"); printf(" client pin-registration; (option: use file \"fn\" for this)\n"); @@ -819,11 +819,7 @@ static void parse_arguments (int argc, char *argv[]) { // Parse arguments for (int i = 1; i < argc; i++) { std::string arg(argv[i]); - if (arg == "-di") { - if (!option_has_value(i, argc, arg, argv[i+1])) exit(1); - default_image = std::string(argv[++i]); - LOGI("Using default image: %s", default_image.c_str()); - } else if (arg == "-allow") { + if (arg == "-allow") { if (!option_has_value(i, argc, arg, argv[i+1])) exit(1); i++; allowed_clients.push_back(argv[i]); @@ -1183,6 +1179,9 @@ static void parse_arguments (int argc, char *argv[]) { h265_support = true; } else if (arg == "-nofreeze") { nofreeze = true; + } else if (arg == "-di") { + if (!option_has_value(i, argc, arg, argv[i+1])) exit(1); + default_image_path = std::string(argv[++i]); } else { fprintf(stderr, "unknown option %s, stopping (for help use option \"-h\")\n",argv[i]); exit(1); @@ -2244,7 +2243,7 @@ int main (int argc, char *argv[]) { if (use_video) { video_renderer_init(render_logger, server_name.c_str(), videoflip, video_parser.c_str(), video_decoder.c_str(), video_converter.c_str(), videosink.c_str(), - videosink_options.c_str(), fullscreen, video_sync, h265_support, NULL, default_image.c_str()); + videosink_options.c_str(), fullscreen, video_sync, h265_support, NULL, default_image_path.c_str()); video_renderer_start(); } @@ -2319,7 +2318,7 @@ int main (int argc, char *argv[]) { const char *uri = (url.empty() ? NULL : url.c_str()); video_renderer_init(render_logger, server_name.c_str(), videoflip, video_parser.c_str(), video_decoder.c_str(), video_converter.c_str(), videosink.c_str(), - videosink_options.c_str(), fullscreen, video_sync, h265_support, uri); + videosink_options.c_str(), fullscreen, video_sync, h265_support, uri, default_image_path.c_str()); video_renderer_start(); } if (relaunch_video) {