diff options
author | 2024-07-28 08:31:49 +0000 | |
---|---|---|
committer | 2024-07-28 10:31:49 +0200 | |
commit | 58f8082795f87cbc6c6805dd4579f95f59fdd61f (patch) | |
tree | 839a505defd06071874e7e6209f5308e2069ff9b /internal/media/processingmedia.go | |
parent | [chore] log delivery worker stop/start at debug level (#3145) (diff) | |
download | gotosocial-58f8082795f87cbc6c6805dd4579f95f59fdd61f.tar.xz |
[bugfix] moves file rename to earlier in media pipeline so ffmpeg calls ALWAYS have extension (#3146)
Diffstat (limited to 'internal/media/processingmedia.go')
-rw-r--r-- | internal/media/processingmedia.go | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/internal/media/processingmedia.go b/internal/media/processingmedia.go index a5c60900b..32c0531bc 100644 --- a/internal/media/processingmedia.go +++ b/internal/media/processingmedia.go @@ -19,6 +19,7 @@ package media import ( "context" + "os" errorsv2 "codeberg.org/gruf/go-errors/v2" "codeberg.org/gruf/go-runners" @@ -185,15 +186,24 @@ func (p *ProcessingMedia) store(ctx context.Context) error { // Set media type from ffprobe format data. p.media.Type, ext = result.GetFileType() - switch p.media.Type { + // Add file extension to path. + newpath := temppath + "." + ext + + // Before ffmpeg processing, rename to set file ext. + if err := os.Rename(temppath, newpath); err != nil { + return gtserror.Newf("error renaming to %s - >%s: %w", temppath, newpath, err) + } + + // Update path var + // AFTER successful. + temppath = newpath + + switch p.media.Type { case gtsmodel.FileTypeImage, gtsmodel.FileTypeVideo: - // Pass file through ffmpeg clearing - // any excess metadata (e.g. EXIF). - if err := ffmpegClearMetadata(ctx, - temppath, ext, - ); err != nil { + // Pass file through ffmpeg clearing metadata (e.g. EXIF). + if err := ffmpegClearMetadata(ctx, temppath); err != nil { return gtserror.Newf("error cleaning metadata: %w", err) } |