dispose of input once finished

This commit is contained in:
Samuel Newman
2025-11-27 16:41:32 +02:00
parent 0a7209c623
commit 0081b37900
4 changed files with 16 additions and 12 deletions
-4
View File
@@ -7,10 +7,6 @@ import {extToMime} from './util'
const MIN_SIZE_FOR_COMPRESSION = 25 // 25mb
export function hasWebCodecs(): boolean {
throw new Error('Native does not have WebCodecs.')
}
export async function compressVideo(
file: ImagePickerAsset,
opts?: {
+13 -5
View File
@@ -245,16 +245,24 @@ async function doCompression(
}
if (signal) {
signal.addEventListener('abort', () => {
logger.debug('compress: cancelled')
conversion.cancel()
})
signal.addEventListener(
'abort',
() => {
logger.debug('compress: cancelled')
conversion.cancel()
},
{once: true},
)
}
logger.debug('compress: starting conversion')
const startTime = performance.now()
await conversion.execute()
try {
await conversion.execute()
} finally {
input.dispose()
}
const elapsed = performance.now() - startTime
const bytes = target.buffer