mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-15 00:34:05 +09:00
missing part of commit improved the port selection option, added ability to choose videosink
@fduncanh fduncanh committed yesterday
This commit is contained in:
@@ -44,7 +44,7 @@ typedef enum videoflip_e {
|
|||||||
|
|
||||||
typedef struct video_renderer_s video_renderer_t;
|
typedef struct video_renderer_s video_renderer_t;
|
||||||
|
|
||||||
video_renderer_t *video_renderer_init (logger_t *logger, const char *server_name, videoflip_t videoflip[2]);
|
video_renderer_t *video_renderer_init (logger_t *logger, const char *server_name, videoflip_t videoflip[2], const char *videosink);
|
||||||
void video_renderer_start (video_renderer_t *renderer);
|
void video_renderer_start (video_renderer_t *renderer);
|
||||||
void video_renderer_render_buffer (video_renderer_t *renderer, raop_ntp_t *ntp, unsigned char* data, int data_len, uint64_t pts, int type);
|
void video_renderer_render_buffer (video_renderer_t *renderer, raop_ntp_t *ntp, unsigned char* data, int data_len, uint64_t pts, int type);
|
||||||
void video_renderer_flush (video_renderer_t *renderer);
|
void video_renderer_flush (video_renderer_t *renderer);
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ static void append_videoflip (GString *launch, const videoflip_t *flip, const vi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
video_renderer_t *video_renderer_init(logger_t *logger, const char *server_name, videoflip_t videoflip[2]) {
|
video_renderer_t *video_renderer_init(logger_t *logger, const char *server_name, videoflip_t videoflip[2], const char *videosink) {
|
||||||
video_renderer_t *renderer;
|
video_renderer_t *renderer;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
|
|
||||||
@@ -136,8 +136,13 @@ video_renderer_t *video_renderer_init(logger_t *logger, const char *server_name,
|
|||||||
GString *launch = g_string_new("-e appsrc name=video_source stream-type=0 format=GST_FORMAT_TIME is-live=true !"
|
GString *launch = g_string_new("-e appsrc name=video_source stream-type=0 format=GST_FORMAT_TIME is-live=true !"
|
||||||
"queue ! decodebin ! videoconvert ! ");
|
"queue ! decodebin ! videoconvert ! ");
|
||||||
append_videoflip(launch, &videoflip[0], &videoflip[1]);
|
append_videoflip(launch, &videoflip[0], &videoflip[1]);
|
||||||
/* replace "autovideosink" with "fpsdisplaysink" (from gstreamer-plugins-bad) to display framerate */
|
/* replace "autovideosink" with "fpsdisplaysink" (from gstreamer-plugins-bad) to display framerate */
|
||||||
g_string_append(launch, "autovideosink name=video_sink sync=false");
|
if (videosink) {
|
||||||
|
g_string_append(launch, videosink);
|
||||||
|
} else {
|
||||||
|
g_string_append(launch, "autovideosink");
|
||||||
|
}
|
||||||
|
g_string_append(launch, " name=video_sink sync=false");
|
||||||
renderer->pipeline = gst_parse_launch(launch->str, &error);
|
renderer->pipeline = gst_parse_launch(launch->str, &error);
|
||||||
g_assert (renderer->pipeline);
|
g_assert (renderer->pipeline);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user