Dave Plater
98c148cc2c
- Add libbs2b-clipping.patch to remove clipping of overloaded samples. Patch is taken from: https://github.com/alexmarsev/libbs2b For more details see: https://github.com/strawberrymusicplayer/strawberry/issues/1320 OBS-URL: https://build.opensuse.org/request/show/1142856 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libbs2b?expand=0&rev=11
92 lines
3.1 KiB
Diff
92 lines
3.1 KiB
Diff
From 5ca2d59888df047f1e4b028e3a2fd5be8b5a7277 Mon Sep 17 00:00:00 2001
|
|
From: Alex Marsev <alex.marsev@gmail.com>
|
|
Date: Fri, 17 Oct 2014 11:09:04 +0300
|
|
Subject: [PATCH] Don't clip floating point samples
|
|
|
|
---
|
|
src/bs2b.c | 36 ------------------------------------
|
|
1 file changed, 36 deletions(-)
|
|
|
|
diff --git a/src/bs2b.c b/src/bs2b.c
|
|
index 623ca77..b87680c 100644
|
|
--- a/src/bs2b.c
|
|
+++ b/src/bs2b.c
|
|
@@ -350,12 +350,6 @@ void bs2b_cross_feed_d( t_bs2bdp bs2bdp, double *sample, int n )
|
|
{
|
|
cross_feed_d( bs2bdp, sample );
|
|
|
|
- /* Clipping of overloaded samples */
|
|
- if( sample[ 0 ] > 1.0 ) sample[ 0 ] = 1.0;
|
|
- if( sample[ 0 ] < -1.0 ) sample[ 0 ] = -1.0;
|
|
- if( sample[ 1 ] > 1.0 ) sample[ 1 ] = 1.0;
|
|
- if( sample[ 1 ] < -1.0 ) sample[ 1 ] = -1.0;
|
|
-
|
|
sample += 2;
|
|
} /* while */
|
|
} /* if */
|
|
@@ -374,12 +368,6 @@ void bs2b_cross_feed_dbe( t_bs2bdp bs2bdp, double *sample, int n )
|
|
|
|
cross_feed_d( bs2bdp, sample );
|
|
|
|
- /* Clipping of overloaded samples */
|
|
- if( sample[ 0 ] > 1.0 ) sample[ 0 ] = 1.0;
|
|
- if( sample[ 0 ] < -1.0 ) sample[ 0 ] = -1.0;
|
|
- if( sample[ 1 ] > 1.0 ) sample[ 1 ] = 1.0;
|
|
- if( sample[ 1 ] < -1.0 ) sample[ 1 ] = -1.0;
|
|
-
|
|
#ifndef WORDS_BIGENDIAN
|
|
int64swap( ( uint32_t * )sample );
|
|
int64swap( ( uint32_t * )( sample + 1 ) );
|
|
@@ -403,12 +391,6 @@ void bs2b_cross_feed_dle( t_bs2bdp bs2bdp, double *sample, int n )
|
|
|
|
cross_feed_d( bs2bdp, sample );
|
|
|
|
- /* Clipping of overloaded samples */
|
|
- if( sample[ 0 ] > 1.0 ) sample[ 0 ] = 1.0;
|
|
- if( sample[ 0 ] < -1.0 ) sample[ 0 ] = -1.0;
|
|
- if( sample[ 1 ] > 1.0 ) sample[ 1 ] = 1.0;
|
|
- if( sample[ 1 ] < -1.0 ) sample[ 1 ] = -1.0;
|
|
-
|
|
#ifdef WORDS_BIGENDIAN
|
|
int64swap( ( uint32_t * )sample );
|
|
int64swap( ( uint32_t * )( sample + 1 ) );
|
|
@@ -432,12 +414,6 @@ void bs2b_cross_feed_f( t_bs2bdp bs2bdp, float *sample, int n )
|
|
|
|
cross_feed_d( bs2bdp, sample_d );
|
|
|
|
- /* Clipping of overloaded samples */
|
|
- if( sample_d[ 0 ] > 1.0 ) sample_d[ 0 ] = 1.0;
|
|
- if( sample_d[ 0 ] < -1.0 ) sample_d[ 0 ] = -1.0;
|
|
- if( sample_d[ 1 ] > 1.0 ) sample_d[ 1 ] = 1.0;
|
|
- if( sample_d[ 1 ] < -1.0 ) sample_d[ 1 ] = -1.0;
|
|
-
|
|
sample[ 0 ] = ( float )sample_d[ 0 ];
|
|
sample[ 1 ] = ( float )sample_d[ 1 ];
|
|
|
|
@@ -464,12 +440,6 @@ void bs2b_cross_feed_fbe( t_bs2bdp bs2bdp, float *sample, int n )
|
|
|
|
cross_feed_d( bs2bdp, sample_d );
|
|
|
|
- /* Clipping of overloaded samples */
|
|
- if( sample_d[ 0 ] > 1.0 ) sample_d[ 0 ] = 1.0;
|
|
- if( sample_d[ 0 ] < -1.0 ) sample_d[ 0 ] = -1.0;
|
|
- if( sample_d[ 1 ] > 1.0 ) sample_d[ 1 ] = 1.0;
|
|
- if( sample_d[ 1 ] < -1.0 ) sample_d[ 1 ] = -1.0;
|
|
-
|
|
sample[ 0 ] = ( float )sample_d[ 0 ];
|
|
sample[ 1 ] = ( float )sample_d[ 1 ];
|
|
|
|
@@ -501,12 +471,6 @@ void bs2b_cross_feed_fle( t_bs2bdp bs2bdp, float *sample, int n )
|
|
|
|
cross_feed_d( bs2bdp, sample_d );
|
|
|
|
- /* Clipping of overloaded samples */
|
|
- if( sample_d[ 0 ] > 1.0 ) sample_d[ 0 ] = 1.0;
|
|
- if( sample_d[ 0 ] < -1.0 ) sample_d[ 0 ] = -1.0;
|
|
- if( sample_d[ 1 ] > 1.0 ) sample_d[ 1 ] = 1.0;
|
|
- if( sample_d[ 1 ] < -1.0 ) sample_d[ 1 ] = -1.0;
|
|
-
|
|
sample[ 0 ] = ( float )sample_d[ 0 ];
|
|
sample[ 1 ] = ( float )sample_d[ 1 ];
|
|
|