shithub: libsamplerate

Download patch

ref: a8e287b9889b465eb73b4b13f64532a1c5f99a70
parent: a7000b1ce588f3759fdd1b07e29a1f0a4ea8bb5a
author: Erik de Castro Lopo <erikd@miles>
date: Sat Nov 19 04:42:30 EST 2005

timewarp-file.c : Program now working.

--- a/examples/timewarp-file.c
+++ b/examples/timewarp-file.c
@@ -1,5 +1,5 @@
 /*
-** Copyright (C) 2002-2004 Erik de Castro Lopo <[email protected]>
+** Copyright (C) 2005 Erik de Castro Lopo <[email protected]>
 **
 ** This program is free software; you can redistribute it and/or modify
 ** it under the terms of the GNU General Public License as published by
@@ -53,6 +53,7 @@
 	if (argc != 3)
 		usage_exit (argv [0]) ;
 
+	putchar ('\n') ;
 	printf ("Input File    : %s\n", argv [argc - 2]) ;
 	if ((infile = sf_open (argv [argc - 2], SFM_READ, &sfinfo)) == NULL)
 	{	printf ("Error : Not able to open input file '%s'\n", argv [argc - 2]) ;
@@ -77,7 +78,7 @@
 	sf_command (outfile, SFC_SET_CLIPPING, NULL, SF_TRUE) ;
 
 	printf ("Output file   : %s\n", argv [argc - 1]) ;
-	printf ("Converter     : %s\n\n", src_get_name (DEFAULT_CONVERTER)) ;
+	printf ("Converter     : %s\n", src_get_name (DEFAULT_CONVERTER)) ;
 
 	count = timewarp_convert (infile, outfile, DEFAULT_CONVERTER, sfinfo.channels) ;
 
@@ -94,14 +95,14 @@
 
 static TIMEWARP_FACTOR warp [] =
 {	{	0		, 1.00000001 },
-	{	20000	, 1.00010000 },
-	{	20062	, 1.00000001 },
-	{	40000	, 1.01000000 },
-	{	40071	, 1.00000001 },
-	{	60000	, 1.20000000 },
-	{	60081	, 1.00000001 },
+	{	20000	, 1.01000000 },
+	{	20200	, 1.00000001 },
+	{	40000	, 1.20000000 },
+	{	40300	, 1.00000001 },
+	{	60000	, 1.10000000 },
+	{	60400	, 1.00000001 },
 	{	80000	, 1.50000000 },
-	{	80091	, 1.00000001 },
+	{	81000	, 1.00000001 },
 } ;
 
 static sf_count_t
@@ -132,7 +133,9 @@
 	if (warp [0].index > 0)
 		src_data.src_ratio = 1.0 ;
 	else
-		src_data.src_ratio = warp [0].ratio ;
+	{	src_data.src_ratio = warp [0].ratio ;
+		warp_index ++ ;
+		} ;
 
 	src_data.data_out = output ;
 	src_data.output_frames = BUFFER_LEN /channels ;
@@ -139,8 +142,7 @@
 
 	while (1)
 	{
-
-		if (warp_index < ARRAY_LEN (warp) - 1 && input_count < warp [warp_index].index && input_count > warp [warp_index + 1].index)
+		if (warp_index < ARRAY_LEN (warp) - 1 && input_count >= warp [warp_index].index)
 		{	src_data.src_ratio = warp [warp_index].ratio ;
 			warp_index ++ ;
 			} ;