vlc | branch: master | Steve Lhomme <[email protected]> | Tue Nov 20 11:18:25 2018 +0100| [1b3be396a304d55469a92b76bc9154981ebb87ff] | committer: Steve Lhomme
libvlc: return false if setting the vout callback fails The engine provide may have a wrong value or may not be supported on the given platform/build. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1b3be396a304d55469a92b76bc9154981ebb87ff --- include/vlc/libvlc_media_player.h | 3 ++- lib/media_player.c | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h index 8fa3abda6f..c85e17eb79 100644 --- a/include/vlc/libvlc_media_player.h +++ b/include/vlc/libvlc_media_player.h @@ -504,10 +504,11 @@ typedef enum libvlc_video_engine_t { * \param makeCurrent_cb callback called to enter/leave the opengl context (cannot be NULL) * \param getProcAddress_cb opengl function loading callback (cannot be NULL) * \param opaque private pointer passed to callbacks + * \libvlc_return_bool * \version LibVLC 4.0.0 or later */ LIBVLC_API -void libvlc_video_set_output_callbacks( libvlc_media_player_t *mp, +int libvlc_video_set_output_callbacks( libvlc_media_player_t *mp, libvlc_video_engine_t engine, libvlc_video_setup_cb setup_cb, libvlc_video_cleanup_cb cleanup_cb, diff --git a/lib/media_player.c b/lib/media_player.c index 89ba10d638..4079efd4b0 100644 --- a/lib/media_player.c +++ b/lib/media_player.c @@ -1160,7 +1160,7 @@ void libvlc_video_set_format( libvlc_media_player_t *mp, const char *chroma, var_SetInteger( mp, "vmem-pitch", pitch ); } -void libvlc_video_set_output_callbacks( libvlc_media_player_t *mp, +int libvlc_video_set_output_callbacks( libvlc_media_player_t *mp, libvlc_video_engine_t engine, libvlc_video_setup_cb setup_cb, libvlc_video_cleanup_cb cleanup_cb, @@ -1182,11 +1182,13 @@ void libvlc_video_set_output_callbacks( libvlc_media_player_t *mp, var_SetString ( mp, "vout", "gles2" ); var_SetString ( mp, "gles2", "vgl" ); } - else + else if( engine == libvlc_video_engine_opengl ) { var_SetString ( mp, "vout", "gl" ); var_SetString ( mp, "gl", "vgl"); } + else + return 0; var_SetAddress( mp, "vout-cb-opaque", opaque ); var_SetAddress( mp, "vout-cb-setup", setup_cb ); @@ -1195,6 +1197,7 @@ void libvlc_video_set_output_callbacks( libvlc_media_player_t *mp, var_SetAddress( mp, "vout-cb-swap", swap_cb ); var_SetAddress( mp, "vout-cb-get-proc-address", getProcAddress_cb ); var_SetAddress( mp, "vout-cb-make-current", makeCurrent_cb ); + return 1; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
