From 86796e2a57adcf5daea9d182c4378e49b40a7f47 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sat, 11 Oct 2014 14:37:52 +0300 Subject: [PATCH] lib: disable decoding hardware acceleration with vmem This ensures that subpictures blending works, and avoids copying back video frames from GPU to CPU. For proper hardware acceleration, use libvlc_media_player_set_xwindow() instead. --- lib/media_player.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/media_player.c b/lib/media_player.c index f234b57c62..64240aaa3c 100644 --- a/lib/media_player.c +++ b/lib/media_player.c @@ -510,6 +510,7 @@ libvlc_media_player_new( libvlc_instance_t *instance ) var_Create (mp, "vmem-width", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT); var_Create (mp, "vmem-height", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT); var_Create (mp, "vmem-pitch", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT); + var_Create (mp, "avcodec-hw", VLC_VAR_STRING); var_Create (mp, "drawable-xid", VLC_VAR_INTEGER); #if defined (_WIN32) || defined (__OS2__) var_Create (mp, "drawable-hwnd", VLC_VAR_INTEGER); @@ -975,6 +976,7 @@ void libvlc_video_set_callbacks( libvlc_media_player_t *mp, var_SetAddress( mp, "vmem-display", display_cb ); var_SetAddress( mp, "vmem-data", opaque ); var_SetString( mp, "vout", "vmem" ); + var_SetString( mp, "avcodec-hw", "none" ); } void libvlc_video_set_format_callbacks( libvlc_media_player_t *mp, @@ -1055,6 +1057,7 @@ void libvlc_media_player_set_xwindow( libvlc_media_player_t *p_mi, { assert (p_mi != NULL); + var_SetString (p_mi, "avcodec-hw", ""); var_SetString (p_mi, "vout", drawable ? "xid" : "any"); var_SetString (p_mi, "window", drawable ? "embed-xid,any" : "any"); var_SetInteger (p_mi, "drawable-xid", drawable); -- 2.39.2