diff options
Diffstat (limited to 'src/gallium/state_trackers/vdpau/mixer.c')
-rw-r--r-- | src/gallium/state_trackers/vdpau/mixer.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/vdpau/mixer.c b/src/gallium/state_trackers/vdpau/mixer.c index 2fe0f1ca6f4..83cbf8abdb1 100644 --- a/src/gallium/state_trackers/vdpau/mixer.c +++ b/src/gallium/state_trackers/vdpau/mixer.c @@ -26,8 +26,12 @@ **************************************************************************/ #include <vdpau/vdpau.h> + #include <util/u_memory.h> #include <util/u_debug.h> + +#include <vl/vl_csc.h> + #include "vdpau_private.h" VdpStatus @@ -42,6 +46,7 @@ vlVdpVideoMixerCreate(VdpDevice device, vlVdpVideoMixer *vmixer = NULL; struct pipe_video_context *context; VdpStatus ret; + float csc[16]; debug_printf("[VDPAU] Creating VideoMixer\n"); @@ -58,6 +63,14 @@ vlVdpVideoMixerCreate(VdpDevice device, vmixer->device = dev; vmixer->compositor = context->create_compositor(context); + vl_csc_get_matrix + ( + debug_get_bool_option("G3DVL_NO_CSC", FALSE) ? + VL_CSC_COLOR_STANDARD_IDENTITY : VL_CSC_COLOR_STANDARD_BT_601, + NULL, true, csc + ); + vmixer->compositor->set_csc_matrix(vmixer->compositor, csc); + /* * TODO: Handle features and parameters * */ |