[Mesa-dev] [PATCH 5/9] vl/video_buffer: add YUYV and UYVY support
Christian König
deathsimple at vodafone.de
Fri Mar 9 02:12:18 PST 2012
On 08.03.2012 22:36, Jose Fonseca wrote:
>
> ----- Original Message -----
>> This gets xine working with VDPAU.
>>
>> v2: some minor bugfixes.
>> v3: create the resource with the subsampled
>> format to avoid tilling problems
>>
>> Signed-off-by: Christian König<deathsimple at vodafone.de>
> [...]
>> @@ -269,18 +307,21 @@ vl_video_buffer_sampler_view_components(struct
>> pipe_video_buffer *buffer)
>>
>> pipe = buf->base.context;
>>
>> + sampler_format = vl_video_buffer_formats(pipe->screen,
>> buf->base.buffer_format);
>> plane_order =
>> vl_video_buffer_plane_order(buf->base.buffer_format);
>>
>> for (component = 0, i = 0; i< buf->num_planes; ++i ) {
>> struct pipe_resource *res = buf->resources[plane_order[i]];
>> unsigned nr_components =
>> util_format_get_nr_components(res->format);
>> + if (util_format_is_subsampled(res->format))
> Please, no more of this sort of helpers functions such as util_format_get_nr_components() and util_format_is_subsampled() which do nothing more than invoking util_format_description() and read a member variable.
>
> Please invoke util_format_description() only once here and then access any info as you please.
>
> > From now on I'm going to refuse any more u_format helpers that take pipe_format as arguments -- they appear to simplify things but in truth they just promote inefficient and redundant code. External functions that want to reason about formats should invoke util_format_description() or receive the format description as parameter.
Well, that's how the code looked originally, and I have no problem
changing it back to that state. But then we should clean up all the
other functions as well, cause my intention was to follow what I thought
was the general usage style of util_format_* informations.
On the other hand what is so bad about single line INLINED accessor
functions (apart from the obvious: That every problem in computer since
can be solved with another layer of indirection)?
Assuming at some point in the future we want to add an
UTIL_FORMAT_LAYOUT_PLANAR, then we would need to check every access of
util_format_description->layout if adding that enumeration value doesn't
break its usecase. With accessor functions and only indirect using
util_format_description information we won't have that problem, cause
every usecase is handled by that functions and not directly in the code
using that component.
But as you already stated, that approach has the possibility of creating
lots of accessor functions and bloating the code quite a bit.
Anyway I'm going to change it back to the original state and committing
the result, since I really have better things todo than starting a
discussion about coding style.
Christian.
More information about the mesa-dev
mailing list