feat: motion photo support#2819
Draft
dschmidt wants to merge 4 commits into
Draft
Conversation
2d81b74 to
a37ca7d
Compare
4d882ab to
cae8685
Compare
a37ca7d to
f013edc
Compare
f013edc to
7a98785
Compare
Map the oc:motionPhoto WebDAV property (version, presentationTimestampUs, videoSize) onto Resource in buildResource, using the generated MotionPhoto type from the libre-graph client.
MotionPhotoBadge renders the MDI motion-play/pause icon; MotionPhotoOverlay pairs the badge with the hover-to-play clip so every surface reuses the same markup and behaviour. useMotionPhoto range-fetches the embedded MP4; useMotionPhotoPlayback owns the shared hover/play state, buffering and abort.
Show the badge and hover-to-play the clip on grid tiles, table rows, the sidebar preview and the media viewer photo roll. The media viewer auto-plays once on open and offers a loop play/pause control in the bottom bar.
Cover the badge in tiles/table, the media viewer preview strip, the viewer playback control and inline sidebar playback.
7a98785 to
ecff135
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.
Surfaces Google Motion Photos (a still JPEG with a short MP4 appended) in the UI: a play badge everywhere plus inline playback.
Warning
Proof of concept. The server does not emit the motion photo facet yet, so this cannot be merged and the e2e tests will not run against a stock backend. It works end to end against a local dev stack with the facet enabled.
What
oc:motionPhotoWebDAV property (version,presentationTimestampUs,videoSize) throughbuildResourceontoResource, using the generatedMotionPhototype from the libre-graph client.MotionPhotoBadge(MDI motion-play/pause icon) on grid tiles, table rows, the sidebar preview and the media viewer photo roll.useMotionPhotorange-fetches just the embedded MP4 (Range: bytes=<size - videoSize>-) and wraps it as a blob;useMotionPhotoPlaybackowns the shared hover/play state, buffering indicator and abort.MotionPhotoOverlayreuses both across the files list, sidebar and photo roll.