forked from len0rd/rockbox
		
	later. We still need to hunt down snippets used that are not. 1324 modified files... http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
		
			
				
	
	
		
			97 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**************************************************************************
 | |
|  *             __________               __   ___.
 | |
|  *   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
 | |
|  *   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
 | |
|  *   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
 | |
|  *   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
 | |
|  *                     \/            \/     \/    \/            \/
 | |
|  *
 | |
|  * Copyright (C) 2007 Thom Johansen
 | |
|  *
 | |
|  * 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 the Free Software Foundation; either version 2
 | |
|  * of the License, or (at your option) any later version.
 | |
|  *
 | |
|  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 | |
|  * KIND, either express or implied.
 | |
|  *
 | |
|  ***************************************************************************/
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| #include <stdbool.h>
 | |
| 
 | |
| #include "rbspeex.h"
 | |
| 
 | |
| #define USAGE_TEXT \
 | |
| "Usage: rbspeexenc [options] infile outfile\n"\
 | |
| "Options:\n"\
 | |
| "  -q x   Quality, floating point number in the range [0-10], default 8.0\n"\
 | |
| "  -c x   Complexity, increases quality for a given bitrate, but encodes\n"\
 | |
| "         slower, range [0-10], default 3\n"\
 | |
| "  -n     Enable narrowband mode, will resample input to 8 kHz\n"\
 | |
| "  -v x   Volume, amplitude multiplier, default 1.0\n\n"\
 | |
| "rbspeexenc expects a mono 16 bit WAV file as input. Files will be resampled\n"\
 | |
| "to either 16 kHz by default, or 8 kHz if narrowband mode is enabled.\n"\
 | |
| "WARNING: This tool will create files that are only usable by Rockbox!\n"
 | |
| 
 | |
| 
 | |
| int main(int argc, char **argv)
 | |
| {
 | |
|     char *inname, *outname;
 | |
|     FILE *fin, *fout;
 | |
|     int i;
 | |
|     int complexity = 3;
 | |
|     float quality = 8.f, volume = 1.0f;
 | |
|     bool narrowband = false;
 | |
|     bool ret;
 | |
|     char errstr[512];
 | |
| 
 | |
|     if (argc < 3) {
 | |
|         printf(USAGE_TEXT);
 | |
|         return 1;
 | |
|     }
 | |
| 
 | |
|     i = 1;
 | |
|     while (i < argc - 2) {
 | |
|         if (strncmp(argv[i], "-q", 2) == 0)
 | |
|             quality = atof(argv[++i]);
 | |
|         else if (strncmp(argv[i], "-c", 2) == 0)
 | |
|             complexity = atoi(argv[++i]);
 | |
|         else if (strncmp(argv[i], "-v", 2) == 0)
 | |
|             volume = atof(argv[++i]);
 | |
|         else if (strncmp(argv[i], "-n", 2) == 0)
 | |
|             narrowband = true;
 | |
|         else {
 | |
|             printf("Error: unrecognized option '%s'\n", argv[i]);
 | |
|             return 1;
 | |
|         }
 | |
|         ++i;
 | |
|     }
 | |
|     inname = argv[argc - 2];
 | |
|     outname = argv[argc - 1];
 | |
| 
 | |
|     if ((fin = fopen(inname, "rb")) == NULL) {
 | |
|         printf("Error: could not open input file\n");
 | |
|         return 1;
 | |
|     }
 | |
|     if ((fout = fopen(outname, "wb")) == NULL) {
 | |
|         printf("Error: could not open output file\n");
 | |
|         return 1;
 | |
|     }
 | |
| 
 | |
|     ret = encode_file(fin, fout, quality, complexity, narrowband, volume,
 | |
|                       errstr, sizeof(errstr));
 | |
|     fclose(fin);
 | |
|     fclose(fout);
 | |
|     if (!ret) {
 | |
|         /* Attempt to delete unfinished output */
 | |
|         printf("Error: %s\n", errstr);
 | |
|         remove(outname);
 | |
|         return 1;
 | |
|     }
 | |
|     return 0;
 | |
| }
 | |
| 
 |