fix type passed to thumbnail generation for heic detection

This commit is contained in:
Abhinav 2022-02-15 16:32:42 +05:30
parent acbbfdf405
commit f58108a55f

View file

@ -22,15 +22,21 @@ interface LivePhotoIdentifier {
size: number;
}
interface Asset {
file: File;
metadata: Metadata;
fileTypeInfo: FileTypeInfo;
}
const ENTE_LIVE_PHOTO_FORMAT = 'elp';
export function getLivePhotoFileType(
file1TypeInfo: FileTypeInfo,
file2TypeInfo: FileTypeInfo
imageFileTypeInfo: FileTypeInfo,
videoTypeInfo: FileTypeInfo
) {
return {
fileType: FILE_TYPE.LIVE_PHOTO,
exactType: `${file1TypeInfo.exactType}+${file2TypeInfo.exactType}`,
exactType: `${imageFileTypeInfo.exactType}+${videoTypeInfo.exactType}`,
};
}
@ -54,11 +60,18 @@ export async function readLivePhoto(
fileTypeInfo: FileTypeInfo,
livePhotoAssets: LivePhotoAssets
) {
const imageType = fileTypeInfo.exactType.slice(
0,
fileTypeInfo.exactType.indexOf('+')
);
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
worker,
reader,
livePhotoAssets.image,
{ exactType: fileTypeInfo.exactType, fileType: FILE_TYPE.IMAGE }
{
exactType: imageType,
fileType: FILE_TYPE.IMAGE,
}
);
const image = await getUint8ArrayView(reader, livePhotoAssets.image);
@ -120,34 +133,51 @@ export function clusterLivePhotoFiles(mediaFiles: FileWithCollection[]) {
if (
areFilesLivePhotoAssets(firstFileIdentifier, secondFileIdentifier)
) {
let imageFile: File;
let videoFile: File;
let imageMetadata: Metadata;
let imageAsset: Asset;
let videoAsset: Asset;
if (
firstFileTypeInfo.fileType === FILE_TYPE.IMAGE &&
secondFileFileInfo.fileType === FILE_TYPE.VIDEO
) {
imageFile = firstMediaFile.file;
imageMetadata = firstFileMetadata;
videoFile = secondMediaFile.file;
imageAsset = {
file: firstMediaFile.file,
metadata: firstFileMetadata,
fileTypeInfo: firstFileTypeInfo,
};
videoAsset = {
file: secondMediaFile.file,
metadata: secondFileMetadata,
fileTypeInfo: secondFileFileInfo,
};
} else {
imageFile = secondMediaFile.file;
imageMetadata = secondFileMetadata;
videoFile = firstMediaFile.file;
videoAsset = {
file: firstMediaFile.file,
metadata: firstFileMetadata,
fileTypeInfo: firstFileTypeInfo,
};
imageAsset = {
file: secondMediaFile.file,
metadata: secondFileMetadata,
fileTypeInfo: secondFileFileInfo,
};
}
const livePhotoLocalID = index;
analysedMediaFiles.push({
localID: livePhotoLocalID,
collectionID: firstMediaFile.collectionID,
isLivePhoto: true,
livePhotoAssets: { image: imageFile, video: videoFile },
livePhotoAssets: {
image: imageAsset.file,
video: videoAsset.file,
},
});
const livePhotoFileTypeInfo: FileTypeInfo = getLivePhotoFileType(
firstFileTypeInfo,
secondFileFileInfo
imageAsset.fileTypeInfo,
videoAsset.fileTypeInfo
);
const livePhotoMetadata: Metadata = getLivePhotoMetadata(
imageAsset.metadata
);
const livePhotoMetadata: Metadata =
getLivePhotoMetadata(imageMetadata);
uploadService.setFileMetadataAndFileTypeInfo(livePhotoLocalID, {
fileTypeInfo: { ...livePhotoFileTypeInfo },
metadata: { ...livePhotoMetadata },