Пример #1
0
int main(int argc, char *argv[])
{
	const char *filename;
	unsigned count = 0;
	off_t filesize;

	static const char * const usage = "usage: test_seeking file.flac [#seeks]\n";

	if (argc < 1 || argc > 3) {
		fprintf(stderr, usage);
		return 1;
	}

	filename = argv[1];

	if (argc > 2)
		count = strtoul(argv[2], 0, 10);

	if (count < 30)
		fprintf(stderr, "WARNING: random seeks don't kick in until after 30 preprogrammed ones\n");

#if !defined _MSC_VER && !defined __MINGW32__
	{
		struct timeval tv;

		if (gettimeofday(&tv, 0) < 0) {
			fprintf(stderr, "WARNING: couldn't seed RNG with time\n");
			tv.tv_usec = 4321;
		}
		srandom(tv.tv_usec);
	}
#else
	srand(time(0));
#endif

	filesize = get_filesize_(filename);
	if (filesize < 0) {
		fprintf(stderr, "ERROR: can't determine filesize for %s\n", filename);
		return 1;
	}

	(void) signal(SIGINT, our_sigint_handler_);

	{
		FLAC__bool ok;
		if (strlen(filename) > 4 && 0 == strcmp(filename+strlen(filename)-4, ".ogg")) {
#ifdef FLAC__HAS_OGG
			ok = seek_barrage_ogg_flac(filename, filesize, count);
#else
			fprintf(stderr, "ERROR: Ogg FLAC not supported\n");
			ok = false;
#endif
		}
		else {
			ok = seek_barrage_native_flac(filename, filesize, count);
		}
		return ok? 0 : 2;
	}
}
Пример #2
0
int main(int argc, char *argv[])
{
	const char *filename;
	unsigned count = 0, read_mode;
	FLAC__int64 samples = -1;
	off_t filesize;

	static const char * const usage = "usage: test_seeking file.flac [#seeks] [#samples-in-file.flac]\n";

	if (argc < 2 || argc > 4) {
		fprintf(stderr, usage);
		return 1;
	}

	filename = argv[1];

	if (argc > 2)
		count = strtoul(argv[2], 0, 10);
	if (argc > 3)
#ifdef _MSC_VER
		samples = local__strtoull(argv[3]);
#else
		samples = strtoull(argv[3], 0, 10);
#endif

	if (count < 30)
		fprintf(stderr, "WARNING: random seeks don't kick in until after 30 preprogrammed ones\n");

#if !defined _MSC_VER && !defined __MINGW32__
	{
		struct timeval tv;

		if (gettimeofday(&tv, 0) < 0) {
			fprintf(stderr, "WARNING: couldn't seed RNG with time\n");
			tv.tv_usec = 4321;
		}
		srandom(tv.tv_usec);
	}
#else
	srand(time(0));
#endif

	filesize = get_filesize_(filename);
	if (filesize < 0) {
		fprintf(stderr, "ERROR: can't determine filesize for %s\n", filename);
		return 1;
	}

	(void) signal(SIGINT, our_sigint_handler_);

	for (read_mode = 0; read_mode <= 2; read_mode++) {
		FLAC__bool ok;
		if (strlen(filename) > 4 && 0 == strcmp(filename+strlen(filename)-4, ".ogg")) {
#if FLAC__HAS_OGG
			ok = seek_barrage(/*is_ogg=*/true, filename, filesize, count, samples, read_mode);
#else
			fprintf(stderr, "ERROR: Ogg FLAC not supported\n");
			ok = false;
#endif
		}
		else {
			ok = seek_barrage(/*is_ogg=*/false, filename, filesize, count, samples, read_mode);
		}
		if (!ok)
			return 2;
	}

	return 0;
}