changeset 35210:318c7824c50d

af_hrtf: clamp output to relieve noises This patch relieves noises from af_hrtf by using av_clip_* instead of casting directly. There are still some noises, which indicates other bugs inside this filter.
author upsuper
date Wed, 31 Oct 2012 04:23:38 +0000
parents b7ec2526b402
children 014d0c671b80
files libaf/af_hrtf.c
diffstat 1 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libaf/af_hrtf.c	Tue Oct 30 18:53:58 2012 +0000
+++ b/libaf/af_hrtf.c	Wed Oct 31 04:23:38 2012 +0000
@@ -26,6 +26,7 @@
 #include <inttypes.h>
 
 #include <math.h>
+#include <libavutil/common.h>
 
 #include "mp_msg.h"
 #include "af.h"
@@ -542,16 +543,16 @@
 	      perception.  Note: Too much will destroy the acoustic space
 	      and may even result in headaches. */
 	   diff = STEXPAND2 * (left - right);
-	   out[0] = (int16_t)(left  + diff);
-	   out[1] = (int16_t)(right - diff);
+	   out[0] = av_clip_int16(left  + diff);
+	   out[1] = av_clip_int16(right - diff);
 	   break;
 	case HRTF_MIX_MATRIX2CH:
 	   /* Do attempt any stereo expansion with matrix encoded
 	      sources.  The L, R channels are already stereo expanded
 	      by the steering, any further stereo expansion will sound
 	      very unnatural. */
-	   out[0] = (int16_t)left;
-	   out[1] = (int16_t)right;
+	   out[0] = av_clip_int16(left);
+	   out[1] = av_clip_int16(right);
 	   break;
 	}