Updated RouteFrameReader to work on routes with missing segments (#20971)

old-commit-hash: 0dc27e3d6d
commatwo_master
Mitchell Goff 4 years ago committed by GitHub
parent 884736efc2
commit 7eed124138
  1. 7
      tools/lib/route_framereader.py

@ -16,7 +16,7 @@ class _FrameReaderDict(dict):
self._framereader_kwargs = framereader_kwargs self._framereader_kwargs = framereader_kwargs
def __missing__(self, key): def __missing__(self, key):
if key < len(self._camera_paths) and self._camera_paths[key] is not None: if self._camera_paths.get(key) is not None:
frame_reader = FrameReader(self._camera_paths[key], frame_reader = FrameReader(self._camera_paths[key],
self._cache_paths.get(key), **self._framereader_kwargs) self._cache_paths.get(key), **self._framereader_kwargs)
self[key] = frame_reader self[key] = frame_reader
@ -36,7 +36,10 @@ class RouteFrameReader(object):
kwargs: Forwarded to the FrameReader function. If cache_prefix is included, that path kwargs: Forwarded to the FrameReader function. If cache_prefix is included, that path
will also be used for frame position indices. will also be used for frame position indices.
""" """
self._first_camera_idx = next(i for i in range(len(camera_paths)) if camera_paths[i] is not None) if not isinstance(camera_paths, dict):
camera_paths = {int(k.split('/')[-2]):k for k in camera_paths}
self._first_camera_idx = min(key for key, value in camera_paths.items() if value is not None)
self._frame_readers = _FrameReaderDict(camera_paths, cache_paths, kwargs) self._frame_readers = _FrameReaderDict(camera_paths, cache_paths, kwargs)
self._frame_id_lookup = frame_id_lookup self._frame_id_lookup = frame_id_lookup

Loading…
Cancel
Save