Ingest all camera angles, not a fixed four#65
Merged
Conversation
Tesla HW4/AI4 vehicles record two extra B-pillar cameras (left_pillar, right_pillar), and future firmware may add more. The filename parser already captured any suffix, but everything downstream looped a fixed four-camera list, so a fifth/sixth camera was silently dropped. - Build ffconcat playlists for the cameras actually present in a clip instead of CameraNames.All (front still drives the shared timeline). - Canonicalize the legacy rear_view suffix to back at parse time so old and new clips share one vocabulary. - Guard CamChunk's file map against a duplicate camera suffix at one timestamp: it used to throw in ToDictionary, and because CamClip.TryMap swallows that, the whole clip folder silently vanished from the library. - Add left_pillar/right_pillar to CameraNames.All. Cameras are ingested and their playlists built; surfacing the extra angles in the UI is a follow-up. Front remains the timeline/required anchor.
This was referenced Jul 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Tesla HW4/AI4 vehicles record two extra B-pillar cameras (
left_pillar,right_pillar), and future firmware may add more. The filename parser already captured any suffix, but everything downstream looped a fixed four-camera list (CameraNames.All), so a fifth/sixth camera was silently dropped — discovered on disk, then thrown away.This is P0 of the dynamic-camera work: ingest every camera and never crash. The extra angles are now parsed, kept, and have playback playlists built — surfacing them in the UI is a follow-up (P1).
Changes
CameraNames.All(FfconcatMediaSourceBuilder). The front camera still drives the shared timeline.rear_viewsuffix tobackat parse time (CamFile) so old and new clips share one vocabulary.CamChunk): a duplicate camera suffix at one timestamp used to throw inToDictionary, and becauseCamClip.TryMapswallows exceptions, the entire clip folder silently vanished from the library. Now keep-first + log.left_pillar/right_pillartoCameraNames.All.Scope notes
Tests
235 pass, 0 failures (14 new; existing suite unchanged). New coverage:
front_bumper) still gets a playlist.CamChunk.Mapretains pillar/unknown cameras.rear_viewcanonicalizes tobackat parse.Verified against
ehendrix23/tesla_dashcam: the six on-disk suffixes arefront,back,left_repeater,right_repeater,left_pillar,right_pillar.