vl: fix low strength denoise filter

A filter strength of zero or one doesn't make any
sense. Thanks to Andy Furniss for pointing this out.

Signed-off-by: Christian König <deathsimple@vodafone.de>
This commit is contained in:
Christian König 2012-02-13 11:41:23 +01:00
parent 356eb0aadb
commit 553e820387
3 changed files with 7 additions and 7 deletions

View File

@ -165,7 +165,7 @@ generate_offsets(enum vl_median_filter_shape shape, unsigned size,
assert(offsets && num_offsets);
/* size needs to be odd */
size = align(size, 2) - 1;
size = align(size + 1, 2) - 1;
half_size = size >> 1;
switch(shape) {
@ -249,7 +249,7 @@ vl_median_filter_init(struct vl_median_filter *filter, struct pipe_context *pipe
assert(filter && pipe);
assert(width && height);
assert(size > 0 && size < 20);
assert(size > 1 && size < 20);
memset(filter, 0, sizeof(*filter));
filter->pipe = pipe;

View File

@ -278,12 +278,12 @@ vlVdpVideoMixerUpdateNoiseReductionFilter(vlVdpVideoMixer *vmixer)
}
/* and create a new filter as needed */
if (vmixer->noise_reduction. enabled && vmixer->noise_reduction.level > 0.0f) {
if (vmixer->noise_reduction. enabled && vmixer->noise_reduction.level > 0) {
vmixer->noise_reduction.filter = MALLOC(sizeof(struct vl_median_filter));
vl_median_filter_init(vmixer->noise_reduction.filter,
vmixer->device->context->pipe,
vmixer->video_width, vmixer->video_height,
9 * vmixer->noise_reduction.level,
vmixer->noise_reduction.level + 1,
VL_MEDIAN_FILTER_CROSS);
}
}
@ -545,7 +545,7 @@ vlVdpVideoMixerSetAttributeValues(VdpVideoMixer mixer,
if (val < 0.f || val > 1.f)
return VDP_STATUS_INVALID_VALUE;
vmixer->noise_reduction.level = val;
vmixer->noise_reduction.level = val * 10;
vlVdpVideoMixerUpdateNoiseReductionFilter(vmixer);
break;
@ -658,7 +658,7 @@ vlVdpVideoMixerGetAttributeValues(VdpVideoMixer mixer,
break;
case VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL:
*(float*)attribute_values[i] = vmixer->noise_reduction.level;
*(float*)attribute_values[i] = (float)vmixer->noise_reduction.level / 10.0f;
break;
case VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA:

View File

@ -311,7 +311,7 @@ typedef struct
struct {
bool supported, enabled;
float level;
unsigned level;
struct vl_median_filter *filter;
} noise_reduction;