[Mesa-dev] [PATCH v3] st/vdpau: change the order in which filters are applied(v3)
Christian König
christian.koenig at amd.com
Fri Aug 19 12:27:33 UTC 2016
Hi Nayan,
double check the width/height of the surface and also how many you got
with a debugger.
Actually thinking more about it it could be that top/bottom fields are
separated and so you got width&height/2 and width/2&height/4 compared to
the video mixer.
Maybe try your idea instead of caching the initialized filters with the
different sizes.
Regards,
Christian.
Am 18.08.2016 um 18:58 schrieb Nayan Deshmukh:
> Hi Christian,
>
> I tried using 3 instances of the filter with original height & width,
> height/2 & width and height/2 and width/2.
> I am applying the 3 filters by checking the width and height of
> surfaces respectively.
>
> The chroma artifacts are still present, different from the initial
> ones. Any suggestion for the fixup?
> I tried debugging, but I think I am missing something.
>
> Regards,
> Nayan.
>
> On Wed, Aug 17, 2016 at 2:59 PM, Andy Furniss <adf.lists at gmail.com> wrote:
>> Christian König wrote:
>>> Top and Bottom field are separated in this representation.
>>>
>>> So you got a maximum of 3 planes multiplied by two fields.
>>
>> Ahh, thanks.
>>
>>
>>> Regards,
>>> Christian.
>>>
>>> Am 17.08.2016 um 11:11 schrieb Andy Furniss:
>>>> Nayan Deshmukh wrote:
>>>>
>>>>> Sorry for the misleading language. What I meant was that the filter
>>>>> should only
>>>>> be applied to first resource i.e. use only first sampler_view and
>>>>> surface. As you
>>>>> replaced i by 0 the filter gets applied multiple times. I tried doing
>>>>> that and I am
>>>>> experiencing same problems i.e. artifacts with positive sharpen.
>>>>>
>>>>> So can you please it try it again by replacing VL_MAX_SURFACES with 1
>>>>> in the
>>>>> for loop. It should probably fix the problems.
>>>>
>>>> Possibly a stupid question, because I don't know how this stuff works,
>>>> but why does it loop 6 times per frame rather than 3?
>>>>
>>>> I mean as seen if I put a printf as below.
>>>>
>>>>>>>>>> + for(i = 0; i < VL_MAX_SURFACES; ++i) {
>>>>>>>>>> + if(sampler_views[i] != NULL && surfaces[i] != NULL) {
>>>> fprintf(stderr,"ADF: i = %d\n", i);
>>>>>>>>>> + if (vmixer->noise_reduction.filter)
>>>>>>>>>> + vl_median_filter_render(vmixer->noise_reduction.filter,
>>>>>>>>>> + sampler_views[i],
>>>>>>>>>> surfaces[i]);
>>>>>>>>>> +
>>>>>>>>>> + if (vmixer->sharpness.filter)
>>>>>>>>>> + vl_matrix_filter_render(vmixer->sharpness.filter,
>>>>>>>>>> + sampler_views[i],
>>>>>>>>>> surfaces[i]);
>>>>
>>>
More information about the mesa-dev
mailing list