diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-09-08 16:27:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-08 08:27:50 -0700 |
commit | 6c6a76b193edfd8bd46139b85fefd684ee557a8c (patch) | |
tree | b5b0efddb02ded2d8cbd80bdae049a102a20e19f | |
parent | 95aee146b63f53e1cc8c686ef28dc7059b2d557f (diff) | |
download | voidsky-6c6a76b193edfd8bd46139b85fefd684ee557a8c.tar.zst |
[Video] Upload tweaks (#5228)
* use correct mime type * fix wheel progress
-rw-r--r-- | src/lib/media/video/compress.ts | 3 | ||||
-rw-r--r-- | src/state/queries/video/util.ts | 15 | ||||
-rw-r--r-- | src/view/com/composer/Composer.tsx | 6 |
3 files changed, 21 insertions, 3 deletions
diff --git a/src/lib/media/video/compress.ts b/src/lib/media/video/compress.ts index ebbbc2034..c2a30df33 100644 --- a/src/lib/media/video/compress.ts +++ b/src/lib/media/video/compress.ts @@ -2,6 +2,7 @@ import {getVideoMetaData, Video} from 'react-native-compressor' import {ImagePickerAsset} from 'expo-image-picker' import {SUPPORTED_MIME_TYPES, SupportedMimeTypes} from '#/lib/constants' +import {extToMime} from '#/state/queries/video/util' import {CompressedVideo} from './types' const MIN_SIZE_FOR_COMPRESSION = 1024 * 1024 * 25 // 25mb @@ -43,5 +44,5 @@ export async function compressVideo( const info = await getVideoMetaData(compressed) - return {uri: compressed, size: info.size, mimeType: `video/mp4`} + return {uri: compressed, size: info.size, mimeType: extToMime(info.extension)} } diff --git a/src/state/queries/video/util.ts b/src/state/queries/video/util.ts index 7ea38d8dc..2c1298ab6 100644 --- a/src/state/queries/video/util.ts +++ b/src/state/queries/video/util.ts @@ -39,3 +39,18 @@ export function mimeToExt(mimeType: SupportedMimeTypes | (string & {})) { throw new Error(`Unsupported mime type: ${mimeType}`) } } + +export function extToMime(ext: string) { + switch (ext) { + case 'mp4': + return 'video/mp4' + case 'webm': + return 'video/webm' + case 'mpeg': + return 'video/mpeg' + case 'mov': + return 'video/quicktime' + default: + throw new Error(`Unsupported file extension: ${ext}`) + } +} diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 25ed6c769..a637b5996 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -1154,10 +1154,12 @@ function VideoUploadToolbar({state}: {state: VideoUploadState}) { const progress = state.jobStatus?.progress ? state.jobStatus.progress / 100 : state.progress - let wheelProgress = progress === 0 || progress === 1 ? 0.33 : progress + const shouldRotate = + state.status === 'processing' && (progress === 0 || progress === 1) + let wheelProgress = shouldRotate ? 0.33 : progress const rotate = useDerivedValue(() => { - if (progress === 0 || progress >= 0.99) { + if (shouldRotate) { return withRepeat( withTiming(360, { duration: 2500, |