mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-14 00:04:13 +09:00
pause/resume gstreamer stream when video stream stops/starts
This commit is contained in:
@@ -52,6 +52,9 @@ void video_renderer_init (logger_t *logger, const char *server_name, videoflip_t
|
||||
const bool *video_sync);
|
||||
void video_renderer_start ();
|
||||
void video_renderer_stop ();
|
||||
void video_renderer_pause ();
|
||||
void video_renderer_resume ();
|
||||
bool video_renderer_is_paused();
|
||||
void video_renderer_render_buffer (unsigned char* data, int *data_len, int *nal_count, uint64_t *ntp_time);
|
||||
void video_renderer_flush ();
|
||||
unsigned int video_renderer_listen(void *loop);
|
||||
|
||||
@@ -221,6 +221,25 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, vide
|
||||
}
|
||||
}
|
||||
|
||||
void video_renderer_pause() {
|
||||
logger_log(logger, LOGGER_DEBUG, "video renderer paused");
|
||||
gst_element_set_state(renderer->pipeline, GST_STATE_PAUSED);
|
||||
}
|
||||
|
||||
void video_renderer_resume() {
|
||||
if (video_renderer_is_paused()) {
|
||||
logger_log(logger, LOGGER_DEBUG, "video renderer resumed");
|
||||
gst_element_set_state (renderer->pipeline, GST_STATE_PLAYING);
|
||||
gst_video_pipeline_base_time = gst_element_get_base_time(renderer->appsrc);
|
||||
}
|
||||
}
|
||||
|
||||
bool video_renderer_is_paused() {
|
||||
GstState state;
|
||||
gst_element_get_state(renderer->pipeline, &state, NULL, 0);
|
||||
return (state == GST_STATE_PAUSED);
|
||||
}
|
||||
|
||||
void video_renderer_start() {
|
||||
gst_element_set_state (renderer->pipeline, GST_STATE_PLAYING);
|
||||
gst_video_pipeline_base_time = gst_element_get_base_time(renderer->appsrc);
|
||||
|
||||
Reference in New Issue
Block a user