History

Fix a bug where src_callback_read() would hand under varying src_ratio.

Erik de Castro Lopo committed 19 years ago

Commit 2efc6b91 parent c61d92b4 files · +22 −27Browse files

Showing the changes to src/src_linear.c (1 of 4 files). Show all

Unified · Split

src/src_linear.c+4−4
@@ -83,8 +83,8 @@ linear_vari_process (SRC_PRIVATE *psrc, SRC_DATA *data) · 82 unmodified lines
8383 if (linear->in_used + linear->channels * input_index > linear->in_count)
8484 break ;
8585
86− if (fabs (psrc->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF)
87− src_ratio = psrc->last_ratio + linear->out_gen * (data->src_ratio - psrc->last_ratio) / (linear->out_count - 1) ;
86+ if (linear->out_count > 0 && fabs (psrc->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF)
87+ src_ratio = psrc->last_ratio + linear->out_gen * (data->src_ratio - psrc->last_ratio) / linear->out_count ;
8888
8989 for (ch = 0 ; ch < linear->channels ; ch++)
9090 { data->data_out [linear->out_gen] = (float) (linear->last_value [ch] + input_index *
@@ -103,8 +103,8 @@ linear_vari_process (SRC_PRIVATE *psrc, SRC_DATA *data) · 12 unmodified lines
103103 /* Main processing loop. */
104104 while (linear->out_gen < linear->out_count && linear->in_used + linear->channels * input_index <= linear->in_count)
105105 {
106− if (fabs (psrc->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF)
107− src_ratio = psrc->last_ratio + linear->out_gen * (data->src_ratio - psrc->last_ratio) / (linear->out_count - 1) ;
106+ if (linear->out_count > 0 && fabs (psrc->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF)
107+ src_ratio = psrc->last_ratio + linear->out_gen * (data->src_ratio - psrc->last_ratio) / linear->out_count ;
108108
109109 if (SRC_DEBUG && linear->in_used < linear->channels && input_index < 1.0)
110110 { printf ("Whoops!!!! in_used : %ld channels : %d input_index : %f\n", linear->in_used, linear->channels, input_index) ;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t