use image metadata for live photo

This commit is contained in:
Abhinav 2022-02-15 09:48:38 +05:30
parent 93505f9bc4
commit c04056569b

View file

@ -22,6 +22,8 @@ interface LivePhotoIdentifier {
size: number; size: number;
} }
const ENTE_LIVE_PHOTO_FORMAT = 'elp';
export function getLivePhotoFileType( export function getLivePhotoFileType(
file1TypeInfo: FileTypeInfo, file1TypeInfo: FileTypeInfo,
file2TypeInfo: FileTypeInfo file2TypeInfo: FileTypeInfo
@ -32,14 +34,12 @@ export function getLivePhotoFileType(
}; };
} }
export function getLivePhotoMetadata( export function getLivePhotoMetadata(imageMetadata: Metadata) {
file1Metadata: Metadata,
file2Metadata: Metadata
) {
return { return {
...file1Metadata, ...imageMetadata,
...file2Metadata, title: `${
title: `${splitFilenameAndExtension(file1Metadata.title)[0]}.zip`, splitFilenameAndExtension(imageMetadata.title)[0]
}.${ENTE_LIVE_PHOTO_FORMAT}`,
fileType: FILE_TYPE.LIVE_PHOTO, fileType: FILE_TYPE.LIVE_PHOTO,
}; };
} }
@ -120,17 +120,20 @@ export function clusterLivePhotoFiles(mediaFiles: FileWithCollection[]) {
if ( if (
areFilesLivePhotoAssets(firstFileIdentifier, secondFileIdentifier) areFilesLivePhotoAssets(firstFileIdentifier, secondFileIdentifier)
) { ) {
let imageFile; let imageFile: File;
let videoFile; let videoFile: File;
let imageMetadata: Metadata;
if ( if (
firstFileTypeInfo.fileType === FILE_TYPE.IMAGE && firstFileTypeInfo.fileType === FILE_TYPE.IMAGE &&
secondFileFileInfo.fileType === FILE_TYPE.VIDEO secondFileFileInfo.fileType === FILE_TYPE.VIDEO
) { ) {
imageFile = firstMediaFile.file; imageFile = firstMediaFile.file;
videoFile = secondMediaFile.file; videoFile = secondMediaFile.file;
imageMetadata = secondFileMetadata;
} else { } else {
imageFile = secondMediaFile.file; imageFile = secondMediaFile.file;
videoFile = firstMediaFile.file; videoFile = firstMediaFile.file;
imageMetadata = firstFileMetadata;
} }
const livePhotoLocalID = index; const livePhotoLocalID = index;
analysedMediaFiles.push({ analysedMediaFiles.push({
@ -143,10 +146,8 @@ export function clusterLivePhotoFiles(mediaFiles: FileWithCollection[]) {
firstFileTypeInfo, firstFileTypeInfo,
secondFileFileInfo secondFileFileInfo
); );
const livePhotoMetadata: Metadata = getLivePhotoMetadata( const livePhotoMetadata: Metadata =
firstFileMetadata, getLivePhotoMetadata(imageMetadata);
secondFileMetadata
);
uploadService.setFileMetadataAndFileTypeInfo(livePhotoLocalID, { uploadService.setFileMetadataAndFileTypeInfo(livePhotoLocalID, {
fileTypeInfo: { ...livePhotoFileTypeInfo }, fileTypeInfo: { ...livePhotoFileTypeInfo },
metadata: { ...livePhotoMetadata }, metadata: { ...livePhotoMetadata },