fix type passed to thumbnail generation for heic detection
This commit is contained in:
parent
acbbfdf405
commit
f58108a55f
|
@ -22,15 +22,21 @@ interface LivePhotoIdentifier {
|
||||||
size: number;
|
size: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface Asset {
|
||||||
|
file: File;
|
||||||
|
metadata: Metadata;
|
||||||
|
fileTypeInfo: FileTypeInfo;
|
||||||
|
}
|
||||||
|
|
||||||
const ENTE_LIVE_PHOTO_FORMAT = 'elp';
|
const ENTE_LIVE_PHOTO_FORMAT = 'elp';
|
||||||
|
|
||||||
export function getLivePhotoFileType(
|
export function getLivePhotoFileType(
|
||||||
file1TypeInfo: FileTypeInfo,
|
imageFileTypeInfo: FileTypeInfo,
|
||||||
file2TypeInfo: FileTypeInfo
|
videoTypeInfo: FileTypeInfo
|
||||||
) {
|
) {
|
||||||
return {
|
return {
|
||||||
fileType: FILE_TYPE.LIVE_PHOTO,
|
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,
|
fileTypeInfo: FileTypeInfo,
|
||||||
livePhotoAssets: LivePhotoAssets
|
livePhotoAssets: LivePhotoAssets
|
||||||
) {
|
) {
|
||||||
|
const imageType = fileTypeInfo.exactType.slice(
|
||||||
|
0,
|
||||||
|
fileTypeInfo.exactType.indexOf('+')
|
||||||
|
);
|
||||||
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
|
const { thumbnail, hasStaticThumbnail } = await generateThumbnail(
|
||||||
worker,
|
worker,
|
||||||
reader,
|
reader,
|
||||||
livePhotoAssets.image,
|
livePhotoAssets.image,
|
||||||
{ exactType: fileTypeInfo.exactType, fileType: FILE_TYPE.IMAGE }
|
{
|
||||||
|
exactType: imageType,
|
||||||
|
fileType: FILE_TYPE.IMAGE,
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
const image = await getUint8ArrayView(reader, livePhotoAssets.image);
|
const image = await getUint8ArrayView(reader, livePhotoAssets.image);
|
||||||
|
@ -120,34 +133,51 @@ export function clusterLivePhotoFiles(mediaFiles: FileWithCollection[]) {
|
||||||
if (
|
if (
|
||||||
areFilesLivePhotoAssets(firstFileIdentifier, secondFileIdentifier)
|
areFilesLivePhotoAssets(firstFileIdentifier, secondFileIdentifier)
|
||||||
) {
|
) {
|
||||||
let imageFile: File;
|
let imageAsset: Asset;
|
||||||
let videoFile: File;
|
let videoAsset: Asset;
|
||||||
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;
|
imageAsset = {
|
||||||
imageMetadata = firstFileMetadata;
|
file: firstMediaFile.file,
|
||||||
videoFile = secondMediaFile.file;
|
metadata: firstFileMetadata,
|
||||||
|
fileTypeInfo: firstFileTypeInfo,
|
||||||
|
};
|
||||||
|
videoAsset = {
|
||||||
|
file: secondMediaFile.file,
|
||||||
|
metadata: secondFileMetadata,
|
||||||
|
fileTypeInfo: secondFileFileInfo,
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
imageFile = secondMediaFile.file;
|
videoAsset = {
|
||||||
imageMetadata = secondFileMetadata;
|
file: firstMediaFile.file,
|
||||||
videoFile = firstMediaFile.file;
|
metadata: firstFileMetadata,
|
||||||
|
fileTypeInfo: firstFileTypeInfo,
|
||||||
|
};
|
||||||
|
imageAsset = {
|
||||||
|
file: secondMediaFile.file,
|
||||||
|
metadata: secondFileMetadata,
|
||||||
|
fileTypeInfo: secondFileFileInfo,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
const livePhotoLocalID = index;
|
const livePhotoLocalID = index;
|
||||||
analysedMediaFiles.push({
|
analysedMediaFiles.push({
|
||||||
localID: livePhotoLocalID,
|
localID: livePhotoLocalID,
|
||||||
collectionID: firstMediaFile.collectionID,
|
collectionID: firstMediaFile.collectionID,
|
||||||
isLivePhoto: true,
|
isLivePhoto: true,
|
||||||
livePhotoAssets: { image: imageFile, video: videoFile },
|
livePhotoAssets: {
|
||||||
|
image: imageAsset.file,
|
||||||
|
video: videoAsset.file,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
const livePhotoFileTypeInfo: FileTypeInfo = getLivePhotoFileType(
|
const livePhotoFileTypeInfo: FileTypeInfo = getLivePhotoFileType(
|
||||||
firstFileTypeInfo,
|
imageAsset.fileTypeInfo,
|
||||||
secondFileFileInfo
|
videoAsset.fileTypeInfo
|
||||||
|
);
|
||||||
|
const livePhotoMetadata: Metadata = getLivePhotoMetadata(
|
||||||
|
imageAsset.metadata
|
||||||
);
|
);
|
||||||
const livePhotoMetadata: Metadata =
|
|
||||||
getLivePhotoMetadata(imageMetadata);
|
|
||||||
uploadService.setFileMetadataAndFileTypeInfo(livePhotoLocalID, {
|
uploadService.setFileMetadataAndFileTypeInfo(livePhotoLocalID, {
|
||||||
fileTypeInfo: { ...livePhotoFileTypeInfo },
|
fileTypeInfo: { ...livePhotoFileTypeInfo },
|
||||||
metadata: { ...livePhotoMetadata },
|
metadata: { ...livePhotoMetadata },
|
||||||
|
|
Loading…
Reference in a new issue