I want to do osd(on ) by vpp ,that is blending a RGBA picture on another picture,but only pixels that alpha channel value is not zero will display on screen,and I've found that PixelAlphaEnable will make this ok! But the problem is
blending a RGBA to a RGBA is right
blending a RGBA to YUV is wrong.
So does vpp support blending RGBA to NV12 when in PixelAlphaEnable mode?
Yes, VPP supports blending RGBA to NV12 only in case of per pixel alpha blending. Each RGB input surface can be blended with underling surfaces by using PixelAlphaEnable value.
Could you please provide me the following to reproduce the problem:
1. Bottom stream.
2. Top stream.
3. Parameters file (.par) that you use.
On using add "-vaapi" to command line options of sample_vpp blending of RGBA file worked. On adding second file to par.txt, blending of one RGBA is bad. I've attached the following:
a. Par file - par.txt
b. Bottom stream - HD_1frame.yuv (NV12)
c. Top stream - cadbury_rgba.rgb
d. Output stream - out.yuv (NV12)
e. Command - sudo -E ./_bin/sample_vpp -lib hw -vaapi -composite par.txt -o out.yuv
Thank you for providing attachments! It isn't a MSS bug. It's samples' constraint. Sample_vpp doesn't support blending more than two surfaces (rgb to nv12). But you can implement this feature in your own code with MSS. How critical for you to see blending multiple rgb streams to nv12 in our code samples?
Best wishes, Anna