summaryrefslogtreecommitdiff
path: root/internal/gtsmodel
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-12-22 11:48:28 +0100
committerLibravatar GitHub <noreply@github.com>2022-12-22 11:48:28 +0100
commit1659f75ae6e491355e1d32f0f5e8b956ef70a797 (patch)
tree0cc7aba9d8c98ee0163488121328e9cd0c6b32c2 /internal/gtsmodel
parent[bugfix] fix media create error not being checked (#1283) (diff)
downloadgotosocial-1659f75ae6e491355e1d32f0f5e8b956ef70a797.tar.xz
[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
Diffstat (limited to 'internal/gtsmodel')
-rw-r--r--internal/gtsmodel/mediaattachment.go13
1 files changed, 8 insertions, 5 deletions
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.