[Libva] Filling background pixels with YUV values

Xiang, Haihao haihao.xiang at intel.com
Mon Dec 26 00:41:37 UTC 2016


Hi Dmitry,

VAProcPipelineParameterBuffer::output_color_standard set the color
standard on the target surface which is specified by the 3rd parameter
of vaBeginPicture().

Thanks
Haihao


> Haihao, could you, please, clarify API:
> does VAProcPipelineParameterBuffer::output_color_standard sets color
> format for the value
> in VAProcPipelineParameterBuffer::output_background_color or it sets
> something else?
> 
> As usual, we need to understand:
> 1) do we have required API in place (regardless whether driver
> supports such a trick or not)
> 2) do we have such support in the driver right now?
> 
> Dmitry.
> 
> On 23 Dec 2016, at 20:01, Recker, Jon <jon.recker at intel.com> wrote:
> 
> > Thank you for the information, Haihao. I have filed this feature
> > request in bugzilla.
> >  
> > https://bugs.freedesktop.org/show_bug.cgi?id=99193
> >                                                                    
> >    
> > Jon
> >  
> > -----Original Message-----
> > From: Xiang, Haihao 
> > Sent: Friday, December 23, 2016 12:55 AM
> > To: Recker, Jon <jon.recker at intel.com>; libva at lists.freedesktop.org
> > Subject: Re: [Libva] Filling background pixels with YUV values
> >  
> >  
> > Hi Jon,
> >  
> > VA-API doesn't support YUV background color. If you want to have
> > this feature, I suggest you file a bug with severity set to
> > enhancement in the bugzilla to track your requirement. We may
> > consider to add this new feature in a future version.
> >  
> > Thanks
> > Haihao
> >  
> > > Hello.
> > >  
> > > When composing several sources into a single output surface, we
> > can
> > > specify the color of the background pixels using
> > > VAProcPipelineParameterBuffer::output_background_color. According
> > to
> > > the documentation, this background color must be a 32-bit ARGB
> > value.
> > >  
> > > But when the output is a non-RGB format (for example, NV12) it
> > would
> > > be helpful if we could set the background color to a constant YUV
> > > value instead. Does libva provide any method to do this?
> > >  
> > > I have tried converting the desired YUV background color to RGB,
> > then
> > > setting output_background_color to this RGB value. When the final
> > > picture is processed, the background color is converted back to
> > YUV
> > > automatically. But the final background color does not
> > necessarily
> > > match the requested value, for example when one of the RGB
> > channels is
> > > clipped to fit in the range [0,255].
> > >  
> > > A workaround would be to create a separate full-size NV12 surface
> > and
> > > fill it with the desired background color, but for performance
> > reasons
> > > it is preferable to avoid this. Any suggestions would be very
> > much
> > > appreciated. Thanks.
> > >  
> > > Jon
> > >  
> > > _______________________________________________
> > > Libva mailing list
> > > Libva at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/libva
> > _______________________________________________
> > Libva mailing list
> > Libva at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/libva


More information about the Libva mailing list