X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fframe_on_disk.cpp;h=9a870947b4b84c171de2897ae5ad9523a88f6e52;hb=33b86069c755119da2a35af63fbd580ca9abfa7c;hp=34fcd38ef768394edb59d4e08ea9796fd2451de1;hpb=1a9150fd8435914eec35a0dbdff3a9a2266d9e97;p=nageru diff --git a/futatabi/frame_on_disk.cpp b/futatabi/frame_on_disk.cpp index 34fcd38..9a87094 100644 --- a/futatabi/frame_on_disk.cpp +++ b/futatabi/frame_on_disk.cpp @@ -1,12 +1,12 @@ -#include -#include +#include "frame_on_disk.h" + +#include "shared/metrics.h" #include #include +#include #include - -#include "frame_on_disk.h" -#include "shared/metrics.h" +#include using namespace std; using namespace std::chrono; @@ -16,10 +16,10 @@ namespace { // There can be multiple FrameReader classes, so make all the metrics static. once_flag frame_metrics_inited; -atomic metric_frame_opened_files{0}; -atomic metric_frame_closed_files{0}; -atomic metric_frame_read_bytes{0}; -atomic metric_frame_read_frames{0}; +atomic metric_frame_opened_files{ 0 }; +atomic metric_frame_closed_files{ 0 }; +atomic metric_frame_read_bytes{ 0 }; +atomic metric_frame_read_frames{ 0 }; Summary metric_frame_read_time_seconds; @@ -27,13 +27,13 @@ Summary metric_frame_read_time_seconds; FrameReader::FrameReader() { - call_once(frame_metrics_inited, []{ + call_once(frame_metrics_inited, [] { global_metrics.add("frame_opened_files", &metric_frame_opened_files); global_metrics.add("frame_closed_files", &metric_frame_closed_files); global_metrics.add("frame_read_bytes", &metric_frame_read_bytes); global_metrics.add("frame_read_frames", &metric_frame_read_frames); - vector quantiles{0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99}; + vector quantiles{ 0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99 }; metric_frame_read_time_seconds.init(quantiles, 60.0); global_metrics.add("frame_read_time_seconds", &metric_frame_read_time_seconds); }); @@ -66,7 +66,7 @@ string FrameReader::read_frame(FrameOnDisk frame) fd = open(filename.c_str(), O_RDONLY); if (fd == -1) { perror(filename.c_str()); - exit(1); + abort(); } // We want readahead. (Ignore errors.) @@ -76,14 +76,17 @@ string FrameReader::read_frame(FrameOnDisk frame) ++metric_frame_opened_files; } + // TODO: Read the audio. + string str; str.resize(frame.size); off_t offset = 0; while (offset < frame.size) { int ret = pread(fd, &str[offset], frame.size - offset, frame.offset + offset); if (ret <= 0) { + string filename = frame_filenames[frame.filename_idx]; perror("pread"); - exit(1); + abort(); } offset += ret;