[vlc-devel] [PATCH 07/39] video_output: split vout_Request to have a function to enable the vout window
Steve Lhomme
robux4 at ycbcr.xyz
Wed Oct 2 16:23:22 CEST 2019
---
src/video_output/video_output.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index e0d7dcc317b..52db098bc5a 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1906,7 +1906,7 @@ vout_thread_t *vout_Hold(vout_thread_t *vout)
return vout;
}
-int vout_Request(const vout_configuration_t *cfg, input_thread_t *input)
+static int VoutEnableWindow(const vout_configuration_t *cfg)
{
vout_thread_t *vout = cfg->vout;
vout_thread_sys_t *sys = vout->p;
@@ -1914,7 +1914,6 @@ int vout_Request(const vout_configuration_t *cfg, input_thread_t *input)
assert(!sys->dummy);
assert(vout != NULL);
assert(cfg->fmt != NULL);
- assert(cfg->clock != NULL);
if (!VoutCheckFormat(cfg->fmt))
return -1;
@@ -1959,19 +1958,33 @@ int vout_Request(const vout_configuration_t *cfg, input_thread_t *input)
if (vout_window_Enable(sys->display_cfg.window, &wcfg)) {
vlc_mutex_unlock(&sys->window_lock);
- goto error;
+ msg_Err(vout, "window enabling failed");
+ video_format_Clean(&sys->original);
+ return -1;
}
sys->window_enabled = true;
} else
vout_UpdateWindowSizeLocked(vout);
+ vlc_mutex_unlock(&sys->window_lock);
+
+ return 0;
+}
+
+int vout_Request(const vout_configuration_t *cfg, input_thread_t *input)
+{
+ vout_thread_t *vout = cfg->vout;
+ vout_thread_sys_t *sys = vout->p;
+
+ assert(cfg->clock != NULL);
+
+ if (VoutEnableWindow(cfg) != 0)
+ return -1;
sys->delay = 0;
sys->rate = 1.f;
sys->clock = cfg->clock;
sys->delay = 0;
- vlc_mutex_unlock(&sys->window_lock);
-
if (vout_Start(vout, cfg))
{
vlc_mutex_lock(&sys->window_lock);
--
2.17.1
More information about the vlc-devel
mailing list