summaryrefslogtreecommitdiffstats
path: root/video/vdpau_functions.inc
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-05-28 01:37:53 +0200
committerwm4 <wm4@nowhere>2014-05-28 02:08:45 +0200
commitd99f30d7266aeaa13504bce181c4410b41e9cb46 (patch)
tree91261366e7606e53cfc508bfac85ddeb9ab3f9a1 /video/vdpau_functions.inc
parent8dfd93c6fbaa2af1f0f996072f0db52bd83ee28d (diff)
downloadmpv-d99f30d7266aeaa13504bce181c4410b41e9cb46.tar.bz2
mpv-d99f30d7266aeaa13504bce181c4410b41e9cb46.tar.xz
video: warn if an emulated hwdec API is used
mpv supports two hardware decoding APIs on Linux: vdpau and vaapi. Each of these has emulation wrappers. The wrappers are usually slower and have fewer features than their native opposites. In particular the libva vdpau driver is practically unmaintained. Check the vendor string and print a warning if emulation is detected. Checking vendor strings is a very stupid thing to do, but I find the thought of people using an emulated API for no reason worse. Also, make --hwdec=auto never use an API that is detected as emulated. This doesn't work quite right yet, because once one API is loaded, vo_opengl doesn't unload it, so no hardware decoding will be used if the first probed API (usually vdpau) is rejected. But good enough.
Diffstat (limited to 'video/vdpau_functions.inc')
-rw-r--r--video/vdpau_functions.inc1
1 files changed, 1 insertions, 0 deletions
diff --git a/video/vdpau_functions.inc b/video/vdpau_functions.inc
index 1789768c83..5604420f69 100644
--- a/video/vdpau_functions.inc
+++ b/video/vdpau_functions.inc
@@ -14,6 +14,7 @@ VDP_FUNCTION(VdpDecoderDestroy, VDP_FUNC_ID_DECODER_DESTROY, decoder_destroy)
VDP_FUNCTION(VdpDecoderRender, VDP_FUNC_ID_DECODER_RENDER, decoder_render)
VDP_FUNCTION(VdpDecoderQueryCapabilities, VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES, decoder_query_capabilities)
VDP_FUNCTION(VdpDeviceDestroy, VDP_FUNC_ID_DEVICE_DESTROY, device_destroy)
+VDP_FUNCTION(VdpGetInformationString, VDP_FUNC_ID_GET_INFORMATION_STRING, get_information_string)
VDP_FUNCTION(VdpGenerateCSCMatrix, VDP_FUNC_ID_GENERATE_CSC_MATRIX, generate_csc_matrix)
VDP_FUNCTION(VdpOutputSurfaceCreate, VDP_FUNC_ID_OUTPUT_SURFACE_CREATE, output_surface_create)
VDP_FUNCTION(VdpOutputSurfaceDestroy, VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY, output_surface_destroy)