Repository navigation
Conversation
caglarpir
force-pushed
the
extract-rmkn-gps-timestamps
branch
2 times, most recently
from
February 25, 2026 08:43
1ac8cff to
b45aca4
Compare
caglarpir
force-pushed
the
extract-rmkn-gps-timestamps
branch
from
November 11, 2026 09:56
b45aca4 to
bb6d05b
Compare
…er note Ricoh Theta X videos carry a CAMM track of type 5 samples: positions without timestamps. So they have no GPS clock, and their capture times come from the camera's clock, by the creation time, which marks the end of the recording. The RMKN box that the camera writes into udta is an EXIF block with a GPS fix: GPSDateStamp, GPSTimeStamp and a position. On a set of Theta X videos, that position is exactly that of the first type 5 sample, while the next sample is 0.3 to 1 m away: the fix is the first sample, and its time is the time of that sample. The CAMM parser reads the fix with ExifReadFromEXIF, and the CAMM video extractor stamps the type 5 samples with its time plus each sample's time in the video after the first sample, as the CAMMGPSPoint that the description file decodes timestamped points into. That gives these videos a GPS clock, which sampling, GPX alignment and uploads already use, as they do for every video with GPS timestamps. The samples are stamped only if the first of them is within 1 m of the fix (the EXIF block rounds the position to 0.01 arc seconds, about 0.3 m). A camera without a fix when the recording starts writes no GPS time, and its track begins later in the video. Such a video, or one whose GPSStatus is V (no fix), or whose track has type 6 samples, reads as before. Positions are unchanged. Capture times move by however far the camera's clock is off, and a GPX is now placed by the GPS clock, so one stamped by the camera's clock no longer lines up.
caglarpir
force-pushed
the
extract-rmkn-gps-timestamps
branch
from
November 11, 2026 12:34
bb6d05b to
84eb425
Compare
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.
Ricoh Theta X videos carry a CAMM track of type 5 samples: positions without timestamps. So they have no GPS clock, and their capture times come from the camera's clock. The RMKN box that the camera writes into
udtais an EXIF block with a GPS fix: date, time and position. That fix is the first GPS sample of the video. This reads the fix and stamps the samples with its time, plus each sample's time in the video after the first sample. That gives these videos a GPS clock, which frame sampling, GPX alignment and uploads already use, as for every video with GPS timestamps.Changes
camm_parser:CAMMInfo.rmkn_gps_fix(time and position), read from the RMKN box with the existingExifReadFromEXIF. None when there is no GPS time or position, when GPSStatus isV(no fix), or when the date is not a valid capture time.CAMMVideoExtractor: when a track has only type 5 samples, and the first sample is within 1 m of the fix (the EXIF block rounds the position to 0.01 arc seconds, about 0.3 m), stamps the samples asCAMMGPSPoint, built the way the description file decodes timestamped points, so a video reads the same from either.Behaviour
V, whose first sample is not at the fix, or with type 6 samples reads as before.Verification
process,video_processby interval and by distance, with and without a GPX): positions identical; the first sample is stamped with the RMKN time; capture times about 23.6 s later (the camera's clock was behind); the video without an RMKN GPS time unchanged.Limitations
--video_duration_ratio. Nothing in the RMKN box marks a time-lapse.Since the first version
Rebased onto 0.15.0 and rewritten: it reads the RMKN box with the existing EXIF reader instead of a hand-written TIFF parser, stamps the samples only when the first one is at the position of the fix, and skips a fix whose status is
V.