[ 
https://issues.apache.org/jira/browse/TIKA-4869?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18111012#comment-18111012
 ] 

Hudson commented on TIKA-4869:
------------------------------

SUCCESS: Integrated in Jenkins build Tika ยป tika-main-jdk17 #1609 (See 
[https://ci-builds.apache.org/job/Tika/job/tika-main-jdk17/1609/])
TIKA-4869: Emit the video of a motion photo as an embedded document (#3115) 
(github: 
[https://github.com/apache/tika/commit/1b6b7616e92c7ffc43f3f5266b7c466cf2462956])
* (add) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/image/MotionPhotoVideoIntegrationTest.java
* (add) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/test-documents/testJPEG_MotionPhoto.jpg
* (add) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/MotionPhoto.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/test/resources/test-documents/testJPEG_MicroVideo.jpg
* (add) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/MotionPhotoVideoTest.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/src/test/java/org/apache/tika/parser/xmp/XmpSaxFlattenerTest.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/test/java/org/apache/tika/parser/image/MotionPhotoXmpTest.java
* (add) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/test/resources/test-documents/testJPEG_MotionPhoto_noVideo.jpg
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xmp-commons/src/main/java/org/apache/tika/parser/xmp/XmpSaxFlattener.java
* (edit) CHANGES.txt
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java
* (edit) 
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/test/resources/test-documents/testJPEG_MotionPhoto.jpg


> Emit the video of a motion photo as an embedded document
> --------------------------------------------------------
>
>                 Key: TIKA-4869
>                 URL: https://issues.apache.org/jira/browse/TIKA-4869
>             Project: Tika
>          Issue Type: Improvement
>            Reporter: Dominik Schmidt
>            Priority: Major
>
> Tika exposes the Motion Photo and MicroVideo XMP of Google/Android motion 
> photos, but not the video itself, although both formats say where it is and 
> every byte of it is already in the file.
> The MP4 is appended after the JPEG:
> - Motion Photo (Camera:MotionPhoto): Container:Directory lists the items in 
> file order, the primary image first, the rest tightly packed after it, each 
> with an Item:Length and an optional Item:Padding. The video starts at 
> fileLength minus the lengths of the items from the video to the end; in 
> practice it is the last one, also in Ultra HDR files, where the spec puts the 
> gain map before it.
> - MicroVideo (the older Camera:MicroVideo / GCamera): Camera:MicroVideoOffset 
> is the number of bytes from the end of the file, so the video starts at 
> fileLength minus that value.
> Proposal: the image parsers emit those bytes as an embedded document, 
> ATTACHMENT, named motion-photo.<ext>. What is at the computed offset is 
> detected by content, without the declared Item:Mime as a hint (a hint would 
> make a wrong length pass as video/mp4 anyway), and nothing is emitted when 
> detection finds no type: a wrong or hostile length then yields no embedded 
> document rather than a bogus one. Extraction follows the usual embedded 
> document limits; a client that does not want the video filters by type as 
> usual.
> The same computation covers HEIC and AVIF motion photos, whose XMP goes 
> through the same extractor: there the video sits in an mpvd box, but that box 
> is last and its 8 byte header is the primary item's Padding, so the video 
> still ends at the end of the file. Putting the extraction in the shared image 
> parser base rather than in JpegParser therefore covers them too, untested for 
> lack of a sample file.
> Apple Live Photos are a different thing and need nothing here: their video is 
> a separate .MOV, paired by a content identifier, so a HEIC alone carries no 
> video.
> The existing test files (testJPEG_MotionPhoto.jpg, testJPEG_MicroVideo.jpg) 
> declare a video in their XMP but do not contain one; new fixtures with a 
> small real MP4 appended are needed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to