summaryrefslogtreecommitdiff
path: root/internal/media/processingmedia.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-07-28 08:31:49 +0000
committerLibravatar GitHub <noreply@github.com>2024-07-28 10:31:49 +0200
commit58f8082795f87cbc6c6805dd4579f95f59fdd61f (patch)
tree839a505defd06071874e7e6209f5308e2069ff9b /internal/media/processingmedia.go
parent[chore] log delivery worker stop/start at debug level (#3145) (diff)
downloadgotosocial-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.go22
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)
}