Skip to content
  • Romain Vimont's avatar
    opengl: render YUY2 at full definition · 70509c8a
    Romain Vimont authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
    Some YUV 4:2:2 formats are packed: two consecutive pixels are stored
    using 4 values (for example [Y1 U Y2 V]).
    
    But in OpenGL we cannot have both:
     - a single texture, and
     - a correct native interpolation for both Y and UV components.
    
    To avoid the problem, the current implementation just dropped the Y2
    value, so the pictures were rendered at half the horizontal resolution.
    
    To render at full definition, upload the single plane into two separate
    OpenGL textures:
     - one in GL_RG, to read each Y value in a different texel;
     - one in GL_RGBA, to read both U and V values in a single texel.
    
    As a consequence, pic->i_planes is not necessarily equal to
    interop->tex_count anymore (there might be 1 picture plane but 2
    textures).
    
    Fixes #26712
    70509c8a
Loading