XiaoHongbo-Hope opened a new pull request, #10889:
URL: https://github.com/apache/paimon/pull/10889

   ### Purpose
   
   Support `table.add_video("/data/example.mp4")` without caller-supplied frame 
rows or descriptors. Optional `metadata={"episode_id": 42}` fills business 
fields on every row.
   
   - Generate presentation-order `frame_index` and actual PTS-based `timestamp` 
in seconds from the first frame, preserving variable frame timing.
   - Store the original encoded bytes through the existing `.video` writer. 
Explicit `frames`, `add_videos`, and the persistent format are unchanged.
   - Require a local, single-video-stream file, `frame_index: int64`, 
`timestamp: float64`, and a configured video column. The source must remain 
unchanged until import returns; external state/action alignment is not inferred.
   - Validate before writing, reject decoding/timestamp errors, and abort 
detected source changes. Retain a compact timestamp array and write batches of 
1,024 rows. Timing discovery decodes the full video; existing writer-side 
indexing may decode it again.
   
   ### Tests
   
   `multimodal_table_test.py` + `multimodal_video_test.py`: **125 passed, 5 
skipped, 53 subtests passed**, using PyAV 15.1.0 and PyArrow 19.0.1.
   
   Real H.264 MP4 coverage includes CFR/VFR, nonzero start PTS, B-frames, 
unchanged payload bytes/pixels, and multi-batch import. Also covers 
schema/metadata validation, audio-only/multiple-stream/corrupt input, 
missing/backward timestamps, decode/source-change failures without new 
snapshots, and explicit-frame regressions.
   
   Flake8, Python syntax check, and `git diff --check` passed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to