X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=futatabi%2Fframe_on_disk.h;fp=futatabi%2Fframe_on_disk.h;h=c8a74a758ffdc19e6fad72c34a9246408893971f;hp=35f375bb78ef37a6522b351cea981e4a0643bf4e;hb=e50640781eb513dea339bc267c921028b16e744d;hpb=10343a951dc058a6706c0c2158bbc06544ee1cd9 diff --git a/futatabi/frame_on_disk.h b/futatabi/frame_on_disk.h index 35f375b..c8a74a7 100644 --- a/futatabi/frame_on_disk.h +++ b/futatabi/frame_on_disk.h @@ -61,6 +61,13 @@ find_last_frame_before(std::vector &frames, int64_t pts_origin) [](const FrameOnDisk &frame, int64_t pts) { return frame.pts < pts; }); } +inline std::vector::const_iterator +find_last_frame_before(const std::vector &frames, int64_t pts_origin) +{ + return std::lower_bound(frames.begin(), frames.end(), pts_origin, + [](const FrameOnDisk &frame, int64_t pts) { return frame.pts < pts; }); +} + inline std::vector::iterator find_first_frame_at_or_after(std::vector &frames, int64_t pts_origin) { @@ -68,4 +75,11 @@ find_first_frame_at_or_after(std::vector &frames, int64_t pts_origi [](int64_t pts, const FrameOnDisk &frame) { return pts < frame.pts; }); } +inline std::vector::const_iterator +find_first_frame_at_or_after(const std::vector &frames, int64_t pts_origin) +{ + return std::upper_bound(frames.begin(), frames.end(), pts_origin - 1, + [](int64_t pts, const FrameOnDisk &frame) { return pts < frame.pts; }); +} + #endif // !defined(_FRAME_ON_DISK_H)