Commit 2e1347ab authored by Max Kellermann's avatar Max Kellermann

decoder/audiofile: split audiofile_get_duration()

parent 9ddb5931
...@@ -54,17 +54,24 @@ struct AudioFileInputStream { ...@@ -54,17 +54,24 @@ struct AudioFileInputStream {
}; };
gcc_pure gcc_pure
static double
audiofile_get_duration(AFfilehandle fh)
{
double frame_count = afGetFrameCount(fh, AF_DEFAULT_TRACK);
double rate = afGetRate(fh, AF_DEFAULT_TRACK);
return frame_count / rate;
}
gcc_pure
static int static int
audiofile_get_duration(Path path_fs) audiofile_get_duration(Path path_fs)
{ {
int total_time;
AFfilehandle af_fp = afOpenFile(path_fs.c_str(), "r", nullptr); AFfilehandle af_fp = afOpenFile(path_fs.c_str(), "r", nullptr);
if (af_fp == AF_NULL_FILEHANDLE) { if (af_fp == AF_NULL_FILEHANDLE) {
return -1; return -1;
} }
total_time = (int) int total_time = int(audiofile_get_duration(af_fp));
((double)afGetFrameCount(af_fp, AF_DEFAULT_TRACK)
/ afGetRate(af_fp, AF_DEFAULT_TRACK));
afCloseFile(af_fp); afCloseFile(af_fp);
return total_time; return total_time;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment