• Hans Verkuil's avatar
    [media] vivid: fix broken Bayer text rendering · 3541e349
    Hans Verkuil authored
    Sometimes when a Bayer pixelformat is selected the rendering of the OSD text
    by vivid was all wrong: every other line of the text was shifted by half the width
    or more.
    
    It turned out that to render Bayer formats the interleaved boolean is set to true
    in the tpg. This mode indicates a semi-biplanar mode where two interleaved planes
    are used to render the frame. From outside the tpg it looks like a single plane,
    but internally it is two planes.
    
    However, in the tpg_s_bytesperline() function the interleaved bool wasn't checked
    and only the bytesperline value for plane 0 was updated. But for the interleaved
    mode the same value has to be copied to bytesperline[1] as well.
    
    The effect was that whatever old value was left in bytesperline[1] was used, which
    caused all sorts of weird and seemingly unpredictable shifts.
    Reported-by: default avatarOve Brynestad <ovebryne@cisco.com>
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
    3541e349
vivid-tpg.h 14.1 KB