Skip to content

Add Oplus O Live Photo 3P plugin (OpCamera XMP and jxrs trailer footer) - #12

Open
DichenZhang1 wants to merge 1 commit into
Developmentfrom
feat/plugin-oplus-olive
Open

DichenZhang1 wants to merge 1 commit into
Developmentfrom
feat/plugin-oplus-olive

Conversation

@DichenZhang1

Copy link
Copy Markdown
Collaborator

Summary

Adds the oplus_olive 3P metadata provider plugin supporting OPPO / OnePlus / realme "O Live Photo" (OpCamera:OLivePhotoVersion XMP and the 68-byte jxrs trailer integrity footer).

Key Changes

  • Plugin Implementation (lib/core/plugins/oplus_olive/):
    • oplus_olive_metadata.proto: Defines OplusOliveMetadata (olive_photo_version, has_jxrs_footer, jxrs_footer_version, jxrs_checksum_hex, video_offset, video_length, primary_image_timestamp_us).
    • OplusOliveProvider: Identifies and decodes OpCamera XMP (http://ns.oplus.com/photo/1.0/camera/, http://ns.oppo.com/photo/1.0/camera/) and container.trailer blocks carrying the 68-byte jxrs integrity footer, stripping the 68-byte footer so GetVideoInfo returns the exact MP4 byte length.
  • Tests (oplus_olive_provider_test.cc):
    • Unit and end-to-end tests covering Identify, DecodeToSemantic, GetVideoInfo, IsMotionPhoto, 68-byte jxrs footer stripping during ExtractVideoTrackFromMemory, primary JPEG extraction, HandlerOptions gating, and malformed trailer safety.

@DichenZhang1
DichenZhang1 force-pushed the feat/plugin-oplus-olive branch from 6b24e75 to d33292e Compare October 12, 2026 21:36
@DichenZhang1
DichenZhang1 force-pushed the feat/plugin-oplus-olive branch from d33292e to 0f2a1ce Compare October 12, 2026 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant