[vlc-devel] [RFC PATCH] libvlc_media_player: don't use any vout if vout configuration fails
Thomas Guillem
thomas at gllm.fr
Thu Oct 15 14:16:29 CEST 2015
Maybe we should also assert ?
Ideally these functions should return an integer to signal an error.
It's hard to reproduce with macosx, android, or win32 build. But I'm working on
an evas video output, and I don't want to fallback to a default vout without
any window if my (future function) libvlc_media_player_set_evas_object fails
(fail because libvlc is not built with --enable-evas).
---
lib/media_player.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/lib/media_player.c b/lib/media_player.c
index 9824ede..e911f96 100644
--- a/lib/media_player.c
+++ b/lib/media_player.c
@@ -1051,7 +1051,10 @@ void libvlc_media_player_set_nsobject( libvlc_media_player_t *p_mi,
var_SetString (p_mi, "window", "");
var_SetAddress (p_mi, "drawable-nsobject", drawable);
#else
- (void) p_mi; (void)drawable;
+ (void)drawable;
+ libvlc_printerr ("can't set nsobject: APPLE build required");
+ var_SetString (p_mi, "vout", "none");
+ var_SetString (p_mi, "window", "none");
#endif
}
@@ -1075,7 +1078,10 @@ void * libvlc_media_player_get_nsobject( libvlc_media_player_t *p_mi )
void libvlc_media_player_set_agl( libvlc_media_player_t *p_mi,
uint32_t drawable )
{
- (void) p_mi; (void)drawable;
+ (void)drawable;
+ libvlc_printerr ("can't set agl: use libvlc_media_player_set_nsobject instead");
+ var_SetString (p_mi, "vout", "none");
+ var_SetString (p_mi, "window", "none");
}
/**************************************************************************
@@ -1123,7 +1129,10 @@ void libvlc_media_player_set_hwnd( libvlc_media_player_t *p_mi,
(drawable != NULL) ? "embed-hwnd,any" : "");
var_SetInteger (p_mi, "drawable-hwnd", (uintptr_t)drawable);
#else
- (void) p_mi; (void) drawable;
+ (void) drawable;
+ libvlc_printerr ("can't set nsobject: WIN32 build required");
+ var_SetString (p_mi, "vout", "none");
+ var_SetString (p_mi, "window", "none");
#endif
}
@@ -1153,7 +1162,10 @@ void libvlc_media_player_set_android_context( libvlc_media_player_t *p_mi,
var_SetAddress (p_mi, "android-jvm", p_jvm);
var_SetAddress (p_mi, "drawable-androidwindow", p_awindow_handler);
#else
- (void) p_mi; (void) p_jvm; (void) p_awindow_handler;
+ (void) p_jvm; (void) p_awindow_handler;
+ libvlc_printerr ("can't set android context: ANDROID build required");
+ var_SetString (p_mi, "vout", "none");
+ var_SetString (p_mi, "window", "none");
#endif
}
--
2.1.4
More information about the vlc-devel
mailing list