Skip to content
  • Stephen Warren's avatar
    Implement workarounds for Adobe Flash bugs · ca9e637c
    Stephen Warren authored and Aaron Plattner's avatar Aaron Plattner committed
    
    
    Implement two workarounds:
    
    1) Swap U and V planes to VdpVideoSurfacePutBitsYCbCr to fix blue-tinged
       videos.
    
    2) Disable VdpPresentationQueueSetBackgroundColor, so that Flash doesn't
       set the background to pure black or pure white, which would cause the
       VDPAU image to bleed through to other parts of the desktop with those
       very common colors.
    
    These workarounds are only enabled when running under Flash player, and
    may be individually controlled via /etc/vdpau_wrapper.cfg, should they
    ever need to be disabled.
    
    Note that this code stores the VDPAU backend function pointers as global
    variables, which is technically incorrect. However, the likelihood of
    any known VDPAU implementation ever returning different values for these
    pointers within a single process is zero. If this becomes a problem, a
    hash table of VdpDevice to the stored pointers should be implemented.
    
    Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
    Reviewed-by: Aaron Plattner's avatarAaron Plattner <aplattner@nvidia.com>
    Signed-off-by: Aaron Plattner's avatarAaron Plattner <aplattner@nvidia.com>
    [aplattner@nvidia.com: fixed distcheck by changing it to dist_libvdpausysconf_DATA]
    ca9e637c