From 1659f75ae6e491355e1d32f0f5e8b956ef70a797 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Thu, 22 Dec 2022 11:48:28 +0100 Subject: [feature] For video attachments, store + return fps, bitrate, duration (#1282) * start messing about with different mp4 metadata extraction * heyyooo it works * add test cow * move useful multierror to gtserror package * error out if video doesn't seem to be a real mp4 * test parsing mkv in disguise as mp4 * tidy up error handling * remove extraneous line * update framerate formatting * use float32 for aspect * fixy mctesterson --- internal/gtsmodel/mediaattachment.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'internal/gtsmodel') diff --git a/internal/gtsmodel/mediaattachment.go b/internal/gtsmodel/mediaattachment.go index 915f5fb24..6d1eee8d9 100644 --- a/internal/gtsmodel/mediaattachment.go +++ b/internal/gtsmodel/mediaattachment.go @@ -99,15 +99,18 @@ type Small struct { Width int `validate:"required_with=Height Size Aspect"` // width in pixels Height int `validate:"required_with=Width Size Aspect"` // height in pixels Size int `validate:"required_with=Width Height Aspect"` // size in pixels (width * height) - Aspect float64 `validate:"required_with=Widhth Height Size"` // aspect ratio (width / height) + Aspect float32 `validate:"required_with=Width Height Size"` // aspect ratio (width / height) } // Original can be used for original metadata for any media type type Original struct { - Width int `validate:"required_with=Height Size Aspect"` // width in pixels - Height int `validate:"required_with=Width Size Aspect"` // height in pixels - Size int `validate:"required_with=Width Height Aspect"` // size in pixels (width * height) - Aspect float64 `validate:"required_with=Widhth Height Size"` // aspect ratio (width / height) + Width int `validate:"required_with=Height Size Aspect"` // width in pixels + Height int `validate:"required_with=Width Size Aspect"` // height in pixels + Size int `validate:"required_with=Width Height Aspect"` // size in pixels (width * height) + Aspect float32 `validate:"required_with=Width Height Size"` // aspect ratio (width / height) + Duration *float32 `validate:"-"` // video-specific: duration of the video in seconds + Framerate *float32 `validate:"-"` // video-specific: fps + Bitrate *uint64 `validate:"-"` // video-specific: bitrate } // Focus describes the 'center' of the image for display purposes. -- cgit v1.3