From 2bbc64be4317166d3abb7aa177d4913f166a53e8 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Sat, 17 Dec 2022 05:38:56 +0100 Subject: [PATCH] [feature] Enable basic video support (mp4 only) (#1274) * [feature] basic video support * fix missing semicolon * replace text shadow with stacked icons Co-authored-by: f0x --- README.md | 3 +- go.mod | 1 + go.sum | 8 + .../api/client/instance/instancepatch_test.go | 10 +- internal/media/image.go | 85 +- internal/media/manager_test.go | 72 + internal/media/processingmedia.go | 70 +- internal/media/test/test-mp4-original.mp4 | Bin 0 -> 312413 bytes internal/media/test/test-mp4-processed.mp4 | Bin 0 -> 312413 bytes internal/media/test/test-mp4-thumbnail.jpg | Bin 0 -> 1912 bytes internal/media/types.go | 13 + internal/media/util.go | 15 +- internal/media/video.go | 140 + vendor/github.com/abema/go-mp4/.gitignore | 1 + vendor/github.com/abema/go-mp4/LICENSE | 21 + vendor/github.com/abema/go-mp4/README.md | 153 + vendor/github.com/abema/go-mp4/anytype.go | 19 + vendor/github.com/abema/go-mp4/bitio/bitio.go | 8 + vendor/github.com/abema/go-mp4/bitio/read.go | 97 + vendor/github.com/abema/go-mp4/bitio/write.go | 61 + vendor/github.com/abema/go-mp4/box.go | 188 ++ vendor/github.com/abema/go-mp4/box_info.go | 155 + vendor/github.com/abema/go-mp4/box_types.go | 2745 +++++++++++++++++ vendor/github.com/abema/go-mp4/extract.go | 98 + vendor/github.com/abema/go-mp4/field.go | 290 ++ vendor/github.com/abema/go-mp4/marshaller.go | 639 ++++ vendor/github.com/abema/go-mp4/mp4.go | 151 + vendor/github.com/abema/go-mp4/probe.go | 673 ++++ vendor/github.com/abema/go-mp4/read.go | 182 ++ vendor/github.com/abema/go-mp4/string.go | 261 ++ vendor/github.com/abema/go-mp4/util/io.go | 30 + vendor/github.com/abema/go-mp4/util/string.go | 42 + vendor/github.com/abema/go-mp4/write.go | 68 + vendor/modules.txt | 5 + web/source/css/status.css | 31 +- web/source/frontend/index.js | 8 +- web/source/package.json | 1 + web/source/yarn.lock | 5 + web/template/status.tmpl | 20 +- 39 files changed, 6276 insertions(+), 93 deletions(-) create mode 100644 internal/media/test/test-mp4-original.mp4 create mode 100644 internal/media/test/test-mp4-processed.mp4 create mode 100644 internal/media/test/test-mp4-thumbnail.jpg create mode 100644 internal/media/video.go create mode 100644 vendor/github.com/abema/go-mp4/.gitignore create mode 100644 vendor/github.com/abema/go-mp4/LICENSE create mode 100644 vendor/github.com/abema/go-mp4/README.md create mode 100644 vendor/github.com/abema/go-mp4/anytype.go create mode 100644 vendor/github.com/abema/go-mp4/bitio/bitio.go create mode 100644 vendor/github.com/abema/go-mp4/bitio/read.go create mode 100644 vendor/github.com/abema/go-mp4/bitio/write.go create mode 100644 vendor/github.com/abema/go-mp4/box.go create mode 100644 vendor/github.com/abema/go-mp4/box_info.go create mode 100644 vendor/github.com/abema/go-mp4/box_types.go create mode 100644 vendor/github.com/abema/go-mp4/extract.go create mode 100644 vendor/github.com/abema/go-mp4/field.go create mode 100644 vendor/github.com/abema/go-mp4/marshaller.go create mode 100644 vendor/github.com/abema/go-mp4/mp4.go create mode 100644 vendor/github.com/abema/go-mp4/probe.go create mode 100644 vendor/github.com/abema/go-mp4/read.go create mode 100644 vendor/github.com/abema/go-mp4/string.go create mode 100644 vendor/github.com/abema/go-mp4/util/io.go create mode 100644 vendor/github.com/abema/go-mp4/util/string.go create mode 100644 vendor/github.com/abema/go-mp4/write.go diff --git a/README.md b/README.md index b21abd1e0..83ce09fa9 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Here's a screenshot of the instance landing page! - [Credits](#credits) - [Libraries](#libraries) - [Image Attribution](#image-attribution) - - [Developers](#developers) + - [Team](#team) - [Special Thanks](#special-thanks) - [Sponsorship + Funding](#sponsorship--funding) - [OpenCollective](#opencollective) @@ -210,6 +210,7 @@ For bugs and feature requests, please check to see if there's [already an issue] The following libraries and frameworks are used by GoToSocial, with gratitude 💕 +- [abema/go-mp4](https://github.com/abema/go-mp4); mp4 parsing. [MIT License](https://spdx.org/licenses/MIT.html). - [buckket/go-blurhash](https://github.com/buckket/go-blurhash); used for generating image blurhashes. [GPL-3.0 License](https://spdx.org/licenses/GPL-3.0-only.html). - [coreos/go-oidc](https://github.com/coreos/go-oidc); OIDC client library. [Apache-2.0 License](https://spdx.org/licenses/Apache-2.0.html). - [disintegration/imaging](https://github.com/disintegration/imaging); image resizing. [MIT License](https://spdx.org/licenses/MIT.html). diff --git a/go.mod b/go.mod index 3815daf68..3a3615fa1 100644 --- a/go.mod +++ b/go.mod @@ -13,6 +13,7 @@ require ( codeberg.org/gruf/go-mutexes v1.1.4 codeberg.org/gruf/go-runners v1.3.1 codeberg.org/gruf/go-store/v2 v2.0.10 + github.com/abema/go-mp4 v0.8.0 github.com/buckket/go-blurhash v1.1.0 github.com/coreos/go-oidc/v3 v3.4.0 github.com/cornelk/hashmap v1.0.8 diff --git a/go.sum b/go.sum index bbe6bbeb9..5a97a1879 100644 --- a/go.sum +++ b/go.sum @@ -110,6 +110,8 @@ github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030I github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/abema/go-mp4 v0.8.0 h1:JHYkOvTfBpTnqJHiFFOXe8d6wiFy5MtDnA10fgccNqY= +github.com/abema/go-mp4 v0.8.0/go.mod h1:vPl9t5ZK7K0x68jh12/+ECWBCXoWuIDtNgPtU2f04ws= github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= @@ -491,6 +493,8 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/orcaman/writerseeker v0.0.0-20200621085525-1d3f536ff85e h1:s2RNOM/IGdY0Y6qfTeUKhDawdHDpK9RGBdx80qN4Ttw= +github.com/orcaman/writerseeker v0.0.0-20200621085525-1d3f536ff85e/go.mod h1:nBdnFKj15wFbf94Rwfq4m30eAcyY9V/IyKAGQFtqkW0= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= @@ -568,6 +572,7 @@ github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKs github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/sunfish-shogi/bufseekio v0.0.0-20210207115823-a4185644b365/go.mod h1:dEzdXgvImkQ3WLI+0KQpmEx8T/C/ma9KeS3AfmU899I= github.com/superseriousbusiness/activity v1.2.1-gts h1:wh7v0zYa1mJmqB35PSfvgl4cs51Dh5PyfKvcZLSxMQU= github.com/superseriousbusiness/activity v1.2.1-gts/go.mod h1:AZw0Xb4Oju8rmaJCZ21gc5CPg47MmNgyac+Hx5jo8VM= github.com/superseriousbusiness/exif-terminator v0.5.0 h1:57SO/geyaOl2v/lJSQLVcQbdghpyFuK8ZTtaHL81fUQ= @@ -1177,11 +1182,14 @@ gopkg.in/mcuadros/go-syslog.v2 v2.3.0 h1:kcsiS+WsTKyIEPABJBJtoG0KkOS6yzvJ+/eZlhD gopkg.in/mcuadros/go-syslog.v2 v2.3.0/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= +gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= diff --git a/internal/api/client/instance/instancepatch_test.go b/internal/api/client/instance/instancepatch_test.go index edf724d4a..353ae9c16 100644 --- a/internal/api/client/instance/instancepatch_test.go +++ b/internal/api/client/instance/instancepatch_test.go @@ -65,7 +65,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch1() { b, err := io.ReadAll(result.Body) suite.NoError(err) - suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"Example Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"someone@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b)) + suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"Example Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"someone@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b)) } func (suite *InstancePatchTestSuite) TestInstancePatch2() { @@ -95,7 +95,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch2() { b, err := io.ReadAll(result.Body) suite.NoError(err) - suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"Geoff's Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b)) + suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"Geoff's Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b)) } func (suite *InstancePatchTestSuite) TestInstancePatch3() { @@ -125,7 +125,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch3() { b, err := io.ReadAll(result.Body) suite.NoError(err) - suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is some html, which is \u003cem\u003eallowed\u003c/em\u003e in short descriptions.\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b)) + suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is some html, which is \u003cem\u003eallowed\u003c/em\u003e in short descriptions.\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b)) } func (suite *InstancePatchTestSuite) TestInstancePatch4() { @@ -216,7 +216,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch6() { b, err := io.ReadAll(result.Body) suite.NoError(err) - suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b)) + suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b)) } func (suite *InstancePatchTestSuite) TestInstancePatch7() { @@ -279,7 +279,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch8() { } suite.NotEmpty(instanceAccount.AvatarMediaAttachmentID) - expectedInstanceResponse := fmt.Sprintf(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/fileserver/%s/attachment/original/%s.gif","thumbnail_type":"image/gif","thumbnail_description":"A bouncing little green peglin.","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, instanceAccount.ID, instanceAccount.AvatarMediaAttachmentID) + expectedInstanceResponse := fmt.Sprintf(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/fileserver/%s/attachment/original/%s.gif","thumbnail_type":"image/gif","thumbnail_description":"A bouncing little green peglin.","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, instanceAccount.ID, instanceAccount.AvatarMediaAttachmentID) suite.Equal(expectedInstanceResponse, string(b)) } diff --git a/internal/media/image.go b/internal/media/image.go index b095a6c49..aedac5707 100644 --- a/internal/media/image.go +++ b/internal/media/image.go @@ -38,16 +38,7 @@ const ( thumbnailMaxHeight = 512 ) -type imageMeta struct { - width int - height int - size int - aspect float64 - blurhash string // defined only for calls to deriveThumbnail if createBlurhash is true - small []byte // defined only for calls to deriveStaticEmoji or deriveThumbnail -} - -func decodeGif(r io.Reader) (*imageMeta, error) { +func decodeGif(r io.Reader) (*mediaMeta, error) { gif, err := gif.DecodeAll(r) if err != nil { return nil, err @@ -59,7 +50,7 @@ func decodeGif(r io.Reader) (*imageMeta, error) { size := width * height aspect := float64(width) / float64(height) - return &imageMeta{ + return &mediaMeta{ width: width, height: height, size: size, @@ -67,7 +58,7 @@ func decodeGif(r io.Reader) (*imageMeta, error) { }, nil } -func decodeImage(r io.Reader, contentType string) (*imageMeta, error) { +func decodeImage(r io.Reader, contentType string) (*mediaMeta, error) { var i image.Image var err error @@ -96,7 +87,7 @@ func decodeImage(r io.Reader, contentType string) (*imageMeta, error) { size := width * height aspect := float64(width) / float64(height) - return &imageMeta{ + return &mediaMeta{ width: width, height: height, size: size, @@ -104,8 +95,37 @@ func decodeImage(r io.Reader, contentType string) (*imageMeta, error) { }, nil } -// deriveThumbnail returns a byte slice and metadata for a thumbnail -// of a given jpeg, png, gif or webp, or an error if something goes wrong. +// deriveStaticEmojji takes a given gif or png of an emoji, decodes it, and re-encodes it as a static png. +func deriveStaticEmoji(r io.Reader, contentType string) (*mediaMeta, error) { + var i image.Image + var err error + + switch contentType { + case mimeImagePng: + i, err = StrippedPngDecode(r) + if err != nil { + return nil, err + } + case mimeImageGif: + i, err = gif.Decode(r) + if err != nil { + return nil, err + } + default: + return nil, fmt.Errorf("content type %s not allowed for emoji", contentType) + } + + out := &bytes.Buffer{} + if err := png.Encode(out, i); err != nil { + return nil, err + } + return &mediaMeta{ + small: out.Bytes(), + }, nil +} + +// deriveThumbnailFromImage returns a byte slice and metadata for a thumbnail +// of a given piece of media, or an error if something goes wrong. // // If createBlurhash is true, then a blurhash will also be generated from a tiny // version of the image. This costs precious CPU cycles, so only use it if you @@ -113,7 +133,7 @@ func decodeImage(r io.Reader, contentType string) (*imageMeta, error) { // // If createBlurhash is false, then the blurhash field on the returned ImageAndMeta // will be an empty string. -func deriveThumbnail(r io.Reader, contentType string, createBlurhash bool) (*imageMeta, error) { +func deriveThumbnailFromImage(r io.Reader, contentType string, createBlurhash bool) (*mediaMeta, error) { var i image.Image var err error @@ -126,7 +146,7 @@ func deriveThumbnail(r io.Reader, contentType string, createBlurhash bool) (*ima }) i, err = imaging.Decode(strippedPngReader, imaging.AutoOrientation(true)) default: - err = fmt.Errorf("content type %s can't be thumbnailed", contentType) + err = fmt.Errorf("content type %s can't be thumbnailed as an image", contentType) } if err != nil { @@ -149,7 +169,7 @@ func deriveThumbnail(r io.Reader, contentType string, createBlurhash bool) (*ima size := thumbX * thumbY aspect := float64(thumbX) / float64(thumbY) - im := &imageMeta{ + im := &mediaMeta{ width: thumbX, height: thumbY, size: size, @@ -178,32 +198,3 @@ func deriveThumbnail(r io.Reader, contentType string, createBlurhash bool) (*ima return im, nil } - -// deriveStaticEmojji takes a given gif or png of an emoji, decodes it, and re-encodes it as a static png. -func deriveStaticEmoji(r io.Reader, contentType string) (*imageMeta, error) { - var i image.Image - var err error - - switch contentType { - case mimeImagePng: - i, err = StrippedPngDecode(r) - if err != nil { - return nil, err - } - case mimeImageGif: - i, err = gif.Decode(r) - if err != nil { - return nil, err - } - default: - return nil, fmt.Errorf("content type %s not allowed for emoji", contentType) - } - - out := &bytes.Buffer{} - if err := png.Encode(out, i); err != nil { - return nil, err - } - return &imageMeta{ - small: out.Bytes(), - }, nil -} diff --git a/internal/media/manager_test.go b/internal/media/manager_test.go index 659740af6..a8912bde0 100644 --- a/internal/media/manager_test.go +++ b/internal/media/manager_test.go @@ -376,6 +376,78 @@ func (suite *ManagerTestSuite) TestSimpleJpegProcessBlocking() { suite.Equal(processedThumbnailBytesExpected, processedThumbnailBytes) } +func (suite *ManagerTestSuite) TestSlothVineProcessBlocking() { + ctx := context.Background() + + data := func(_ context.Context) (io.ReadCloser, int64, error) { + // load bytes from a test video + b, err := os.ReadFile("./test/test-mp4-original.mp4") + if err != nil { + panic(err) + } + return io.NopCloser(bytes.NewBuffer(b)), int64(len(b)), nil + } + + accountID := "01FS1X72SK9ZPW0J1QQ68BD264" + + // process the media with no additional info provided + processingMedia, err := suite.manager.ProcessMedia(ctx, data, nil, accountID, nil) + suite.NoError(err) + // fetch the attachment id from the processing media + attachmentID := processingMedia.AttachmentID() + + // do a blocking call to fetch the attachment + attachment, err := processingMedia.LoadAttachment(ctx) + suite.NoError(err) + suite.NotNil(attachment) + + // make sure it's got the stuff set on it that we expect + // the attachment ID and accountID we expect + suite.Equal(attachmentID, attachment.ID) + suite.Equal(accountID, attachment.AccountID) + + // file meta should be correctly derived from the video + suite.EqualValues(gtsmodel.Original{ + Width: 338, Height: 240, Size: 81120, Aspect: 1.4083333333333334, + }, attachment.FileMeta.Original) + suite.EqualValues(gtsmodel.Small{ + Width: 338, Height: 240, Size: 81120, Aspect: 1.4083333333333334, + }, attachment.FileMeta.Small) + suite.Equal("video/mp4", attachment.File.ContentType) + suite.Equal("image/jpeg", attachment.Thumbnail.ContentType) + suite.Equal(312413, attachment.File.FileSize) + suite.Equal("", attachment.Blurhash) + + // now make sure the attachment is in the database + dbAttachment, err := suite.db.GetAttachmentByID(ctx, attachmentID) + suite.NoError(err) + suite.NotNil(dbAttachment) + + // make sure the processed file is in storage + processedFullBytes, err := suite.storage.Get(ctx, attachment.File.Path) + suite.NoError(err) + suite.NotEmpty(processedFullBytes) + + // load the processed bytes from our test folder, to compare + processedFullBytesExpected, err := os.ReadFile("./test/test-mp4-processed.mp4") + suite.NoError(err) + suite.NotEmpty(processedFullBytesExpected) + + // the bytes in storage should be what we expected + suite.Equal(processedFullBytesExpected, processedFullBytes) + + // now do the same for the thumbnail and make sure it's what we expected + processedThumbnailBytes, err := suite.storage.Get(ctx, attachment.Thumbnail.Path) + suite.NoError(err) + suite.NotEmpty(processedThumbnailBytes) + + processedThumbnailBytesExpected, err := os.ReadFile("./test/test-mp4-thumbnail.jpg") + suite.NoError(err) + suite.NotEmpty(processedThumbnailBytesExpected) + + suite.Equal(processedThumbnailBytesExpected, processedThumbnailBytes) +} + func (suite *ManagerTestSuite) TestSimpleJpegProcessBlockingNoContentLengthGiven() { ctx := context.Background() diff --git a/internal/media/processingmedia.go b/internal/media/processingmedia.go index 94c8f9a7a..a7ea4dbab 100644 --- a/internal/media/processingmedia.go +++ b/internal/media/processingmedia.go @@ -88,11 +88,11 @@ func (p *ProcessingMedia) LoadAttachment(ctx context.Context) (*gtsmodel.MediaAt return nil, err } - if err := p.loadThumb(ctx); err != nil { + if err := p.loadFullSize(ctx); err != nil { return nil, err } - if err := p.loadFullSize(ctx); err != nil { + if err := p.loadThumb(ctx); err != nil { return nil, err } @@ -128,7 +128,6 @@ func (p *ProcessingMedia) loadThumb(ctx context.Context) error { switch processState(thumbState) { case received: // we haven't processed a thumbnail for this media yet so do it now - // check if we need to create a blurhash or if there's already one set var createBlurhash bool if p.attachment.Blurhash == "" { @@ -136,27 +135,46 @@ func (p *ProcessingMedia) loadThumb(ctx context.Context) error { createBlurhash = true } - // stream the original file out of storage - stored, err := p.storage.GetStream(ctx, p.attachment.File.Path) - if err != nil { - p.err = fmt.Errorf("loadThumb: error fetching file from storage: %s", err) + var ( + thumb *mediaMeta + err error + ) + switch ct := p.attachment.File.ContentType; ct { + case mimeImageJpeg, mimeImagePng, mimeImageWebp, mimeImageGif: + // thumbnail the image from the original stored full size version + stored, err := p.storage.GetStream(ctx, p.attachment.File.Path) + if err != nil { + p.err = fmt.Errorf("loadThumb: error fetching file from storage: %s", err) + atomic.StoreInt32(&p.thumbState, int32(errored)) + return p.err + } + + thumb, err = deriveThumbnailFromImage(stored, ct, createBlurhash) + + // try to close the stored stream we had open, no matter what + if closeErr := stored.Close(); closeErr != nil { + log.Errorf("error closing stream: %s", closeErr) + } + + // now check if we managed to get a thumbnail + if err != nil { + p.err = fmt.Errorf("loadThumb: error deriving thumbnail: %s", err) + atomic.StoreInt32(&p.thumbState, int32(errored)) + return p.err + } + case mimeVideoMp4: + // create a generic thumbnail based on video height + width + thumb, err = deriveThumbnailFromVideo(p.attachment.FileMeta.Original.Height, p.attachment.FileMeta.Original.Width) + if err != nil { + p.err = fmt.Errorf("loadThumb: error deriving thumbnail: %s", err) + atomic.StoreInt32(&p.thumbState, int32(errored)) + return p.err + } + default: + p.err = fmt.Errorf("loadThumb: content type %s not a processible image type", ct) atomic.StoreInt32(&p.thumbState, int32(errored)) return p.err } - defer stored.Close() - - // stream the file from storage straight into the derive thumbnail function - thumb, err := deriveThumbnail(stored, p.attachment.File.ContentType, createBlurhash) - if err != nil { - p.err = fmt.Errorf("loadThumb: error deriving thumbnail: %s", err) - atomic.StoreInt32(&p.thumbState, int32(errored)) - return p.err - } - - // Close stored media now we're done - if err := stored.Close(); err != nil { - log.Errorf("loadThumb: error closing stored full size: %s", err) - } // put the thumbnail in storage if err := p.storage.Put(ctx, p.attachment.Thumbnail.Path, thumb.small); err != nil && err != storage.ErrAlreadyExists { @@ -195,7 +213,7 @@ func (p *ProcessingMedia) loadFullSize(ctx context.Context) error { switch processState(fullSizeState) { case received: var err error - var decoded *imageMeta + var decoded *mediaMeta // stream the original file out of storage... stored, err := p.storage.GetStream(ctx, p.attachment.File.Path) @@ -218,6 +236,8 @@ func (p *ProcessingMedia) loadFullSize(ctx context.Context) error { decoded, err = decodeImage(stored, ct) case mimeImageGif: decoded, err = decodeGif(stored) + case mimeVideoMp4: + decoded, err = decodeVideo(stored, ct) default: err = fmt.Errorf("loadFullSize: content type %s not a processible image type", ct) } @@ -295,7 +315,7 @@ func (p *ProcessingMedia) store(ctx context.Context) error { } // bail if this is a type we can't process - if !supportedImage(contentType) { + if !supportedAttachment(contentType) { return fmt.Errorf("store: media type %s not (yet) supported", contentType) } @@ -338,6 +358,10 @@ func (p *ProcessingMedia) store(ctx context.Context) error { // can't terminate if we don't know the file size, so just store the multiReader readerToStore = multiReader } + case mimeMp4: + p.attachment.Type = gtsmodel.FileTypeVideo + // nothing to terminate, we can just store the multireader + readerToStore = multiReader default: return fmt.Errorf("store: couldn't process %s", extension) } diff --git a/internal/media/test/test-mp4-original.mp4 b/internal/media/test/test-mp4-original.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f78f51de65a7e3703122a819e01b19d9edbf23f2 GIT binary patch literal 312413 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 ->4x*}T} zCtQ)i&rw5X@`)pGQH257$3Q!85hJ#3E0!=iydH9Fmw708Zqt$3nitrx24L3@!VFJu zGm%rLI2VoX$>}0=+&MM(RkC7`G~n5EKJP};1B(7`WeIn$0G8bL3g%($D6Po()d`tW zS~xbK40k%r=}JvhUqX@zddxm96+qMjr@dTrDLP&3ldd8NN=M5bJ@M5;sQ z?-{s1%JOXbo|5w2N^Fsxrb~xXrmcWQ!n$CfE+tGXeS)+6L;ED8^YCVFF|h;?mecS5 zlYc0toCf#th%QkIU2WuDftGCY?jopYFW?hM;M*ygk}KPl;I#Nd_SyXC?Nty?ZspM9 zzv%tQqatZ#-HN!ix?u* z#F{LcbJ!ydlHXWN(=en%?U`4b7Z-+dMZsg{6@ySnow(+y(fg7QGSD=f`!b#+vL8ZY z(@Y!AUTOW}nuO9-;ilu{2P-?W1`C1s75{P(6^PXdLY44FqK=Mh@7gZ13$xI3EL8RA zD39Di(gPPx-WjYj_!=dRPbloEOd}GYmUE30z)j@>VNVoTQvL*NR}n%m(>pn47p+i_ zlmD`32T}=Zw9i+m)iw(FsG_ajT^*j&b=t-6D|SXZ&1=cG#250JW94znbF)SI9pA`f#2va$}P1dK(XK zw-NKK!AFkYRbAeiqMhTlK_MEHrNDz>5ZTN&upl(oYGF@WaTdAwo99-^b|@-&?xY0# zi&}N%Cj#8m69jq#31d>zeSPLBCJSW0B``_FBHO;c;Tmr=#7K6bDVdp55#WXjDi!h5 zhn;vt=mjS@!4|X9l)qx|yy3pyKmY(7)v+vbzs4v4qmNM%ag7y+i2T7RK*|Yb$MZp65CA=z#e`NT`~8I_L73R2kGW#i zDxg&L@imdZr+MtFiqI?*W-QCX|J-*5==gqwvx(A|j*!`LmW1D#R5aFAUORU%tKRMf z=S>3!MNVvm+P}5A^}yYwxov6Mt*13*X5@!zh5WQLmMCvDY8UDO1^`CnUz&zK?u(dN zfeFa5^S1ndPCrbeh_^LS-~a#$0Q$!v8kDWb!(njQTsE*FLTE5O9VKzc9$qC$cVTNX z{ha$ETbZu6g!zIemxf9V{fM*I(Q*#Pp~*<_3dSB(!hZR+U+yCfoK2JAi6c z6XXueOSC&i8JNkeGizogc~gAT0_K?C&hC+V4uP5Dmc6;~kh+Z0Q;V#r+_%&c1VZM@ z<*1cL7m_wApSHw#x46CA<-Aq8wwChCxq~-KK&es2t&eHXmkXn2#vVcJ8f&9?+Mn=m z&(W67yvd60foGN@?MGejC4daY1A^rqujgs8_?2{q<9WJUr?*nur2dYCJETuC%$TfaD32CabtRr6P^KEC-wG%I00MwMvFrc<1AIZ6 z!aM&6iZNAAY)lp{n%qKlM&ob{otgomQQxb;sCuYjVs}1su?FWXXuHJofTr83aV-4d zxY5Sv0{q>q?Km@1@UaUqqhb>us|gqon06S`rSS=huZ(#Lvtc-kD47S|z|i}518JOJ z-8)m(i0Z`*Es>;OBk1h<#O+P%-Z0}kJ3TXd3@3@<b{ zQL+96!)Yk~(y}%>_bMw%@U#r=#dUc%+|4bDoI?oFmcf`q888Eeb< z%!v8+j&uG#a~b*F65Cyp944oI#<>n1PAI9J?AZb@y4{CChbiiBaN;)?vdmJFtjVH` z0L^gJfcVb`s@s*m$3__ROI>K=l}>3xhJ9CpR^0d&s8hu*Jv?}gc$AH2d0@`D3_ErMKMS40p08>dQ;YHGA?f%(OP+F3g2?XG!* z%R5OOCt_{G_oY7;m7W8C5!6Qn=B($D;*hr_mBU)8h>&3bL~gke6|?n@-(FIC;avbG zrK5HifQGW3e0bYZojpG*X+qZT2-T&byz%y=WvSas!ivg8*0os}vr{7kYPlGb7&JjF z^vR$4J5YCL&(QdwnAU~K;j8i?}bB0~#N?|Vd0ptOp2yJ?= zjnbB=he%x}u`0qYp(OI93lTp9hfozReZ-hGv|qYji|xW)vhrY-EmL1AN~<|YIN2# z>z^7z^bt1ux|Z|n<#|P%90}IPaAhZ5SaZ$*N7bP}qM4`*VIwu@Q9{E*`}+(5sc@@& zW;y)Bbw8O=SgNq$tS`BK&wWf)9i}T%ZcC`@(8H`~KjsE2L9%2EfPoE+*^}`nME&*R*F?UIiG0jbv9og>Sr%>s;37bE?S#TKO$019qEHvtj@RG}yhErmDNJeMx4 zfB*uP$NXRGa!3FgAAW%zh|iZtIM3)GiHwpfjOp|*nBwaV*xEr>=()cX=BwO=J#qMHtA5Q`)8*yC_&gfU8RZb#(3S=UQ&Hr#UXZLt_fe~){eF#WM2Yl&QR z{AC8wj>sbesc#cZ*^!$xvRu;#;|i_waz$>F|Q*O|V&tI~_%cP^9s z^2WZb@_%>`Tl!XRlONmN6yxmVj3kc(;!)kKPVmp&jCe6Y@k3B3tJ+y~3l&_G;(hbyUveWIca(nKv>6 zKPI7DX!|gE9P1EtHxp5$6Y)gWg$Uje$}C3~_yLAigN^q)F?NAUKADY2SkgMK{ixlI zcB+qQy;^#8zPWdewemwvF_^gU457#srO75)C0IO#kED9P!W$>uvJ_Q;19^dN5WfsS zcHhQ%+EpnJbe>r#*FiKgXcc}it%Nm&eF*>j!GcE;`aPxBrZA7KBiUUF6N4fy=OTJ4 zZ;wdojiUZTAkHJZ(;}aGd1Di@mkLKjJQ-odp*uGGu>GH~wA+&PvH-NPEylDJsJ(a= zq5*&8Q{CD_dpc>ATyuWb{aYV*FPPG{Vl0j&<*r4XJR_I;zrt1swfY68$DO&#nM4$a zB&R7@dYr^98W7e1(~pBVc!p^xf62-Cy@C(4V5%>A68r}Kep96?<$VpT+cNDoaHT;k zTQdHmRBEH;b9&$!WLdV$n;^oJ1AK`qfv2rzDe zjbIS zk8lVaJ~(CYZ9J~6q21!_vQK~=^g~cbV$gG6*)nMT&&Yux8kD`tLujE|7$8As6L^Ef z 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 RwyYQAN_zGPJ#gh*ydG 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 literal 0 HcmV?d00001 diff --git a/internal/media/test/test-mp4-processed.mp4 b/internal/media/test/test-mp4-processed.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f78f51de65a7e3703122a819e01b19d9edbf23f2 GIT binary patch literal 312413 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 ->4x*}T} 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 z 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 RwyYQAN_zGPJ#gh*ydG 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 literal 0 HcmV?d00001 diff --git a/internal/media/test/test-mp4-thumbnail.jpg b/internal/media/test/test-mp4-thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8bfdf15406ef94da62d59659bf4af36ed537849c GIT binary patch literal 1912 zcmex=~qY?v?AS1INnI}gNkudQ4=SZn7D+bl&YG#hNhN@shPQjrIoXbtDC!rr&n-DXjpheWK?oWYFc_m zW>#@YX<2ziWmR)aYg>CqXV;|3Q>IRvK4a#rMT?g#UABD1%2k^-Z`rzS`;MKv4jn#n z^w{weCr@3veC6u3>o;!Rdidz^lc&#~zj*oTWKS#c?s+z;ylzumXF{bg8S$HEe0NDMqq?73o_U2POu#V!. +*/ + +package media + +import ( + "bytes" + "errors" + "fmt" + "image" + "image/color" + "image/draw" + "image/jpeg" + "io" + "os" + + "github.com/abema/go-mp4" + "github.com/superseriousbusiness/gotosocial/internal/log" +) + +var thumbFill = color.RGBA{42, 43, 47, 0} // the color to fill video thumbnails with + +func decodeVideo(r io.Reader, contentType string) (*mediaMeta, error) { + // We'll need a readseeker to decode the video. We can get a readseeker + // without burning too much mem by first copying the reader into a temp file. + // First create the file in the temporary directory... + tempFile, err := os.CreateTemp(os.TempDir(), "gotosocial-") + if err != nil { + return nil, fmt.Errorf("could not create temporary file while decoding video: %w", err) + } + tempFileName := tempFile.Name() + + // Make sure to clean up the temporary file when we're done with it + defer func() { + if err := tempFile.Close(); err != nil { + log.Errorf("could not close file %s: %s", tempFileName, err) + } + if err := os.Remove(tempFileName); err != nil { + log.Errorf("could not remove file %s: %s", tempFileName, err) + } + }() + + // Now copy the entire reader we've been provided into the + // temporary file; we won't use the reader again after this. + if _, err := io.Copy(tempFile, r); err != nil { + return nil, fmt.Errorf("could not copy video reader into temporary file %s: %w", tempFileName, err) + } + + // define some vars we need to pull the width/height out of the video + var ( + height int + width int + readHandler = getReadHandler(&height, &width) + ) + + // do the actual decoding here, providing the temporary file we created as readseeker + if _, err := mp4.ReadBoxStructure(tempFile, readHandler); err != nil { + return nil, fmt.Errorf("parsing video data: %w", err) + } + + // width + height should now be updated by the readHandler + return &mediaMeta{ + width: width, + height: height, + size: height * width, + aspect: float64(width) / float64(height), + }, nil +} + +// getReadHandler returns a handler function that updates the underling +// values of the given height and width int pointers to the hightest and +// widest points of the video. +func getReadHandler(height *int, width *int) func(h *mp4.ReadHandle) (interface{}, error) { + return func(rh *mp4.ReadHandle) (interface{}, error) { + if rh.BoxInfo.Type == mp4.BoxTypeTkhd() { + box, _, err := rh.ReadPayload() + if err != nil { + return nil, fmt.Errorf("could not read mp4 payload: %w", err) + } + + tkhd, ok := box.(*mp4.Tkhd) + if !ok { + return nil, errors.New("box was not of type *mp4.Tkhd") + } + + // if height + width of this box are greater than what + // we have stored, then update our stored values + if h := int(tkhd.GetHeight()); h > *height { + *height = h + } + + if w := int(tkhd.GetWidth()); w > *width { + *width = w + } + } + + if rh.BoxInfo.IsSupportedType() { + return rh.Expand() + } + + return nil, nil + } +} + +func deriveThumbnailFromVideo(height int, width int) (*mediaMeta, error) { + // create a rectangle with the same dimensions as the video + img := image.NewRGBA(image.Rect(0, 0, width, height)) + + // fill the rectangle with our desired fill color + draw.Draw(img, img.Bounds(), &image.Uniform{thumbFill}, image.Point{}, draw.Src) + + // we can get away with using extremely poor quality for this monocolor thumbnail + out := &bytes.Buffer{} + if err := jpeg.Encode(out, img, &jpeg.Options{Quality: 1}); err != nil { + return nil, fmt.Errorf("error encoding video thumbnail: %w", err) + } + + return &mediaMeta{ + width: width, + height: height, + size: width * height, + aspect: float64(width) / float64(height), + small: out.Bytes(), + }, nil +} diff --git a/vendor/github.com/abema/go-mp4/.gitignore b/vendor/github.com/abema/go-mp4/.gitignore new file mode 100644 index 000000000..22d0d82f8 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/.gitignore @@ -0,0 +1 @@ +vendor diff --git a/vendor/github.com/abema/go-mp4/LICENSE b/vendor/github.com/abema/go-mp4/LICENSE new file mode 100644 index 000000000..c06ca63d3 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/abema/go-mp4/README.md b/vendor/github.com/abema/go-mp4/README.md new file mode 100644 index 000000000..2c6acfdd3 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/README.md @@ -0,0 +1,153 @@ +go-mp4 +------ + +[![Go Reference](https://pkg.go.dev/badge/github.com/abema/go-mp4.svg)](https://pkg.go.dev/github.com/abema/go-mp4) +![Test](https://github.com/abema/go-mp4/actions/workflows/test.yml/badge.svg) +[![Coverage Status](https://coveralls.io/repos/github/abema/go-mp4/badge.svg)](https://coveralls.io/github/abema/go-mp4) +[![Go Report Card](https://goreportcard.com/badge/github.com/abema/go-mp4)](https://goreportcard.com/report/github.com/abema/go-mp4) + +go-mp4 is Go library for reading and writing MP4. + +## Integration with your Go application + +### Reading + +You can parse MP4 file as follows: + +```go +// expand all boxes +_, err := mp4.ReadBoxStructure(file, func(h *mp4.ReadHandle) (interface{}, error) { + fmt.Println("depth", len(h.Path)) + + // Box Type (e.g. "mdhd", "tfdt", "mdat") + fmt.Println("type", h.BoxInfo.Type.String()) + + // Box Size + fmt.Println("size", h.BoxInfo.Size) + + if h.BoxInfo.IsSupportedType() { + // Payload + box, _, err := h.ReadPayload() + if err != nil { + return nil, err + } + str, err := mp4.Stringify(box, h.BoxInfo.Context) + if err != nil { + return nil, err + } + fmt.Println("payload", str) + + // Expands children + return h.Expand() + } + return nil, nil +}) +``` + +```go +// extract specific boxes +boxes, err := mp4.ExtractBoxWithPayload(file, nil, mp4.BoxPath{mp4.BoxTypeMoov(), mp4.BoxTypeTrak(), mp4.BoxTypeTkhd()}) +if err != nil { + : +} +for _, box := range boxes { + tkhd := box.Payload.(*mp4.Tkhd) + fmt.Println("track ID:", tkhd.TrackID) +} +``` + +```go +// get basic informations +info, err := mp4.Probe(bufseekio.NewReadSeeker(file, 1024, 4)) +if err != nil { + : +} +fmt.Println("track num:", len(info.Tracks)) +``` + +### Writing + +Writer helps you to write box tree. +The following sample code edits emsg box and writes to another file. + +```go +r := bufseekio.NewReadSeeker(inputFile, 128*1024, 4) +w := mp4.NewWriter(outputFile) +_, err = mp4.ReadBoxStructure(r, func(h *mp4.ReadHandle) (interface{}, error) { + switch h.BoxInfo.Type { + case mp4.BoxTypeEmsg(): + // write box size and box type + _, err := w.StartBox(&h.BoxInfo) + if err != nil { + return nil, err + } + // read payload + box, _, err := h.ReadPayload() + if err != nil { + return nil, err + } + // update MessageData + emsg := box.(*mp4.Emsg) + emsg.MessageData = []byte("hello world") + // write box playload + if _, err := mp4.Marshal(w, emsg, h.BoxInfo.Context); err != nil { + return nil, err + } + // rewrite box size + _, err = w.EndBox() + return nil, err + default: + // copy all + return nil, w.CopyBox(r, &h.BoxInfo) + } +}) +``` + +### User-defined Boxes + +You can create additional box definition as follows: + +```go +func BoxTypeXxxx() BoxType { return mp4.StrToBoxType("xxxx") } + +func init() { + mp4.AddBoxDef(&Xxxx{}, 0) +} + +type Xxxx struct { + FullBox `mp4:"0,extend"` + UI32 uint32 `mp4:"1,size=32"` + ByteArray []byte `mp4:"2,size=8,len=dynamic"` +} + +func (*Xxxx) GetType() BoxType { + return BoxTypeXxxx() +} +``` + +### Buffering + +go-mp4 has no buffering feature for I/O. +If you should reduce Read function calls, you can wrap the io.ReadSeeker by [bufseekio](https://github.com/sunfish-shogi/bufseekio). + +## Command Line Tool + +Install mp4tool as follows: + +```sh +go install github.com/abema/go-mp4/mp4tool@latest + +mp4tool -help +``` + +For example, `mp4tool dump MP4_FILE_NAME` command prints MP4 box tree as follows: + +``` +[moof] Size=504 + [mfhd] Size=16 Version=0 Flags=0x000000 SequenceNumber=1 + [traf] Size=480 + [tfhd] Size=28 Version=0 Flags=0x020038 TrackID=1 DefaultSampleDuration=9000 DefaultSampleSize=33550 DefaultSampleFlags=0x1010000 + [tfdt] Size=20 Version=1 Flags=0x000000 BaseMediaDecodeTimeV1=0 + [trun] Size=424 ... (use -a option to show all) +[mdat] Size=44569 Data=[...] (use -mdat option to expand) +``` diff --git a/vendor/github.com/abema/go-mp4/anytype.go b/vendor/github.com/abema/go-mp4/anytype.go new file mode 100644 index 000000000..d995f59b6 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/anytype.go @@ -0,0 +1,19 @@ +package mp4 + +type IAnyType interface { + IBox + SetType(BoxType) +} + +type AnyTypeBox struct { + Box + Type BoxType +} + +func (e *AnyTypeBox) GetType() BoxType { + return e.Type +} + +func (e *AnyTypeBox) SetType(boxType BoxType) { + e.Type = boxType +} diff --git a/vendor/github.com/abema/go-mp4/bitio/bitio.go b/vendor/github.com/abema/go-mp4/bitio/bitio.go new file mode 100644 index 000000000..404fd1b82 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/bitio/bitio.go @@ -0,0 +1,8 @@ +package bitio + +import "errors" + +var ( + ErrInvalidAlignment = errors.New("invalid alignment") + ErrDiscouragedReader = errors.New("discouraged reader implementation") +) diff --git a/vendor/github.com/abema/go-mp4/bitio/read.go b/vendor/github.com/abema/go-mp4/bitio/read.go new file mode 100644 index 000000000..4da76eae6 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/bitio/read.go @@ -0,0 +1,97 @@ +package bitio + +import "io" + +type Reader interface { + io.Reader + + // alignment: + // |-1-byte-block-|--------------|--------------|--------------| + // |<-offset->|<-------------------width---------------------->| + ReadBits(width uint) (data []byte, err error) + + ReadBit() (bit bool, err error) +} + +type ReadSeeker interface { + Reader + io.Seeker +} + +type reader struct { + reader io.Reader + octet byte + width uint +} + +func NewReader(r io.Reader) Reader { + return &reader{reader: r} +} + +func (r *reader) Read(p []byte) (n int, err error) { + if r.width != 0 { + return 0, ErrInvalidAlignment + } + return r.reader.Read(p) +} + +func (r *reader) ReadBits(size uint) ([]byte, error) { + bytes := (size + 7) / 8 + data := make([]byte, bytes) + offset := (bytes * 8) - (size) + + for i := uint(0); i < size; i++ { + bit, err := r.ReadBit() + if err != nil { + return nil, err + } + + byteIdx := (offset + i) / 8 + bitIdx := 7 - (offset+i)%8 + if bit { + data[byteIdx] |= 0x1 << bitIdx + } + } + + return data, nil +} + +func (r *reader) ReadBit() (bool, error) { + if r.width == 0 { + buf := make([]byte, 1) + if n, err := r.reader.Read(buf); err != nil { + return false, err + } else if n != 1 { + return false, ErrDiscouragedReader + } + r.octet = buf[0] + r.width = 8 + } + + r.width-- + return (r.octet>>r.width)&0x01 != 0, nil +} + +type readSeeker struct { + reader + seeker io.Seeker +} + +func NewReadSeeker(r io.ReadSeeker) ReadSeeker { + return &readSeeker{ + reader: reader{reader: r}, + seeker: r, + } +} + +func (r *readSeeker) Seek(offset int64, whence int) (int64, error) { + if whence == io.SeekCurrent && r.reader.width != 0 { + return 0, ErrInvalidAlignment + } + n, err := r.seeker.Seek(offset, whence) + if err != nil { + return n, err + } + r.reader.width = 0 + return n, nil +} diff --git a/vendor/github.com/abema/go-mp4/bitio/write.go b/vendor/github.com/abema/go-mp4/bitio/write.go new file mode 100644 index 000000000..5f63dd2d2 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/bitio/write.go @@ -0,0 +1,61 @@ +package bitio + +import ( + "io" +) + +type Writer interface { + io.Writer + + // alignment: + // |-1-byte-block-|--------------|--------------|--------------| + // |<-offset->|<-------------------width---------------------->| + WriteBits(data []byte, width uint) error + + WriteBit(bit bool) error +} + +type writer struct { + writer io.Writer + octet byte + width uint +} + +func NewWriter(w io.Writer) Writer { + return &writer{writer: w} +} + +func (w *writer) Write(p []byte) (n int, err error) { + if w.width != 0 { + return 0, ErrInvalidAlignment + } + return w.writer.Write(p) +} + +func (w *writer) WriteBits(data []byte, width uint) error { + length := uint(len(data)) * 8 + offset := length - width + for i := offset; i < length; i++ { + oi := i / 8 + if err := w.WriteBit((data[oi]>>(7-i%8))&0x01 != 0); err != nil { + return err + } + } + return nil +} + +func (w *writer) WriteBit(bit bool) error { + if bit { + w.octet |= 0x1 << (7 - w.width) + } + w.width++ + + if w.width == 8 { + if _, err := w.writer.Write([]byte{w.octet}); err != nil { + return err + } + w.octet = 0x00 + w.width = 0 + } + return nil +} diff --git a/vendor/github.com/abema/go-mp4/box.go b/vendor/github.com/abema/go-mp4/box.go new file mode 100644 index 000000000..72a137951 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/box.go @@ -0,0 +1,188 @@ +package mp4 + +import ( + "errors" + "io" + "math" + + "github.com/abema/go-mp4/bitio" +) + +const LengthUnlimited = math.MaxUint32 + +type ICustomFieldObject interface { + // GetFieldSize returns size of dynamic field + GetFieldSize(name string, ctx Context) uint + + // GetFieldLength returns length of dynamic field + GetFieldLength(name string, ctx Context) uint + + // IsOptFieldEnabled check whether if the optional field is enabled + IsOptFieldEnabled(name string, ctx Context) bool + + // StringifyField returns field value as string + StringifyField(name string, indent string, depth int, ctx Context) (string, bool) + + IsPString(name string, bytes []byte, remainingSize uint64, ctx Context) bool + + BeforeUnmarshal(r io.ReadSeeker, size uint64, ctx Context) (n uint64, override bool, err error) + + OnReadField(name string, r bitio.ReadSeeker, leftBits uint64, ctx Context) (rbits uint64, override bool, err error) + + OnWriteField(name string, w bitio.Writer, ctx Context) (wbits uint64, override bool, err error) +} + +type BaseCustomFieldObject struct { +} + +// GetFieldSize returns size of dynamic field +func (box *BaseCustomFieldObject) GetFieldSize(string, Context) uint { + panic(errors.New("GetFieldSize not implemented")) +} + +// GetFieldLength returns length of dynamic field +func (box *BaseCustomFieldObject) GetFieldLength(string, Context) uint { + panic(errors.New("GetFieldLength not implemented")) +} + +// IsOptFieldEnabled check whether if the optional field is enabled +func (box *BaseCustomFieldObject) IsOptFieldEnabled(string, Context) bool { + return false +} + +// StringifyField returns field value as string +func (box *BaseCustomFieldObject) StringifyField(string, string, int, Context) (string, bool) { + return "", false +} + +func (*BaseCustomFieldObject) IsPString(name string, bytes []byte, remainingSize uint64, ctx Context) bool { + return true +} + +func (*BaseCustomFieldObject) BeforeUnmarshal(io.ReadSeeker, uint64, Context) (uint64, bool, error) { + return 0, false, nil +} + +func (*BaseCustomFieldObject) OnReadField(string, bitio.ReadSeeker, uint64, Context) (uint64, bool, error) { + return 0, false, nil +} + +func (*BaseCustomFieldObject) OnWriteField(string, bitio.Writer, Context) (uint64, bool, error) { + return 0, false, nil +} + +// IImmutableBox is common interface of box +type IImmutableBox interface { + ICustomFieldObject + + // GetVersion returns the box version + GetVersion() uint8 + + // GetFlags returns the flags + GetFlags() uint32 + + // CheckFlag checks the flag status + CheckFlag(uint32) bool + + // GetType returns the BoxType + GetType() BoxType +} + +// IBox is common interface of box +type IBox interface { + IImmutableBox + + // SetVersion sets the box version + SetVersion(uint8) + + // SetFlags sets the flags + SetFlags(uint32) + + // AddFlag adds the flag + AddFlag(uint32) + + // RemoveFlag removes the flag + RemoveFlag(uint32) +} + +type Box struct { + BaseCustomFieldObject +} + +// GetVersion returns the box version +func (box *Box) GetVersion() uint8 { + return 0 +} + +// SetVersion sets the box version +func (box *Box) SetVersion(uint8) { +} + +// GetFlags returns the flags +func (box *Box) GetFlags() uint32 { + return 0x000000 +} + +// CheckFlag checks the flag status +func (box *Box) CheckFlag(flag uint32) bool { + return true +} + +// SetFlags sets the flags +func (box *Box) SetFlags(uint32) { +} + +// AddFlag adds the flag +func (box *Box) AddFlag(flag uint32) { +} + +// RemoveFlag removes the flag +func (box *Box) RemoveFlag(flag uint32) { +} + +// FullBox is ISOBMFF FullBox +type FullBox struct { + BaseCustomFieldObject + Version uint8 `mp4:"0,size=8"` + Flags [3]byte `mp4:"1,size=8"` +} + +// GetVersion returns the box version +func (box *FullBox) GetVersion() uint8 { + return box.Version +} + +// SetVersion sets the box version +func (box *FullBox) SetVersion(version uint8) { + box.Version = version +} + +// GetFlags returns the flags +func (box *FullBox) GetFlags() uint32 { + flag := uint32(box.Flags[0]) << 16 + flag ^= uint32(box.Flags[1]) << 8 + flag ^= uint32(box.Flags[2]) + return flag +} + +// CheckFlag checks the flag status +func (box *FullBox) CheckFlag(flag uint32) bool { + return box.GetFlags()&flag != 0 +} + +// SetFlags sets the flags +func (box *FullBox) SetFlags(flags uint32) { + box.Flags[0] = byte(flags >> 16) + box.Flags[1] = byte(flags >> 8) + box.Flags[2] = byte(flags) +} + +// AddFlag adds the flag +func (box *FullBox) AddFlag(flag uint32) { + box.SetFlags(box.GetFlags() | flag) +} + +// RemoveFlag removes the flag +func (box *FullBox) RemoveFlag(flag uint32) { + box.SetFlags(box.GetFlags() & (^flag)) +} diff --git a/vendor/github.com/abema/go-mp4/box_info.go b/vendor/github.com/abema/go-mp4/box_info.go new file mode 100644 index 000000000..b5c587fd9 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/box_info.go @@ -0,0 +1,155 @@ +package mp4 + +import ( + "bytes" + "encoding/binary" + "io" + "math" +) + +type Context struct { + // IsQuickTimeCompatible represents whether ftyp.compatible_brands contains "qt ". + IsQuickTimeCompatible bool + + // UnderWave represents whether current box is under the wave box. + UnderWave bool + + // UnderIlst represents whether current box is under the ilst box. + UnderIlst bool + + // UnderIlstMeta represents whether current box is under the metadata box under the ilst box. + UnderIlstMeta bool + + // UnderIlstFreeMeta represents whether current box is under "----" box. + UnderIlstFreeMeta bool + + // UnderUdta represents whether current box is under the udta box. + UnderUdta bool +} + +// BoxInfo has common infomations of box +type BoxInfo struct { + // Offset specifies an offset of the box in a file. + Offset uint64 + + // Size specifies size(bytes) of box. + Size uint64 + + // HeaderSize specifies size(bytes) of common fields which are defined as "Box" class member at ISO/IEC 14496-12. + HeaderSize uint64 + + // Type specifies box type which is represented by 4 characters. + Type BoxType + + // ExtendToEOF is set true when Box.size is zero. It means that end of box equals to end of file. + ExtendToEOF bool + + // Context would be set by ReadBoxStructure, not ReadBoxInfo. + Context +} + +func (bi *BoxInfo) IsSupportedType() bool { + return bi.Type.IsSupported(bi.Context) +} + +const ( + SmallHeaderSize = 8 + LargeHeaderSize = 16 +) + +// WriteBoxInfo writes common fields which are defined as "Box" class member at ISO/IEC 14496-12. +// This function ignores bi.Offset and returns BoxInfo which contains real Offset and recalculated Size/HeaderSize. +func WriteBoxInfo(w io.WriteSeeker, bi *BoxInfo) (*BoxInfo, error) { + offset, err := w.Seek(0, io.SeekCurrent) + if err != nil { + return nil, err + } + + var data []byte + if bi.ExtendToEOF { + data = make([]byte, SmallHeaderSize) + } else if bi.Size <= math.MaxUint32 && bi.HeaderSize != LargeHeaderSize { + data = make([]byte, SmallHeaderSize) + binary.BigEndian.PutUint32(data, uint32(bi.Size)) + } else { + data = make([]byte, LargeHeaderSize) + binary.BigEndian.PutUint32(data, 1) + binary.BigEndian.PutUint64(data[SmallHeaderSize:], bi.Size) + } + data[4] = bi.Type[0] + data[5] = bi.Type[1] + data[6] = bi.Type[2] + data[7] = bi.Type[3] + + if _, err := w.Write(data); err != nil { + return nil, err + } + + return &BoxInfo{ + Offset: uint64(offset), + Size: bi.Size - bi.HeaderSize + uint64(len(data)), + HeaderSize: uint64(len(data)), + Type: bi.Type, + ExtendToEOF: bi.ExtendToEOF, + }, nil +} + +// ReadBoxInfo reads common fields which are defined as "Box" class member at ISO/IEC 14496-12. +func ReadBoxInfo(r io.ReadSeeker) (*BoxInfo, error) { + offset, err := r.Seek(0, io.SeekCurrent) + if err != nil { + return nil, err + } + + bi := &BoxInfo{ + Offset: uint64(offset), + } + + // read 8 bytes + buf := bytes.NewBuffer(make([]byte, 0, SmallHeaderSize)) + if _, err := io.CopyN(buf, r, SmallHeaderSize); err != nil { + return nil, err + } + bi.HeaderSize += SmallHeaderSize + + // pick size and type + data := buf.Bytes() + bi.Size = uint64(binary.BigEndian.Uint32(data)) + bi.Type = BoxType{data[4], data[5], data[6], data[7]} + + if bi.Size == 0 { + // box extends to end of file + offsetEOF, err := r.Seek(0, io.SeekEnd) + if err != nil { + return nil, err + } + bi.Size = uint64(offsetEOF) - bi.Offset + bi.ExtendToEOF = true + if _, err := bi.SeekToPayload(r); err != nil { + return nil, err + } + + } else if bi.Size == 1 { + // read more 8 bytes + buf.Reset() + if _, err := io.CopyN(buf, r, LargeHeaderSize-SmallHeaderSize); err != nil { + return nil, err + } + bi.HeaderSize += LargeHeaderSize - SmallHeaderSize + bi.Size = binary.BigEndian.Uint64(buf.Bytes()) + } + + return bi, nil +} + +func (bi *BoxInfo) SeekToStart(s io.Seeker) (int64, error) { + return s.Seek(int64(bi.Offset), io.SeekStart) +} + +func (bi *BoxInfo) SeekToPayload(s io.Seeker) (int64, error) { + return s.Seek(int64(bi.Offset+bi.HeaderSize), io.SeekStart) +} + +func (bi *BoxInfo) SeekToEnd(s io.Seeker) (int64, error) { + return s.Seek(int64(bi.Offset+bi.Size), io.SeekStart) +} diff --git a/vendor/github.com/abema/go-mp4/box_types.go b/vendor/github.com/abema/go-mp4/box_types.go new file mode 100644 index 000000000..d662dddbe --- /dev/null +++ b/vendor/github.com/abema/go-mp4/box_types.go @@ -0,0 +1,2745 @@ +package mp4 + +import ( + "bytes" + "errors" + "fmt" + "io" + + "github.com/abema/go-mp4/bitio" + "github.com/abema/go-mp4/util" + "github.com/google/uuid" +) + +/*************************** btrt ****************************/ + +func BoxTypeBtrt() BoxType { return StrToBoxType("btrt") } + +func init() { + AddBoxDef(&Btrt{}, 0) +} + +type Btrt struct { + Box + BufferSizeDB uint32 `mp4:"0,size=32"` + MaxBitrate uint32 `mp4:"1,size=32"` + AvgBitrate uint32 `mp4:"2,size=32"` +} + +// GetType returns the BoxType +func (*Btrt) GetType() BoxType { + return BoxTypeBtrt() +} + +/*************************** co64 ****************************/ + +func BoxTypeCo64() BoxType { return StrToBoxType("co64") } + +func init() { + AddBoxDef(&Co64{}, 0) +} + +type Co64 struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` + ChunkOffset []uint64 `mp4:"2,size=64,len=dynamic"` +} + +// GetType returns the BoxType +func (*Co64) GetType() BoxType { + return BoxTypeCo64() +} + +// GetFieldLength returns length of dynamic field +func (co64 *Co64) GetFieldLength(name string, ctx Context) uint { + switch name { + case "ChunkOffset": + return uint(co64.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=co64 fieldName=%s", name)) +} + +/*************************** colr ****************************/ + +func BoxTypeColr() BoxType { return StrToBoxType("colr") } + +func init() { + AddBoxDef(&Colr{}) +} + +type Colr struct { + Box + ColourType [4]byte `mp4:"0,size=8,string"` + ColourPrimaries uint16 `mp4:"1,size=16,opt=dynamic"` + TransferCharacteristics uint16 `mp4:"2,size=16,opt=dynamic"` + MatrixCoefficients uint16 `mp4:"3,size=16,opt=dynamic"` + FullRangeFlag bool `mp4:"4,size=1,opt=dynamic"` + Reserved uint8 `mp4:"5,size=7,opt=dynamic"` + Profile []byte `mp4:"6,size=8,opt=dynamic"` + Unknown []byte `mp4:"7,size=8,opt=dynamic"` +} + +func (colr *Colr) IsOptFieldEnabled(name string, ctx Context) bool { + switch colr.ColourType { + case [4]byte{'n', 'c', 'l', 'x'}: + switch name { + case "ColourType", + "ColourPrimaries", + "TransferCharacteristics", + "MatrixCoefficients", + "FullRangeFlag", + "Reserved": + return true + default: + return false + } + case [4]byte{'r', 'I', 'C', 'C'}, [4]byte{'p', 'r', 'o', 'f'}: + return name == "Profile" + default: + return name == "Unknown" + } +} + +// GetType returns the BoxType +func (*Colr) GetType() BoxType { + return BoxTypeColr() +} + +/*************************** cslg ****************************/ + +func BoxTypeCslg() BoxType { return StrToBoxType("cslg") } + +func init() { + AddBoxDef(&Cslg{}, 0, 1) +} + +type Cslg struct { + FullBox `mp4:"0,extend"` + CompositionToDTSShiftV0 int32 `mp4:"1,size=32,ver=0"` + LeastDecodeToDisplayDeltaV0 int32 `mp4:"2,size=32,ver=0"` + GreatestDecodeToDisplayDeltaV0 int32 `mp4:"3,size=32,ver=0"` + CompositionStartTimeV0 int32 `mp4:"4,size=32,ver=0"` + CompositionEndTimeV0 int32 `mp4:"5,size=32,ver=0"` + CompositionToDTSShiftV1 int64 `mp4:"6,size=64,nver=0"` + LeastDecodeToDisplayDeltaV1 int64 `mp4:"7,size=64,nver=0"` + GreatestDecodeToDisplayDeltaV1 int64 `mp4:"8,size=64,nver=0"` + CompositionStartTimeV1 int64 `mp4:"9,size=64,nver=0"` + CompositionEndTimeV1 int64 `mp4:"10,size=64,nver=0"` +} + +// GetType returns the BoxType +func (*Cslg) GetType() BoxType { + return BoxTypeCslg() +} + +func (cslg *Cslg) GetCompositionToDTSShift() int64 { + switch cslg.GetVersion() { + case 0: + return int64(cslg.CompositionToDTSShiftV0) + case 1: + return cslg.CompositionToDTSShiftV1 + default: + return 0 + } +} + +func (cslg *Cslg) GetLeastDecodeToDisplayDelta() int64 { + switch cslg.GetVersion() { + case 0: + return int64(cslg.LeastDecodeToDisplayDeltaV0) + case 1: + return cslg.LeastDecodeToDisplayDeltaV1 + default: + return 0 + } +} + +func (cslg *Cslg) GetGreatestDecodeToDisplayDelta() int64 { + switch cslg.GetVersion() { + case 0: + return int64(cslg.GreatestDecodeToDisplayDeltaV0) + case 1: + return cslg.GreatestDecodeToDisplayDeltaV1 + default: + return 0 + } +} + +func (cslg *Cslg) GetCompositionStartTime() int64 { + switch cslg.GetVersion() { + case 0: + return int64(cslg.CompositionStartTimeV0) + case 1: + return cslg.CompositionStartTimeV1 + default: + return 0 + } +} + +func (cslg *Cslg) GetCompositionEndTime() int64 { + switch cslg.GetVersion() { + case 0: + return int64(cslg.CompositionEndTimeV0) + case 1: + return cslg.CompositionEndTimeV1 + default: + return 0 + } +} + +/*************************** ctts ****************************/ + +func BoxTypeCtts() BoxType { return StrToBoxType("ctts") } + +func init() { + AddBoxDef(&Ctts{}, 0, 1) +} + +type Ctts struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` + Entries []CttsEntry `mp4:"2,len=dynamic,size=64"` +} + +type CttsEntry struct { + SampleCount uint32 `mp4:"0,size=32"` + SampleOffsetV0 uint32 `mp4:"1,size=32,ver=0"` + SampleOffsetV1 int32 `mp4:"2,size=32,ver=1"` +} + +// GetType returns the BoxType +func (*Ctts) GetType() BoxType { + return BoxTypeCtts() +} + +// GetFieldLength returns length of dynamic field +func (ctts *Ctts) GetFieldLength(name string, ctx Context) uint { + switch name { + case "Entries": + return uint(ctts.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=ctts fieldName=%s", name)) +} + +func (ctts *Ctts) GetSampleOffset(index int) int64 { + switch ctts.GetVersion() { + case 0: + return int64(ctts.Entries[index].SampleOffsetV0) + case 1: + return int64(ctts.Entries[index].SampleOffsetV1) + default: + return 0 + } +} + +/*************************** dinf ****************************/ + +func BoxTypeDinf() BoxType { return StrToBoxType("dinf") } + +func init() { + AddBoxDef(&Dinf{}) +} + +// Dinf is ISOBMFF dinf box type +type Dinf struct { + Box +} + +// GetType returns the BoxType +func (*Dinf) GetType() BoxType { + return BoxTypeDinf() +} + +/*************************** dref ****************************/ + +func BoxTypeDref() BoxType { return StrToBoxType("dref") } +func BoxTypeUrl() BoxType { return StrToBoxType("url ") } +func BoxTypeUrn() BoxType { return StrToBoxType("urn ") } + +func init() { + AddBoxDef(&Dref{}, 0) + AddBoxDef(&Url{}, 0) + AddBoxDef(&Urn{}, 0) +} + +// Dref is ISOBMFF dref box type +type Dref struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` +} + +// GetType returns the BoxType +func (*Dref) GetType() BoxType { + return BoxTypeDref() +} + +type Url struct { + FullBox `mp4:"0,extend"` + Location string `mp4:"1,string,nopt=0x000001"` +} + +func (*Url) GetType() BoxType { + return BoxTypeUrl() +} + +const UrlSelfContained = 0x000001 + +type Urn struct { + FullBox `mp4:"0,extend"` + Name string `mp4:"1,string,nopt=0x000001"` + Location string `mp4:"2,string,nopt=0x000001"` +} + +func (*Urn) GetType() BoxType { + return BoxTypeUrn() +} + +const UrnSelfContained = 0x000001 + +/*************************** edts ****************************/ + +func BoxTypeEdts() BoxType { return StrToBoxType("edts") } + +func init() { + AddBoxDef(&Edts{}) +} + +// Edts is ISOBMFF edts box type +type Edts struct { + Box +} + +// GetType returns the BoxType +func (*Edts) GetType() BoxType { + return BoxTypeEdts() +} + +/*************************** elst ****************************/ + +func BoxTypeElst() BoxType { return StrToBoxType("elst") } + +func init() { + AddBoxDef(&Elst{}, 0, 1) +} + +// Elst is ISOBMFF elst box type +type Elst struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` + Entries []ElstEntry `mp4:"2,len=dynamic,size=dynamic"` +} + +type ElstEntry struct { + SegmentDurationV0 uint32 `mp4:"0,size=32,ver=0"` + MediaTimeV0 int32 `mp4:"1,size=32,ver=0"` + SegmentDurationV1 uint64 `mp4:"2,size=64,ver=1"` + MediaTimeV1 int64 `mp4:"3,size=64,ver=1"` + MediaRateInteger int16 `mp4:"4,size=16"` + MediaRateFraction int16 `mp4:"5,size=16,const=0"` +} + +// GetType returns the BoxType +func (*Elst) GetType() BoxType { + return BoxTypeElst() +} + +// GetFieldSize returns size of dynamic field +func (elst *Elst) GetFieldSize(name string, ctx Context) uint { + switch name { + case "Entries": + switch elst.GetVersion() { + case 0: + return 0 + + /* segmentDurationV0 */ 32 + + /* mediaTimeV0 */ 32 + + /* mediaRateInteger */ 16 + + /* mediaRateFraction */ 16 + case 1: + return 0 + + /* segmentDurationV1 */ 64 + + /* mediaTimeV1 */ 64 + + /* mediaRateInteger */ 16 + + /* mediaRateFraction */ 16 + } + } + panic(fmt.Errorf("invalid name of dynamic-size field: boxType=elst fieldName=%s", name)) +} + +// GetFieldLength returns length of dynamic field +func (elst *Elst) GetFieldLength(name string, ctx Context) uint { + switch name { + case "Entries": + return uint(elst.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=elst fieldName=%s", name)) +} + +func (elst *Elst) GetSegmentDuration(index int) uint64 { + switch elst.GetVersion() { + case 0: + return uint64(elst.Entries[index].SegmentDurationV0) + case 1: + return elst.Entries[index].SegmentDurationV1 + default: + return 0 + } +} + +func (elst *Elst) GetMediaTime(index int) int64 { + switch elst.GetVersion() { + case 0: + return int64(elst.Entries[index].MediaTimeV0) + case 1: + return elst.Entries[index].MediaTimeV1 + default: + return 0 + } +} + +/*************************** emsg ****************************/ + +func BoxTypeEmsg() BoxType { return StrToBoxType("emsg") } + +func init() { + AddBoxDef(&Emsg{}, 0, 1) +} + +// Emsg is ISOBMFF emsg box type +type Emsg struct { + FullBox `mp4:"0,extend"` + SchemeIdUri string `mp4:"1,string"` + Value string `mp4:"2,string"` + Timescale uint32 `mp4:"3,size=32"` + PresentationTimeDelta uint32 `mp4:"4,size=32,ver=0"` + PresentationTime uint64 `mp4:"5,size=64,ver=1"` + EventDuration uint32 `mp4:"6,size=32"` + Id uint32 `mp4:"7,size=32"` + MessageData []byte `mp4:"8,size=8,string"` +} + +func (emsg *Emsg) OnReadField(name string, r bitio.ReadSeeker, leftBits uint64, ctx Context) (rbits uint64, override bool, err error) { + if emsg.GetVersion() == 0 { + return + } + switch name { + case "SchemeIdUri", "Value": + override = true + return + case "MessageData": + emsg.SchemeIdUri, err = util.ReadString(r) + if err != nil { + return + } + emsg.Value, err = util.ReadString(r) + if err != nil { + return + } + rbits += uint64(len(emsg.SchemeIdUri)+len(emsg.Value)+2) * 8 + return + default: + return + } +} + +func (emsg *Emsg) OnWriteField(name string, w bitio.Writer, ctx Context) (wbits uint64, override bool, err error) { + if emsg.GetVersion() == 0 { + return + } + switch name { + case "SchemeIdUri", "Value": + override = true + return + case "MessageData": + if err = util.WriteString(w, emsg.SchemeIdUri); err != nil { + return + } + if err = util.WriteString(w, emsg.Value); err != nil { + return + } + wbits += uint64(len(emsg.SchemeIdUri)+len(emsg.Value)+2) * 8 + return + default: + return + } +} + +// GetType returns the BoxType +func (*Emsg) GetType() BoxType { + return BoxTypeEmsg() +} + +/*************************** esds ****************************/ + +// https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html + +func BoxTypeEsds() BoxType { return StrToBoxType("esds") } + +func init() { + AddBoxDef(&Esds{}, 0) +} + +const ( + ESDescrTag = 0x03 + DecoderConfigDescrTag = 0x04 + DecSpecificInfoTag = 0x05 + SLConfigDescrTag = 0x06 +) + +// Esds is ES descripter box +type Esds struct { + FullBox `mp4:"0,extend"` + Descriptors []Descriptor `mp4:"1,array"` +} + +// GetType returns the BoxType +func (*Esds) GetType() BoxType { + return BoxTypeEsds() +} + +type Descriptor struct { + BaseCustomFieldObject + Tag int8 `mp4:"0,size=8"` // must be 0x03 + Size uint32 `mp4:"1,varint"` + ESDescriptor *ESDescriptor `mp4:"2,extend,opt=dynamic"` + DecoderConfigDescriptor *DecoderConfigDescriptor `mp4:"3,extend,opt=dynamic"` + Data []byte `mp4:"4,size=8,opt=dynamic,len=dynamic"` +} + +// GetFieldLength returns length of dynamic field +func (ds *Descriptor) GetFieldLength(name string, ctx Context) uint { + switch name { + case "Data": + return uint(ds.Size) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=esds fieldName=%s", name)) +} + +func (ds *Descriptor) IsOptFieldEnabled(name string, ctx Context) bool { + switch ds.Tag { + case ESDescrTag: + return name == "ESDescriptor" + case DecoderConfigDescrTag: + return name == "DecoderConfigDescriptor" + default: + return name == "Data" + } +} + +// StringifyField returns field value as string +func (ds *Descriptor) StringifyField(name string, indent string, depth int, ctx Context) (string, bool) { + switch name { + case "Tag": + switch ds.Tag { + case ESDescrTag: + return "ESDescr", true + case DecoderConfigDescrTag: + return "DecoderConfigDescr", true + case DecSpecificInfoTag: + return "DecSpecificInfo", true + case SLConfigDescrTag: + return "SLConfigDescr", true + default: + return "", false + } + default: + return "", false + } +} + +type ESDescriptor struct { + BaseCustomFieldObject + ESID uint16 `mp4:"0,size=16"` + StreamDependenceFlag bool `mp4:"1,size=1"` + UrlFlag bool `mp4:"2,size=1"` + OcrStreamFlag bool `mp4:"3,size=1"` + StreamPriority int8 `mp4:"4,size=5"` + DependsOnESID uint16 `mp4:"5,size=16,opt=dynamic"` + URLLength uint8 `mp4:"6,size=8,opt=dynamic"` + URLString []byte `mp4:"7,size=8,len=dynamic,opt=dynamic,string"` + OCRESID uint16 `mp4:"8,size=16,opt=dynamic"` +} + +func (esds *ESDescriptor) GetFieldLength(name string, ctx Context) uint { + switch name { + case "URLString": + return uint(esds.URLLength) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=ESDescriptor fieldName=%s", name)) +} + +func (esds *ESDescriptor) IsOptFieldEnabled(name string, ctx Context) bool { + switch name { + case "DependsOnESID": + return esds.StreamDependenceFlag + case "URLLength", "URLString": + return esds.UrlFlag + case "OCRESID": + return esds.OcrStreamFlag + default: + return false + } +} + +type DecoderConfigDescriptor struct { + BaseCustomFieldObject + ObjectTypeIndication byte `mp4:"0,size=8"` + StreamType int8 `mp4:"1,size=6"` + UpStream bool `mp4:"2,size=1"` + Reserved bool `mp4:"3,size=1"` + BufferSizeDB uint32 `mp4:"4,size=24"` + MaxBitrate uint32 `mp4:"5,size=32"` + AvgBitrate uint32 `mp4:"6,size=32"` +} + +/************************ free, skip *************************/ + +func BoxTypeFree() BoxType { return StrToBoxType("free") } +func BoxTypeSkip() BoxType { return StrToBoxType("skip") } + +func init() { + AddBoxDef(&Free{}) + AddBoxDef(&Skip{}) +} + +type FreeSpace struct { + Box + Data []uint8 `mp4:"0,size=8"` +} + +type Free FreeSpace + +func (*Free) GetType() BoxType { + return BoxTypeFree() +} + +type Skip FreeSpace + +func (*Skip) GetType() BoxType { + return BoxTypeSkip() +} + +/*************************** frma ****************************/ + +func BoxTypeFrma() BoxType { return StrToBoxType("frma") } + +func init() { + AddBoxDef(&Frma{}) +} + +// Frma is ISOBMFF frma box type +type Frma struct { + Box + DataFormat [4]byte `mp4:"0,size=8,string"` +} + +// GetType returns the BoxType +func (*Frma) GetType() BoxType { + return BoxTypeFrma() +} + +/*************************** ftyp ****************************/ + +func BoxTypeFtyp() BoxType { return StrToBoxType("ftyp") } + +func init() { + AddBoxDef(&Ftyp{}) +} + +func BrandQT() [4]byte { return [4]byte{'q', 't', ' ', ' '} } +func BrandISOM() [4]byte { return [4]byte{'i', 's', 'o', 'm'} } +func BrandISO2() [4]byte { return [4]byte{'i', 's', 'o', '2'} } +func BrandISO3() [4]byte { return [4]byte{'i', 's', 'o', '3'} } +func BrandISO4() [4]byte { return [4]byte{'i', 's', 'o', '4'} } +func BrandISO5() [4]byte { return [4]byte{'i', 's', 'o', '5'} } +func BrandISO6() [4]byte { return [4]byte{'i', 's', 'o', '6'} } +func BrandISO7() [4]byte { return [4]byte{'i', 's', 'o', '7'} } +func BrandISO8() [4]byte { return [4]byte{'i', 's', 'o', '8'} } +func BrandISO9() [4]byte { return [4]byte{'i', 's', 'o', '9'} } +func BrandAVC1() [4]byte { return [4]byte{'a', 'v', 'c', '1'} } +func BrandMP41() [4]byte { return [4]byte{'m', 'p', '4', '1'} } +func BrandMP71() [4]byte { return [4]byte{'m', 'p', '7', '1'} } + +// Ftyp is ISOBMFF ftyp box type +type Ftyp struct { + Box + MajorBrand [4]byte `mp4:"0,size=8,string"` + MinorVersion uint32 `mp4:"1,size=32"` + CompatibleBrands []CompatibleBrandElem `mp4:"2,size=32"` // reach to end of the box +} + +type CompatibleBrandElem struct { + CompatibleBrand [4]byte `mp4:"0,size=8,string"` +} + +func (ftyp *Ftyp) AddCompatibleBrand(cb [4]byte) { + if !ftyp.HasCompatibleBrand(cb) { + ftyp.CompatibleBrands = append(ftyp.CompatibleBrands, CompatibleBrandElem{ + CompatibleBrand: cb, + }) + } +} + +func (ftyp *Ftyp) RemoveCompatibleBrand(cb [4]byte) { + for i := 0; i < len(ftyp.CompatibleBrands); { + if ftyp.CompatibleBrands[i].CompatibleBrand != cb { + i++ + continue + } + ftyp.CompatibleBrands[i] = ftyp.CompatibleBrands[len(ftyp.CompatibleBrands)-1] + ftyp.CompatibleBrands = ftyp.CompatibleBrands[:len(ftyp.CompatibleBrands)-1] + } +} + +func (ftyp *Ftyp) HasCompatibleBrand(cb [4]byte) bool { + for i := range ftyp.CompatibleBrands { + if ftyp.CompatibleBrands[i].CompatibleBrand == cb { + return true + } + } + return false +} + +// GetType returns the BoxType +func (*Ftyp) GetType() BoxType { + return BoxTypeFtyp() +} + +/*************************** hdlr ****************************/ + +func BoxTypeHdlr() BoxType { return StrToBoxType("hdlr") } + +func init() { + AddBoxDef(&Hdlr{}, 0) +} + +// Hdlr is ISOBMFF hdlr box type +type Hdlr struct { + FullBox `mp4:"0,extend"` + // Predefined corresponds to component_type of QuickTime. + // pre_defined of ISO-14496 has always zero, + // however component_type has "mhlr" or "dhlr". + PreDefined uint32 `mp4:"1,size=32"` + HandlerType [4]byte `mp4:"2,size=8,string"` + Reserved [3]uint32 `mp4:"3,size=32,const=0"` + Name string `mp4:"4,string"` +} + +// GetType returns the BoxType +func (*Hdlr) GetType() BoxType { + return BoxTypeHdlr() +} + +func (hdlr *Hdlr) OnReadField(name string, r bitio.ReadSeeker, leftBits uint64, ctx Context) (rbits uint64, override bool, err error) { + switch name { + case "Name": + return hdlr.OnReadName(r, leftBits, ctx) + default: + return 0, false, nil + } +} + +func (hdlr *Hdlr) OnReadName(r bitio.ReadSeeker, leftBits uint64, ctx Context) (rbits uint64, override bool, err error) { + size := leftBits / 8 + if size == 0 { + hdlr.Name = "" + return 0, true, nil + } + + buf := make([]byte, size) + if _, err := io.ReadFull(r, buf); err != nil { + return 0, false, err + } + + plen := buf[0] + if hdlr.PreDefined != 0 && size >= 2 && size == uint64(plen+1) { + // Pascal-style String + hdlr.Name = string(buf[1 : plen+1]) + } else { + // C-style String + clen := 0 + for _, c := range buf { + if c == 0x00 { + break + } + clen++ + } + hdlr.Name = string(buf[:clen]) + } + return leftBits, true, nil +} + +/*************************** ilst ****************************/ + +func BoxTypeIlst() BoxType { return StrToBoxType("ilst") } +func BoxTypeData() BoxType { return StrToBoxType("data") } + +var ilstMetaBoxTypes = []BoxType{ + StrToBoxType("----"), + StrToBoxType("aART"), + StrToBoxType("akID"), + StrToBoxType("apID"), + StrToBoxType("atID"), + StrToBoxType("cmID"), + StrToBoxType("cnID"), + StrToBoxType("covr"), + StrToBoxType("cpil"), + StrToBoxType("cprt"), + StrToBoxType("desc"), + StrToBoxType("disk"), + StrToBoxType("egid"), + StrToBoxType("geID"), + StrToBoxType("gnre"), + StrToBoxType("pcst"), + StrToBoxType("pgap"), + StrToBoxType("plID"), + StrToBoxType("purd"), + StrToBoxType("purl"), + StrToBoxType("rtng"), + StrToBoxType("sfID"), + StrToBoxType("soaa"), + StrToBoxType("soal"), + StrToBoxType("soar"), + StrToBoxType("soco"), + StrToBoxType("sonm"), + StrToBoxType("sosn"), + StrToBoxType("stik"), + StrToBoxType("tmpo"), + StrToBoxType("trkn"), + StrToBoxType("tven"), + StrToBoxType("tves"), + StrToBoxType("tvnn"), + StrToBoxType("tvsh"), + StrToBoxType("tvsn"), + {0xA9, 'A', 'R', 'T'}, + {0xA9, 'a', 'l', 'b'}, + {0xA9, 'c', 'm', 't'}, + {0xA9, 'c', 'o', 'm'}, + {0xA9, 'd', 'a', 'y'}, + {0xA9, 'g', 'e', 'n'}, + {0xA9, 'g', 'r', 'p'}, + {0xA9, 'n', 'a', 'm'}, + {0xA9, 't', 'o', 'o'}, + {0xA9, 'w', 'r', 't'}, +} + +func IsIlstMetaBoxType(boxType BoxType) bool { + for _, bt := range ilstMetaBoxTypes { + if boxType == bt { + return true + } + } + return false +} + +func init() { + AddBoxDef(&Ilst{}) + AddBoxDefEx(&Data{}, isUnderIlstMeta) + for _, bt := range ilstMetaBoxTypes { + AddAnyTypeBoxDefEx(&IlstMetaContainer{}, bt, isIlstMetaContainer) + } + AddAnyTypeBoxDefEx(&StringData{}, StrToBoxType("mean"), isUnderIlstFreeFormat) + AddAnyTypeBoxDefEx(&StringData{}, StrToBoxType("name"), isUnderIlstFreeFormat) +} + +type Ilst struct { + Box +} + +// GetType returns the BoxType +func (*Ilst) GetType() BoxType { + return BoxTypeIlst() +} + +type IlstMetaContainer struct { + AnyTypeBox +} + +func isIlstMetaContainer(ctx Context) bool { + return ctx.UnderIlst && !ctx.UnderIlstMeta +} + +const ( + DataTypeBinary = 0 + DataTypeStringUTF8 = 1 + DataTypeStringUTF16 = 2 + DataTypeStringMac = 3 + DataTypeStringJPEG = 14 + DataTypeSignedIntBigEndian = 21 + DataTypeFloat32BigEndian = 22 + DataTypeFloat64BigEndian = 23 +) + +type Data struct { + Box + DataType uint32 `mp4:"0,size=32"` + DataLang uint32 `mp4:"1,size=32"` + Data []byte `mp4:"2,size=8"` +} + +// GetType returns the BoxType +func (*Data) GetType() BoxType { + return BoxTypeData() +} + +func isUnderIlstMeta(ctx Context) bool { + return ctx.UnderIlstMeta +} + +// StringifyField returns field value as string +func (data *Data) StringifyField(name string, indent string, depth int, ctx Context) (string, bool) { + switch name { + case "DataType": + switch data.DataType { + case DataTypeBinary: + return "BINARY", true + case DataTypeStringUTF8: + return "UTF8", true + case DataTypeStringUTF16: + return "UTF16", true + case DataTypeStringMac: + return "MAC_STR", true + case DataTypeStringJPEG: + return "JPEG", true + case DataTypeSignedIntBigEndian: + return "INT", true + case DataTypeFloat32BigEndian: + return "FLOAT32", true + case DataTypeFloat64BigEndian: + return "FLOAT64", true + } + case "Data": + switch data.DataType { + case DataTypeStringUTF8: + return fmt.Sprintf("\"%s\"", util.EscapeUnprintables(string(data.Data))), true + } + } + return "", false +} + +type StringData struct { + AnyTypeBox + Data []byte `mp4:"0,size=8"` +} + +// StringifyField returns field value as string +func (sd *StringData) StringifyField(name string, indent string, depth int, ctx Context) (string, bool) { + if name == "Data" { + return fmt.Sprintf("\"%s\"", util.EscapeUnprintables(string(sd.Data))), true + } + return "", false +} + +func isUnderIlstFreeFormat(ctx Context) bool { + return ctx.UnderIlstFreeMeta +} + +/*************************** mdat ****************************/ + +func BoxTypeMdat() BoxType { return StrToBoxType("mdat") } + +func init() { + AddBoxDef(&Mdat{}) +} + +// Mdat is ISOBMFF mdat box type +type Mdat struct { + Box + Data []byte `mp4:"0,size=8"` +} + +// GetType returns the BoxType +func (*Mdat) GetType() BoxType { + return BoxTypeMdat() +} + +/*************************** mdhd ****************************/ + +func BoxTypeMdhd() BoxType { return StrToBoxType("mdhd") } + +func init() { + AddBoxDef(&Mdhd{}, 0, 1) +} + +// Mdhd is ISOBMFF mdhd box type +type Mdhd struct { + FullBox `mp4:"0,extend"` + CreationTimeV0 uint32 `mp4:"1,size=32,ver=0"` + ModificationTimeV0 uint32 `mp4:"2,size=32,ver=0"` + CreationTimeV1 uint64 `mp4:"3,size=64,ver=1"` + ModificationTimeV1 uint64 `mp4:"4,size=64,ver=1"` + Timescale uint32 `mp4:"5,size=32"` + DurationV0 uint32 `mp4:"6,size=32,ver=0"` + DurationV1 uint64 `mp4:"7,size=64,ver=1"` + // + Pad bool `mp4:"8,size=1,hidden"` + Language [3]byte `mp4:"9,size=5,iso639-2"` // ISO-639-2/T language code + PreDefined uint16 `mp4:"10,size=16"` +} + +// GetType returns the BoxType +func (*Mdhd) GetType() BoxType { + return BoxTypeMdhd() +} + +func (mdhd *Mdhd) GetCreationTime() uint64 { + switch mdhd.GetVersion() { + case 0: + return uint64(mdhd.CreationTimeV0) + case 1: + return mdhd.CreationTimeV1 + default: + return 0 + } +} + +func (mdhd *Mdhd) GetModificationTime() uint64 { + switch mdhd.GetVersion() { + case 0: + return uint64(mdhd.ModificationTimeV0) + case 1: + return mdhd.ModificationTimeV1 + default: + return 0 + } +} + +func (mdhd *Mdhd) GetDuration() uint64 { + switch mdhd.GetVersion() { + case 0: + return uint64(mdhd.DurationV0) + case 1: + return mdhd.DurationV1 + default: + return 0 + } +} + +/*************************** mdia ****************************/ + +func BoxTypeMdia() BoxType { return StrToBoxType("mdia") } + +func init() { + AddBoxDef(&Mdia{}) +} + +// Mdia is ISOBMFF mdia box type +type Mdia struct { + Box +} + +// GetType returns the BoxType +func (*Mdia) GetType() BoxType { + return BoxTypeMdia() +} + +/*************************** mehd ****************************/ + +func BoxTypeMehd() BoxType { return StrToBoxType("mehd") } + +func init() { + AddBoxDef(&Mehd{}, 0, 1) +} + +// Mehd is ISOBMFF mehd box type +type Mehd struct { + FullBox `mp4:"0,extend"` + FragmentDurationV0 uint32 `mp4:"1,size=32,ver=0"` + FragmentDurationV1 uint64 `mp4:"2,size=64,ver=1"` +} + +// GetType returns the BoxType +func (*Mehd) GetType() BoxType { + return BoxTypeMehd() +} + +func (mdhd *Mehd) GetFragmentDuration() uint64 { + switch mdhd.GetVersion() { + case 0: + return uint64(mdhd.FragmentDurationV0) + case 1: + return mdhd.FragmentDurationV1 + default: + return 0 + } +} + +/*************************** meta ****************************/ + +func BoxTypeMeta() BoxType { return StrToBoxType("meta") } + +func init() { + AddBoxDef(&Meta{}, 0) +} + +// Meta is ISOBMFF meta box type +type Meta struct { + FullBox `mp4:"0,extend"` +} + +// GetType returns the BoxType +func (*Meta) GetType() BoxType { + return BoxTypeMeta() +} + +func (meta *Meta) BeforeUnmarshal(r io.ReadSeeker, size uint64, ctx Context) (n uint64, override bool, err error) { + // for Apple Quick Time + buf := make([]byte, 4) + if _, err := io.ReadFull(r, buf); err != nil { + return 0, false, err + } + if _, err := r.Seek(-int64(len(buf)), io.SeekCurrent); err != nil { + return 0, false, err + } + if buf[0]|buf[1]|buf[2]|buf[3] != 0x00 { + meta.Version = 0 + meta.Flags = [3]byte{0, 0, 0} + return 0, true, nil + } + return 0, false, nil +} + +/*************************** mfhd ****************************/ + +func BoxTypeMfhd() BoxType { return StrToBoxType("mfhd") } + +func init() { + AddBoxDef(&Mfhd{}, 0) +} + +// Mfhd is ISOBMFF mfhd box type +type Mfhd struct { + FullBox `mp4:"0,extend"` + SequenceNumber uint32 `mp4:"1,size=32"` +} + +// GetType returns the BoxType +func (*Mfhd) GetType() BoxType { + return BoxTypeMfhd() +} + +/*************************** mfra ****************************/ + +func BoxTypeMfra() BoxType { return StrToBoxType("mfra") } + +func init() { + AddBoxDef(&Mfra{}) +} + +// Mfra is ISOBMFF mfra box type +type Mfra struct { + Box +} + +// GetType returns the BoxType +func (*Mfra) GetType() BoxType { + return BoxTypeMfra() +} + +/*************************** mfro ****************************/ + +func BoxTypeMfro() BoxType { return StrToBoxType("mfro") } + +func init() { + AddBoxDef(&Mfro{}, 0) +} + +// Mfro is ISOBMFF mfro box type +type Mfro struct { + FullBox `mp4:"0,extend"` + Size uint32 `mp4:"1,size=32"` +} + +// GetType returns the BoxType +func (*Mfro) GetType() BoxType { + return BoxTypeMfro() +} + +/*************************** minf ****************************/ + +func BoxTypeMinf() BoxType { return StrToBoxType("minf") } + +func init() { + AddBoxDef(&Minf{}) +} + +// Minf is ISOBMFF minf box type +type Minf struct { + Box +} + +// GetType returns the BoxType +func (*Minf) GetType() BoxType { + return BoxTypeMinf() +} + +/*************************** moof ****************************/ + +func BoxTypeMoof() BoxType { return StrToBoxType("moof") } + +func init() { + AddBoxDef(&Moof{}) +} + +// Moof is ISOBMFF moof box type +type Moof struct { + Box +} + +// GetType returns the BoxType +func (*Moof) GetType() BoxType { + return BoxTypeMoof() +} + +/*************************** moov ****************************/ + +func BoxTypeMoov() BoxType { return StrToBoxType("moov") } + +func init() { + AddBoxDef(&Moov{}) +} + +// Moov is ISOBMFF moov box type +type Moov struct { + Box +} + +// GetType returns the BoxType +func (*Moov) GetType() BoxType { + return BoxTypeMoov() +} + +/*************************** mvex ****************************/ + +func BoxTypeMvex() BoxType { return StrToBoxType("mvex") } + +func init() { + AddBoxDef(&Mvex{}) +} + +// Mvex is ISOBMFF mvex box type +type Mvex struct { + Box +} + +// GetType returns the BoxType +func (*Mvex) GetType() BoxType { + return BoxTypeMvex() +} + +/*************************** mvhd ****************************/ + +func BoxTypeMvhd() BoxType { return StrToBoxType("mvhd") } + +func init() { + AddBoxDef(&Mvhd{}, 0, 1) +} + +// Mvhd is ISOBMFF mvhd box type +type Mvhd struct { + FullBox `mp4:"0,extend"` + CreationTimeV0 uint32 `mp4:"1,size=32,ver=0"` + ModificationTimeV0 uint32 `mp4:"2,size=32,ver=0"` + CreationTimeV1 uint64 `mp4:"3,size=64,ver=1"` + ModificationTimeV1 uint64 `mp4:"4,size=64,ver=1"` + Timescale uint32 `mp4:"5,size=32"` + DurationV0 uint32 `mp4:"6,size=32,ver=0"` + DurationV1 uint64 `mp4:"7,size=64,ver=1"` + Rate int32 `mp4:"8,size=32"` // fixed-point 16.16 - template=0x00010000 + Volume int16 `mp4:"9,size=16"` // template=0x0100 + Reserved int16 `mp4:"10,size=16,const=0"` + Reserved2 [2]uint32 `mp4:"11,size=32,const=0"` + Matrix [9]int32 `mp4:"12,size=32,hex"` // template={ 0x00010000,0,0,0,0x00010000,0,0,0,0x40000000 } + PreDefined [6]int32 `mp4:"13,size=32"` + NextTrackID uint32 `mp4:"14,size=32"` +} + +// GetType returns the BoxType +func (*Mvhd) GetType() BoxType { + return BoxTypeMvhd() +} + +// StringifyField returns field value as string +func (mvhd *Mvhd) StringifyField(name string, indent string, depth int, ctx Context) (string, bool) { + switch name { + case "Rate": + return util.FormatSignedFixedFloat1616(mvhd.Rate), true + default: + return "", false + } +} + +func (mvhd *Mvhd) GetCreationTime() uint64 { + switch mvhd.GetVersion() { + case 0: + return uint64(mvhd.CreationTimeV0) + case 1: + return mvhd.CreationTimeV1 + default: + return 0 + } +} + +func (mvhd *Mvhd) GetModificationTime() uint64 { + switch mvhd.GetVersion() { + case 0: + return uint64(mvhd.ModificationTimeV0) + case 1: + return mvhd.ModificationTimeV1 + default: + return 0 + } +} + +func (mvhd *Mvhd) GetDuration() uint64 { + switch mvhd.GetVersion() { + case 0: + return uint64(mvhd.DurationV0) + case 1: + return mvhd.DurationV1 + default: + return 0 + } +} + +// GetRate returns value of rate as float64 +func (mvhd *Mvhd) GetRate() float64 { + return float64(mvhd.Rate) / (1 << 16) +} + +// GetRateInt returns value of rate as int16 +func (mvhd *Mvhd) GetRateInt() int16 { + return int16(mvhd.Rate >> 16) +} + +/*************************** pssh ****************************/ + +func BoxTypePssh() BoxType { return StrToBoxType("pssh") } + +func init() { + AddBoxDef(&Pssh{}, 0, 1) +} + +// Pssh is ISOBMFF pssh box type +type Pssh struct { + FullBox `mp4:"0,extend"` + SystemID [16]byte `mp4:"1,size=8,uuid"` + KIDCount uint32 `mp4:"2,size=32,nver=0"` + KIDs []PsshKID `mp4:"3,nver=0,len=dynamic,size=128"` + DataSize int32 `mp4:"4,size=32"` + Data []byte `mp4:"5,size=8,len=dynamic"` +} + +type PsshKID struct { + KID [16]byte `mp4:"0,size=8,uuid"` +} + +// GetFieldLength returns length of dynamic field +func (pssh *Pssh) GetFieldLength(name string, ctx Context) uint { + switch name { + case "KIDs": + return uint(pssh.KIDCount) + case "Data": + return uint(pssh.DataSize) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=pssh fieldName=%s", name)) +} + +// StringifyField returns field value as string +func (pssh *Pssh) StringifyField(name string, indent string, depth int, ctx Context) (string, bool) { + switch name { + case "KIDs": + buf := bytes.NewBuffer(nil) + buf.WriteString("[") + for i, e := range pssh.KIDs { + if i != 0 { + buf.WriteString(", ") + } + buf.WriteString(uuid.UUID(e.KID).String()) + } + buf.WriteString("]") + return buf.String(), true + + default: + return "", false + } +} + +// GetType returns the BoxType +func (*Pssh) GetType() BoxType { + return BoxTypePssh() +} + +/*************************** saio ****************************/ + +func BoxTypeSaio() BoxType { return StrToBoxType("saio") } + +func init() { + AddBoxDef(&Saio{}, 0, 1) +} + +type Saio struct { + FullBox `mp4:"0,extend"` + AuxInfoType [4]byte `mp4:"1,size=8,opt=0x000001,string"` + AuxInfoTypeParameter uint32 `mp4:"2,size=32,opt=0x000001,hex"` + EntryCount uint32 `mp4:"3,size=32"` + OffsetV0 []uint32 `mp4:"4,size=32,ver=0,len=dynamic"` + OffsetV1 []uint64 `mp4:"5,size=64,nver=0,len=dynamic"` +} + +func (saio *Saio) GetFieldLength(name string, ctx Context) uint { + switch name { + case "OffsetV0", "OffsetV1": + return uint(saio.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=saio fieldName=%s", name)) +} + +func (*Saio) GetType() BoxType { + return BoxTypeSaio() +} + +func (saio *Saio) GetOffset(index int) uint64 { + switch saio.GetVersion() { + case 0: + return uint64(saio.OffsetV0[index]) + case 1: + return saio.OffsetV1[index] + default: + return 0 + } +} + +/*************************** saiz ****************************/ + +func BoxTypeSaiz() BoxType { return StrToBoxType("saiz") } + +func init() { + AddBoxDef(&Saiz{}, 0) +} + +type Saiz struct { + FullBox `mp4:"0,extend"` + AuxInfoType [4]byte `mp4:"1,size=8,opt=0x000001,string"` + AuxInfoTypeParameter uint32 `mp4:"2,size=32,opt=0x000001,hex"` + DefaultSampleInfoSize uint8 `mp4:"3,size=8,dec"` + SampleCount uint32 `mp4:"4,size=32"` + SampleInfoSize []uint8 `mp4:"5,size=8,opt=dynamic,len=dynamic,dec"` +} + +func (saiz *Saiz) IsOptFieldEnabled(name string, ctx Context) bool { + switch name { + case "SampleInfoSize": + return saiz.DefaultSampleInfoSize == 0 + } + return false +} + +func (saiz *Saiz) GetFieldLength(name string, ctx Context) uint { + switch name { + case "SampleInfoSize": + return uint(saiz.SampleCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=saiz fieldName=%s", name)) +} + +func (*Saiz) GetType() BoxType { + return BoxTypeSaiz() +} + +/*********************** SampleEntry *************************/ + +func BoxTypeAvc1() BoxType { return StrToBoxType("avc1") } +func BoxTypeEncv() BoxType { return StrToBoxType("encv") } +func BoxTypeMp4a() BoxType { return StrToBoxType("mp4a") } +func BoxTypeEnca() BoxType { return StrToBoxType("enca") } +func BoxTypeAvcC() BoxType { return StrToBoxType("avcC") } +func BoxTypePasp() BoxType { return StrToBoxType("pasp") } + +func init() { + AddAnyTypeBoxDef(&VisualSampleEntry{}, BoxTypeAvc1()) + AddAnyTypeBoxDef(&VisualSampleEntry{}, BoxTypeEncv()) + AddAnyTypeBoxDef(&AudioSampleEntry{}, BoxTypeMp4a()) + AddAnyTypeBoxDef(&AudioSampleEntry{}, BoxTypeEnca()) + AddAnyTypeBoxDef(&AVCDecoderConfiguration{}, BoxTypeAvcC()) + AddAnyTypeBoxDef(&PixelAspectRatioBox{}, BoxTypePasp()) +} + +type SampleEntry struct { + AnyTypeBox + Reserved [6]uint8 `mp4:"0,size=8,const=0"` + DataReferenceIndex uint16 `mp4:"1,size=16"` +} + +type VisualSampleEntry struct { + SampleEntry `mp4:"0,extend"` + PreDefined uint16 `mp4:"1,size=16"` + Reserved uint16 `mp4:"2,size=16,const=0"` + PreDefined2 [3]uint32 `mp4:"3,size=32"` + Width uint16 `mp4:"4,size=16"` + Height uint16 `mp4:"5,size=16"` + Horizresolution uint32 `mp4:"6,size=32"` + Vertresolution uint32 `mp4:"7,size=32"` + Reserved2 uint32 `mp4:"8,size=32,const=0"` + FrameCount uint16 `mp4:"9,size=16"` + Compressorname [32]byte `mp4:"10,size=8"` + Depth uint16 `mp4:"11,size=16"` + PreDefined3 int16 `mp4:"12,size=16"` +} + +// StringifyField returns field value as string +func (vse *VisualSampleEntry) StringifyField(name string, indent string, depth int, ctx Context) (string, bool) { + switch name { + case "Compressorname": + if vse.Compressorname[0] <= 31 { + return `"` + util.EscapeUnprintables(string(vse.Compressorname[1:vse.Compressorname[0]+1])) + `"`, true + } + return "", false + default: + return "", false + } +} + +type AudioSampleEntry struct { + SampleEntry `mp4:"0,extend,opt=dynamic"` + EntryVersion uint16 `mp4:"1,size=16,opt=dynamic"` + Reserved [3]uint16 `mp4:"2,size=16,opt=dynamic,const=0"` + ChannelCount uint16 `mp4:"3,size=16,opt=dynamic"` + SampleSize uint16 `mp4:"4,size=16,opt=dynamic"` + PreDefined uint16 `mp4:"5,size=16,opt=dynamic"` + Reserved2 uint16 `mp4:"6,size=16,opt=dynamic,const=0"` + SampleRate uint32 `mp4:"7,size=32,opt=dynamic"` + QuickTimeData []byte `mp4:"8,size=8,opt=dynamic,len=dynamic"` +} + +func (ase *AudioSampleEntry) IsOptFieldEnabled(name string, ctx Context) bool { + if name == "QuickTimeData" { + return ctx.IsQuickTimeCompatible && (ctx.UnderWave || ase.EntryVersion == 1 || ase.EntryVersion == 2) + } + if ctx.IsQuickTimeCompatible && ctx.UnderWave { + return false + } + return true +} + +func (ase *AudioSampleEntry) GetFieldLength(name string, ctx Context) uint { + if name == "QuickTimeData" && ctx.IsQuickTimeCompatible { + if ctx.UnderWave { + return LengthUnlimited + } else if ase.EntryVersion == 1 { + return 16 + } else if ase.EntryVersion == 2 { + return 36 + } + } + return 0 +} + +const ( + AVCBaselineProfile uint8 = 66 // 0x42 + AVCMainProfile uint8 = 77 // 0x4d + AVCExtendedProfile uint8 = 88 // 0x58 + AVCHighProfile uint8 = 100 // 0x64 + AVCHigh10Profile uint8 = 110 // 0x6e + AVCHigh422Profile uint8 = 122 // 0x7a +) + +type AVCDecoderConfiguration struct { + AnyTypeBox + ConfigurationVersion uint8 `mp4:"0,size=8"` + Profile uint8 `mp4:"1,size=8"` + ProfileCompatibility uint8 `mp4:"2,size=8"` + Level uint8 `mp4:"3,size=8"` + Reserved uint8 `mp4:"4,size=6,const=63"` + LengthSizeMinusOne uint8 `mp4:"5,size=2"` + Reserved2 uint8 `mp4:"6,size=3,const=7"` + NumOfSequenceParameterSets uint8 `mp4:"7,size=5"` + SequenceParameterSets []AVCParameterSet `mp4:"8,len=dynamic"` + NumOfPictureParameterSets uint8 `mp4:"9,size=8"` + PictureParameterSets []AVCParameterSet `mp4:"10,len=dynamic"` + HighProfileFieldsEnabled bool `mp4:"11,hidden"` + Reserved3 uint8 `mp4:"12,size=6,opt=dynamic,const=63"` + ChromaFormat uint8 `mp4:"13,size=2,opt=dynamic"` + Reserved4 uint8 `mp4:"14,size=5,opt=dynamic,const=31"` + BitDepthLumaMinus8 uint8 `mp4:"15,size=3,opt=dynamic"` + Reserved5 uint8 `mp4:"16,size=5,opt=dynamic,const=31"` + BitDepthChromaMinus8 uint8 `mp4:"17,size=3,opt=dynamic"` + NumOfSequenceParameterSetExt uint8 `mp4:"18,size=8,opt=dynamic"` + SequenceParameterSetsExt []AVCParameterSet `mp4:"19,len=dynamic,opt=dynamic"` +} + +func (avcc *AVCDecoderConfiguration) GetFieldLength(name string, ctx Context) uint { + switch name { + case "SequenceParameterSets": + return uint(avcc.NumOfSequenceParameterSets) + case "PictureParameterSets": + return uint(avcc.NumOfPictureParameterSets) + case "SequenceParameterSetsExt": + return uint(avcc.NumOfSequenceParameterSetExt) + } + return 0 +} + +func (avcc *AVCDecoderConfiguration) IsOptFieldEnabled(name string, ctx Context) bool { + switch name { + case "Reserved3", + "ChromaFormat", + "Reserved4", + "BitDepthLumaMinus8", + "Reserved5", + "BitDepthChromaMinus8", + "NumOfSequenceParameterSetExt", + "SequenceParameterSetsExt": + return avcc.HighProfileFieldsEnabled + } + return false +} + +func (avcc *AVCDecoderConfiguration) OnReadField(name string, r bitio.ReadSeeker, leftBits uint64, ctx Context) (rbits uint64, override bool, err error) { + if name == "HighProfileFieldsEnabled" { + avcc.HighProfileFieldsEnabled = leftBits >= 32 && + (avcc.Profile == AVCHighProfile || + avcc.Profile == AVCHigh10Profile || + avcc.Profile == AVCHigh422Profile || + avcc.Profile == 144) + return 0, true, nil + } + return 0, false, nil +} + +func (avcc *AVCDecoderConfiguration) OnWriteField(name string, w bitio.Writer, ctx Context) (wbits uint64, override bool, err error) { + if name == "HighProfileFieldsEnabled" { + if avcc.HighProfileFieldsEnabled && + avcc.Profile != AVCHighProfile && + avcc.Profile != AVCHigh10Profile && + avcc.Profile != AVCHigh422Profile && + avcc.Profile != 144 { + return 0, false, errors.New("each values of Profile and HighProfileFieldsEnabled are inconsistent") + } + return 0, true, nil + } + return 0, false, nil +} + +type AVCParameterSet struct { + BaseCustomFieldObject + Length uint16 `mp4:"0,size=16"` + NALUnit []byte `mp4:"1,size=8,len=dynamic"` +} + +func (s *AVCParameterSet) GetFieldLength(name string, ctx Context) uint { + switch name { + case "NALUnit": + return uint(s.Length) + } + return 0 +} + +type PixelAspectRatioBox struct { + AnyTypeBox + HSpacing uint32 `mp4:"0,size=32"` + VSpacing uint32 `mp4:"1,size=32"` +} + +/*************************** sbgp ****************************/ + +func BoxTypeSbgp() BoxType { return StrToBoxType("sbgp") } + +func init() { + AddBoxDef(&Sbgp{}, 0, 1) +} + +type Sbgp struct { + FullBox `mp4:"0,extend"` + GroupingType uint32 `mp4:"1,size=32"` + GroupingTypeParameter uint32 `mp4:"2,size=32,ver=1"` + EntryCount uint32 `mp4:"3,size=32"` + Entries []SbgpEntry `mp4:"4,len=dynamic,size=64"` +} + +type SbgpEntry struct { + SampleCount uint32 `mp4:"0,size=32"` + GroupDescriptionIndex uint32 `mp4:"1,size=32"` +} + +func (sbgp *Sbgp) GetFieldLength(name string, ctx Context) uint { + switch name { + case "Entries": + return uint(sbgp.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=sbgp fieldName=%s", name)) +} + +func (*Sbgp) GetType() BoxType { + return BoxTypeSbgp() +} + +/*************************** schi ****************************/ + +func BoxTypeSchi() BoxType { return StrToBoxType("schi") } + +func init() { + AddBoxDef(&Schi{}) +} + +type Schi struct { + Box +} + +func (*Schi) GetType() BoxType { + return BoxTypeSchi() +} + +/*************************** schm ****************************/ + +func BoxTypeSchm() BoxType { return StrToBoxType("schm") } + +func init() { + AddBoxDef(&Schm{}, 0) +} + +type Schm struct { + FullBox `mp4:"0,extend"` + SchemeType [4]byte `mp4:"1,size=8,string"` + SchemeVersion uint32 `mp4:"2,size=32,hex"` + SchemeUri []byte `mp4:"3,size=8,opt=0x000001,string"` +} + +func (*Schm) GetType() BoxType { + return BoxTypeSchm() +} + +/*************************** sdtp ****************************/ + +func BoxTypeSdtp() BoxType { return StrToBoxType("sdtp") } + +func init() { + AddBoxDef(&Sdtp{}, 0) +} + +type Sdtp struct { + FullBox `mp4:"0,extend"` + Samples []SdtpSampleElem `mp4:"1,size=8"` +} + +type SdtpSampleElem struct { + IsLeading uint8 `mp4:"0,size=2"` + SampleDependsOn uint8 `mp4:"1,size=2"` + SampleIsDependedOn uint8 `mp4:"2,size=2"` + SampleHasRedundancy uint8 `mp4:"3,size=2"` +} + +func (*Sdtp) GetType() BoxType { + return BoxTypeSdtp() +} + +/*************************** sgpd ****************************/ + +func BoxTypeSgpd() BoxType { return StrToBoxType("sgpd") } + +func init() { + AddBoxDef(&Sgpd{}, 1, 2) // version 0 is deprecated by ISO/IEC 14496-12 +} + +type Sgpd struct { + FullBox `mp4:"0,extend"` + GroupingType [4]byte `mp4:"1,size=8,string"` + DefaultLength uint32 `mp4:"2,size=32,ver=1"` + DefaultSampleDescriptionIndex uint32 `mp4:"3,size=32,ver=2"` + EntryCount uint32 `mp4:"4,size=32"` + RollDistances []int16 `mp4:"5,size=16,opt=dynamic"` + RollDistancesL []RollDistanceWithLength `mp4:"6,size=16,opt=dynamic"` + AlternativeStartupEntries []AlternativeStartupEntry `mp4:"7,size=dynamic,len=dynamic,opt=dynamic"` + AlternativeStartupEntriesL []AlternativeStartupEntryL `mp4:"8,len=dynamic,opt=dynamic"` + VisualRandomAccessEntries []VisualRandomAccessEntry `mp4:"9,len=dynamic,opt=dynamic"` + VisualRandomAccessEntriesL []VisualRandomAccessEntryL `mp4:"10,len=dynamic,opt=dynamic"` + TemporalLevelEntries []TemporalLevelEntry `mp4:"11,len=dynamic,opt=dynamic"` + TemporalLevelEntriesL []TemporalLevelEntryL `mp4:"12,len=dynamic,opt=dynamic"` + Unsupported []byte `mp4:"13,size=8,opt=dynamic"` +} + +type RollDistanceWithLength struct { + DescriptionLength uint32 `mp4:"0,size=32"` + RollDistance int16 `mp4:"1,size=16"` +} + +type AlternativeStartupEntry struct { + BaseCustomFieldObject + RollCount uint16 `mp4:"0,size=16"` + FirstOutputSample uint16 `mp4:"1,size=16"` + SampleOffset []uint32 `mp4:"2,size=32,len=dynamic"` + Opts []AlternativeStartupEntryOpt `mp4:"3,size=32"` +} + +type AlternativeStartupEntryL struct { + DescriptionLength uint32 `mp4:"0,size=32"` + AlternativeStartupEntry `mp4:"1,extend,size=dynamic"` +} + +type AlternativeStartupEntryOpt struct { + NumOutputSamples uint16 `mp4:"0,size=16"` + NumTotalSamples uint16 `mp4:"1,size=16"` +} + +type VisualRandomAccessEntry struct { + NumLeadingSamplesKnown bool `mp4:"0,size=1"` + NumLeadingSamples uint8 `mp4:"1,size=7"` +} + +type VisualRandomAccessEntryL struct { + DescriptionLength uint32 `mp4:"0,size=32"` + VisualRandomAccessEntry `mp4:"1,extend"` +} + +type TemporalLevelEntry struct { + LevelIndependentlyDecodable bool `mp4:"0,size=1"` + Reserved uint8 `mp4:"1,size=7,const=0"` +} + +type TemporalLevelEntryL struct { + DescriptionLength uint32 `mp4:"0,size=32"` + TemporalLevelEntry `mp4:"1,extend"` +} + +func (sgpd *Sgpd) GetFieldSize(name string, ctx Context) uint { + switch name { + case "AlternativeStartupEntries": + return uint(sgpd.DefaultLength * 8) + } + return 0 +} + +func (sgpd *Sgpd) GetFieldLength(name string, ctx Context) uint { + switch name { + case "RollDistances", "RollDistancesL", + "AlternativeStartupEntries", "AlternativeStartupEntriesL", + "VisualRandomAccessEntries", "VisualRandomAccessEntriesL", + "TemporalLevelEntries", "TemporalLevelEntriesL": + return uint(sgpd.EntryCount) + } + return 0 +} + +func (sgpd *Sgpd) IsOptFieldEnabled(name string, ctx Context) bool { + noDefaultLength := sgpd.Version == 1 && sgpd.DefaultLength == 0 + rollDistances := sgpd.GroupingType == [4]byte{'r', 'o', 'l', 'l'} || + sgpd.GroupingType == [4]byte{'p', 'r', 'o', 'l'} + alternativeStartupEntries := sgpd.GroupingType == [4]byte{'a', 'l', 's', 't'} + visualRandomAccessEntries := sgpd.GroupingType == [4]byte{'r', 'a', 'p', ' '} + temporalLevelEntries := sgpd.GroupingType == [4]byte{'t', 'e', 'l', 'e'} + switch name { + case "RollDistances": + return rollDistances && !noDefaultLength + case "RollDistancesL": + return rollDistances && noDefaultLength + case "AlternativeStartupEntries": + return alternativeStartupEntries && !noDefaultLength + case "AlternativeStartupEntriesL": + return alternativeStartupEntries && noDefaultLength + case "VisualRandomAccessEntries": + return visualRandomAccessEntries && !noDefaultLength + case "VisualRandomAccessEntriesL": + return visualRandomAccessEntries && noDefaultLength + case "TemporalLevelEntries": + return temporalLevelEntries && !noDefaultLength + case "TemporalLevelEntriesL": + return temporalLevelEntries && noDefaultLength + case "Unsupported": + return !rollDistances && + !alternativeStartupEntries && + !visualRandomAccessEntries && + !temporalLevelEntries + default: + return false + } +} + +func (*Sgpd) GetType() BoxType { + return BoxTypeSgpd() +} + +func (entry *AlternativeStartupEntry) GetFieldLength(name string, ctx Context) uint { + switch name { + case "SampleOffset": + return uint(entry.RollCount) + } + return 0 +} + +func (entry *AlternativeStartupEntryL) GetFieldSize(name string, ctx Context) uint { + switch name { + case "AlternativeStartupEntry": + return uint(entry.DescriptionLength * 8) + } + return 0 +} + +/*************************** sidx ****************************/ + +func BoxTypeSidx() BoxType { return StrToBoxType("sidx") } + +func init() { + AddBoxDef(&Sidx{}, 0, 1) +} + +type Sidx struct { + FullBox `mp4:"0,extend"` + ReferenceID uint32 `mp4:"1,size=32"` + Timescale uint32 `mp4:"2,size=32"` + EarliestPresentationTimeV0 uint32 `mp4:"3,size=32,ver=0"` + FirstOffsetV0 uint32 `mp4:"4,size=32,ver=0"` + EarliestPresentationTimeV1 uint64 `mp4:"5,size=64,nver=0"` + FirstOffsetV1 uint64 `mp4:"6,size=64,nver=0"` + Reserved uint16 `mp4:"7,size=16,const=0"` + ReferenceCount uint16 `mp4:"8,size=16"` + References []SidxReference `mp4:"9,size=96,len=dynamic"` +} + +type SidxReference struct { + ReferenceType bool `mp4:"0,size=1"` + ReferencedSize uint32 `mp4:"1,size=31"` + SubsegmentDuration uint32 `mp4:"2,size=32"` + StartsWithSAP bool `mp4:"3,size=1"` + SAPType uint32 `mp4:"4,size=3"` + SAPDeltaTime uint32 `mp4:"5,size=28"` +} + +func (*Sidx) GetType() BoxType { + return BoxTypeSidx() +} + +func (sidx *Sidx) GetFieldLength(name string, ctx Context) uint { + switch name { + case "References": + return uint(sidx.ReferenceCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=sidx fieldName=%s", name)) +} + +func (sidx *Sidx) GetEarliestPresentationTime() uint64 { + switch sidx.GetVersion() { + case 0: + return uint64(sidx.EarliestPresentationTimeV0) + case 1: + return sidx.EarliestPresentationTimeV1 + default: + return 0 + } +} + +func (sidx *Sidx) GetFirstOffset() uint64 { + switch sidx.GetVersion() { + case 0: + return uint64(sidx.FirstOffsetV0) + case 1: + return sidx.FirstOffsetV1 + default: + return 0 + } +} + +/*************************** sinf ****************************/ + +func BoxTypeSinf() BoxType { return StrToBoxType("sinf") } + +func init() { + AddBoxDef(&Sinf{}) +} + +type Sinf struct { + Box +} + +func (*Sinf) GetType() BoxType { + return BoxTypeSinf() +} + +/*************************** smhd ****************************/ + +func BoxTypeSmhd() BoxType { return StrToBoxType("smhd") } + +func init() { + AddBoxDef(&Smhd{}, 0) +} + +type Smhd struct { + FullBox `mp4:"0,extend"` + Balance int16 `mp4:"1,size=16"` // fixed-point 8.8 template=0 + Reserved uint16 `mp4:"2,size=16,const=0"` +} + +func (*Smhd) GetType() BoxType { + return BoxTypeSmhd() +} + +// StringifyField returns field value as string +func (smhd *Smhd) StringifyField(name string, indent string, depth int, ctx Context) (string, bool) { + switch name { + case "Balance": + return util.FormatSignedFixedFloat88(smhd.Balance), true + default: + return "", false + } +} + +// GetBalance returns value of width as float32 +func (smhd *Smhd) GetBalance() float32 { + return float32(smhd.Balance) / (1 << 8) +} + +// GetBalanceInt returns value of width as int8 +func (smhd *Smhd) GetBalanceInt() int8 { + return int8(smhd.Balance >> 8) +} + +/*************************** stbl ****************************/ + +func BoxTypeStbl() BoxType { return StrToBoxType("stbl") } + +func init() { + AddBoxDef(&Stbl{}) +} + +// Stbl is ISOBMFF stbl box type +type Stbl struct { + Box +} + +// GetType returns the BoxType +func (*Stbl) GetType() BoxType { + return BoxTypeStbl() +} + +/*************************** stco ****************************/ + +func BoxTypeStco() BoxType { return StrToBoxType("stco") } + +func init() { + AddBoxDef(&Stco{}, 0) +} + +// Stco is ISOBMFF stco box type +type Stco struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` + ChunkOffset []uint32 `mp4:"2,size=32,len=dynamic"` +} + +// GetType returns the BoxType +func (*Stco) GetType() BoxType { + return BoxTypeStco() +} + +// GetFieldLength returns length of dynamic field +func (stco *Stco) GetFieldLength(name string, ctx Context) uint { + switch name { + case "ChunkOffset": + return uint(stco.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=stco fieldName=%s", name)) +} + +/*************************** stsc ****************************/ + +func BoxTypeStsc() BoxType { return StrToBoxType("stsc") } + +func init() { + AddBoxDef(&Stsc{}, 0) +} + +// Stsc is ISOBMFF stsc box type +type Stsc struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` + Entries []StscEntry `mp4:"2,len=dynamic,size=96"` +} + +type StscEntry struct { + FirstChunk uint32 `mp4:"0,size=32"` + SamplesPerChunk uint32 `mp4:"1,size=32"` + SampleDescriptionIndex uint32 `mp4:"2,size=32"` +} + +// GetType returns the BoxType +func (*Stsc) GetType() BoxType { + return BoxTypeStsc() +} + +// GetFieldLength returns length of dynamic field +func (stsc *Stsc) GetFieldLength(name string, ctx Context) uint { + switch name { + case "Entries": + return uint(stsc.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=stsc fieldName=%s", name)) +} + +/*************************** stsd ****************************/ + +func BoxTypeStsd() BoxType { return StrToBoxType("stsd") } + +func init() { + AddBoxDef(&Stsd{}, 0) +} + +// Stsd is ISOBMFF stsd box type +type Stsd struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` +} + +// GetType returns the BoxType +func (*Stsd) GetType() BoxType { + return BoxTypeStsd() +} + +/*************************** stss ****************************/ + +func BoxTypeStss() BoxType { return StrToBoxType("stss") } + +func init() { + AddBoxDef(&Stss{}, 0) +} + +type Stss struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` + SampleNumber []uint32 `mp4:"2,len=dynamic,size=32"` +} + +// GetType returns the BoxType +func (*Stss) GetType() BoxType { + return BoxTypeStss() +} + +// GetFieldLength returns length of dynamic field +func (stss *Stss) GetFieldLength(name string, ctx Context) uint { + switch name { + case "SampleNumber": + return uint(stss.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=stss fieldName=%s", name)) +} + +/*************************** stsz ****************************/ + +func BoxTypeStsz() BoxType { return StrToBoxType("stsz") } + +func init() { + AddBoxDef(&Stsz{}, 0) +} + +// Stsz is ISOBMFF stsz box type +type Stsz struct { + FullBox `mp4:"0,extend"` + SampleSize uint32 `mp4:"1,size=32"` + SampleCount uint32 `mp4:"2,size=32"` + EntrySize []uint32 `mp4:"3,size=32,len=dynamic"` +} + +// GetType returns the BoxType +func (*Stsz) GetType() BoxType { + return BoxTypeStsz() +} + +// GetFieldLength returns length of dynamic field +func (stsz *Stsz) GetFieldLength(name string, ctx Context) uint { + switch name { + case "EntrySize": + if stsz.SampleSize == 0 { + return uint(stsz.SampleCount) + } + return 0 + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=stsz fieldName=%s", name)) +} + +/*************************** stts ****************************/ + +func BoxTypeStts() BoxType { return StrToBoxType("stts") } + +func init() { + AddBoxDef(&Stts{}, 0) +} + +// Stts is ISOBMFF stts box type +type Stts struct { + FullBox `mp4:"0,extend"` + EntryCount uint32 `mp4:"1,size=32"` + Entries []SttsEntry `mp4:"2,len=dynamic,size=64"` +} + +type SttsEntry struct { + SampleCount uint32 `mp4:"0,size=32"` + SampleDelta uint32 `mp4:"1,size=32"` +} + +// GetType returns the BoxType +func (*Stts) GetType() BoxType { + return BoxTypeStts() +} + +// GetFieldLength returns length of dynamic field +func (stts *Stts) GetFieldLength(name string, ctx Context) uint { + switch name { + case "Entries": + return uint(stts.EntryCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=stts fieldName=%s", name)) +} + +/*************************** styp ****************************/ + +func BoxTypeStyp() BoxType { return StrToBoxType("styp") } + +func init() { + AddBoxDef(&Styp{}) +} + +type Styp struct { + Box + MajorBrand [4]byte `mp4:"0,size=8,string"` + MinorVersion uint32 `mp4:"1,size=32"` + CompatibleBrands []CompatibleBrandElem `mp4:"2,size=32"` // reach to end of the box +} + +func (*Styp) GetType() BoxType { + return BoxTypeStyp() +} + +/*************************** tenc ****************************/ + +func BoxTypeTenc() BoxType { return StrToBoxType("tenc") } + +func init() { + AddBoxDef(&Tenc{}, 0, 1) +} + +// Tenc is ISOBMFF tenc box type +type Tenc struct { + FullBox `mp4:"0,extend"` + Reserved uint8 `mp4:"1,size=8,dec"` + DefaultCryptByteBlock uint8 `mp4:"2,size=4,dec"` // always 0 on version 0 + DefaultSkipByteBlock uint8 `mp4:"3,size=4,dec"` // always 0 on version 0 + DefaultIsProtected uint8 `mp4:"4,size=8,dec"` + DefaultPerSampleIVSize uint8 `mp4:"5,size=8,dec"` + DefaultKID [16]byte `mp4:"6,size=8,uuid"` + DefaultConstantIVSize uint8 `mp4:"7,size=8,opt=dynamic,dec"` + DefaultConstantIV []byte `mp4:"8,size=8,opt=dynamic,len=dynamic"` +} + +func (tenc *Tenc) IsOptFieldEnabled(name string, ctx Context) bool { + switch name { + case "DefaultConstantIVSize", "DefaultConstantIV": + return tenc.DefaultIsProtected == 1 && tenc.DefaultPerSampleIVSize == 0 + } + return false +} + +func (tenc *Tenc) GetFieldLength(name string, ctx Context) uint { + switch name { + case "DefaultConstantIV": + return uint(tenc.DefaultConstantIVSize) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=tenc fieldName=%s", name)) +} + +// GetType returns the BoxType +func (*Tenc) GetType() BoxType { + return BoxTypeTenc() +} + +/*************************** tfdt ****************************/ + +func BoxTypeTfdt() BoxType { return StrToBoxType("tfdt") } + +func init() { + AddBoxDef(&Tfdt{}, 0, 1) +} + +// Tfdt is ISOBMFF tfdt box type +type Tfdt struct { + FullBox `mp4:"0,extend"` + BaseMediaDecodeTimeV0 uint32 `mp4:"1,size=32,ver=0"` + BaseMediaDecodeTimeV1 uint64 `mp4:"2,size=64,ver=1"` +} + +// GetType returns the BoxType +func (*Tfdt) GetType() BoxType { + return BoxTypeTfdt() +} + +func (tfdt *Tfdt) GetBaseMediaDecodeTime() uint64 { + switch tfdt.GetVersion() { + case 0: + return uint64(tfdt.BaseMediaDecodeTimeV0) + case 1: + return tfdt.BaseMediaDecodeTimeV1 + default: + return 0 + } +} + +/*************************** tfhd ****************************/ + +func BoxTypeTfhd() BoxType { return StrToBoxType("tfhd") } + +func init() { + AddBoxDef(&Tfhd{}, 0) +} + +// Tfhd is ISOBMFF tfhd box type +type Tfhd struct { + FullBox `mp4:"0,extend"` + TrackID uint32 `mp4:"1,size=32"` + + // optional + BaseDataOffset uint64 `mp4:"2,size=64,opt=0x000001"` + SampleDescriptionIndex uint32 `mp4:"3,size=32,opt=0x000002"` + DefaultSampleDuration uint32 `mp4:"4,size=32,opt=0x000008"` + DefaultSampleSize uint32 `mp4:"5,size=32,opt=0x000010"` + DefaultSampleFlags uint32 `mp4:"6,size=32,opt=0x000020,hex"` +} + +const ( + TfhdBaseDataOffsetPresent = 0x000001 + TfhdSampleDescriptionIndexPresent = 0x000002 + TfhdDefaultSampleDurationPresent = 0x000008 + TfhdDefaultSampleSizePresent = 0x000010 + TfhdDefaultSampleFlagsPresent = 0x000020 + TfhdDurationIsEmpty = 0x010000 + TfhdDefaultBaseIsMoof = 0x020000 +) + +// GetType returns the BoxType +func (*Tfhd) GetType() BoxType { + return BoxTypeTfhd() +} + +/*************************** tfra ****************************/ + +func BoxTypeTfra() BoxType { return StrToBoxType("tfra") } + +func init() { + AddBoxDef(&Tfra{}, 0, 1) +} + +// Tfra is ISOBMFF tfra box type +type Tfra struct { + FullBox `mp4:"0,extend"` + TrackID uint32 `mp4:"1,size=32"` + Reserved uint32 `mp4:"2,size=26,const=0"` + LengthSizeOfTrafNum byte `mp4:"3,size=2"` + LengthSizeOfTrunNum byte `mp4:"4,size=2"` + LengthSizeOfSampleNum byte `mp4:"5,size=2"` + NumberOfEntry uint32 `mp4:"6,size=32"` + Entries []TfraEntry `mp4:"7,len=dynamic,size=dynamic"` +} + +type TfraEntry struct { + TimeV0 uint32 `mp4:"0,size=32,ver=0"` + MoofOffsetV0 uint32 `mp4:"1,size=32,ver=0"` + TimeV1 uint64 `mp4:"2,size=64,ver=1"` + MoofOffsetV1 uint64 `mp4:"3,size=64,ver=1"` + TrafNumber uint32 `mp4:"4,size=dynamic"` + TrunNumber uint32 `mp4:"5,size=dynamic"` + SampleNumber uint32 `mp4:"6,size=dynamic"` +} + +// GetType returns the BoxType +func (*Tfra) GetType() BoxType { + return BoxTypeTfra() +} + +// GetFieldSize returns size of dynamic field +func (tfra *Tfra) GetFieldSize(name string, ctx Context) uint { + switch name { + case "TrafNumber": + return (uint(tfra.LengthSizeOfTrafNum) + 1) * 8 + case "TrunNumber": + return (uint(tfra.LengthSizeOfTrunNum) + 1) * 8 + case "SampleNumber": + return (uint(tfra.LengthSizeOfSampleNum) + 1) * 8 + case "Entries": + switch tfra.GetVersion() { + case 0: + return 0 + + /* TimeV0 */ 32 + + /* MoofOffsetV0 */ 32 + + /* TrafNumber */ (uint(tfra.LengthSizeOfTrafNum)+1)*8 + + /* TrunNumber */ (uint(tfra.LengthSizeOfTrunNum)+1)*8 + + /* SampleNumber */ (uint(tfra.LengthSizeOfSampleNum)+1)*8 + case 1: + return 0 + + /* TimeV1 */ 64 + + /* MoofOffsetV1 */ 64 + + /* TrafNumber */ (uint(tfra.LengthSizeOfTrafNum)+1)*8 + + /* TrunNumber */ (uint(tfra.LengthSizeOfTrunNum)+1)*8 + + /* SampleNumber */ (uint(tfra.LengthSizeOfSampleNum)+1)*8 + } + } + panic(fmt.Errorf("invalid name of dynamic-size field: boxType=tfra fieldName=%s", name)) +} + +// GetFieldLength returns length of dynamic field +func (tfra *Tfra) GetFieldLength(name string, ctx Context) uint { + switch name { + case "Entries": + return uint(tfra.NumberOfEntry) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=tfra fieldName=%s", name)) +} + +func (tfra *Tfra) GetTime(index int) uint64 { + switch tfra.GetVersion() { + case 0: + return uint64(tfra.Entries[index].TimeV0) + case 1: + return tfra.Entries[index].TimeV1 + default: + return 0 + } +} + +func (tfra *Tfra) GetMoofOffset(index int) uint64 { + switch tfra.GetVersion() { + case 0: + return uint64(tfra.Entries[index].MoofOffsetV0) + case 1: + return tfra.Entries[index].MoofOffsetV1 + default: + return 0 + } +} + +/*************************** tkhd ****************************/ + +func BoxTypeTkhd() BoxType { return StrToBoxType("tkhd") } + +func init() { + AddBoxDef(&Tkhd{}, 0, 1) +} + +// Tkhd is ISOBMFF tkhd box type +type Tkhd struct { + FullBox `mp4:"0,extend"` + CreationTimeV0 uint32 `mp4:"1,size=32,ver=0"` + ModificationTimeV0 uint32 `mp4:"2,size=32,ver=0"` + CreationTimeV1 uint64 `mp4:"3,size=64,ver=1"` + ModificationTimeV1 uint64 `mp4:"4,size=64,ver=1"` + TrackID uint32 `mp4:"5,size=32"` + Reserved0 uint32 `mp4:"6,size=32,const=0"` + DurationV0 uint32 `mp4:"7,size=32,ver=0"` + DurationV1 uint64 `mp4:"8,size=64,ver=1"` + // + Reserved1 [2]uint32 `mp4:"9,size=32,const=0"` + Layer int16 `mp4:"10,size=16"` // template=0 + AlternateGroup int16 `mp4:"11,size=16"` // template=0 + Volume int16 `mp4:"12,size=16"` // template={if track_is_audio 0x0100 else 0} + Reserved2 uint16 `mp4:"13,size=16,const=0"` + Matrix [9]int32 `mp4:"14,size=32,hex"` // template={ 0x00010000,0,0,0,0x00010000,0,0,0,0x40000000 }; + Width uint32 `mp4:"15,size=32"` // fixed-point 16.16 + Height uint32 `mp4:"16,size=32"` // fixed-point 16.16 +} + +// GetType returns the BoxType +func (*Tkhd) GetType() BoxType { + return BoxTypeTkhd() +} + +// StringifyField returns field value as string +func (tkhd *Tkhd) StringifyField(name string, indent string, depth int, ctx Context) (string, bool) { + switch name { + case "Width": + return util.FormatUnsignedFixedFloat1616(tkhd.Width), true + case "Height": + return util.FormatUnsignedFixedFloat1616(tkhd.Height), true + default: + return "", false + } +} + +func (tkhd *Tkhd) GetCreationTime() uint64 { + switch tkhd.GetVersion() { + case 0: + return uint64(tkhd.CreationTimeV0) + case 1: + return tkhd.CreationTimeV1 + default: + return 0 + } +} + +func (tkhd *Tkhd) GetModificationTime() uint64 { + switch tkhd.GetVersion() { + case 0: + return uint64(tkhd.ModificationTimeV0) + case 1: + return tkhd.ModificationTimeV1 + default: + return 0 + } +} + +func (tkhd *Tkhd) GetDuration() uint64 { + switch tkhd.GetVersion() { + case 0: + return uint64(tkhd.DurationV0) + case 1: + return tkhd.DurationV1 + default: + return 0 + } +} + +// GetWidth returns value of width as float64 +func (tkhd *Tkhd) GetWidth() float64 { + return float64(tkhd.Width) / (1 << 16) +} + +// GetWidthInt returns value of width as uint16 +func (tkhd *Tkhd) GetWidthInt() uint16 { + return uint16(tkhd.Width >> 16) +} + +// GetHeight returns value of height as float64 +func (tkhd *Tkhd) GetHeight() float64 { + return float64(tkhd.Height) / (1 << 16) +} + +// GetHeightInt returns value of height as uint16 +func (tkhd *Tkhd) GetHeightInt() uint16 { + return uint16(tkhd.Height >> 16) +} + +/*************************** traf ****************************/ + +func BoxTypeTraf() BoxType { return StrToBoxType("traf") } + +func init() { + AddBoxDef(&Traf{}) +} + +// Traf is ISOBMFF traf box type +type Traf struct { + Box +} + +// GetType returns the BoxType +func (*Traf) GetType() BoxType { + return BoxTypeTraf() +} + +/*************************** trak ****************************/ + +func BoxTypeTrak() BoxType { return StrToBoxType("trak") } + +func init() { + AddBoxDef(&Trak{}) +} + +// Trak is ISOBMFF trak box type +type Trak struct { + Box +} + +// GetType returns the BoxType +func (*Trak) GetType() BoxType { + return BoxTypeTrak() +} + +/*************************** trep ****************************/ + +func BoxTypeTrep() BoxType { return StrToBoxType("trep") } + +func init() { + AddBoxDef(&Trep{}, 0) +} + +// Trep is ISOBMFF trep box type +type Trep struct { + FullBox `mp4:"0,extend"` + TrackID uint32 `mp4:"1,size=32"` +} + +// GetType returns the BoxType +func (*Trep) GetType() BoxType { + return BoxTypeTrep() +} + +/*************************** trex ****************************/ + +func BoxTypeTrex() BoxType { return StrToBoxType("trex") } + +func init() { + AddBoxDef(&Trex{}, 0) +} + +// Trex is ISOBMFF trex box type +type Trex struct { + FullBox `mp4:"0,extend"` + TrackID uint32 `mp4:"1,size=32"` + DefaultSampleDescriptionIndex uint32 `mp4:"2,size=32"` + DefaultSampleDuration uint32 `mp4:"3,size=32"` + DefaultSampleSize uint32 `mp4:"4,size=32"` + DefaultSampleFlags uint32 `mp4:"5,size=32,hex"` +} + +// GetType returns the BoxType +func (*Trex) GetType() BoxType { + return BoxTypeTrex() +} + +/*************************** trun ****************************/ + +func BoxTypeTrun() BoxType { return StrToBoxType("trun") } + +func init() { + AddBoxDef(&Trun{}, 0, 1) +} + +// Trun is ISOBMFF trun box type +type Trun struct { + FullBox `mp4:"0,extend"` + SampleCount uint32 `mp4:"1,size=32"` + + // optional fields + DataOffset int32 `mp4:"2,size=32,opt=0x000001"` + FirstSampleFlags uint32 `mp4:"3,size=32,opt=0x000004,hex"` + Entries []TrunEntry `mp4:"4,len=dynamic,size=dynamic"` +} + +type TrunEntry struct { + SampleDuration uint32 `mp4:"0,size=32,opt=0x000100"` + SampleSize uint32 `mp4:"1,size=32,opt=0x000200"` + SampleFlags uint32 `mp4:"2,size=32,opt=0x000400,hex"` + SampleCompositionTimeOffsetV0 uint32 `mp4:"3,size=32,opt=0x000800,ver=0"` + SampleCompositionTimeOffsetV1 int32 `mp4:"4,size=32,opt=0x000800,nver=0"` +} + +// GetType returns the BoxType +func (*Trun) GetType() BoxType { + return BoxTypeTrun() +} + +// GetFieldSize returns size of dynamic field +func (trun *Trun) GetFieldSize(name string, ctx Context) uint { + switch name { + case "Entries": + var size uint + flags := trun.GetFlags() + if flags&0x100 != 0 { + size += 32 // SampleDuration + } + if flags&0x200 != 0 { + size += 32 // SampleSize + } + if flags&0x400 != 0 { + size += 32 // SampleFlags + } + if flags&0x800 != 0 { + size += 32 // SampleCompositionTimeOffsetV0 or V1 + } + return size + } + panic(fmt.Errorf("invalid name of dynamic-size field: boxType=trun fieldName=%s", name)) +} + +// GetFieldLength returns length of dynamic field +func (trun *Trun) GetFieldLength(name string, ctx Context) uint { + switch name { + case "Entries": + return uint(trun.SampleCount) + } + panic(fmt.Errorf("invalid name of dynamic-length field: boxType=trun fieldName=%s", name)) +} + +func (trun *Trun) GetSampleCompositionTimeOffset(index int) int64 { + switch trun.GetVersion() { + case 0: + return int64(trun.Entries[index].SampleCompositionTimeOffsetV0) + case 1: + return int64(trun.Entries[index].SampleCompositionTimeOffsetV1) + default: + return 0 + } +} + +/*************************** udta ****************************/ + +func BoxTypeUdta() BoxType { return StrToBoxType("udta") } + +var udta3GppMetaBoxTypes = []BoxType{ + StrToBoxType("titl"), + StrToBoxType("dscp"), + StrToBoxType("cprt"), + StrToBoxType("perf"), + StrToBoxType("auth"), + StrToBoxType("gnre"), +} + +func init() { + AddBoxDef(&Udta{}) + for _, bt := range udta3GppMetaBoxTypes { + AddAnyTypeBoxDefEx(&Udta3GppString{}, bt, isUnderUdta, 0) + } +} + +// Udta is ISOBMFF udta box type +type Udta struct { + Box +} + +// GetType returns the BoxType +func (*Udta) GetType() BoxType { + return BoxTypeUdta() +} + +type Udta3GppString struct { + AnyTypeBox + FullBox `mp4:"0,extend"` + Pad bool `mp4:"1,size=1,hidden"` + Language [3]byte `mp4:"2,size=5,iso639-2"` // ISO-639-2/T language code + Data []byte `mp4:"3,size=8,string"` +} + +func isUnderUdta(ctx Context) bool { + return ctx.UnderUdta +} + +/*************************** vmhd ****************************/ + +func BoxTypeVmhd() BoxType { return StrToBoxType("vmhd") } + +func init() { + AddBoxDef(&Vmhd{}, 0) +} + +// Vmhd is ISOBMFF vmhd box type +type Vmhd struct { + FullBox `mp4:"0,extend"` + Graphicsmode uint16 `mp4:"1,size=16"` // template=0 + Opcolor [3]uint16 `mp4:"2,size=16"` // template={0, 0, 0} +} + +// GetType returns the BoxType +func (*Vmhd) GetType() BoxType { + return BoxTypeVmhd() +} + +/*************************** wave ****************************/ + +func BoxTypeWave() BoxType { return StrToBoxType("wave") } + +func init() { + AddBoxDef(&Wave{}) +} + +// Wave is QuickTime wave box +type Wave struct { + Box +} + +// GetType returns the BoxType +func (*Wave) GetType() BoxType { + return BoxTypeWave() +} diff --git a/vendor/github.com/abema/go-mp4/extract.go b/vendor/github.com/abema/go-mp4/extract.go new file mode 100644 index 000000000..7de36b06a --- /dev/null +++ b/vendor/github.com/abema/go-mp4/extract.go @@ -0,0 +1,98 @@ +package mp4 + +import ( + "errors" + "io" +) + +type BoxInfoWithPayload struct { + Info BoxInfo + Payload IBox +} + +func ExtractBoxWithPayload(r io.ReadSeeker, parent *BoxInfo, path BoxPath) ([]*BoxInfoWithPayload, error) { + return ExtractBoxesWithPayload(r, parent, []BoxPath{path}) +} + +func ExtractBoxesWithPayload(r io.ReadSeeker, parent *BoxInfo, paths []BoxPath) ([]*BoxInfoWithPayload, error) { + bis, err := ExtractBoxes(r, parent, paths) + if err != nil { + return nil, err + } + + bs := make([]*BoxInfoWithPayload, 0, len(bis)) + for _, bi := range bis { + if _, err := bi.SeekToPayload(r); err != nil { + return nil, err + } + + var ctx Context + if parent != nil { + ctx = parent.Context + } + box, _, err := UnmarshalAny(r, bi.Type, bi.Size-bi.HeaderSize, ctx) + if err != nil { + return nil, err + } + bs = append(bs, &BoxInfoWithPayload{ + Info: *bi, + Payload: box, + }) + } + return bs, nil +} + +func ExtractBox(r io.ReadSeeker, parent *BoxInfo, path BoxPath) ([]*BoxInfo, error) { + return ExtractBoxes(r, parent, []BoxPath{path}) +} + +func ExtractBoxes(r io.ReadSeeker, parent *BoxInfo, paths []BoxPath) ([]*BoxInfo, error) { + if len(paths) == 0 { + return nil, nil + } + + for i := range paths { + if len(paths[i]) == 0 { + return nil, errors.New("box path must not be empty") + } + } + + boxes := make([]*BoxInfo, 0, 8) + + handler := func(handle *ReadHandle) (interface{}, error) { + path := handle.Path + if parent != nil { + path = path[1:] + } + if handle.BoxInfo.Type == BoxTypeAny() { + return nil, nil + } + fm, m := matchPath(paths, path) + if m { + boxes = append(boxes, &handle.BoxInfo) + } + + if fm { + if _, err := handle.Expand(); err != nil { + return nil, err + } + } + return nil, nil + } + + if parent != nil { + _, err := ReadBoxStructureFromInternal(r, parent, handler) + return boxes, err + } + _, err := ReadBoxStructure(r, handler) + return boxes, err +} + +func matchPath(paths []BoxPath, path BoxPath) (forwardMatch bool, match bool) { + for i := range paths { + fm, m := path.compareWith(paths[i]) + forwardMatch = forwardMatch || fm + match = match || m + } + return +} diff --git a/vendor/github.com/abema/go-mp4/field.go b/vendor/github.com/abema/go-mp4/field.go new file mode 100644 index 000000000..585833e0d --- /dev/null +++ b/vendor/github.com/abema/go-mp4/field.go @@ -0,0 +1,290 @@ +package mp4 + +import ( + "fmt" + "os" + "reflect" + "sort" + "strconv" + "strings" +) + +type ( + stringType uint8 + fieldFlag uint16 +) + +const ( + stringType_C stringType = iota + stringType_C_P + + fieldString fieldFlag = 1 << iota // 0 + fieldExtend // 1 + fieldDec // 2 + fieldHex // 3 + fieldISO639_2 // 4 + fieldUUID // 5 + fieldHidden // 6 + fieldOptDynamic // 7 + fieldVarint // 8 + fieldSizeDynamic // 9 + fieldLengthDynamic // 10 +) + +type field struct { + children []*field + name string + cnst string + order int + optFlag uint32 + nOptFlag uint32 + size uint + length uint + flags fieldFlag + strType stringType + version uint8 + nVersion uint8 +} + +func (f *field) set(flag fieldFlag) { + f.flags |= flag +} + +func (f *field) is(flag fieldFlag) bool { + return f.flags&flag != 0 +} + +func buildFields(box IImmutableBox) []*field { + t := reflect.TypeOf(box).Elem() + return buildFieldsStruct(t) +} + +func buildFieldsStruct(t reflect.Type) []*field { + fs := make([]*field, 0, 8) + for i := 0; i < t.NumField(); i++ { + ft := t.Field(i).Type + tag, ok := t.Field(i).Tag.Lookup("mp4") + if !ok { + continue + } + f := buildField(t.Field(i).Name, tag) + f.children = buildFieldsAny(ft) + fs = append(fs, f) + } + sort.SliceStable(fs, func(i, j int) bool { + return fs[i].order < fs[j].order + }) + return fs +} + +func buildFieldsAny(t reflect.Type) []*field { + switch t.Kind() { + case reflect.Struct: + return buildFieldsStruct(t) + case reflect.Ptr, reflect.Array, reflect.Slice: + return buildFieldsAny(t.Elem()) + default: + return nil + } +} + +func buildField(fieldName string, tag string) *field { + f := &field{ + name: fieldName, + } + tagMap := parseFieldTag(tag) + for key, val := range tagMap { + if val != "" { + continue + } + if order, err := strconv.Atoi(key); err == nil { + f.order = order + break + } + } + + if val, contained := tagMap["string"]; contained { + f.set(fieldString) + if val == "c_p" { + f.strType = stringType_C_P + fmt.Fprint(os.Stderr, "go-mp4: string=c_p tag is deprecated!! See https://github.com/abema/go-mp4/issues/76\n") + } + } + + if _, contained := tagMap["varint"]; contained { + f.set(fieldVarint) + } + + if val, contained := tagMap["opt"]; contained { + if val == "dynamic" { + f.set(fieldOptDynamic) + } else { + base := 10 + if strings.HasPrefix(val, "0x") { + val = val[2:] + base = 16 + } + opt, err := strconv.ParseUint(val, base, 32) + if err != nil { + panic(err) + } + f.optFlag = uint32(opt) + } + } + + if val, contained := tagMap["nopt"]; contained { + base := 10 + if strings.HasPrefix(val, "0x") { + val = val[2:] + base = 16 + } + nopt, err := strconv.ParseUint(val, base, 32) + if err != nil { + panic(err) + } + f.nOptFlag = uint32(nopt) + } + + if _, contained := tagMap["extend"]; contained { + f.set(fieldExtend) + } + + if _, contained := tagMap["dec"]; contained { + f.set(fieldDec) + } + + if _, contained := tagMap["hex"]; contained { + f.set(fieldHex) + } + + if _, contained := tagMap["iso639-2"]; contained { + f.set(fieldISO639_2) + } + + if _, contained := tagMap["uuid"]; contained { + f.set(fieldUUID) + } + + if _, contained := tagMap["hidden"]; contained { + f.set(fieldHidden) + } + + if val, contained := tagMap["const"]; contained { + f.cnst = val + } + + f.version = anyVersion + if val, contained := tagMap["ver"]; contained { + ver, err := strconv.Atoi(val) + if err != nil { + panic(err) + } + f.version = uint8(ver) + } + + f.nVersion = anyVersion + if val, contained := tagMap["nver"]; contained { + ver, err := strconv.Atoi(val) + if err != nil { + panic(err) + } + f.nVersion = uint8(ver) + } + + if val, contained := tagMap["size"]; contained { + if val == "dynamic" { + f.set(fieldSizeDynamic) + } else { + size, err := strconv.ParseUint(val, 10, 32) + if err != nil { + panic(err) + } + f.size = uint(size) + } + } + + f.length = LengthUnlimited + if val, contained := tagMap["len"]; contained { + if val == "dynamic" { + f.set(fieldLengthDynamic) + } else { + l, err := strconv.ParseUint(val, 10, 32) + if err != nil { + panic(err) + } + f.length = uint(l) + } + } + + return f +} + +func parseFieldTag(str string) map[string]string { + tag := make(map[string]string, 8) + + list := strings.Split(str, ",") + for _, e := range list { + kv := strings.SplitN(e, "=", 2) + if len(kv) == 2 { + tag[strings.Trim(kv[0], " ")] = strings.Trim(kv[1], " ") + } else { + tag[strings.Trim(kv[0], " ")] = "" + } + } + + return tag +} + +type fieldInstance struct { + field + cfo ICustomFieldObject +} + +func resolveFieldInstance(f *field, box IImmutableBox, parent reflect.Value, ctx Context) *fieldInstance { + fi := fieldInstance{ + field: *f, + } + + cfo, ok := parent.Addr().Interface().(ICustomFieldObject) + if ok { + fi.cfo = cfo + } else { + fi.cfo = box + } + + if fi.is(fieldSizeDynamic) { + fi.size = fi.cfo.GetFieldSize(f.name, ctx) + } + + if fi.is(fieldLengthDynamic) { + fi.length = fi.cfo.GetFieldLength(f.name, ctx) + } + + return &fi +} + +func isTargetField(box IImmutableBox, fi *fieldInstance, ctx Context) bool { + if box.GetVersion() != anyVersion { + if fi.version != anyVersion && box.GetVersion() != fi.version { + return false + } + + if fi.nVersion != anyVersion && box.GetVersion() == fi.nVersion { + return false + } + } + + if fi.optFlag != 0 && box.GetFlags()&fi.optFlag == 0 { + return false + } + + if fi.nOptFlag != 0 && box.GetFlags()&fi.nOptFlag != 0 { + return false + } + + if fi.is(fieldOptDynamic) && !fi.cfo.IsOptFieldEnabled(fi.name, ctx) { + return false + } + + return true +} diff --git a/vendor/github.com/abema/go-mp4/marshaller.go b/vendor/github.com/abema/go-mp4/marshaller.go new file mode 100644 index 000000000..b5c66860b --- /dev/null +++ b/vendor/github.com/abema/go-mp4/marshaller.go @@ -0,0 +1,639 @@ +package mp4 + +import ( + "bytes" + "errors" + "fmt" + "io" + "math" + "reflect" + + "github.com/abema/go-mp4/bitio" +) + +const ( + anyVersion = math.MaxUint8 +) + +var ErrUnsupportedBoxVersion = errors.New("unsupported box version") + +type marshaller struct { + writer bitio.Writer + wbits uint64 + src IImmutableBox + ctx Context +} + +func Marshal(w io.Writer, src IImmutableBox, ctx Context) (n uint64, err error) { + boxDef := src.GetType().getBoxDef(ctx) + if boxDef == nil { + return 0, ErrBoxInfoNotFound + } + + v := reflect.ValueOf(src).Elem() + + m := &marshaller{ + writer: bitio.NewWriter(w), + src: src, + ctx: ctx, + } + + if err := m.marshalStruct(v, boxDef.fields); err != nil { + return 0, err + } + + if m.wbits%8 != 0 { + return 0, fmt.Errorf("box size is not multiple of 8 bits: type=%s, bits=%d", src.GetType().String(), m.wbits) + } + + return m.wbits / 8, nil +} + +func (m *marshaller) marshal(v reflect.Value, fi *fieldInstance) error { + switch v.Type().Kind() { + case reflect.Ptr: + return m.marshalPtr(v, fi) + case reflect.Struct: + return m.marshalStruct(v, fi.children) + case reflect.Array: + return m.marshalArray(v, fi) + case reflect.Slice: + return m.marshalSlice(v, fi) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return m.marshalInt(v, fi) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return m.marshalUint(v, fi) + case reflect.Bool: + return m.marshalBool(v, fi) + case reflect.String: + return m.marshalString(v) + default: + return fmt.Errorf("unsupported type: %s", v.Type().Kind()) + } +} + +func (m *marshaller) marshalPtr(v reflect.Value, fi *fieldInstance) error { + return m.marshal(v.Elem(), fi) +} + +func (m *marshaller) marshalStruct(v reflect.Value, fs []*field) error { + for _, f := range fs { + fi := resolveFieldInstance(f, m.src, v, m.ctx) + + if !isTargetField(m.src, fi, m.ctx) { + continue + } + + wbits, override, err := fi.cfo.OnWriteField(f.name, m.writer, m.ctx) + if err != nil { + return err + } + m.wbits += wbits + if override { + continue + } + + err = m.marshal(v.FieldByName(f.name), fi) + if err != nil { + return err + } + } + + return nil +} + +func (m *marshaller) marshalArray(v reflect.Value, fi *fieldInstance) error { + size := v.Type().Size() + for i := 0; i < int(size)/int(v.Type().Elem().Size()); i++ { + var err error + err = m.marshal(v.Index(i), fi) + if err != nil { + return err + } + } + return nil +} + +func (m *marshaller) marshalSlice(v reflect.Value, fi *fieldInstance) error { + length := uint64(v.Len()) + if fi.length != LengthUnlimited { + if length < uint64(fi.length) { + return fmt.Errorf("the slice has too few elements: required=%d actual=%d", fi.length, length) + } + length = uint64(fi.length) + } + + elemType := v.Type().Elem() + if elemType.Kind() == reflect.Uint8 && fi.size == 8 && m.wbits%8 == 0 { + if _, err := io.CopyN(m.writer, bytes.NewBuffer(v.Bytes()), int64(length)); err != nil { + return err + } + m.wbits += length * 8 + return nil + } + + for i := 0; i < int(length); i++ { + m.marshal(v.Index(i), fi) + } + return nil +} + +func (m *marshaller) marshalInt(v reflect.Value, fi *fieldInstance) error { + signed := v.Int() + + if fi.is(fieldVarint) { + return errors.New("signed varint is unsupported") + } + + signBit := signed < 0 + val := uint64(signed) + for i := uint(0); i < fi.size; i += 8 { + v := val + size := uint(8) + if fi.size > i+8 { + v = v >> (fi.size - (i + 8)) + } else if fi.size < i+8 { + size = fi.size - i + } + + // set sign bit + if i == 0 { + if signBit { + v |= 0x1 << (size - 1) + } else { + v &= 0x1<<(size-1) - 1 + } + } + + if err := m.writer.WriteBits([]byte{byte(v)}, size); err != nil { + return err + } + m.wbits += uint64(size) + } + + return nil +} + +func (m *marshaller) marshalUint(v reflect.Value, fi *fieldInstance) error { + val := v.Uint() + + if fi.is(fieldVarint) { + m.writeUvarint(val) + return nil + } + + for i := uint(0); i < fi.size; i += 8 { + v := val + size := uint(8) + if fi.size > i+8 { + v = v >> (fi.size - (i + 8)) + } else if fi.size < i+8 { + size = fi.size - i + } + if err := m.writer.WriteBits([]byte{byte(v)}, size); err != nil { + return err + } + m.wbits += uint64(size) + } + + return nil +} + +func (m *marshaller) marshalBool(v reflect.Value, fi *fieldInstance) error { + var val byte + if v.Bool() { + val = 0xff + } else { + val = 0x00 + } + if err := m.writer.WriteBits([]byte{val}, fi.size); err != nil { + return err + } + m.wbits += uint64(fi.size) + return nil +} + +func (m *marshaller) marshalString(v reflect.Value) error { + data := []byte(v.String()) + for _, b := range data { + if err := m.writer.WriteBits([]byte{b}, 8); err != nil { + return err + } + m.wbits += 8 + } + // null character + if err := m.writer.WriteBits([]byte{0x00}, 8); err != nil { + return err + } + m.wbits += 8 + return nil +} + +func (m *marshaller) writeUvarint(u uint64) error { + for i := 21; i > 0; i -= 7 { + if err := m.writer.WriteBits([]byte{(byte(u >> uint(i))) | 0x80}, 8); err != nil { + return err + } + m.wbits += 8 + } + + if err := m.writer.WriteBits([]byte{byte(u) & 0x7f}, 8); err != nil { + return err + } + m.wbits += 8 + + return nil +} + +type unmarshaller struct { + reader bitio.ReadSeeker + dst IBox + size uint64 + rbits uint64 + ctx Context +} + +func UnmarshalAny(r io.ReadSeeker, boxType BoxType, payloadSize uint64, ctx Context) (box IBox, n uint64, err error) { + dst, err := boxType.New(ctx) + if err != nil { + return nil, 0, err + } + n, err = Unmarshal(r, payloadSize, dst, ctx) + return dst, n, err +} + +func Unmarshal(r io.ReadSeeker, payloadSize uint64, dst IBox, ctx Context) (n uint64, err error) { + boxDef := dst.GetType().getBoxDef(ctx) + if boxDef == nil { + return 0, ErrBoxInfoNotFound + } + + v := reflect.ValueOf(dst).Elem() + + dst.SetVersion(anyVersion) + + u := &unmarshaller{ + reader: bitio.NewReadSeeker(r), + dst: dst, + size: payloadSize, + ctx: ctx, + } + + if n, override, err := dst.BeforeUnmarshal(r, payloadSize, u.ctx); err != nil { + return 0, err + } else if override { + return n, nil + } else { + u.rbits = n * 8 + } + + sn, err := r.Seek(0, io.SeekCurrent) + if err != nil { + return 0, err + } + + if err := u.unmarshalStruct(v, boxDef.fields); err != nil { + if err == ErrUnsupportedBoxVersion { + r.Seek(sn, io.SeekStart) + } + return 0, err + } + + if u.rbits%8 != 0 { + return 0, fmt.Errorf("box size is not multiple of 8 bits: type=%s, size=%d, bits=%d", dst.GetType().String(), u.size, u.rbits) + } + + if u.rbits > u.size*8 { + return 0, fmt.Errorf("overrun error: type=%s, size=%d, bits=%d", dst.GetType().String(), u.size, u.rbits) + } + + return u.rbits / 8, nil +} + +func (u *unmarshaller) unmarshal(v reflect.Value, fi *fieldInstance) error { + var err error + switch v.Type().Kind() { + case reflect.Ptr: + err = u.unmarshalPtr(v, fi) + case reflect.Struct: + err = u.unmarshalStructInternal(v, fi) + case reflect.Array: + err = u.unmarshalArray(v, fi) + case reflect.Slice: + err = u.unmarshalSlice(v, fi) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + err = u.unmarshalInt(v, fi) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + err = u.unmarshalUint(v, fi) + case reflect.Bool: + err = u.unmarshalBool(v, fi) + case reflect.String: + err = u.unmarshalString(v, fi) + default: + return fmt.Errorf("unsupported type: %s", v.Type().Kind()) + } + return err +} + +func (u *unmarshaller) unmarshalPtr(v reflect.Value, fi *fieldInstance) error { + v.Set(reflect.New(v.Type().Elem())) + return u.unmarshal(v.Elem(), fi) +} + +func (u *unmarshaller) unmarshalStructInternal(v reflect.Value, fi *fieldInstance) error { + if fi.size != 0 && fi.size%8 == 0 { + u2 := *u + u2.size = uint64(fi.size / 8) + u2.rbits = 0 + if err := u2.unmarshalStruct(v, fi.children); err != nil { + return err + } + u.rbits += u2.rbits + if u2.rbits != uint64(fi.size) { + return errors.New("invalid alignment") + } + return nil + } + + return u.unmarshalStruct(v, fi.children) +} + +func (u *unmarshaller) unmarshalStruct(v reflect.Value, fs []*field) error { + for _, f := range fs { + fi := resolveFieldInstance(f, u.dst, v, u.ctx) + + if !isTargetField(u.dst, fi, u.ctx) { + continue + } + + rbits, override, err := fi.cfo.OnReadField(f.name, u.reader, u.size*8-u.rbits, u.ctx) + if err != nil { + return err + } + u.rbits += rbits + if override { + continue + } + + err = u.unmarshal(v.FieldByName(f.name), fi) + if err != nil { + return err + } + + if v.FieldByName(f.name).Type() == reflect.TypeOf(FullBox{}) && !u.dst.GetType().IsSupportedVersion(u.dst.GetVersion(), u.ctx) { + return ErrUnsupportedBoxVersion + } + } + + return nil +} + +func (u *unmarshaller) unmarshalArray(v reflect.Value, fi *fieldInstance) error { + size := v.Type().Size() + for i := 0; i < int(size)/int(v.Type().Elem().Size()); i++ { + var err error + err = u.unmarshal(v.Index(i), fi) + if err != nil { + return err + } + } + return nil +} + +func (u *unmarshaller) unmarshalSlice(v reflect.Value, fi *fieldInstance) error { + var slice reflect.Value + elemType := v.Type().Elem() + + length := uint64(fi.length) + if fi.length == LengthUnlimited { + if fi.size != 0 { + left := (u.size)*8 - u.rbits + if left%uint64(fi.size) != 0 { + return errors.New("invalid alignment") + } + length = left / uint64(fi.size) + } else { + length = 0 + } + } + + if length > math.MaxInt32 { + return fmt.Errorf("out of memory: requestedSize=%d", length) + } + + if fi.size != 0 && fi.size%8 == 0 && u.rbits%8 == 0 && elemType.Kind() == reflect.Uint8 && fi.size == 8 { + totalSize := length * uint64(fi.size) / 8 + buf := bytes.NewBuffer(make([]byte, 0, totalSize)) + if _, err := io.CopyN(buf, u.reader, int64(totalSize)); err != nil { + return err + } + slice = reflect.ValueOf(buf.Bytes()) + u.rbits += uint64(totalSize) * 8 + + } else { + slice = reflect.MakeSlice(v.Type(), 0, int(length)) + for i := 0; ; i++ { + if fi.length != LengthUnlimited && uint(i) >= fi.length { + break + } + if fi.length == LengthUnlimited && u.rbits >= u.size*8 { + break + } + slice = reflect.Append(slice, reflect.Zero(elemType)) + if err := u.unmarshal(slice.Index(i), fi); err != nil { + return err + } + if u.rbits > u.size*8 { + return fmt.Errorf("failed to read array completely: fieldName=\"%s\"", fi.name) + } + } + } + + v.Set(slice) + return nil +} + +func (u *unmarshaller) unmarshalInt(v reflect.Value, fi *fieldInstance) error { + if fi.is(fieldVarint) { + return errors.New("signed varint is unsupported") + } + + if fi.size == 0 { + return fmt.Errorf("size must not be zero: %s", fi.name) + } + + data, err := u.reader.ReadBits(fi.size) + if err != nil { + return err + } + u.rbits += uint64(fi.size) + + signBit := false + if len(data) > 0 { + signMask := byte(0x01) << ((fi.size - 1) % 8) + signBit = data[0]&signMask != 0 + if signBit { + data[0] |= ^(signMask - 1) + } + } + + var val uint64 + if signBit { + val = ^uint64(0) + } + for i := range data { + val <<= 8 + val |= uint64(data[i]) + } + v.SetInt(int64(val)) + return nil +} + +func (u *unmarshaller) unmarshalUint(v reflect.Value, fi *fieldInstance) error { + if fi.is(fieldVarint) { + val, err := u.readUvarint() + if err != nil { + return err + } + v.SetUint(val) + return nil + } + + if fi.size == 0 { + return fmt.Errorf("size must not be zero: %s", fi.name) + } + + data, err := u.reader.ReadBits(fi.size) + if err != nil { + return err + } + u.rbits += uint64(fi.size) + + val := uint64(0) + for i := range data { + val <<= 8 + val |= uint64(data[i]) + } + v.SetUint(val) + + return nil +} + +func (u *unmarshaller) unmarshalBool(v reflect.Value, fi *fieldInstance) error { + if fi.size == 0 { + return fmt.Errorf("size must not be zero: %s", fi.name) + } + + data, err := u.reader.ReadBits(fi.size) + if err != nil { + return err + } + u.rbits += uint64(fi.size) + + val := false + for _, b := range data { + val = val || (b != byte(0)) + } + v.SetBool(val) + + return nil +} + +func (u *unmarshaller) unmarshalString(v reflect.Value, fi *fieldInstance) error { + switch fi.strType { + case stringType_C: + return u.unmarshalStringC(v) + case stringType_C_P: + return u.unmarshalStringCP(v, fi) + default: + return fmt.Errorf("unknown string type: %d", fi.strType) + } +} + +func (u *unmarshaller) unmarshalStringC(v reflect.Value) error { + data := make([]byte, 0, 16) + for { + if u.rbits >= u.size*8 { + break + } + + c, err := u.reader.ReadBits(8) + if err != nil { + return err + } + u.rbits += 8 + + if c[0] == 0 { + break // null character + } + + data = append(data, c[0]) + } + v.SetString(string(data)) + + return nil +} + +func (u *unmarshaller) unmarshalStringCP(v reflect.Value, fi *fieldInstance) error { + if ok, err := u.tryReadPString(v, fi); err != nil { + return err + } else if ok { + return nil + } + return u.unmarshalStringC(v) +} + +func (u *unmarshaller) tryReadPString(v reflect.Value, fi *fieldInstance) (ok bool, err error) { + remainingSize := (u.size*8 - u.rbits) / 8 + if remainingSize < 2 { + return false, nil + } + + offset, err := u.reader.Seek(0, io.SeekCurrent) + if err != nil { + return false, err + } + defer func() { + if err == nil && !ok { + _, err = u.reader.Seek(offset, io.SeekStart) + } + }() + + buf0 := make([]byte, 1) + if _, err := io.ReadFull(u.reader, buf0); err != nil { + return false, err + } + remainingSize-- + plen := buf0[0] + if uint64(plen) > remainingSize { + return false, nil + } + buf := make([]byte, int(plen)) + if _, err := io.ReadFull(u.reader, buf); err != nil { + return false, err + } + remainingSize -= uint64(plen) + if fi.cfo.IsPString(fi.name, buf, remainingSize, u.ctx) { + u.rbits += uint64(len(buf)+1) * 8 + v.SetString(string(buf)) + return true, nil + } + return false, nil +} + +func (u *unmarshaller) readUvarint() (uint64, error) { + var val uint64 + for { + octet, err := u.reader.ReadBits(8) + if err != nil { + return 0, err + } + u.rbits += 8 + + val = (val << 7) + uint64(octet[0]&0x7f) + + if octet[0]&0x80 == 0 { + return val, nil + } + } +} diff --git a/vendor/github.com/abema/go-mp4/mp4.go b/vendor/github.com/abema/go-mp4/mp4.go new file mode 100644 index 000000000..6aa5b307a --- /dev/null +++ b/vendor/github.com/abema/go-mp4/mp4.go @@ -0,0 +1,151 @@ +package mp4 + +import ( + "errors" + "fmt" + "reflect" + "strings" +) + +var ErrBoxInfoNotFound = errors.New("box info not found") + +// BoxType is mpeg box type +type BoxType [4]byte + +func StrToBoxType(code string) BoxType { + if len(code) != 4 { + panic(fmt.Errorf("invalid box type id length: [%s]", code)) + } + return BoxType{code[0], code[1], code[2], code[3]} +} + +func (boxType BoxType) String() string { + if isPrintable(boxType[0]) && isPrintable(boxType[1]) && isPrintable(boxType[2]) && isPrintable(boxType[3]) { + s := string([]byte{boxType[0], boxType[1], boxType[2], boxType[3]}) + s = strings.ReplaceAll(s, string([]byte{0xa9}), "(c)") + return s + } + return fmt.Sprintf("0x%02x%02x%02x%02x", boxType[0], boxType[1], boxType[2], boxType[3]) +} + +func isASCII(c byte) bool { + return c >= 0x20 && c <= 0x7e +} + +func isPrintable(c byte) bool { + return isASCII(c) || c == 0xa9 +} + +func (lhs BoxType) MatchWith(rhs BoxType) bool { + if lhs == boxTypeAny || rhs == boxTypeAny { + return true + } + return lhs == rhs +} + +var boxTypeAny = BoxType{0x00, 0x00, 0x00, 0x00} + +func BoxTypeAny() BoxType { + return boxTypeAny +} + +type boxDef struct { + dataType reflect.Type + versions []uint8 + isTarget func(Context) bool + fields []*field +} + +var boxMap = make(map[BoxType][]boxDef, 64) + +func AddBoxDef(payload IBox, versions ...uint8) { + boxMap[payload.GetType()] = append(boxMap[payload.GetType()], boxDef{ + dataType: reflect.TypeOf(payload).Elem(), + versions: versions, + fields: buildFields(payload), + }) +} + +func AddBoxDefEx(payload IBox, isTarget func(Context) bool, versions ...uint8) { + boxMap[payload.GetType()] = append(boxMap[payload.GetType()], boxDef{ + dataType: reflect.TypeOf(payload).Elem(), + versions: versions, + isTarget: isTarget, + fields: buildFields(payload), + }) +} + +func AddAnyTypeBoxDef(payload IAnyType, boxType BoxType, versions ...uint8) { + boxMap[boxType] = append(boxMap[boxType], boxDef{ + dataType: reflect.TypeOf(payload).Elem(), + versions: versions, + fields: buildFields(payload), + }) +} + +func AddAnyTypeBoxDefEx(payload IAnyType, boxType BoxType, isTarget func(Context) bool, versions ...uint8) { + boxMap[boxType] = append(boxMap[boxType], boxDef{ + dataType: reflect.TypeOf(payload).Elem(), + versions: versions, + isTarget: isTarget, + fields: buildFields(payload), + }) +} + +func (boxType BoxType) getBoxDef(ctx Context) *boxDef { + boxDefs := boxMap[boxType] + for i := len(boxDefs) - 1; i >= 0; i-- { + boxDef := &boxDefs[i] + if boxDef.isTarget == nil || boxDef.isTarget(ctx) { + return boxDef + } + } + return nil +} + +func (boxType BoxType) IsSupported(ctx Context) bool { + return boxType.getBoxDef(ctx) != nil +} + +func (boxType BoxType) New(ctx Context) (IBox, error) { + boxDef := boxType.getBoxDef(ctx) + if boxDef == nil { + return nil, ErrBoxInfoNotFound + } + + box, ok := reflect.New(boxDef.dataType).Interface().(IBox) + if !ok { + return nil, fmt.Errorf("box type not implements IBox interface: %s", boxType.String()) + } + + anyTypeBox, ok := box.(IAnyType) + if ok { + anyTypeBox.SetType(boxType) + } + + return box, nil +} + +func (boxType BoxType) GetSupportedVersions(ctx Context) ([]uint8, error) { + boxDef := boxType.getBoxDef(ctx) + if boxDef == nil { + return nil, ErrBoxInfoNotFound + } + return boxDef.versions, nil +} + +func (boxType BoxType) IsSupportedVersion(ver uint8, ctx Context) bool { + boxDef := boxType.getBoxDef(ctx) + if boxDef == nil { + return false + } + if len(boxDef.versions) == 0 { + return true + } + for _, sver := range boxDef.versions { + if ver == sver { + return true + } + } + return false +} diff --git a/vendor/github.com/abema/go-mp4/probe.go b/vendor/github.com/abema/go-mp4/probe.go new file mode 100644 index 000000000..812be5bb6 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/probe.go @@ -0,0 +1,673 @@ +package mp4 + +import ( + "bytes" + "errors" + "io" + + "github.com/abema/go-mp4/bitio" +) + +type ProbeInfo struct { + MajorBrand [4]byte + MinorVersion uint32 + CompatibleBrands [][4]byte + FastStart bool + Timescale uint32 + Duration uint64 + Tracks Tracks + Segments Segments +} + +// Deprecated: replace with ProbeInfo +type FraProbeInfo = ProbeInfo + +type Tracks []*Track + +// Deprecated: replace with Track +type TrackInfo = Track + +type Track struct { + TrackID uint32 + Timescale uint32 + Duration uint64 + Codec Codec + Encrypted bool + EditList EditList + Samples Samples + Chunks Chunks + AVC *AVCDecConfigInfo + MP4A *MP4AInfo +} + +type Codec int + +const ( + CodecUnknown Codec = iota + CodecAVC1 + CodecMP4A +) + +type EditList []*EditListEntry + +type EditListEntry struct { + MediaTime int64 + SegmentDuration uint64 +} + +type Samples []*Sample + +type Sample struct { + Size uint32 + TimeDelta uint32 + CompositionTimeOffset int64 +} + +type Chunks []*Chunk + +type Chunk struct { + DataOffset uint32 + SamplesPerChunk uint32 +} + +type AVCDecConfigInfo struct { + ConfigurationVersion uint8 + Profile uint8 + ProfileCompatibility uint8 + Level uint8 + LengthSize uint16 + Width uint16 + Height uint16 +} + +type MP4AInfo struct { + OTI uint8 + AudOTI uint8 + ChannelCount uint16 +} + +type Segments []*Segment + +// Deprecated: replace with Segment +type SegmentInfo = Segment + +type Segment struct { + TrackID uint32 + MoofOffset uint64 + BaseMediaDecodeTime uint64 + DefaultSampleDuration uint32 + SampleCount uint32 + Duration uint32 + CompositionTimeOffset int32 + Size uint32 +} + +// Probe probes MP4 file +func Probe(r io.ReadSeeker) (*ProbeInfo, error) { + probeInfo := &ProbeInfo{ + Tracks: make([]*Track, 0, 8), + Segments: make([]*Segment, 0, 8), + } + bis, err := ExtractBoxes(r, nil, []BoxPath{ + {BoxTypeFtyp()}, + {BoxTypeMoov()}, + {BoxTypeMoov(), BoxTypeMvhd()}, + {BoxTypeMoov(), BoxTypeTrak()}, + {BoxTypeMoof()}, + {BoxTypeMdat()}, + }) + if err != nil { + return nil, err + } + var mdatAppeared bool + for _, bi := range bis { + switch bi.Type { + case BoxTypeFtyp(): + var ftyp Ftyp + if _, err := bi.SeekToPayload(r); err != nil { + return nil, err + } + if _, err := Unmarshal(r, bi.Size-bi.HeaderSize, &ftyp, bi.Context); err != nil { + return nil, err + } + probeInfo.MajorBrand = ftyp.MajorBrand + probeInfo.MinorVersion = ftyp.MinorVersion + probeInfo.CompatibleBrands = make([][4]byte, 0, len(ftyp.CompatibleBrands)) + for _, entry := range ftyp.CompatibleBrands { + probeInfo.CompatibleBrands = append(probeInfo.CompatibleBrands, entry.CompatibleBrand) + } + case BoxTypeMoov(): + probeInfo.FastStart = !mdatAppeared + case BoxTypeMvhd(): + var mvhd Mvhd + if _, err := bi.SeekToPayload(r); err != nil { + return nil, err + } + if _, err := Unmarshal(r, bi.Size-bi.HeaderSize, &mvhd, bi.Context); err != nil { + return nil, err + } + probeInfo.Timescale = mvhd.Timescale + if mvhd.GetVersion() == 0 { + probeInfo.Duration = uint64(mvhd.DurationV0) + } else { + probeInfo.Duration = mvhd.DurationV1 + } + case BoxTypeTrak(): + track, err := probeTrak(r, bi) + if err != nil { + return nil, err + } + probeInfo.Tracks = append(probeInfo.Tracks, track) + case BoxTypeMoof(): + segment, err := probeMoof(r, bi) + if err != nil { + return nil, err + } + probeInfo.Segments = append(probeInfo.Segments, segment) + case BoxTypeMdat(): + mdatAppeared = true + } + } + return probeInfo, nil +} + +// ProbeFra probes fragmented MP4 file +// Deprecated: replace with Probe +func ProbeFra(r io.ReadSeeker) (*FraProbeInfo, error) { + probeInfo, err := Probe(r) + return (*FraProbeInfo)(probeInfo), err +} + +func probeTrak(r io.ReadSeeker, bi *BoxInfo) (*Track, error) { + track := new(Track) + + bips, err := ExtractBoxesWithPayload(r, bi, []BoxPath{ + {BoxTypeTkhd()}, + {BoxTypeEdts(), BoxTypeElst()}, + {BoxTypeMdia(), BoxTypeMdhd()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeAvc1()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeAvc1(), BoxTypeAvcC()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeEncv()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeEncv(), BoxTypeAvcC()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeMp4a()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeMp4a(), BoxTypeEsds()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeMp4a(), BoxTypeWave(), BoxTypeEsds()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeEnca()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsd(), BoxTypeEnca(), BoxTypeEsds()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStco()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStts()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeCtts()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsc()}, + {BoxTypeMdia(), BoxTypeMinf(), BoxTypeStbl(), BoxTypeStsz()}, + }) + if err != nil { + return nil, err + } + var tkhd *Tkhd + var elst *Elst + var mdhd *Mdhd + var avc1 *VisualSampleEntry + var avcC *AVCDecoderConfiguration + var audioSampleEntry *AudioSampleEntry + var esds *Esds + var stco *Stco + var stts *Stts + var stsc *Stsc + var ctts *Ctts + var stsz *Stsz + for _, bip := range bips { + switch bip.Info.Type { + case BoxTypeTkhd(): + tkhd = bip.Payload.(*Tkhd) + case BoxTypeElst(): + elst = bip.Payload.(*Elst) + case BoxTypeMdhd(): + mdhd = bip.Payload.(*Mdhd) + case BoxTypeAvc1(): + track.Codec = CodecAVC1 + avc1 = bip.Payload.(*VisualSampleEntry) + case BoxTypeAvcC(): + avcC = bip.Payload.(*AVCDecoderConfiguration) + case BoxTypeEncv(): + track.Codec = CodecAVC1 + track.Encrypted = true + case BoxTypeMp4a(): + track.Codec = CodecMP4A + audioSampleEntry = bip.Payload.(*AudioSampleEntry) + case BoxTypeEnca(): + track.Codec = CodecMP4A + track.Encrypted = true + audioSampleEntry = bip.Payload.(*AudioSampleEntry) + case BoxTypeEsds(): + esds = bip.Payload.(*Esds) + case BoxTypeStco(): + stco = bip.Payload.(*Stco) + case BoxTypeStts(): + stts = bip.Payload.(*Stts) + case BoxTypeStsc(): + stsc = bip.Payload.(*Stsc) + case BoxTypeCtts(): + ctts = bip.Payload.(*Ctts) + case BoxTypeStsz(): + stsz = bip.Payload.(*Stsz) + } + } + + if tkhd == nil { + return nil, errors.New("tkhd box not found") + } + track.TrackID = tkhd.TrackID + + if elst != nil { + editList := make([]*EditListEntry, 0, len(elst.Entries)) + for i := range elst.Entries { + editList = append(editList, &EditListEntry{ + MediaTime: elst.GetMediaTime(i), + SegmentDuration: elst.GetSegmentDuration(i), + }) + } + track.EditList = editList + } + + if mdhd == nil { + return nil, errors.New("mdhd box not found") + } + track.Timescale = mdhd.Timescale + track.Duration = mdhd.GetDuration() + + if avc1 != nil && avcC != nil { + track.AVC = &AVCDecConfigInfo{ + ConfigurationVersion: avcC.ConfigurationVersion, + Profile: avcC.Profile, + ProfileCompatibility: avcC.ProfileCompatibility, + Level: avcC.Level, + LengthSize: uint16(avcC.LengthSizeMinusOne) + 1, + Width: avc1.Width, + Height: avc1.Height, + } + } + + if audioSampleEntry != nil && esds != nil { + oti, audOTI, err := detectAACProfile(esds) + if err != nil { + return nil, err + } + track.MP4A = &MP4AInfo{ + OTI: oti, + AudOTI: audOTI, + ChannelCount: audioSampleEntry.ChannelCount, + } + } + + if stco == nil { + return nil, errors.New("stco box not found") + } + track.Chunks = make([]*Chunk, 0) + for _, offset := range stco.ChunkOffset { + track.Chunks = append(track.Chunks, &Chunk{ + DataOffset: offset, + }) + } + + if stts == nil { + return nil, errors.New("stts box not found") + } + track.Samples = make([]*Sample, 0) + for _, entry := range stts.Entries { + for i := uint32(0); i < entry.SampleCount; i++ { + track.Samples = append(track.Samples, &Sample{ + TimeDelta: entry.SampleDelta, + }) + } + } + + if stsc == nil { + return nil, errors.New("stsc box not found") + } + for si, entry := range stsc.Entries { + end := uint32(len(track.Chunks)) + if si != len(stsc.Entries)-1 && stsc.Entries[si+1].FirstChunk-1 < end { + end = stsc.Entries[si+1].FirstChunk - 1 + } + for ci := entry.FirstChunk - 1; ci < end; ci++ { + track.Chunks[ci].SamplesPerChunk = entry.SamplesPerChunk + } + } + + if ctts != nil { + var si uint32 + for ci, entry := range ctts.Entries { + for i := uint32(0); i < entry.SampleCount; i++ { + if si >= uint32(len(track.Samples)) { + break + } + track.Samples[si].CompositionTimeOffset = ctts.GetSampleOffset(ci) + si++ + } + } + } + + if stsz != nil { + for i := 0; i < len(stsz.EntrySize) && i < len(track.Samples); i++ { + track.Samples[i].Size = stsz.EntrySize[i] + } + } + + return track, nil +} + +func detectAACProfile(esds *Esds) (oti, audOTI uint8, err error) { + configDscr := findDescriptorByTag(esds.Descriptors, DecoderConfigDescrTag) + if configDscr == nil || configDscr.DecoderConfigDescriptor == nil { + return 0, 0, nil + } + if configDscr.DecoderConfigDescriptor.ObjectTypeIndication != 0x40 { + return configDscr.DecoderConfigDescriptor.ObjectTypeIndication, 0, nil + } + + specificDscr := findDescriptorByTag(esds.Descriptors, DecSpecificInfoTag) + if specificDscr == nil { + return 0, 0, errors.New("DecoderSpecificationInfoDescriptor not found") + } + + r := bitio.NewReader(bytes.NewReader(specificDscr.Data)) + remaining := len(specificDscr.Data) * 8 + + // audio object type + audioObjectType, read, err := getAudioObjectType(r) + if err != nil { + return 0, 0, err + } + remaining -= read + + // sampling frequency index + samplingFrequencyIndex, err := r.ReadBits(4) + if err != nil { + return 0, 0, err + } + remaining -= 4 + if samplingFrequencyIndex[0] == 0x0f { + if _, err = r.ReadBits(24); err != nil { + return 0, 0, err + } + remaining -= 24 + } + + if audioObjectType == 2 && remaining >= 20 { + if _, err = r.ReadBits(4); err != nil { + return 0, 0, err + } + remaining -= 4 + syncExtensionType, err := r.ReadBits(11) + if err != nil { + return 0, 0, err + } + remaining -= 11 + if syncExtensionType[0] == 0x2 && syncExtensionType[1] == 0xb7 { + extAudioObjectType, _, err := getAudioObjectType(r) + if err != nil { + return 0, 0, err + } + if extAudioObjectType == 5 || extAudioObjectType == 22 { + sbr, err := r.ReadBits(1) + if err != nil { + return 0, 0, err + } + remaining-- + if sbr[0] != 0 { + if extAudioObjectType == 5 { + sfi, err := r.ReadBits(4) + if err != nil { + return 0, 0, err + } + remaining -= 4 + if sfi[0] == 0xf { + if _, err := r.ReadBits(24); err != nil { + return 0, 0, err + } + remaining -= 24 + } + if remaining >= 12 { + syncExtensionType, err := r.ReadBits(11) + if err != nil { + return 0, 0, err + } + if syncExtensionType[0] == 0x5 && syncExtensionType[1] == 0x48 { + ps, err := r.ReadBits(1) + if err != nil { + return 0, 0, err + } + if ps[0] != 0 { + return 0x40, 29, nil + } + } + } + } + return 0x40, 5, nil + } + } + } + } + return 0x40, audioObjectType, nil +} + +func findDescriptorByTag(dscrs []Descriptor, tag int8) *Descriptor { + for _, dscr := range dscrs { + if dscr.Tag == tag { + return &dscr + } + } + return nil +} + +func getAudioObjectType(r bitio.Reader) (byte, int, error) { + audioObjectType, err := r.ReadBits(5) + if err != nil { + return 0, 0, err + } + if audioObjectType[0] != 0x1f { + return audioObjectType[0], 5, nil + } + audioObjectType, err = r.ReadBits(6) + if err != nil { + return 0, 0, err + } + return audioObjectType[0] + 32, 11, nil +} + +func probeMoof(r io.ReadSeeker, bi *BoxInfo) (*Segment, error) { + bips, err := ExtractBoxesWithPayload(r, bi, []BoxPath{ + {BoxTypeTraf(), BoxTypeTfhd()}, + {BoxTypeTraf(), BoxTypeTfdt()}, + {BoxTypeTraf(), BoxTypeTrun()}, + }) + if err != nil { + return nil, err + } + + var tfhd *Tfhd + var tfdt *Tfdt + var trun *Trun + + segment := &Segment{ + MoofOffset: bi.Offset, + } + for _, bip := range bips { + switch bip.Info.Type { + case BoxTypeTfhd(): + tfhd = bip.Payload.(*Tfhd) + case BoxTypeTfdt(): + tfdt = bip.Payload.(*Tfdt) + case BoxTypeTrun(): + trun = bip.Payload.(*Trun) + } + } + + if tfhd == nil { + return nil, errors.New("tfhd not found") + } + segment.TrackID = tfhd.TrackID + segment.DefaultSampleDuration = tfhd.DefaultSampleDuration + + if tfdt != nil { + if tfdt.Version == 0 { + segment.BaseMediaDecodeTime = uint64(tfdt.BaseMediaDecodeTimeV0) + } else { + segment.BaseMediaDecodeTime = tfdt.BaseMediaDecodeTimeV1 + } + } + + if trun != nil { + segment.SampleCount = trun.SampleCount + + if trun.CheckFlag(0x000100) { + segment.Duration = 0 + for ei := range trun.Entries { + segment.Duration += trun.Entries[ei].SampleDuration + } + } else { + segment.Duration = tfhd.DefaultSampleDuration * segment.SampleCount + } + + if trun.CheckFlag(0x000200) { + segment.Size = 0 + for ei := range trun.Entries { + segment.Size += trun.Entries[ei].SampleSize + } + } else { + segment.Size = tfhd.DefaultSampleSize * segment.SampleCount + } + + var duration uint32 + for ei := range trun.Entries { + offset := int32(duration) + int32(trun.GetSampleCompositionTimeOffset(ei)) + if ei == 0 || offset < segment.CompositionTimeOffset { + segment.CompositionTimeOffset = offset + } + if trun.CheckFlag(0x000100) { + duration += trun.Entries[ei].SampleDuration + } else { + duration += tfhd.DefaultSampleDuration + } + } + } + + return segment, nil +} + +func FindIDRFrames(r io.ReadSeeker, trackInfo *TrackInfo) ([]int, error) { + if trackInfo.AVC == nil { + return nil, nil + } + lengthSize := uint32(trackInfo.AVC.LengthSize) + + var si int + idxs := make([]int, 0, 8) + for _, chunk := range trackInfo.Chunks { + end := si + int(chunk.SamplesPerChunk) + dataOffset := chunk.DataOffset + for ; si < end && si < len(trackInfo.Samples); si++ { + sample := trackInfo.Samples[si] + if sample.Size == 0 { + continue + } + for nalOffset := uint32(0); nalOffset+lengthSize+1 <= sample.Size; { + if _, err := r.Seek(int64(dataOffset+nalOffset), io.SeekStart); err != nil { + return nil, err + } + data := make([]byte, lengthSize+1) + if _, err := io.ReadFull(r, data); err != nil { + return nil, err + } + var length uint32 + for i := 0; i < int(lengthSize); i++ { + length = (length << 8) + uint32(data[i]) + } + nalHeader := data[lengthSize] + nalType := nalHeader & 0x1f + if nalType == 5 { + idxs = append(idxs, si) + break + } + nalOffset += lengthSize + length + } + dataOffset += sample.Size + } + } + return idxs, nil +} + +func (samples Samples) GetBitrate(timescale uint32) uint64 { + var totalSize uint64 + var totalDuration uint64 + for _, sample := range samples { + totalSize += uint64(sample.Size) + totalDuration += uint64(sample.TimeDelta) + } + if totalDuration == 0 { + return 0 + } + return 8 * totalSize * uint64(timescale) / totalDuration +} + +func (samples Samples) GetMaxBitrate(timescale uint32, timeDelta uint64) uint64 { + if timeDelta == 0 { + return 0 + } + var maxBitrate uint64 + var size uint64 + var duration uint64 + var begin int + var end int + for end < len(samples) { + for { + size += uint64(samples[end].Size) + duration += uint64(samples[end].TimeDelta) + end++ + if duration >= timeDelta || end == len(samples) { + break + } + } + bitrate := 8 * size * uint64(timescale) / duration + if bitrate > maxBitrate { + maxBitrate = bitrate + } + for { + size -= uint64(samples[begin].Size) + duration -= uint64(samples[begin].TimeDelta) + begin++ + if duration < timeDelta { + break + } + } + } + return maxBitrate +} + +func (segments Segments) GetBitrate(trackID uint32, timescale uint32) uint64 { + var totalSize uint64 + var totalDuration uint64 + for _, segment := range segments { + if segment.TrackID == trackID { + totalSize += uint64(segment.Size) + totalDuration += uint64(segment.Duration) + } + } + if totalDuration == 0 { + return 0 + } + return 8 * totalSize * uint64(timescale) / totalDuration +} + +func (segments Segments) GetMaxBitrate(trackID uint32, timescale uint32) uint64 { + var maxBitrate uint64 + for _, segment := range segments { + if segment.TrackID == trackID && segment.Duration != 0 { + bitrate := 8 * uint64(segment.Size) * uint64(timescale) / uint64(segment.Duration) + if bitrate > maxBitrate { + maxBitrate = bitrate + } + } + } + return maxBitrate +} diff --git a/vendor/github.com/abema/go-mp4/read.go b/vendor/github.com/abema/go-mp4/read.go new file mode 100644 index 000000000..fa69561aa --- /dev/null +++ b/vendor/github.com/abema/go-mp4/read.go @@ -0,0 +1,182 @@ +package mp4 + +import ( + "errors" + "fmt" + "io" +) + +type BoxPath []BoxType + +func (lhs BoxPath) compareWith(rhs BoxPath) (forwardMatch bool, match bool) { + if len(lhs) > len(rhs) { + return false, false + } + for i := 0; i < len(lhs); i++ { + if !lhs[i].MatchWith(rhs[i]) { + return false, false + } + } + if len(lhs) < len(rhs) { + return true, false + } + return false, true +} + +type ReadHandle struct { + Params []interface{} + BoxInfo BoxInfo + Path BoxPath + ReadPayload func() (box IBox, n uint64, err error) + ReadData func(io.Writer) (n uint64, err error) + Expand func(params ...interface{}) (vals []interface{}, err error) +} + +type ReadHandler func(handle *ReadHandle) (val interface{}, err error) + +func ReadBoxStructure(r io.ReadSeeker, handler ReadHandler, params ...interface{}) ([]interface{}, error) { + if _, err := r.Seek(0, io.SeekStart); err != nil { + return nil, err + } + return readBoxStructure(r, 0, true, nil, Context{}, handler, params) +} + +func ReadBoxStructureFromInternal(r io.ReadSeeker, bi *BoxInfo, handler ReadHandler, params ...interface{}) (interface{}, error) { + return readBoxStructureFromInternal(r, bi, nil, handler, params) +} + +func readBoxStructureFromInternal(r io.ReadSeeker, bi *BoxInfo, path BoxPath, handler ReadHandler, params []interface{}) (interface{}, error) { + if _, err := bi.SeekToPayload(r); err != nil { + return nil, err + } + + // check comatible-brands + if len(path) == 0 && bi.Type == BoxTypeFtyp() { + var ftyp Ftyp + if _, err := Unmarshal(r, bi.Size-bi.HeaderSize, &ftyp, bi.Context); err != nil { + return nil, err + } + if ftyp.HasCompatibleBrand(BrandQT()) { + bi.IsQuickTimeCompatible = true + } + if _, err := bi.SeekToPayload(r); err != nil { + return nil, err + } + } + + ctx := bi.Context + if bi.Type == BoxTypeWave() { + ctx.UnderWave = true + } else if bi.Type == BoxTypeIlst() { + ctx.UnderIlst = true + } else if bi.UnderIlst && !bi.UnderIlstMeta && IsIlstMetaBoxType(bi.Type) { + ctx.UnderIlstMeta = true + if bi.Type == StrToBoxType("----") { + ctx.UnderIlstFreeMeta = true + } + } else if bi.Type == BoxTypeUdta() { + ctx.UnderUdta = true + } + + newPath := make(BoxPath, len(path)+1) + copy(newPath, path) + newPath[len(path)] = bi.Type + + h := &ReadHandle{ + Params: params, + BoxInfo: *bi, + Path: newPath, + } + + var childrenOffset uint64 + + h.ReadPayload = func() (IBox, uint64, error) { + if _, err := bi.SeekToPayload(r); err != nil { + return nil, 0, err + } + + box, n, err := UnmarshalAny(r, bi.Type, bi.Size-bi.HeaderSize, bi.Context) + if err != nil { + return nil, 0, err + } + childrenOffset = bi.Offset + bi.HeaderSize + n + return box, n, nil + } + + h.ReadData = func(w io.Writer) (uint64, error) { + if _, err := bi.SeekToPayload(r); err != nil { + return 0, err + } + + size := bi.Size - bi.HeaderSize + if _, err := io.CopyN(w, r, int64(size)); err != nil { + return 0, err + } + return size, nil + } + + h.Expand = func(params ...interface{}) ([]interface{}, error) { + if childrenOffset == 0 { + if _, err := bi.SeekToPayload(r); err != nil { + return nil, err + } + + _, n, err := UnmarshalAny(r, bi.Type, bi.Size-bi.HeaderSize, bi.Context) + if err != nil { + return nil, err + } + childrenOffset = bi.Offset + bi.HeaderSize + n + } else { + if _, err := r.Seek(int64(childrenOffset), io.SeekStart); err != nil { + return nil, err + } + } + + childrenSize := bi.Offset + bi.Size - childrenOffset + return readBoxStructure(r, childrenSize, false, newPath, ctx, handler, params) + } + + if val, err := handler(h); err != nil { + return nil, err + } else if _, err := bi.SeekToEnd(r); err != nil { + return nil, err + } else { + return val, nil + } +} + +func readBoxStructure(r io.ReadSeeker, totalSize uint64, isRoot bool, path BoxPath, ctx Context, handler ReadHandler, params []interface{}) ([]interface{}, error) { + vals := make([]interface{}, 0, 8) + + for isRoot || totalSize != 0 { + bi, err := ReadBoxInfo(r) + if isRoot && err == io.EOF { + return vals, nil + } else if err != nil { + return nil, err + } + + if !isRoot && bi.Size > totalSize { + return nil, fmt.Errorf("too large box size: type=%s, size=%d, actualBufSize=%d", bi.Type.String(), bi.Size, totalSize) + } + totalSize -= bi.Size + + bi.Context = ctx + + val, err := readBoxStructureFromInternal(r, bi, path, handler, params) + if err != nil { + return nil, err + } + vals = append(vals, val) + + if bi.IsQuickTimeCompatible { + ctx.IsQuickTimeCompatible = true + } + } + + if totalSize != 0 { + return nil, errors.New("Unexpected EOF") + } + + return vals, nil +} diff --git a/vendor/github.com/abema/go-mp4/string.go b/vendor/github.com/abema/go-mp4/string.go new file mode 100644 index 000000000..56afff1bb --- /dev/null +++ b/vendor/github.com/abema/go-mp4/string.go @@ -0,0 +1,261 @@ +package mp4 + +import ( + "bytes" + "fmt" + "io" + "reflect" + "strconv" + + "github.com/abema/go-mp4/util" +) + +type stringifier struct { + buf *bytes.Buffer + src IImmutableBox + indent string + ctx Context +} + +func Stringify(src IImmutableBox, ctx Context) (string, error) { + return StringifyWithIndent(src, "", ctx) +} + +func StringifyWithIndent(src IImmutableBox, indent string, ctx Context) (string, error) { + boxDef := src.GetType().getBoxDef(ctx) + if boxDef == nil { + return "", ErrBoxInfoNotFound + } + + v := reflect.ValueOf(src).Elem() + + m := &stringifier{ + buf: bytes.NewBuffer(nil), + src: src, + indent: indent, + ctx: ctx, + } + + err := m.stringifyStruct(v, boxDef.fields, 0, true) + if err != nil { + return "", err + } + + return m.buf.String(), nil +} + +func (m *stringifier) stringify(v reflect.Value, fi *fieldInstance, depth int) error { + switch v.Type().Kind() { + case reflect.Ptr: + return m.stringifyPtr(v, fi, depth) + case reflect.Struct: + return m.stringifyStruct(v, fi.children, depth, fi.is(fieldExtend)) + case reflect.Array: + return m.stringifyArray(v, fi, depth) + case reflect.Slice: + return m.stringifySlice(v, fi, depth) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return m.stringifyInt(v, fi, depth) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return m.stringifyUint(v, fi, depth) + case reflect.Bool: + return m.stringifyBool(v, depth) + case reflect.String: + return m.stringifyString(v, depth) + default: + return fmt.Errorf("unsupported type: %s", v.Type().Kind()) + } +} + +func (m *stringifier) stringifyPtr(v reflect.Value, fi *fieldInstance, depth int) error { + return m.stringify(v.Elem(), fi, depth) +} + +func (m *stringifier) stringifyStruct(v reflect.Value, fs []*field, depth int, extended bool) error { + if !extended { + m.buf.WriteString("{") + if m.indent != "" { + m.buf.WriteString("\n") + } + depth++ + } + + for _, f := range fs { + fi := resolveFieldInstance(f, m.src, v, m.ctx) + + if !isTargetField(m.src, fi, m.ctx) { + continue + } + + if f.cnst != "" || f.is(fieldHidden) { + continue + } + + if !f.is(fieldExtend) { + if m.indent != "" { + writeIndent(m.buf, m.indent, depth+1) + } else if m.buf.Len() != 0 && m.buf.Bytes()[m.buf.Len()-1] != '{' { + m.buf.WriteString(" ") + } + m.buf.WriteString(f.name) + m.buf.WriteString("=") + } + + str, ok := fi.cfo.StringifyField(f.name, m.indent, depth+1, m.ctx) + if ok { + m.buf.WriteString(str) + if !f.is(fieldExtend) && m.indent != "" { + m.buf.WriteString("\n") + } + continue + } + + if f.name == "Version" { + m.buf.WriteString(strconv.Itoa(int(m.src.GetVersion()))) + } else if f.name == "Flags" { + fmt.Fprintf(m.buf, "0x%06x", m.src.GetFlags()) + } else { + err := m.stringify(v.FieldByName(f.name), fi, depth) + if err != nil { + return err + } + } + + if !f.is(fieldExtend) && m.indent != "" { + m.buf.WriteString("\n") + } + } + + if !extended { + if m.indent != "" { + writeIndent(m.buf, m.indent, depth) + } + m.buf.WriteString("}") + } + + return nil +} + +func (m *stringifier) stringifyArray(v reflect.Value, fi *fieldInstance, depth int) error { + begin, sep, end := "[", ", ", "]" + if fi.is(fieldString) || fi.is(fieldISO639_2) { + begin, sep, end = "\"", "", "\"" + } else if fi.is(fieldUUID) { + begin, sep, end = "", "", "" + } + + m.buf.WriteString(begin) + + m2 := *m + if fi.is(fieldString) { + m2.buf = bytes.NewBuffer(nil) + } + size := v.Type().Size() + for i := 0; i < int(size)/int(v.Type().Elem().Size()); i++ { + if i != 0 { + m2.buf.WriteString(sep) + } + + if err := m2.stringify(v.Index(i), fi, depth+1); err != nil { + return err + } + + if fi.is(fieldUUID) && (i == 3 || i == 5 || i == 7 || i == 9) { + m.buf.WriteString("-") + } + } + if fi.is(fieldString) { + m.buf.WriteString(util.EscapeUnprintables(m2.buf.String())) + } + + m.buf.WriteString(end) + + return nil +} + +func (m *stringifier) stringifySlice(v reflect.Value, fi *fieldInstance, depth int) error { + begin, sep, end := "[", ", ", "]" + if fi.is(fieldString) || fi.is(fieldISO639_2) { + begin, sep, end = "\"", "", "\"" + } + + m.buf.WriteString(begin) + + m2 := *m + if fi.is(fieldString) { + m2.buf = bytes.NewBuffer(nil) + } + for i := 0; i < v.Len(); i++ { + if fi.length != LengthUnlimited && uint(i) >= fi.length { + break + } + + if i != 0 { + m2.buf.WriteString(sep) + } + + if err := m2.stringify(v.Index(i), fi, depth+1); err != nil { + return err + } + } + if fi.is(fieldString) { + m.buf.WriteString(util.EscapeUnprintables(m2.buf.String())) + } + + m.buf.WriteString(end) + + return nil +} + +func (m *stringifier) stringifyInt(v reflect.Value, fi *fieldInstance, depth int) error { + if fi.is(fieldHex) { + val := v.Int() + if val >= 0 { + m.buf.WriteString("0x") + m.buf.WriteString(strconv.FormatInt(val, 16)) + } else { + m.buf.WriteString("-0x") + m.buf.WriteString(strconv.FormatInt(-val, 16)) + } + } else { + m.buf.WriteString(strconv.FormatInt(v.Int(), 10)) + } + return nil +} + +func (m *stringifier) stringifyUint(v reflect.Value, fi *fieldInstance, depth int) error { + if fi.is(fieldISO639_2) { + m.buf.WriteString(string([]byte{byte(v.Uint() + 0x60)})) + } else if fi.is(fieldUUID) { + fmt.Fprintf(m.buf, "%02x", v.Uint()) + } else if fi.is(fieldString) { + m.buf.WriteString(string([]byte{byte(v.Uint())})) + } else if fi.is(fieldHex) || (!fi.is(fieldDec) && v.Type().Kind() == reflect.Uint8) || v.Type().Kind() == reflect.Uintptr { + m.buf.WriteString("0x") + m.buf.WriteString(strconv.FormatUint(v.Uint(), 16)) + } else { + m.buf.WriteString(strconv.FormatUint(v.Uint(), 10)) + } + + return nil +} + +func (m *stringifier) stringifyBool(v reflect.Value, depth int) error { + m.buf.WriteString(strconv.FormatBool(v.Bool())) + + return nil +} + +func (m *stringifier) stringifyString(v reflect.Value, depth int) error { + m.buf.WriteString("\"") + m.buf.WriteString(util.EscapeUnprintables(v.String())) + m.buf.WriteString("\"") + + return nil +} + +func writeIndent(w io.Writer, indent string, depth int) { + for i := 0; i < depth; i++ { + io.WriteString(w, indent) + } +} diff --git a/vendor/github.com/abema/go-mp4/util/io.go b/vendor/github.com/abema/go-mp4/util/io.go new file mode 100644 index 000000000..1e4681186 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/util/io.go @@ -0,0 +1,30 @@ +package util + +import ( + "bytes" + "io" +) + +func ReadString(r io.Reader) (string, error) { + b := make([]byte, 1) + buf := bytes.NewBuffer(nil) + for { + if _, err := r.Read(b); err != nil { + return "", err + } + if b[0] == 0 { + return buf.String(), nil + } + buf.Write(b) + } +} + +func WriteString(w io.Writer, s string) error { + if _, err := w.Write([]byte(s)); err != nil { + return err + } + if _, err := w.Write([]byte{0}); err != nil { + return err + } + return nil +} diff --git a/vendor/github.com/abema/go-mp4/util/string.go b/vendor/github.com/abema/go-mp4/util/string.go new file mode 100644 index 000000000..b38251bb3 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/util/string.go @@ -0,0 +1,42 @@ +package util + +import ( + "strconv" + "strings" + "unicode" +) + +func FormatSignedFixedFloat1616(val int32) string { + if val&0xffff == 0 { + return strconv.Itoa(int(val >> 16)) + } else { + return strconv.FormatFloat(float64(val)/(1<<16), 'f', 5, 64) + } +} + +func FormatUnsignedFixedFloat1616(val uint32) string { + if val&0xffff == 0 { + return strconv.Itoa(int(val >> 16)) + } else { + return strconv.FormatFloat(float64(val)/(1<<16), 'f', 5, 64) + } +} + +func FormatSignedFixedFloat88(val int16) string { + if val&0xff == 0 { + return strconv.Itoa(int(val >> 8)) + } else { + return strconv.FormatFloat(float64(val)/(1<<8), 'f', 3, 32) + } +} + +func EscapeUnprintable(r rune) rune { + if unicode.IsGraphic(r) { + return r + } + return rune('.') +} + +func EscapeUnprintables(src string) string { + return strings.Map(EscapeUnprintable, src) +} diff --git a/vendor/github.com/abema/go-mp4/write.go b/vendor/github.com/abema/go-mp4/write.go new file mode 100644 index 000000000..72d464444 --- /dev/null +++ b/vendor/github.com/abema/go-mp4/write.go @@ -0,0 +1,68 @@ +package mp4 + +import ( + "errors" + "io" +) + +type Writer struct { + writer io.WriteSeeker + biStack []*BoxInfo +} + +func NewWriter(w io.WriteSeeker) *Writer { + return &Writer{ + writer: w, + } +} + +func (w *Writer) Write(p []byte) (int, error) { + return w.writer.Write(p) +} + +func (w *Writer) Seek(offset int64, whence int) (int64, error) { + return w.writer.Seek(offset, whence) +} + +func (w *Writer) StartBox(bi *BoxInfo) (*BoxInfo, error) { + bi, err := WriteBoxInfo(w.writer, bi) + if err != nil { + return nil, err + } + w.biStack = append(w.biStack, bi) + return bi, nil +} + +func (w *Writer) EndBox() (*BoxInfo, error) { + bi := w.biStack[len(w.biStack)-1] + w.biStack = w.biStack[:len(w.biStack)-1] + end, err := w.writer.Seek(0, io.SeekCurrent) + if err != nil { + return nil, err + } + bi.Size = uint64(end) - bi.Offset + if _, err = bi.SeekToStart(w.writer); err != nil { + return nil, err + } + if bi2, err := WriteBoxInfo(w.writer, bi); err != nil { + return nil, err + } else if bi.HeaderSize != bi2.HeaderSize { + return nil, errors.New("header size changed") + } + if _, err := w.writer.Seek(end, io.SeekStart); err != nil { + return nil, err + } + return bi, nil +} + +func (w *Writer) CopyBox(r io.ReadSeeker, bi *BoxInfo) error { + if _, err := bi.SeekToStart(r); err != nil { + return err + } + if n, err := io.CopyN(w, r, int64(bi.Size)); err != nil { + return err + } else if n != int64(bi.Size) { + return errors.New("failed to copy box") + } + return nil +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 17d211245..9763b2605 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -66,6 +66,11 @@ codeberg.org/gruf/go-sched codeberg.org/gruf/go-store/v2/kv codeberg.org/gruf/go-store/v2/storage codeberg.org/gruf/go-store/v2/util +# github.com/abema/go-mp4 v0.8.0 +## explicit; go 1.14 +github.com/abema/go-mp4 +github.com/abema/go-mp4/bitio +github.com/abema/go-mp4/util # github.com/aymerick/douceur v0.2.0 ## explicit github.com/aymerick/douceur/css diff --git a/web/source/css/status.css b/web/source/css/status.css index 5b9900472..ed0075976 100644 --- a/web/source/css/status.css +++ b/web/source/css/status.css @@ -232,6 +232,9 @@ main { } input.sensitive-checkbox:checked { /* Media is shown */ + & ~ .video-play { + display: flex; + } & ~ .sensitive { .closed { transition: 0.8s; @@ -256,6 +259,32 @@ main { } } + .video-play { + .icon-span { + align-self: center; + display: initial; + z-index: 4; + + .icon { + color: $white1; + } + + .icon-bg { + color: $gray1; + font-size: 1.1em; + } + } + + display: none; + position: absolute; + height: 100%; + width: 100%; + justify-content: center; + align-items: center; + font-size: 7em; + pointer-events: none; + } + .sensitive { position: absolute; height: 100%; @@ -412,4 +441,4 @@ footer + div { /* something weird from the devstack.. */ grid-row: auto; } } -} \ No newline at end of file +} diff --git a/web/source/frontend/index.js b/web/source/frontend/index.js index b1187f515..7cf396035 100644 --- a/web/source/frontend/index.js +++ b/web/source/frontend/index.js @@ -21,6 +21,7 @@ const Photoswipe = require("photoswipe/dist/umd/photoswipe.umd.min.js"); const PhotoswipeLightbox = require("photoswipe/dist/umd/photoswipe-lightbox.umd.min.js"); const PhotoswipeCaptionPlugin = require("photoswipe-dynamic-caption-plugin").default; +const PhotoswipeVideoPlugin = require("photoswipe-video-plugin").default; let [_, _user, type, id] = window.location.pathname.split("/"); if (type == "statuses") { @@ -39,6 +40,7 @@ const lightbox = new PhotoswipeLightbox({ new PhotoswipeCaptionPlugin(lightbox, { type: 'auto', }); +new PhotoswipeVideoPlugin(lightbox, {}); lightbox.init(); @@ -46,14 +48,14 @@ Array.from(document.getElementsByClassName("spoiler-label")).forEach((label) => let checkbox = document.getElementById(label.htmlFor); if (checkbox != undefined) { function update() { - if(checkbox.checked) { + if (checkbox.checked) { label.innerHTML = "Show more"; } else { label.innerHTML = "Show less"; } } update(); - - label.addEventListener("click", () => {setTimeout(update, 1);}); + + label.addEventListener("click", () => { setTimeout(update, 1); }); } }); diff --git a/web/source/package.json b/web/source/package.json index 410602aba..7685df234 100644 --- a/web/source/package.json +++ b/web/source/package.json @@ -22,6 +22,7 @@ "modern-normalize": "^1.1.0", "photoswipe": "^5.3.3", "photoswipe-dynamic-caption-plugin": "^1.2.7", + "photoswipe-video-plugin": "^1.0.2", "react": "^18.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^3.1.4", diff --git a/web/source/yarn.lock b/web/source/yarn.lock index 6e7074a42..ae63ce004 100644 --- a/web/source/yarn.lock +++ b/web/source/yarn.lock @@ -4201,6 +4201,11 @@ photoswipe-dynamic-caption-plugin@^1.2.7: resolved "https://registry.yarnpkg.com/photoswipe-dynamic-caption-plugin/-/photoswipe-dynamic-caption-plugin-1.2.7.tgz#53aa5059f1c4dccc8aa36196ff3e09baa5e537c2" integrity sha512-5XXdXLf2381nwe7KqQvcyStiUBi9TitYXppUQTrzPwYAi4lZsmWNnNKMclM7I4QGlX6fXo42v3bgb6rlK9pY1Q== +photoswipe-video-plugin@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/photoswipe-video-plugin/-/photoswipe-video-plugin-1.0.2.tgz#156b6a72ffa86e6c6e2b486e8ec5b48f6696941a" + integrity sha512-skNHaalLU7rptZ3zq4XfS5hPqSDD65ctvpf2X8buvC8BpOt6XKSIgRkLzTwgQOUm9yQ8kQ4mMget7CIqGcqtDg== + photoswipe@^5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/photoswipe/-/photoswipe-5.3.3.tgz#86351a33502a3ab7d1e483127fe596b20054218a" diff --git a/web/template/status.tmpl b/web/template/status.tmpl index bff1fb692..2c81a2a54 100644 --- a/web/template/status.tmpl +++ b/web/template/status.tmpl @@ -22,7 +22,7 @@ {{range .}}

{{if not .Description}} - + {{end}}
@@ -35,7 +35,21 @@
- + {{ if eq .Type "video" }} +
+ +
+ {{ end }} +
@@ -51,4 +65,4 @@
{{.FavouritesCount}}
-View toot \ No newline at end of file +View toot