From 3fc41aecca308cf34c9e95471278b186310325de Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 30 May 2024 13:32:10 +0530 Subject: [PATCH] inl --- web/apps/photos/src/services/face/f-index.ts | 26 +++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/web/apps/photos/src/services/face/f-index.ts b/web/apps/photos/src/services/face/f-index.ts index c47d8a677c..d2c5579a2f 100644 --- a/web/apps/photos/src/services/face/f-index.ts +++ b/web/apps/photos/src/services/face/f-index.ts @@ -53,7 +53,9 @@ export const indexFaces = async ( ) => { const startTime = Date.now(); - const imageBitmap = await fetchAndCreateImageBitmap(enteFile, file); + const imageBitmap = await renderableImageBlob(enteFile, file).then( + createImageBitmap, + ); let mlFile: MlFileData; try { mlFile = await indexFaces_(enteFile, imageBitmap); @@ -70,22 +72,21 @@ export const indexFaces = async ( }; /** - * Return a {@link ImageBitmap}, using {@link file} if present otherwise + * Return a "renderable" image blob, using {@link file} if present otherwise * downloading the source image corresponding to {@link enteFile} from remote. */ -const fetchAndCreateImageBitmap = async (enteFile: EnteFile, file: File) => - file ? getLocalFileImageBitmap(enteFile, file) : fetchImageBitmap(enteFile); - -const fetchImageBitmap = async (enteFile: EnteFile) => - fetchRenderableBlob(enteFile).then(createImageBitmap); +const renderableImageBlob = async (enteFile: EnteFile, file: File) => + file + ? getRenderableImage(enteFile.metadata.title, file) + : fetchRenderableBlob(enteFile); const fetchRenderableBlob = async (enteFile: EnteFile) => { - const fileType = enteFile.metadata.fileType; const fileStream = await DownloadManager.getFile(enteFile); const fileBlob = await new Response(fileStream).blob(); - if (enteFile.metadata.fileType == FILE_TYPE.IMAGE) { + const fileType = enteFile.metadata.fileType; + if (fileType == FILE_TYPE.IMAGE) { return getRenderableImage(enteFile.metadata.title, fileBlob); - } else if (enteFile.metadata.fileType == FILE_TYPE.LIVE_PHOTO) { + } else if (fileType == FILE_TYPE.LIVE_PHOTO) { const { imageFileName, imageData } = await decodeLivePhoto( enteFile.metadata.title, fileBlob, @@ -96,11 +97,6 @@ const fetchRenderableBlob = async (enteFile: EnteFile) => { } }; -const getLocalFileImageBitmap = async (enteFile: EnteFile, localFile: File) => - createImageBitmap( - await getRenderableImage(enteFile.metadata.title, localFile), - ); - const indexFaces_ = async (enteFile: EnteFile, imageBitmap: ImageBitmap) => { const fileID = enteFile.id; const { width, height } = imageBitmap;