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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�jN?B=!ets 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

P0_D6;6%529Gut58)4o+7z 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

>UOt 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

AgLf*W-L-Z7 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%0A6F6l936r#@9Bx~5hhjP&NQVj@`;E<1 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

aS8T`wl!^ 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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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�jN?B=!ets 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

P0_D6;6%529Gut58)4o+7z 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

>UOt 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

AgLf*W-L-Z7 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%0A6F6l936r#@9Bx~5hhjP&NQVj@`;E<1 zobNw$P(_`BVwK_l)9Z;)ej%#$D6cPFp;Yjxes z9#p%Ot+!4QPWFVpHr{j0Gu4skIz~+=?k4SK;Er-7H*WxtRHNr~^v3zHGyLE8pK7PN zJ;c|rw?q$}W#DofZG~zHV0TtzvjO?c)Z(O=1ONa40fv2_=RPOxoA&lE-h!Fe8u5Z* zhrA=K^R$~F04S1EvG_0ob*ytD@#f=PRRDcs2O%1i)zQOb0NQ}b4=y{(_t&$)abx** z&KlKr`ou=Jc2CI?|0Z4|| zM1V4LPS$DA1BbY%l}6ZxR4fZLY2<)N{wSb&9TJ7U2?20xd#r^5k(@RP7BO({n-q3@ z3QP+$1|CsG!KMoX8AY91cY2gy000WjYHZFn@D#J;-r?uTSpRcw@JRo>$p|nGc*?-f zoBxzVw(Jfuxy?KXrp;9 zL%i5uKXkek(>;xNK{cdclZ6LliD>euYjc$6hON&H{cN3xQfDdUjkfp zrE|l^byWt<3IGmpQ^B*PgXVSMQ@`o~L9)cBC-HM2bxZ4L~ZDU)A3{j)gY=-VarJSF_Vgxu?HIfzu_aQBM3{D#JBw1!DJhd zKlmC&J9!vx~o^sbZB7yuoyQ=&V~y6EA66OnYR&%Vw8VA2lxN?Ic_Gf!^JUBnsv zY-MbTy|v*lZk82BY=!-pVyS^V5;q-IH zCrZn(fj4q!oY`^Fgp92e54**6BwqCzw>Uxgf~ymJq#7CHk4QyY6NtXVkQ$FD<%2@% z>lwTzv+7eKU9#J6Eqo4lu{AoT3w}7^NL@V+vK#@&WFekiHX%OHdvstHhTofds;#_< z>z$g-moFrRrlo@;!|~D4$3GOEdexN6tZS_9t2!Bnj+sh{l>yyX=U5{JQFTv%RPK_b z5W5n6^NKlm@r*40pRE0*g0@-1%j0-Ng1eqFV%*@(qw~5fi(4>dEFH%BaEhn=*=TUL=Z$nbE<|Rw2vJZ;zNHI1ta9;-XVEL+AsUq3yu)Eo z*pxOv4X6U40xk`4uye_#habD0wXP19VH$Z$tSfkWfZzZCCsTgAq<+n|baIwlydAVK z7A8Nh{mNMr=iPm8sxk;5zYc5m_=~Pb`J8{ySJ@JSHF7_}XQy40untNnu|z@R>O!C_um{{i@{xMyArl4!$Cj@-x0td{$MRgNA4qIL z(fvZ4k#=QX^T+v;463IkQZ78oFJvm~9*xKXqcVrtCJOiIlBgY)X)#Mk*9P69SxeNx zd=)v@jZ+=I45ttn5wH}Z;cb8b19o}rSkc}8eHDO`f`C4?m`0vn000IvL7L)k0&_qY zRs_-C+fR$~K{v57YboU2OW>*88+zrWCpN2BCuQO~^^e-L4JE^W6B?>?V4d)87pYPF z<5EV2syo8fEMWgu5frxRc5NUETu?Bo=IV<0&41}WPE3f4#b6rd&}IrZH9}CM`VX^9 zx1j+Z@IfzzJQ1uWjn~8}^>FTZiLT)E{8UG5q@{vniaOV|u{(;=awdGPN6LUG7dxY! zmS_M1wbl-T%=fL79fz^@bNFz7Lvs8d^b!RX&(PmU~UqmZu>Ye

#Q}7k0~s7Du}9Mho@R)PHRTm_y$cfvkedvnS}(jQ+G zfxk@igQdSxx{|G_se|uaE04WT&>ujkfUkHqe%!R2S2hVG@j zvBZC{cHP^1vA?Gl4mYJGg+uqazvV(JubueKzbQibdraenLWAHnGm5HyJV*Y~ie5VE zAr2Y`lk{cU7z6*+s2I^**9$xRx9E*t^i>z6H6GeMA1cw*%CPB$fw=e}3d9)KUX&nKk>NI|kR+xHrdi@<1}>gRkA zg232nB%}8$_j(LD?#R!G5A8B62vvtU`@Bl~9>F1rO&4#H&#Bh2k2j7Asg&(Rnu z8zXLej-(nu|JK!0P%JSUaAkeBY%z5=On1t6@%Mm|VwaSIm3eN?7o&Y+YIYP6h9p-% zNZ=!1P^nC1RyLKU!)56JW9r@fGh}z8SI2h_nhb#w9VMG5A4BQZrB!)57AqztCo{|< z%(9ulZF0;3xskFT2tx_s%>$QCytM9ull&ieVppI{|6oCJBFbZPc4Ji-Sta9& z+d{KqA;R5c6yH$Eb1cP%;dg=I^dgnF-qu*}?M;{-ys9kn zf&Q)?Wi}N6{cZ_v_1WU;h`d2S0VKEmup3jDu*+&+m<-H%VK?%)~$>JdC;4mfqG$`x+;IYeJ!+}Yu;oBzaj8@c-nx?^r$1UtH3^32gB zJb0FNru1r>8@vu=^+s`7rRG+ zg%dSvZnbUJxG!p&=YKoH$0l+1b! zn#otS6nZMCo*Z4hzP!Jgefr#dBra`zU)fozs9{oMseM=#hmzMGNp11VbDB~}31fPR z78I-|^|S%J)Jyl$NQ3-F-T__h!(xL`P31XL&G|n9%9SX^+LpgBn$&PAsKBUDrw4VK zU2=048qa8Ld?3r(aw)a2h|tset+Cn+N@GYtx&Ei z41YB-yeQ2vx~j{Ct<9O4>$!!719?XPvqsI8_SVO)%ehZ__ww>n#v@y zWb!#$CNj8xnm&+Rm-h5Z`cZ%l&qe4|g5L0T3Tr;yaGRRQls>xdT7}0i9*J0`m6(NL zQYJ#v1{G(#M0Bl1`LfHhf8BtxviLp|btf|*P%Ovzj$nUN zrX=Yx3%*Mnh_I8g=Y&n{H62qYieV>)j7468ej;(HWZ6C>6N55pSWgqHEm5x zwl-k(gu=E1va9~#r}#k(Q1KA_JLl2~?vakqWv4;^TO%>xiu~`OZxCm<(RTiu#AJ?D z7oWYn!l7jnz&IKXdO^+`Q%dQ7UPlX9BJo^?1dasYJMpfPJd*4Iz+|Q!0 z?Ls1GulBNu##{K^q|{MaE17>8gy>UnMv_GzT-J4SnIKovHnj@`ZxvYd4B=Dw=Uj>W zyU?!w#}8t3yH+dpsbG7&6G=rHC*ZS#ychSU&0&zhP-TEKPzCoM>p=hBJdk}tfC9t{ z$N!W)!yrZqn^S}eF;r)d)5c>p46&7r2MfW?>ceaFmgHhr#YdYa_i|(j&P|Z?1(_B) z`MWI~lE%jmNk$yl$>v?-8@U?k4GIUCxfy4K>tp~-Cf?JalMAPrZqHGD_D0rcTho@T$dNGtU#X>HRrKbtgf;qE zH|$&khy{+HZFHW;w197gcdmMbR;haN?Yt(yhSmklt#wPW#Df(5C)%%~D6-Jzb<;6{=S!oP~{8&0J{ig z0yF=DeOXhWtuU$e4|yS3{Zp3FZQeY(o{{o3-V&8k0t~PZq6GsVp@vCtJah^%aPs)j zC}H@Jai71CL}Z`CjKhA&M(FkINp&R*p{eEqNgPSjV{M`J6k;x09=lWF;rcAUOt#vr zcry_rB#5hBJ*TbF1iswqFLjVl=CFRa|-bu(=fjS)ZB2^edm|a z>Z|ak?q>OA)rMY9N}vS&l0juOo#t%w||Z#`6wf}PShF=S~h>gb>%}yAswZd&|Kv=q&dN`pDs%S zUm2IS<1E}l+Ss7CJWDcfOAy(1N?GPTz5`FnYmX@`G6<1@LvzIli=n~TcpJ0^j{n7_ zp3(+~=d&HA9aP(|+;4AGGLEq9**u8#+;gYj9th25DQ*K?Dd5{G>q1Op5HdM=^a$M4 zGz#&h8iBTDu0^agjmEVKxU>5iT)kQw^hhfwG#0}l3#N@!m@*1$S$2AALsgR-)E~cm z^+;f1jo&q!vCLC_k{blKHS_3qPjh=OqKl@*|2f^SU<-kMI0rQJQL-ESq8S=UFoMgz z!Vzt9`M?W=06XSbN8$dy)nD~WQp6+Vv4p7tKqV0w{yhB=RhOHA0@r9Y|Q~z$#Sq{XJP9AX~q8gnEn4J<8CvzJ(3`HDTH=l;sVe=kf;m)XH$X zyMu50-;MLdBEWyo`~r|yYdZ`=&;n=IDBop@;Ka!11)CBpCk}#P)A(O$RTwz0=(6^%cT_Sg+hzfAV{SE5xh>3z%6vB19`+&4R?1Mex zrJxF8;7ajdvgL+fL~DZ^&WvJ$z_jYQ9qn7ThA0FLn*QZiCf{&l!n($Wt7JxApDzW* z;2o%nll3l#1(;$L$aSnN6FI-?JQjuJ5qZqtCunx`&Mv5@I6<_WgjDX=Lqs_f2Z{JU z?PP^L>ec3c3%i@JOWt%d#4^SxzH#XeE+F*U?|J2FZY^#t4)ACqoPtB+S2!NioJ^kj z;t}7+nKNuhX5_Q%lDvGw^QIauNTGcbEp=e9nQ2AS;_=ePq{^^h+WrPj%8tI8kJWxy zoj2nbeQ!CLWoM*4;(>KV6&^%V79d3+@icgOGlx&uMcN1uXq*86K=1!&!hW!a)D?wF zG1>@pB9oh|GC8Wf&QBoprq zEl8?xIEnZy!MdS^=#>;Fx7XU`*TMg4Oo=LIxhbSsYNql97VODVHrT*%@J`T;mVTQx z-z0o9)UfuAVumXrP$94il?s^N1Kv^JwE&t1US9!dnqwLH?LQxK752*qAV22GLvq?O$-VlsM}(bp{H4OkH2k!^8@P7J>Q!soJYn5AmmIq9 z_sa?mobS{n#2DmCK+5g}s`AO}rajvSo|}&cUL(60Y;t7dOv-39DadBBfQwiV0BSFQ z6uwm0`XIS5MAbU_YRDh$0yr!?=1s9maiHbvFS>Wd95M>@_s;VW18aIn_mrY4;ix7Gq}@ z^m8^Vl^yRp*(ap}52i_x%;dqBNAUaR6W#f)+;~=-T*rqBOpW2=55W8FNsiP|rldx4 z(doxbCD`&(vOQ_VVQrq(kRoU<=c)!T5`)RzTT!{^xz+4A10qro+P<9Rqb!Jk4#6c= z1TJRUHn_L9&OB`Sw8N*^KK&2@m# z9Ce&!cc(j{qEun34?9XmUf%-#qxZ!&O>(1KPK&XV~)8w@N z1J-4+4Z`YN%Q2|*9=lG->4P_;=X#V9Rj%iI8B2k(B5MqU?`RDaj zJDwEEMm&_vV00Fkv`C-rUtzhp`|`HT%ly!JvP82sR3^7CtS4~Ds%^vebdVAV?gMP> z&Yv6^wD>nNNr5mP{ypm(-t#k2C8_do?3kh73T-8q*gG??MBmeeI;@)9QjBS5t5NMd z>R1ADhKF4>?PtS%7r7uM$u#~=rEYpI*IbDj{3ml#zn%+YO=gztGP!~7?Fk3*2)Cqq zoc6twA`xpbgbU4eDS>3DjKb((#?0zLt(<O`R3<6NdWc_oR%P=S#fP#L;%5R;VVR+2KPjmaMG8je zu$4|}em1ZwO#c${b1|ixFy7z=oYD7CR;RZqBse44F`(~)pTN(8i%cA*L*kdMo`k+} z4|zE`4W=`XKIP^qB->ITnPVm$(@e3$q6D`sD z+&PtJ?Fa);yC{y+B=YnF{v29%ecQ5yLWEdz-ocM#7nVyfLeY zftE$qWVDK;2tuyH6_QL=jejSvPZ){$S0x;y<1Tqg7=j97h?np~SwySB8$ihMPn9Jv zqty{EVf9aL2U?_y(%s)51wCeyxlt_*v+f#3oCRdc!m7KkIf)2pzW|%PDr%UBgGprH z3hf$lkFG$PEbA3Ul*GO%{8nE&>n&x#Q^>&H7Z(jda{4X?FD@m8v)T8^y zJ2SLQN~w!gkT^1Z(3ee12!N^aM*&zt{Gv)K3;S#}W?uP8!c-51WC2gkSo$BTty_Fs z#`BPm6R6>9neNv~i1Sq@yni`D zz+8eD3F)A!yd`r)*I;t5&^wK8T&gsR$i3SC_RG_hn7^2P8h3g7hDU=&FR91D1Gou2 zdc_8U_%k0Azc*Cv9}RsnO`@CN%%sXmF{ZvD9ysZ=fH{Mf=w*J^(xmXD;hj+tV9~vU zaiI`uA5V}Nt4f6@Lop9l|3yDi_E`oZ*y)=5vd}tA+2+%mG@|y!W252&*FN~sR*^MSl+ zf=!KdB z?Lu0ELBPksB{G=Oy;x$1R6aznt>~zqj(2my+H9IUM%IwQJao)xDHglHsX+#2J^!IN zzEO#3?C21u%^2%Z2o4oovD|{|q{yKs+4|T1*<+Mo5!i%rjzqf7O~xRs=&(-H0PHUw z`JA_o`7XMcIC+vVKX&GI6x{k3<;hu`on#$~@?EBKX#u&Cl2JOeSgj;SN}AN09p5$7 z0uoL!Cp{0B{25Pe+S(Y}8_-QOM2gj{k21Vm1z$A=ssG{# zru2nbonFC}ok7h_9AyW5&3)n_H(je82-vr$_dy|qz}m}f>E{UD<@%`1^*CmosSk}% z|8CACj+6c>61)H#w<(;+sY~7*8BEtT#SC+?3o2Dv@w`i~)mz(_fXb|gnH+W%%j6Jo zWA6e%9VTSnz&y6cZ^cg38P2KARLreYFeSTTqTb5y;LkOI_*F590P`a5@H7eb=-{EE z``n_w`6DXPMlx`(A12yE^sAt)1KCT`cMDP0(-;jGLFC{wNf#pWAM1)b%7@X$VU-66 z{y%!YPb{jMN|a*6j2Oa!ne<--eP5-%>)M^O?>;zV*$-5DaS_fkH7QZ{x&1ZlkUDTc zrwfTrYI(Agt6|$%2cw{t1OMt#F>Vtk`rgvyP{B>_^-$9S%ysyv^ifq%ALTS{V!obF zWW9E-#HJBO{k*14J)b&K9{#k~xjMZKy{IhwD0Ms4#Jj4on!D}n?X!HnW_zE~GO!A<&r_HFbe_ z(MPCDI#HRh^o783*a%0(&}KlBeag5{at&%nj`e9w$RO?bXa~1+tXb%UIldEuCyRgu zANmB8cjLA~)e2qMOn1#@h7nTnt|J%iS#yIuC$jfwAaK;f@RFT5$4m4&SOgVX*H`uxccEWVk4o2cC$Q zf!Vx;dK8<_@c;=S;t~P(#NED94N?L@WJr|-1(NttC;T!3<~sF-SdCW`gc_=qE%-%- zulb%I7Ii@dPhtZfiSW>ZpeyO2?3j%kzNucw%jPa;VhsiTtI_6`;&>{jHotPLzIXMt zJ&s*{v*bsM@WBdg>O+TF!U7)(zcsI<0x-`NS0#yAj*|aJDfQJ@5zWnB}bzEH&^C$!BoBA?)$!pE!dl~|vKg}Aag8U(xi&odbb{&6b6Cy#}pIKC$j7R?F z;wPSg#IS@#%lZz)wBOjnf`_ei=W`7>&c3IcoN>{YL`#&+3U7hI#sfP|jb^9+ud#>z zpPyeHL?ANUtpaq2hl?;N9D_9rt4|xKSTWV}ns_fRD^!WKyG6^n$RdJD{I;Dl65XZ! z2%cU#P4YTGzn`ecil>TIK0vcP8&rAn&xDcVgZf-BvoJv#T-$3Z<#-wUnDU2(niY;n zb#l$OCr%3TW zwq`x37zw0BV1=~}{j!x)YEH@8WZ`CcKQE<)AdmM|hUyla&%=u7dffeASs_K4tKrMD z*u37YwRw`^SyeaVQCR6mDK&K86QHj;X~D+Dt51s#<#y3rh02JDw3bHlH7agk+KTqT zzd|2*jhhfYPsw%~dPE3eP#eP;_LyLR!m}Pvou7k?EioeM-9~J>loA}NGo8#XHLab~ z(DcU}L-iMoLKZNrkg_+eZUuU@3<=q;MT~mL@o)=R+0-94e+qn?YA*KbS&_^WpC^Fk zUnum?;O$>^Z_ZHUa*4E|ELpa^bcALuOC`m-gYj7imQdaH=#(i--*A(h`ceI7HfO7g zF~Y8^Fg7W+O^-ee;R^s|_3cY>K@4Tlx`Wen#O9GNJPbkp6Zs!v^Nh)h13IpN0J`2b zmP~@&e*qYhZvbTVOYHQ-^2>rh6q75ar>u*oV=aye=CVP|tk+eBr3BvtF}M8-ku4g{ zp6lY?H`DJBOl%H7Yt%mIJs{ppR0cdVW-cXxJ@sjabW14Z?zyE~qU}m!N#}^{;wd4$hbb|XmxTqo3&!8RgT?RFRUmbBSM-6Is<(iyb8!hOe9qz31XjN z0(_gK51h;_K*2+C6V;DndE>hUa0#R+NjO0%$+Y=eUaL`@9F7s)LY>=e$_}F(+3xm< zf||-g=6n;GAihIq#7}0Vy+^%#n58|&xHeriSQ4I`8Z>z>O!{HGO~Xy!9b`)CyixTI z{At)N8@tq%yX3RHgHA{Z+$S0D<=6UCC0N+T z4D^SFpl?T}>_%>iJw^P%_h1aTI%o$6VwJQrApnBweN^Y+bnB}S0%MySBE_>cXlys= zyD=!i(a`=HX2|UO505ZQ27cVEk0#oiyttYqu3M6rCYWy6aIGHOA%B%|)oNjlPB)LL ziGXBSsdUC!O`c8NML4Y!`s&mA3s}bJq{m5!A zb-bZtle_YDSB6lS&t^~lXyLB>D6%?z5LZ@H<3%W~w}!-PG`_2@vqqopBk*VW1| zpKrS5TOIHFgQm#!gv*C3d&epDQ<+6c&ZjqwMn@s?VmN7n@Z%d<$aK^3pIBXK#{e8U z5`FRiU_}4`*h(-nkoy;$<{7Dn3VO^{liOg1iXsgYb^b|WNMUa#PcxX32mmtAQ4Z(> zFgK!^rn)Ck-OLHo+X$Fh@+#~l3+5d>3p2xyRZQ3$WKDl$GZMLJj#M7k!M*dgr-ZCS z$h$;hy;$N?qUk<=W0~72e5^`Eo{crdB$r~P|NW6p?HlLn?FycAbQi(XlQI-};_ls4 zTcN&>sG8E$E1c1wys)woqTecK7%v!bF%XJaTL>1mK)K(wvgEtDmAm~A!&Xe-rKGDD z5it96Ey!N}^tc+u&grvy+j&uWZNPRXS>4S~KjlpkhhUNjz-(VZ2Z z3{yp+ax%OMNc=pb%LH&xC+=>guA=H ze8m2`_fy)9!QNnd>@^vM?6t9?=owCEnoJ(&(nZvPi`?aa1L-f%BHWC({z)>QRFexx zc4?h#{EoFNaabR})mNEnn^D^^NRJ)r)z?MI;K1kiVa3}6hI(i~Y;NY(E+I2W*%Qi9 zHrJQHf$gS*opKOhH)u@%#{(?uwMI506Fw!BSt^~J>xl;HSO2ZCcN8B0HF;430wp7z zI~85=D<(c$@s`h=$!zVFAo-)lkn02i23Sp{v1fYsE9Ze@Zjy^YBrZ9iFPoF?yf%C|69t5dlpJ(7San)8Y4EPp%VY1RW-A0D z2R8Xo9)Z2zI_oZ$>Gx9x35^>gF~BOg%d98 zkgOx*DW(R| zd`n=tp{~I(i)Mc}5&t8|=;T)XZq}F>F!|kCQ&WF@$+$6?-RaiW48<0mS>V_zg#`0+ zOS%o(C>)PrB==ZzknxkyM1~^@zIg%n*WK`8hqS+{gFlXsoZ@LGC>6-iYf7Jo+c&C$ z&Gz7IjWsV}whHC<<1 zvl@7XkiSs3N)i&ONk0)^C|>fymS`9#3k_7VYQlQZHG#VS4&l%N3OoRv;;b%N?jgjT zMWhsbVjpZD=A4UiQeXa`N%d6pLEAoQ;3j;d@E>`Hg%q5sp0C7*7jL6 zeAWL6h(Bpw`6-4g3}MH+PX?ZJ{V8&zRlx}y4ump+NB0x`fIWax1`?hF`l3a@&_=YW z0D$A-a~Ii)`7yEue7%b(C@}Fo;;|q=<)IY)rRANjT~ft(;-M8FI)j;m1;0ncfrQ13 zXYAvi%!MU%7@H#8u&n#Z`OMWLl(ZiU)EgAWacbiI>LY(a*5vH_Ne9Uj*<)^yOj37~y9WnT0@5Ye$wj5>G%aVF_*@?dj_fAYBR^V1v4jr)M=cen7?BYk% z0c7r#|4urq=KXo5be=Cz22x$=>w0Z8y$5P~LM1!rkK_#7+@0Q2z+DtrwZJ;yx}eWN zpD^}(u7LtAgT)rU8N~{>EPQqjS=<&IHb7;1P&3HX$X!0zmCN)hcD}&nQ%c=0eOIW! zksFA769WQQ`ZbTuIoZ#mm~y7{RbA1rA&O+Cp#pY|OmuKDs&!wCVyLaWPfuE;ylI=k zDD~9D0kZkRy2++r0qKVrz&?Zl>@ab~nQ;l)+P)9sI8JkJyn<-043a7ImSo_HmW_$%WDv|=__On(Fty9ay^GrkFkf}S*TpZ3 z3Fg!Q1CwNGSi=d~=WqCcO|`W`gNPoO_S2xOza&)gm~jR!fU!2-Jp|P6ms^ z;=N<_AuN=bL4zl*yz2u)9WMT2Z;wbZif`}La1^`oObozj`5Ry@Z9@`8rp;E)j{ zzGm4_5S_PM)x8;hc+O58YDQ>JG?!QqO^*ci;GIW(x!Fy}-`-syWcb;a(S4Z$XEj<| z+)l>#-%Ikr=k`JB;1}9+KjSNRr5~O~C0vH3U<37~m1b8c?+1dLumKvqd$zLTUOthU z@N-5d_^i`x{!b=>r+!6Ss*q+5`>|ZT?)TMl1koG;L-Op48s3u{P ziC~T58hfVOKH{HxhP~XoR!v8LiSFL7&c$erSl1-fiw#&TzjyccZ6+Gx<^XvJRrUY? zn5$ss0L?Fmr$J0)m|HbwU&@SjaJ;eYpIcPK51~*=)wg)pb2Pdz+wfGH4YI(YQ&peK zA#s^PkwLh9#CarRHQ+DMOXH%`xyE362nWPkz1aKD2At5%F6blwGqIlz>TQyJrtG98 z4+)wW2ciW{qdH(%3<>Y?`-aR-1n3A2>3>psR019N`p~}o!bkV7*d=QbDLRw6RJDU| zwvaC<`_YqCwYhk~c)L@Gr18brg<*aIz?j$wUt)8P>NV-M(3p4Q;(x`744XkA%gLX5iS0!bbSRp0H>%p^tXD$v=zCA`LVzfU)O5B!lXktpm z&%wrByfhg}@>^aL2g>v=pHYimWA145NF`~&^ay^Y-}5_2J#FBU(Q_&TWM&pmq?$v| z2(Mt9?eA%U`0Z0vb#QV@j)Nh}*2j?Ae|ZWz8~qKJvs7it!1C$?9F@vAq<~~pp9AhR ziAfO6NlKHeA_NIxsSBalgXBl(ae+)i3)1jWp-1O+9)&}U`?GLoB*oFx*ZR^+RP*WG z({ga}Q*N;P(jhLtMlDJYu9I(zeIa!9ctRLT>wP*fF+wBG21M1>RP2Z!Poo+665`9I zP7kYH1_ZP05%hE8OEkuq3dqYr{E^hrN)dM7uA7(u#rt3q?0wj=(Uqpg6yfwt=)+oSTQE@SMpCc8KWRYcXz-L+Vv*+gFfh(r zc{nasV|=3zG8}pEv!D4`k41nlqJwW@Jg@F|TS`frM2_fGDY!vK0nmrL{pc2X2etzG z9SV@+d$<>;qQ=GQAYZ@)b_JwwDOGXoif&NWJQ2poWRj(9&U-0!IC7p_`N;KM5m}+V z6QW0f`8?it3Nq34>HO@!jy-(&w;~jsCh=%D{~XAlzX1U1$?}V7LlgGgbDY;Yyr;(q zOr{x#5y%N>17BRPwAw&e?OBC8DT)*Fpdg7Dh;)Rwyi>?zk3OMo#N2TGR&Am|%oys^ z#I8k$zpZ7&n)w^~vb$@-=qUt<6`|CaEc+B)9m|MhUbH>s^=&)?)VoKe0ro25R5)1k z{HrO=7iHRs>{|)?XhSr-{biUseF<6E562vBGg z`cPW-b)o6HW70l_nOAz4t3dnWSJna66|O3pmOL`DuP_3$p%l3y6y*@lmpLiZra|W@s>Awg)nsLkXKtLhma?|LY&f zA!3CG0|7FN3iz-chF!_q7BBV`R__=m?QN-qQRUDkdnD;;sce4Ct1VIX5E&&vrSO9! zYwF+mv|}T0T4!XX0WmlJx_g^Qwn&5Ik{bpEBeJ901D`sEB|RN6o_7#7LP`*%9T?h^ z8DtkCGH@jaPWrws8z}JbkX|v1{p@tnKJImcJY#gR>tXwL(Zb_?P(uV#k-EH#F}n#L zG{l%*et*Bsr)EwH&n$cXz4KbP>fh+?jUN^_$z0gWaOGlUr}JwwB{ zQm!*-icoF;ajhB#v_79*NaFAM~1_^Y|XOtf78eJIQ3M$_v?icii(P#?nsJ&J5nYM z$Ftx(7v&3o#IX$YFEi&YXa*O79Yg-PH*lq~b$SmT$KYs0S{C2yqcD<(G!{o?3KfbG z0CN}wTf9_!#<{9v8EPgf92mB)476uz>S)!nHqM>9Z5r_=dgvQCj7Nui37Gb zqqFPvF(Rn;h9C%gd|G?a2kiO8kw+C8$H_m)bkALH?`SYq*v0-SzV3xt-gqgb>JeWc zc)jSM87KrR^*Utq#sZ+|&~6@uEZ^gF;bofi^7USP_C!%2{u_;Lj@=>!@s!4uMAaHB zQ+~U!mW#OghHHdx1SKxhSbt1ULgXP-x&N2uW<-I66&e(%H3#HDU7tozH+Sn}{g|cEpQB;%6IG5Uld64z$E+vi zOOHYnkUr*{zg-x{+pdXG!spO{b1Fig8@3R|COU_ z*z;HLSfHAju}?KoWYqAR`{=3HWW>uJj<41VSq)+46Qas_oAXjJM$G&E$CAJH5jH6G z;T(V%J{#(@;?ZVLvbwTb`7QkS)|6I~g2o_k+9%9!0%2$QG=T~h`PIqko2J%YRCYf2 z6!X}2r7&dJ7}Ck56x@~plSA68^o@tFjLM0Oo$N3xp56{N7XDU8vw#nPsVa%1zW1s2 zcdHv@#_<~yfpdj3G~Af2csxW60_&2yTzRTy5XwUlNm(R9kn}4Jb8MlK(xd{ zqxW#14J{xR=Yz?{hD#73HPKF6INaDDcy5t3MOO^r#d`g}7DL3lgODf*>qHBJg^b+wH)3Ks7McP8}19HLtP`T@|t$`TGi>mdEjC^@H`rP z4DUgQ6%+&8l;1bN2>CINb|-RkSDhNxmC|FUC)h%0G)Y!*GH=9`U^31C^DQqKm`&L< zPUY~)n*ZpM!O}_8Pjj(Y#nEAG3fHZJfS#TIU7i*L>yNF|21kedrvZ)jEl(G_i?%c( zZ4CAOTOS|_x>J{HRnT)v3wuz3goiJ-cw2lye9NP|0@*!n82;Wix~|VQ39Z9~WdO5# zT#>;6+#F7$TyqiEts;qSjUpkPyN}HddT7n|GC*yFm4A+%Z@e-{Rv9I-2SDW1EMIfm zRXE>?Ex7*|n=iI&tz1NK4aKlc$d~F?FyWvcV}of} z(Z2HUf-ImzmMyGyqSD7V+2?Mu1)8egXkk@v4vy;1d`lmSGLBb*=u5_T88&MZq>$a) z*0QtLiCC-=B)?cz`%aVF%eTn!?l`_hQ;P;Ba7esYMs>m7EW^71Eb(>Dt8&?7S|m_& zGAvH??F&YZ>JajLQ8eCC1I&spZ&1qDb+4xWTVb zZs4AJ@Xts)sQ7d7xHUrqxU?*meS_(h8qIX`S==gzrvk-gnm=00k#9qfs>~t+#NSr$ z3zctyDp~uTa%kPU5|AH?_JX)Tk0GsrC$b|YJqN3i*>BYqkP?Ojdgf>Wr{%*U1cS_T zjL>9CS$jBHU(-6)<*jPlCc!G%0$2!JAq$lL6%)&7#*Z7iizf(zdf^VXkbffTe+eR8 znTxqU7T}5x`(X3uYf!0PXj`3MQ-`EQypYRd)R&vZV)1OA5h(P)PV0h1Ud47uRF!+6 zp`m)OBs5^LRRsk8Bje#Qp@Kn43<=c$@X*eOkkya+VZ8Q8efBvfpms;ll00ayQ)u_RCZpzAN#Lfuh9VhW0WbP zAZ%oK+TQ%9o7Fe#nB)kAh@wf>4PGV?u^gMS7(ULLUyScPw<79}Z6?#1>FwZ)k9M50 zKNvy#$A|d738F4rpKnsKBCEYNUL}$PLg#2Cnx(E)!|8d7_zXGm{rTz#004+k!3<(~ zpnY1T&)&#Qv8bu+>AG2(t48~+OKHDnNR82-6PR{{_pMX0Z6lm*!PiJ1izh_SVjPeq z6D<)Hm#7c?o&G|U!V67K<~6i#kd#U*q@&WuLI0|6N56{4sH z&p@+Xvgvc$XW?rnrF4-I4{_XKa3MO2$L~bV(jtJ(cKWeb^R-!ZDexHra(~KqFL};OBg#j&1K>`at^%b z6j^JY2i8MsvGfCScd=U6J{I-MIcHV{*cLd}e((YsoO;0pb{(ke@SAw=D~pUqtd7~9 zH*VMHgjbt*N*>9Ly0?XOOX_^OtLU$rb1FUoFR@uTl6jv~Z&|p28SLI-HN_ZNr$DFG z=yRSNRyOeDXMPj#3M2Qjo)-U`oxduMW+Rcale10l;Pe~W?o=p26STOY=c1Coc0l$I zj_5ClUGJ_|sF=RrAW4RA2g?>U%l=P}9$yrHyK-o=)qExEYiq0dU{68^KHixra^MTMqK$$#r{i4o1hY$zMjHsy=7rh9)~2lWft_& zp1c0K$M$}<=39;(bsx09f*y^LkMf+sKjcl}t--&PBA}P3#6XF(Y}8KS@8>D~kr3iB zd$rkjk#b}({XRZgZeI&F%eqV+%unyP?!#`hNLZ|YC#DW*?Y5d=Su>)ozEJ(aMf5M- z)U+_iKxnRY{YtqzPZ7r$PP-sQoye-yg`P2|?+HELZ2O??wB!`t2y`ttR#n+%U9I6i zRxiL4PDIY&Q_Q0G^wx|`cHNYj%rrpJv*D!_LyvwLl^tv!)`PHu@M{XrCiMYhEDB?a z>6eLf-R#%*>6zLK#MvtchtM|u;QQvW8sy&40+6*xJ*r{O4(5^z-q) zS|Kt8e@3-7A9C7CS#thiblK%tfZ>FUVuM~r8Kl$Uh&x-xf$8yT?*qYee|9HzaU7Ow z9a>T&j_*K%5*}kZki*Tl)0n#v&SXgU#p_Xq3m0;^PN()u^+Q+k6bZAz=CMi5G~Kwk z_B{3uFQGPDJz$dw@gpGg7Dqpw1eN?^HE^SfJ*+p}rhi4Hi-HX-HW+z2Ymc6^*;Adi z3Jf%Z{bPkr4wXYFVQoPblFy-nX;|l}5DzDv*IsWIuyTKSv#FEz!5KIq_EN$4 zh8?&Y3L~}{^@dGan@)a|k-y$w|MSp(UR+bpg5zkis>UYYt7Q)hE%804EW}m40>F3Q zjuq(3tzezx;5_5HGED#9Z1KCWo` z!ejV<09!z$zi`-$NUEADWro14A@|+d7K*bM_kmUk%gj$a7|VQmbz*3rH@7BQX3{FL z?6K;#{U9n?rAPFo#(3IWM$4D3LBnSXzih_LO{M5 ztEOePovPN|TxY30C#>6IaSTZnh6)8bp%Lt#P-O4};(Qt>?#i}f_r=_O^s)~p+PKA$ zxZYPIn1;%Iu}64C7}hnXXtGzn{|XeH!zpPq_4IqCeT(z3%(YbJL9DKLXB5#*6LI)( z1X$?u9~{4Dfw}S^=ehMxjb>^o|NBfgs4#ExnGXbA?_miM-YpVdH#KW-m29W)MUO(n zPMzD9CZ{!*PS!dq0z76-g050|2iKzlb{@|dtTrBq-b|&!zhTe9rpcunxhnXw{bn6J z?g7(9slXu`l)c@9XOPfTAR!YF2GzhIy5r5(+O0jS@5SnDH60&7#O7W zZ2Nve1}^WRp16bn)x$fcK1`H`NV-1E)jrCyBQN_)!p-J^_Qh;+aqt}ev{|Y-o=t(R z&qT!pJ~u)oQ~=a{BQhbdxBx`C0NhD=U{sY+65DwIF+<;W`SQRF81&2rm#$;Wk8e*p zy9X3ZkD(R}c|Ez7W8A*s@7r`UIJ_OlDuRO_6x|{2ndi~@&C&qwui$KAfVu{wfWF=(KY4@mz906wMA6F(uk z9Doh)R~W#fnX(Y1RVp?4Bq@Ct!R;zE_}~Z$_U$iSqmxH&!Z=23It@Pf00Bf~HR8{Y zzI}aMK!_ZMO339(w1tg#vS+$4QyZ{TnpGgbM624o;jA7{mRSKnq6wC0k$+nP~7pa zm$ZO){N4SYCPDfKn$h);>p+tVFAO$&v41k)g5srUC+x5DzOu z4@yf~pwcAnYyc8=*4&H^Zj7ey+YTX1x~DaOY#6{qf-V@ZVlRKF49$qg%O}=c~I+^z%9n>K%UIoa3vrMuLEL=%t+AMK>LfgzyS9b&IC9e492U`{FwaYVj)RA0k zOmj-LRqh<)f{(qOOk2xNm$hyImK@~!W*!R~j11&FXAg<-GgYs<9_eXhZ*eL25(S1s zC|=$gBZ;6^t>caA-^7YATSl}_R53Y(l=-t$3BjCDgfv!p;mp>~R!HY-PP$p2;=(Gi zD@g_obtcp4NX13(=sXW!5w&wB%;Ih10zK8^9H^`vQj?Yg zx5X<#%C)pgFT2N3a*rkfTt>h3 z$x0nh7w;T|5_qin6b?XJLc#gM4ZCMG_A1H>a_Bv%IPnrjO?9|#f^a40O&$e^Xqaa9$3Pd@r-P4 z3V(XE!(poIlHFi-s{?*&hDxxL+k{9&bB!8wou^i@OcgYcvY%`E%|>;bsP?T%(%s!C zQM#F9{TL-gB+M$Rg-c@EuReBPXof=@R-htWsalaeX*hm9^a1sc0006CL7HMa{}TO! z^Lbjy2-wgid9(j&zMzrU3&VL714)GGz2I-cFd8NA;AE8Aw^TZsx2!dJ8^a5pVoswf zG>;iFPQFXEJhJT&sBoxOD;k9YVSISWx!E=FJkdAsl?4-am_*br&}|0%(1;~O_1~9x z;)B#C1baR1WQPI+YuZ)E-wYPI0un|2ey{_4-rLF!%VLA8@7p46JfpdmQwTJV6>ASR zhU`lG0Il8|_$d6g=>6+(;VC*>*}!{YhbIIN<{5OOc&PP-4J&Px=P7PAj4@4>zWK}B zvlo$e;Gh^8SGVaOeOp?W(=GEf1A@2%K)u5t{gjcbz$w;cmKC%0m7$rk*v%gQg1GHg zQ_4Q0+jKHLLcO3Z1?0e}iGk!=%5qg1tpRjUL29?iI%$Ov3=gWdf8<#AULbV1B|esT zXxq;XvR$8$wC7%5YiUd67%yJ~R{G-KZif|dwI+ps6=$}041j-{*4!iB9D6ljiv;63 zKYblcnl8phSH(qfNh~UKG2WZu{jo|ZBmp67yBsvI*em>8qdV{}gu41+e zap=y8p`EQ&t8u2SsC_unENgvlB@Bd+@~H!%bdCZq$Fh2HD66G3mLLMLM-#@7v~J+r zw1qbJ#<4$vb7+G)5rg7eKZXh}EYDJ4oqD-BWea;%zbU5S*-Jdhaj2QzMuZ_6l;!*^ z5EzC8!%Azw1#}wGS~g#D9c9Y~z3@Jqpy@zGcfRurP5<`qOF8lr-C(oUwS^~8`8v~H|EmZ!U zS!RP_%y!&UC|QE3i-loO=j1Zz1~})3#p`_)$I__tYjPPijVHJ_<#+SK1x_q%$XMTI z?ESRB02ZJ>y}(BMOG6Z)Kuq@tK@f!nQ95>*)Y{zD8EYO6DeZ}XJS|0ah!Zl!;Fmr+ zWS){sszqzv>pGH(?wmj<1M43l8kEKSE)Ww22SOl+0lr)ZL)%v833`2XrxTHDT==a^ zyh(x)1j!^gMD9to&Ok!VSR!Rn;GiKCFtndNw5eNkBq7N4>}&x8C;-hJ+w;!?smA$Vl=w|vvD8~R0 z?%Q^~@UZSZ*eX(%>Oj)elz)}!=_f;qcDib6M|x;RK6{0d z-wYpT)^Svf5DeA9?0E?ek;3mx-#cFk&BeUPzG!#oGa=4f=okGm-5QfBI`QyYiVXd^ z%-+X{Qhg2#vE9s)(xOvAEiP_X%cY5N>3d`G zEJ`z=uVZBID`&(_L{8cD!bG$V4m?Q|QeSJeQaBroEe2dKE?K5$be*)d#ghTXG&!fu zin@$2`G#x++@V3UMU>nOLZ_EItRsSk9>cdpD(H8`Rk;&GRZ!OVtI(;=JrAmft_q&(LRAjOT0QaAkQd*7Azjio(t4xKtru#pPh8_@i+sKxxeINbW32I z^jVtkM~kb?$8>G_GsG-*x^cjdt=v~YXEYxDcsv-6mdHN&sg>I_sQmK{n`b;9NceXw z=jdd_X*wA!uSDKI8^!mm0;f+7W*Vh)`GB2`fMc=S7E+jSUHZogRp$OXYjHN6m{}<4 zzHhv@IN(SxV&4N`==tBX#H8=S`lE(KVM)?PZv%|{-nc+k7+sI~?=*fnxdz55cttft z8h!CvS!#77#Qji24a8y&gh;(&?9!+d&|w32b*9bgI8e#EBm$E_p|k8;RNOGA@TFcn zFi<7f(*_#4_ag-R(!>*#hf)!U?S=k>J`2r?cyfNO4;%<_)*vlroKv&+9le>OLYTAc zl^|RBgsxjjq<8p>F>A7z-(G)c_PNFi^ucKy=9IMFI01O5;4r=1( z0wuB@`z!rmCxV~#yVl@8us#|`Yl83Mn>K^~4GOBn1MOgYjrpzgz`YFeS>r2o^yOSm z+F9}WyId=fLty5`J+dVm>qtT15IE055s;^*0C9WYB%y4C`u$%c@d&pi=$<0LIv;rC z$%v2S^4owIV`ZVHYgZ>XC|%OJA{l(a<6qaul7K&BIWby zO(q|IIis?fgX@6jQY{4$wRHx|5Rkbm+h$;duPRw0pTL2vk#3zG0N>;BpWFV5Uayf84KB+ughD}i#aSK#>0{!$Nu)q48g0c7bDs#EN@bWmL5*6qy2bU00b@wcMA z!};s@TA9wQ$P^@*7N+kXGEC(lq?cN=SJzO)i9Bj(RnoZ_u5|N_{C#-mYg~i}4}VUe zdvXj2b1E*JghxSj>QPUv)&*o9I+Ur!a8J2|oI5 zys%Zv$P7m~nl(EQ^fr2Az#YcaBxzKar%*S14jlxgo>`^3%(udJK9i4PkqWM5k9*|a zf5Hw5L?>{%I)r#&xpXf-$s2xl8dGi8&<(v2xgR?(DUdfan#xmq61Bq~D(Fe8oKU@S z+(Sq`eNA_(=7@D}N4N^58=$9Rn=X>&w46G>AyD1_MIxRkh>e{?Qs> zykUYxns;5)Vl-#QGZ|YD>Bu&o^`O`ju~e-XHvr;WUy$-DT@7?S8{2>_=qQuBJT8}| zebrOP8Af%r4BDFR$YrGn&;0Cj^!;Pgr=MEQEtXD->I5s~6tcngmT>p85xi$)ID>WM z5mTn?j{m%CaW!A#)_7a}?LL;WgoRKm(dB{OM;PzWbp!BbzlX)3rO#Ug)r2Ak>B6JV zi`d8qm318^cgBwM!9_2mUmPKX8!Z=yKn}Q~A+CAleE<)4ddGo5;bQ6L(0N$*kCT&} zp$#gPOhpzecLc+A3;y1n7C8b`&>wfrnA6$ym_0D;bwu!}g={x;-(t~ETC!sqa*_I zv;{`t$zC!^KyU2Zo;Gsvot!GK3U6Gnm_LV2oY|UhM+3T~A_&7~Vx1VX36e1ua}q`_ zg!tDQpKIQI`E{DH79}nUs_GThxUFFCtCxpi+><(kUb6QMq?0pjS69?O6X_b$=QpOT z=1ze1r$0Smc&~Bymj2e=QS%>(?A^lYYsdh-*yh@yS_q{x0cUSxBS^!f`-@da$hFQF zw|+Sq#E#ZgH`P%bI-1DtJ8PYsm__4cyhFHy978zGpZ_~8o`Se8YiEE3vpSFf!E6${ z{pxEOneyD4GqNp&u6DHOos`62kqds8;{L;fyFLSEb4EDCHs-|qkJ@|&*=V3ppb*1* zv)JVFyt;jS^+0wMOCg zgs4S8A6m>&A^-#7;`IOk1A0N4qAULcKKt=>rm(N{)(4{SS|S7o+P`?S1Wnhqr*BlM zIaZODjjW0%z|#Rg_}&cZ$xX#eSLkDmVzOZ1>^2iijZ$d~$tG9v#%U zo{I6(cTj=WE5{(scFg^mtb6)U3mN=Z4q6P#*k_C8!G3j-n9}s%Q6O5l7_L3ZK7?px zd7V^@0xEuP!_v}LG#2wdxNk`xynIkZfBqrgpeYeJ6aa%)c`b#|U}{p!zl4QoZR!@H znPbAL+`RnW4Ifj3&`ZIGu#`KcN+tGIC1UcwV#qYdyd%)u=BO;^3u!ZKXG+sIV897L zmr?Z-CoM(|a0@7laX%yPuV-(0#eahv0bblp*(UV&Z&rDwChf;it{Ua_gsdXak>~&2 zSQHI+yKE2QSRnuYu;_qteSk)=5MsLFb1CH;5>?9qkF-TW|KjzbFO9?akMoGmdIN_6 zf8JS24aRWk-ioKxQVt~$`|Zt3Gjt_qT_}=vf^?b}P(j{&#bvBT8(O~k-^JbGzN%Jq zXh37Txh4`_v&i{57iDumo2S?r$MVE9c?^tZ zKp>8H!^rOPWufbZ&3{rm=Awj*UrSyo1N^pPwcsv{5J2(o#K|IyH_u*&Xz2MhrtGC zOI&>ynMRv_2k96@6Z%U7H5NQ3^VZEDr$awaCC zsO~fp^`R0XM%tjHp*ecJ(k!W#(B}@~{t)$f8f1?~ zcjDF2**?Nktw^{NRW+Xejt=CiPD(hi8Y7eiFfjdiZsSjoR-=Q9-%2Q%C>IgNh<7LY zK-dx%hwt5XvN}E&;#>J@*w+qg9l z*DR}4>;8;KD)@gY(Zlh}t#;}5)BG{u6}R%#x#Q|qgrx-vZ=kii;yqVjT#`*}4Mdh7 zqD$IZ7eBDRmbt1vI@`9nc4;C)x?6MhW@XRqoZsB@ba#b&#gmodb{KztY1}lfZ3T|* zAN_e(@3*Y!x5@jaZ<+cpMcX`9`|CK|w8H6&=-&!7$Vd5Z7<=~`Y|TN+P+DFkc@RTV zy?W0vyS$rKS=w7^V(Z@6Ywe}+9Cud0ov_0{kkWMd`VH-sx6OC>M}4RxUFH%HZ^tn} zxp2)woSvR~j-J}IbqyVEp|0)WtUO011F+k@PgK-=&bW*k!l5Lb>A2K9$#>Mysh-q8 zr<8CeN1Y^rNJPmq<{??E#SvJrcI#D_N5^rX3hXdqMk)aM#~~V&?b3~8prF`@CkO?s zrnfC#T^w&0!xgl*LKaj3uZtejhNZ}wq`emB+AbCi|c6nA0Nk>FSWkmxFTBfD9~Wy z_vbF*wjQdVIO29D9_@|nRT!^yypD^%!l(hFkfQ-fs*0bnuuioO0E1-z!`A2j+V58P zO$qC1;(v?y=A*vf$y0oPjj-QxCe7eBR=K_Gxg)2?=PxSJd!JExZ#qN)LL9d-uqK7C zXqeeHUSwtk9Q~+nf33#4|66O#I|`;6e;()2G0)RMcA~yna7IKu7`|D$=E%AnSI%9~ zTMBE?U5&*iXTH%}k$F3JRjw;KfA7#i@C!QqOvLz1pRbK~rQq)R+xQ!MUYUppQ_r2a zBeNpK{h%kp_u;;mWL~ElgojPNKgmXH~;_xctM)NJO2i|VM9_GIOYCd z5=X4xz@a*}0ZXA?ih;OAv}YNiirT&Wr!PYiIh2*TCnSD~i&D@Z01twQ)+Vk?eRIUu zTHxFERCItnXX3agcrzYh`I{Fn#u>Up!_30wP(x%ID4 z-9WDo_WS!fZciHL6?uaTdOMgqcaNK$DDN%PBwBbUzns0VZ?IH*ZNfxzrq?dCK|a{I z`i0LH>eAi*N)_EMotAGTo1DIb3WI|1MqP4xzcRs^hflt9aE+FcC5n| zX`IaRKZyerawV$PFLd)Xw0_*9y=RE>*Y><-+;M9poiS8e)Rpxr5Ez!i&-B+4Xk#bP zOJv58>|2QdaO8{51{ooNhXSV`fnt#C=o$o(nspQW3|^otp<{>YNeYu zC^Q$sX6Ks?m;}E2eTmH=otk+n0=LJ=PMT7@EN>qCaQ%9G_uIxX(@mU9269d^730I} zL9G5=mZbn^R-lWV35MChCFPb9(z9@{3 zpgKYK220}TA7Ha8Rp@Bz1bzq1SWDLwcP?tc)S+wc?OCs=AmoYSf=v#d`SKj15S3PE z{a3GvaP0g#3#z2qmC{M1U1-cFuhMJ^*>)v``CQ^u`TN$_aV?H)+B!_`WxM?quwUQ1t5`*nne;9fGAVJJlHQcKwo_La2t7 zhct?lVar8HoZ?yf%h+CMD;haX$B?2aUxx?vJbGTy=OG(XFc}QbU?Ccm&HMmU3J?MS zbgR>@NY`F4YhN58X(42g0ZP_tAndxnwwK>z52Ul|$KJN(lfkrpVbQ_5j#V)=y4Ph4 z{DKH}Em?z!$7H6 z(XO@7O?fvjz7{oyLHEWK@YR?8%lhqmA;5ftlazAJ_@L|$W5v3hekO}95z{kI zq;*gS*0hkaNC3V7005Xln&LD61xuLIevsigAk~oTFzSq2+x+dSYu_u}lWF{`Y(-hM zKI;I7D;0NGg>apII7Y>l!|2F+m>*6H@?_OM9ku^jzZzihM%r$EV)g&z@)(m zN2%{B327<)KhiP-*^A0uo!jY8pOUIq9oNihDKe`iXczO+Wk*HGmijE_>|a>?Me_OR zwt=Z52UXP5fPsM_8kEKQf&~#UP+&m2CtDZQ^NPJ+@2dcn!`eZqn@`NeBMF47aEr1V zXZ#xE0x`r&3FDWiPn6`^1gM5x1caX9#jU|*4r1dyBbse2(KW#)5w_;BmR1=vtLks` zE>32akU{`xfkp?-sD=Cd&!uD7FJMqako+aBeO2p$nSYbeinq1T`fta2e5l;zn)XK;ZCP!&^Xrr%;7LrO2q#T$B^J)gMkqJc0wt95LsUk}tg<>6*QNh-QM`GAwdvj5VujsPi`7U@;|_vC5(>zZ%~U;_O*@#v(9?0h5N`W{+dy@LHCOWoxUM)EVmia_?L2A4yj#P zLTrjmOk6|b{v-eZ$q)Myuv^-Boc&L9dIU47jUnpbZ-dejt$Y#RklTuLf3WCxTIA zCrYjvO;PlR9?-pkpLl&WLBPgVX2)R{wyBCPrK#nMLl2PA5#?Q46ls$ROvDWK|HlVe zUxZdeh(!kl2tD)u#b4J%n`6U@xqmsaW(qM!xn9*7b3s=smOrcM7_c9{R0RYk+VXQ+ zr`-(n7p!^`kRe1`h`k})LvGyi+MB&JY;v$a+5b>7$5J73?`*sy$YsU1XkV(kH$7ju z2eQ9FJo$l3xbj$+16S6CIcP|>IGHy7@Fg=M@j#xlbX1M!$zbe@d>vc;OWqxmRsBCF zv1BkP?7KfGxitJB;iITb*>H&h4xoNl(*o2uL8Ol>iU503$8AVsDjLNeh!(Q+qpgV# zKGqCAm6#KyMxs+b{y9-J$-j&U!W6umoC#L+VXZ^>#B@B$>$_WN=_o*=^tA##fF;_& zBuZzh@Ia*Z_3vsNWMzZd%5|cj_baXC*-CAgPoyQ zJ(9SotGLlU^7#a@g%P7Js=7la?I~{y(+nuk>p!%EaZ96`S>f4qw~%Ydims`LI6;F0 zUdG@*_|)9)@w}Ityjohx@$Obl-%q*urRqg+!hc7p_+85CI<#uNY$ z@r?Y`-N_;!`pd5z82;YBy#7n_AGxEc{KXIl9Bu|pW~#5~0t1Zxp_u9M>)H2@?|7{I z`4c?0`n>|P7X-rCRccOe6kO&@H69_N0}3moL;GsjhyWiRKg_?wRz*4&i>&2W!b^=^eqpzaC!08WVUVK=E^8pO^8BhZ3=R|oSR7)qgZJL1uCsvKXcQfFesqg9V) zz`3Bdju3w@{O}IRYz6CnJtxV~s~otrpmzLnx9Lq|un44va^x4vyl!A29~Q}Nb6SS> zv4+Jc`mXs&sy1jt)HyR2rb;bO=MROp%8>(9!gbN<#v!CbnJg0q4wvWje++le zqNvTsWl*45uj-COCIpatS`Eu-q^plAGRMTrIIn^@LW)h{Duf@8HsKI$KS=)?*%f8+F~IHc%&G#${4md%?O&eE&>mxW}Sqx{>@Sr zOPk|ifqoE>;*KT71pojeqjYR)Yf`qBlSx<#(HvWbUln!?Nog88iAm%9pLG4ReK`7O zGFB(b;p1Bd+F|C7-Mfp(nbaGPxjtu>FKxZ;Efd^{frji4I^p( z&;Y+}(GzvJMDFp?u6?h5d(86`-nDws?W>w$05#mgZ|mlho}IVC19arSQS^upim7#sLe%#Id7> z+hc+}fBU70{Gzj+#v1nx28q!*$uaRaBwoxFNeGF z3^hiuB(7;pd6>YVlO5kP6&614PD|QglG&Ug0WWPp{t;fJ8%0pRud+{YhglL7^vZ#g zj=f!1=H;-BFqgIun!g(-_B*i~WEr1D*9md$5`@9hlI!LW5=&}1HisiVFY47t1ckZ` zuzSSBDV-f-@n{QW?4Xct13zhA8)Qdg6(Kk#d(a@+v*gqfY*J;-CQ{pK(Go1bDFl#7$CoGIUC3$EJa z!&Bo?-%Mv4O*&o7LQ0p8cKI|rd&k0UFa%3wG;c8yig}r5wMi80J7bg~(o3p4k(02) z-`~={MG^}mzx!4->}&iqBUim-`}_W2g1 zHQ}f%xf`TZ)v$)OXzBA(G)(x)Q(?k)!|t*Hm{%DsX%%;B(J{aKq5GP*(*q3$yZL+-noy8%6wqvzU|n0NRy++Cw2F9HGDazC zzdoQ%;jqwID#8#+Rk*Wq6YiC8(rvt96PoUC&t3SZF4Fl(#oUewFrv@GiaFf+jK^PO z)mLg=5m)QNg?Sdo;UN_Lovw9=uW3L>4!?a5N|N-)Cv^O4%wvG1+li!N*4m$6E(H1e zxO9fp&fye@LvW8z!+Bjp!DA)CCGX}2WaeGOj|=3%HP~%rQfGFKPglC8-Py+Ru=^>s zwm1`^a?BcaD;z_{Z98dV=}+X}k|=Cjo5z1={DO|^L@J;C;91w(K9qcRI3*#Hwq39b z=yZl_&=>T~aDGd+Xn)C;dfO2bAKJK+7Hr$`z$+ixLc5e`e*2k&3aFje(MJhe=BClg zY^>D_My<$XEE36-tCP}?=jtnt8-fbnov=}@{G@ixm`78a8J;TNoeFF!kuKgKV}(fz z&QDCd-=zq|ID3eRC`s&tUnV9e@Q8ggwNGrhS)vU2`T9KmdpG(rR4d+wrh8`5K!#E# zqBl)&^;rvp(Na_xJ#qIuh_V_DF2XiT(A97s$lfhHFU=1?Co5SJB<-E8wr0#Oc~Rt72K*SNgSI9No)OH4$w59th1s@-g-CnxH7(T#A%@<<5NBo_&>mnR0MIUQvmX zntmfyF)d}-hy9Fc6HaVRXl)8y2<}+yi&e5|gSG(ib$~ESI?QXL3&8$aIIuueRWI?0KTYD^GMfot zFt<2I4!Hls;W9@S-U2Xa@Cdt7Yl8;hC8N|t5p=QnXz{k11D$IA!ldw0C+#7(e`tU_ zH0*c}T#=l@MiY{aFgNR={MbmCiVitX18ZSpeP8du{eR@H46QW$5(raLg|Vzp@g|y{ z3Tn3UOD1GOCNG%mCOnz#c-`ca_l}kAbzHI2fLS&1yd(HmKsOlTdN#R?TMR@o+^=|g z;vz}XR$|i7sUMC<@5(^NnIciSe`OtYX{EUN?P}XZl@YdCA7Rd;?h@BMe_4vU`_JyY zM{C2VEUz4_GGeh!>B?a9_$*u%h zRy-72I4V?(TYI1;yQZ0l&HLVccR9}in%D>ZZl!2sl#v7L6QIlE13+w1Usz5B>R@81 zPxnh2JAo~Bj%1TM?5ltXH#RnRoP`DB0UD{0{~v~3!$h9AT|{5aX$8UY;1#cl!ES{G z9|mCJ0XuQ|&WGO)NpUcLe9Lp{3S2LtZ!254THu9#dx`X}IDIJ@N+{@McqO>V&gq|P z7371Jf5&ms;r=hpOPp(7o8PqW3F+XTVep=Lb7|;HfZ?QFhNxw6@+arQ`&?FU(~bX6 zM8&kJE|qdxbU=<9;`FlpFjDbI1$y14pmrP)VFNz^>xOq5j&Y&jzU4KW`3u%LsobN8 z#kN32rhtzUL$IID$FI(KgWr$kiUn=pt`L5^sx+z-|3_C|!69;97;@466lh`>to*ZjH4 z$fy~oxht=kTw#RFp_pXzYRufB^Wh~S5tLr{ShW%a(GgQ zj_I#eEBXz5)-t0Ba@LwZf4Yp3bse2A}H@+mM(Vw6y#MaNV3P_a{9K0lOTAsUp;`hwvCI9P}f=swMT{l~E5 z&bz|6)c+d0%2|VH=~`(q3;7&7;F@3&yN{yeX1QR!g&En=iHaSFXmG1da(FE0$4dwL zl>ACZmFSUj_h9!;2|izv{w#9iVqshv-~kOgW)F59IJIGM#Salpgf z)zylox8^9?TpW&~<3ku?*DX+3h=0+=C|>7NbExAiEE;Qd(x_Rb`keE8O2q8=-zzKD zy_d52`rE-n%-dh`Z~tbW1-iMnCXT=I`f0_}eEDMoBEsjN@sD&?#gl>Fx^I^wN{E?n z{_A2odnSJuEOD-yjVT$wFjy~bZff#=59I6GqC|AhH%hM#%V*!Ofa1F)0<7n&Rl6mX zh3xpf_csUt0RfHQclviAz~!8kDX402c@i#KZtmuW|L=KM!u%tm9AgyWh{=ecYUwHNnP`DQwh zw)cQQr>;sz>pjECa?outa+M?F|B90Q3zK=*(>>cm+kn^&=?9%>j~>*!b5hJSjJ_Ag zoaL|4$u5FU zBqk~sRGHpLp&=Ii%zB7Ljr?)=8Ec&*-UrN~-8k^#&&eQ;) z53F_o00Kinn?e%*3{TT8lMS$+w7-Wl4gQER>&8Fm#)2DfxolX&sXI7hPZ9tmVlP3u zCg`>>Tf8#@EUsx0y!eRztE#r3owD6Mt17?p1N>}k#0gDc_obH=*R+085l(NuhpQ9$ zx{~gctA}O>S?wI|K~M&FBUQ3Edg$~#)sV3nhl`6QPmQqK$E%-YEBG`}K+w<-X|mbb z@cl8iKV(jQYl!}>3N!DiOVatTd>eQ#8OY_4`QaV>kgT@ME^*Qn*mjwP<$B`xKjD3Q z#h2dE9eM!qi1XRNA)lJcjW3bbvH6u|d>{jO7)TL&$MxIzmeCWvfu}<|w!Vzx1fAs| zZ@>A5v__e;5%mJMY3!Z5u0{XNTi?Tle)oVf3p#FI6}erBy$?ju%X^=jkp;NL;cV3Nf_ErIi+9NkU7g_QAH&9oQu$4eP7 zEW`?iup5L>EFWf=SqtkyhG|-E8`Z)q+jY0wfHj$CjzuiqxdBb zdYcVNpPoOi6o{UT?FAtkl#Y%J213$({a6w4y_-B+sd2?ylr?T8 zsr3E*zi#mHX9dLmgU-E4)w4aS&lj}bF5aT?e3%~QoX0fRzqCLmCj)^!+ChJ~Qb3J%)9g8%QvYiVpMrn)dv(t8Eb`z6Np?w&6xEVw6@6)Q^f zDL?{%KC$Hh00M16n_>|E2!5V+J7F)0np6oMh`OeNb!pu&)s^n?$Z`HAvt+iapP2uB z##Y=^en@{-47gw{SV`eNtVdwf$-s>^o}=9-o0j{KO-{!^P-w-p<$2nznyX$))M1yM z!vvvCklW`?{yPvx=N@tEbInjqv<><$ey z5lJsnnQYTUhgmJzXRu5zqKzlQ0pB$1vb7jwNuX@)KyMpfbSb|#r^D!e;J$cu8{l~0 zJWv*mViydIJ!_E3^w#vvGSxMT4Zekj>np)qaXFNkyi5ZF&N=uS6Um!y^#6dFbV(H> zGl^s`z85CI!+2PJ(EWX>#iH`}Hf?o`uq1m_f<`2}`%ts>=m>r@;CQaaji!52%lkBR zAaRX9oeA|u?qUpIQXcT_Ihi0%N5mo|Ldl!8q2}vAt!0hHa33KeT5kLCz8iMU&GNc7 zCGbdr1HpdhSMH+g7LAKqtyYXkFLJKiEhvzwv@ZJ8f`;<%cZ^WSn=J<9+~+^VzPFsK zw08?o=?{{XMf2^M9wNz0`)+?zw_oQX#kao2t@>596r31_l?waz&`Z>zkwzueN~faP zm^(_AIoA(>g_SgP7v!waK!YD@|1Mn8Eo5kNMNt`~abJM05=laJpRENfHQaW}M}O77 zjO5tw;0WRhkIv}YZ~13U=`q;vd6egwfwJ@Wr_fR@~N zlt<_YxCI2<&&zDZUcTDRF3fFLd2i&=wyBQCd3wvQDI1Bt_HJTafBwBTUnAK7Hoc^c z0_lA7-tthuAsUpu*~4gY0Gx0d3k3oZyyA~NmZbK5Z<0Y~1RhjF?EIL~$da`u2cjHE zG|adMM1F9l9yHf+dw6!RV7Zpy{ik4b7QC*-VuGO)dSU)}@>Mr$^9$Cs!}epBl_nXB zBJo}E(s?*_z*R3l$#Zo#z!>8^0XAQ~OTV&@$^Nm4W1_b9Cgb51780vkPrUKMn#uVR zMd#byQVi37bJMS^xl3TVW|vK<=Kf!%dt7CU`&XN zDcwB)ePah98kFU@17~2`6d*Sg3W9=b6ILlG6JC9}=dN_=`s-6$rkDYQ(v_VCr#bF_ z9k?=Mqgc(2XQ3_&RD@em=xAu5006&4aD6!m{UVtBQec!~mJ>j}OJEV71 zBaQKU6ns)IG<3JkT_m`CPq1aOcjx5us5WoDg8cl8vR_Iumi+$f@v!DrLia8W<$=iD ze)O)=k|UU08k6NsaIPRD;RtSr~dZN0;BVQxN<{U{Oh4%txeb?@<) zdI0*`Uyc{uB%t^n1)+HE_h5MQO0S2j{f(cd*dSTP%g3 zLGfiF8kFVyATkSu1j0b1gMd&EZ#;8MYmI&vcELkG5;7xDpXaAsrUp45bEWKP%O*#n z;Je{;?i0>r@LF;+4~9gXcwJUZCdV3WwmA4G2w^Joa%bbizhiK+9$r_DH$qzCRvczg z2{08XPKar4sr1Db1`cg#9lUt4jIZc0Sun=fH!&9!18ySIHsEA50T(Z{u>`8rbCI%~?JJ?l=H?_eyNuNsu!CvHN}>VY!cwD+e8z^yIlP zLd>8{zcwscR*5;4zh$U8(_{jCbLtE;63=V4W*l~0S-J`h4$0#bf)w9cDUw8ztTj)T zV@<-ZFUE_Sm>(BUJmq2*Cb3Ssd)w@`;I$ZyU`i`VySf!hq%2Bwbz=#x5aV4t&8Gi?LzO}eTido*aPqpcjl;XL`qwQRV*Jn<%bapoU+g}BJ*xDu~lXp!Qa`Y%4uFBxq3`(^GVVfw+Y@JCo<|2uxB{dAL7~^$vG~!uG=P) z3L3~=Zzvj{+MRvoHB8y>y2pZ^toh)pWd=N#{|HwZrJOO1lcU;@qV%;{&31tEtR`9* zKCRPR{i;G+a!%dS$CnT?L{|#1-&s_e(wL@=O)zo0t%7{TV+|HOz*85Tx6A@)FP9B# zfw`N;)T?@h_QznXC1_;N!W(T4FV=n{aZNK-Wsk$|qWuGr2+SLabMjS3_QA`#faN8> zeIrjS^s#wm!)!? z7zw7$Y;sy%u81nUc#?PR&YyXx8ea!2ulf1ER9hr~_JZ{)&r$1t5cHWqZCb8DESi_VzNQ043-CZr5%# zW+#vKuJG2DSP@YqxvzH_eMhT5Bb^k*ik2b)+?9#WO}G$f z<1W82Ri>|&l3^^GL%?~NM!C+rkSfZg>V)e1A@?KYR=w647{g?-J`WC5?$DoDA_8(0o}T3T$F7~OK_8+>MHQ|Cwi#hz+i$AHh#xI`XpFoS`h|Jz2yS~@aRP(($7=SgHXS?-6ITQ zpJpDv=C726T*A5%>ngx%n=;RAwoXFdfH(l7UqZ^h=UtKrV+=y#W_HDPy>ec#^KYgXm#G z=>ZeSNR8ye%|z^BPSs@pGcFOha8fh>=q9uv`(F=3Dqh6kW@c80=@18cJLnt>5_#X`Jz$f=HDi0)bM;HH-XUyF-ayB}y_o}g7j#0z9xE+$;es5R&i zXu98lzY)+iJ7_+5&O}!f__H_lLiT}$l~T~ObL`-v7(ga_%-YQ(-p|qgm$DK^PRX1P zQQ|g9K46s8l3$ea;l=sk@3>}rGu&1CDuzG#pN>Oi%eBSlPn2zD73xK38ZJtw zUXMX^=^o+mYdBz+*gUAB%~s|kv7o!m@(%g}{>U@(@wxbYh`Z$iMVt4+&y5ceGOm0l zZt+A=Vfu%DLMAnzRnjGKnZweO@yjTS7eWv;LX?jy`cJ*uvQ`=3QT5oG!3c?VU7Kj8 z&fy|q7Sjnu&STB}<&`4U^N0r6rX2(aTC$X^&q~gRXQDq4si$rfrQs!klZ9jr1jEZE%9?B)zw9;oS>}a+r2NFmX}+gojSvP+D3D?rPf3=p zt3%iNvOUBUFr>zzblN|}-QJ@#Nl))o+vg?M;cdB;k53a(JeazL%~r+CcGnpn%#%|e zNYo=+j?|amv!`pIwi{!C?Rx*#GNVVg8@0*MROnz;PS^FaF7HwJB|sf6Xu8>6e!~{e zE}zZx&c{XloT8pSmF6I@pdKGLs2_n3^{yN-zhP-18kDX4ASDwH1R(>L1CQ%C)+7ND~iKOM{kU5ZvK;sg5wq z7;Q#c$r?M^^LKbCNr0J3s#u2-bx&D9fs*8&t-KYEA73d8JBiX!@vHnCe^iGnshNgd z5AFScGMd}2>lYDyX=BM4`N(J&CB6M$Y5H5K!}v%{l|+HmYtxsKCp>gJm#$J}Cv0=f z(kB}8PZ{%1(|ljW{@LwwoUAVt;2g=F#gwVqdyH+Y(^gEN(X^i$dbQy{ht4FA8tr_g z8c)i0=It%Z8`Zza^tVV!cQi)+0J^O0SaR2&{dEqgcH+xxGVwe!9N@XH0=YhqI?KN{_Gqr3 zTNse+%+j=#oDCz-zcfYyuCm2rN6kG^SRyMNqYHJ_*DRi1qV>DDe=%g|ag(<=i~-Fi zDLc-J609e{LgnwEk8a(&+6q`q#^-Us%KNel7UbY3lo-``vQc8mbqa^1Bs> zm*s3N`n7JkV4O<1YxtIS^YUxeMk5ZxU`yW@u$+s>3elzjE+x%SJ z+n>C>HUD+Lu?>lYK`+Mhjyc#n2h?qjGJ79m=xgI7cmAF@WEMJu-5i<853>=4VkdJ=UV4vWX3>pwFC@ZB_5X)-rqPV3!R38O78cYb=cR~ey)+7m`rZHxnoU8gPgbUX=~t2 z#p~|twve{VoqkgvXYnZ~g&M;85^2&R1BL9z(&{0js~xx?L26ip8WOBx(qOd@i+s*E zZyaqJ?FH)Sw1Jn389!|+yGiaejtI~OYznN&I+TT#sItye07dCR{{{$K$1+OI&L@P2 zqQoen3&Na%fwLY(7%Z?PYI}q*51+gL%;3xg0r$|fLO>1~9IRe(8c6pwu??sJ3SdO! z6B9b%)E7?q^#0cc!^t8WL2NtD$d>L#e6`$G-jkpTCuXw5ec-r(?kQT_X>JwocmKR? zs!O_iQEcLMn2I^sbURIDztI_T;~d<&ckx%olSJu%jsS#n=BMmw@}>|H%58)ZrcsVV zIzlSL98~Z&$f6&Hof;*gT|J$3H3oaR`I23sy20ls;;4~09QLXsxqtHI_f%LL;D^;2 z9<1TQSi3K5@a^rL6shvpr&(ws3kMo|<>RMR!(@MNlQhozMzvfDjPqsC>lt}IW+49b zye1RTJ|7h2^`1#(-b9rXJk>*xpY-M@M??VL0L|nz+2U+6hx5aEk_BHk=yDWvF>k6I z8oy)JvkG;NCDQk>lScVbkHIuW$6YMR5Q2tU@Yp{^<`~)i$x0cY6ur&XLT%*;@y0ak z58V5p6aOrD^>rTAN#%E`s7Ue&dln3Bi(q?__rjPIbYJG$)thmX{n2Z8(+&S(f2Uw_ zB|uW5FPb@CuHv&i?WY7kn(*u!@V-cDL*QKI7Un62rCDq~@@R3TFD?&(K=3H2h=m(K zWSs}kOq{BV)YTH$`=$KIFV`2h!Z-jFfDvJI!vIsB-M#g}tM{?&bkR(t%8NG9rJ{N-{ZD^LNjc2QZp))0CMBd+q@nf8B9Bj% zO6`pqhlObg(^p(KOl&ogr9aUl4AKqdGLlc!`G>%^aTL&@rM>ZzKvBVX7-z9F>R?Sk z?vmp_1eue#QE<{xB1YO07ZZmXHOXvAoTi1Q-yTny2UCcmME$x)OL}!hu{H3mTqqlp z*d=XU9AFU7P?hszA*TLtbYFNjr`86{2$R+hxW>`S25wv-?_V;F3E*Ps;;m=WV#|=t zHBM|vfGE8N!pKmx{h^@*zrxKKaYMQdU$#IrTY@6*K!^J#p;#igZXBwHGtol_eP#72 zyO^pV!B~E@JnE)QzsGtj@F$oo3OM#EClkQZETb)%u*M}gPXF#`Q^-+xFdDuV9+;p} zFT+66DLjKt+Q@ZEd4{L+>I&vGG)Q!f4Z@B&{(wcKx_QoBa39^+n*6T(O^$K{7MN8-t*4=1-9 zoI$tqsq3Fi9>9LCaP6yYc7Q`sDlc6)5Tt6eOq-AH7MKJVquJC!ioQFKWv(LZ z7ie`z@6YG{lN%@S2SvJG3{G-XlKe8!{lWY?z=n~J(oU?;-Zji}#~~V&-SUe9p+KlW z7Gt952~&Z@0`uZA@Odeq;Rq&FD6Y@QMqKUdA(x+O&XTHm1CAD1D}zopo}?# zPdv@|`U3m%9K$0x-vA0sFs3Fl${EX}9S*&j-W5l6djqFxT(G!~!&`+gcw1|VF>b={ z49S2Czi#mJFFZ*7C&hFiJ9k_4e_ir)-R)Z=uSTm+?EOv1(A}KU!KAlOhV(oNJd5>< zFRL}Z+dQZAO?Q=X)?N0=1{%#Et6a>!SS|LFRRyM=QigX0Y4=e=oE>c3qzv&n@>kft@tqVxH#Bn=Mf|(3?%t z!K3AP;_Cc&pg82pujw3jB^{Z15(mQLC+yjUHiWt|=1wPKT^!+kR9|_ZAcaj6tXWUl z42Lu@x%z=izhO5zE~SJ_aSHtla%GC$I^{mUe)SBWbkZ!~nMD8$0YD#E;{X5w z$w8aq68{STBp~aJ!_W8ttOOS_&PUC3qpJlhb^&%X(3+Xt-%62x18EXXq1?5!+nK8( zt_8`G#2pRQF{q#$utMlT8o--WC6fm+30h7aG;Kqg^YU>57VqqK;+Brz`HbQxtDkMW z4!x$V(|HGW#<6tjo*sWwMFHM zbYpa(a>QC?ucCxok`p~~9PGiTZBs__nVRIItwJRmKP%i4Rn;Gthqmeoqoum_3FpW$ zV~`fwl7!0J;@2_}I3^)I7W#Mk{5ts0#JpAU)JgCUBF*L{e+5kbXlks5gtfOMKWW+Y zZ?&$`M9TUNRS8NVHZT_N$O{lsIoEsq34VG=i``ViGT!b?SrH)`l+E&m1Y?*} zz~U-8%e^hEY;mq7-DrhvX)HnE0098?pA?!;fS1_%?3iFsX`xk^R%g*b`&MrGk37KQ z;%fYB$ryw5rHI)-dUI&h?j=QofVxG3wEG2Hpk@}0t+pqmWxCMCPu%d#32m1z>L?qS#{WvHM5Ai z1C?@ctNzI?)>nlsA|r?ZeGj2r6an?EC5SvA03aUeAsUqZ@`VC40Fh|trSMyQXOeQO z<5#G(AWP%*yzB#$>T75jK2*vYrflF8m(=FhUqzB(>?z^Jw7z?Kd)f3D88a1Pw!c7V zRLCIS`k5(B@5s{~SHCOHaIiQkl^OE+IG>yOx?5w%8^PcLL-!;iomp1h!m~h`3@4yd z+i$MN99EU-BM%zK5rtFFFY7J~BJ%X847++Y<;&U$eCNB9x9bvViS3S&v4_@Kt37^g zYzu3P=Z!xLZp=PSED6;|`s{TgFsnvhmAzoppq@n_#tN=u^t@ggxdKNWCdYs^NViV$ zZszyVEp#aF1_5F+;{|{kbEmROsHZSe%aUg~;Vx60?OCI-3-NfiHge&YjQG{x;r#T! z=8T{@VphIySCMAy2F!(Wzznu+U1fIhL!000BBL7D;({|ES6uyq4ki!SoZiw9Ex z7_npGPfXMwY@GxXuII?{F!-0ltzXJuXT5R4rjQT%|9LHgm?bdSTo4yAo|JNwRn$=Y zkx96u8vvKSAmEv*Wlsl&Vuc$6gWT}>fwC1+EyU{$Pqo8q>+k06aC4*fbA0kdL(NCk&O^>aGvVTm?SX79%}ldjoues=@{}b%{cI>m zoYnKdMXWMjBm`p?+eBgfJy_V|emzi&r`uD_*&4$$t(Irl_hc{d+U6DNd=nO@q*+zZt3;XYbWgzW&WQ(f2n{CJVWv z4TB5ND>WD*OiKJfIk^IM-lyBzXvHa4ktfGf?mOHldX;GX7q2<;&yfA)33NHLX2cVK zaT&qnR3NX}cX!V|G?Nv=C^yUX_Hr%&YyYkpbXLSY+miKQ=CB%Eyfg;^u99UvfBCkI91C2K;*xCvt`whI$2I~Mz1H$rTdxRvnV*Fvkc9$N>LX+?La*o|R-TlCpx(w1ZC-OK7hQ!Z#(rrg(e zGf8JOVQ+0@C1@wIMaHK<59oh|$&bC8z9`n4kyH!RA*H_W9Q~l2UAZ>@U123s1L zB2)X29ohjG1nSwv{Kk2E?w)K*efNYgywzoEUa_%SkCMz;=Y`wHdD~0> z?&yEPwi(Jh=eU!b9D)m~Bz<9a z9-}UaQ6hp9pggPxenoij%3`7b@EHz5@ekI)G_^NMZS2)91MWISwSWiL>Zp_am=Hnf z^qAqMd^g+u>sj&g-cne`=yT?e7|rv2U%GLF0j6b+J>GjC(*8pKyehi~Xu9`4)sQg! z)AkA=-K)hEje`KiDy|E~wE(`Xp zP|qW1HbZwPF&Q~9@c!S_;qQEU5iD!);cZOlewzc@eA6Vr8001{Znj$;@ z1L)|$0d8O4?bRIK;Og+}=#;RP-Hq#v({6qY~`yErp-RJM$7e{k?FIv1AFqQV-6pR~`_t~hhM(KU$ z9S;adyT10Oak*<)RBJqZc0P7hdPz`OB2PBC5Fh=&{xpYm)*#|J@`xW*^;U%Z_M`5OFW4Q6q+d-V&R#yJa=W3@ zMnWg!EFV*n&*QfXgJ5zMe0H+b$>iy6FVN-a-(z3-^x&urTz~-`+#TKS)4#rA;6RDN zE&w`!rziotU>}e9wpswXpb+bw8`UU?etb|O9657q?MpMpe=W!t?aBcTV<4p$yjZO| zxLvYfZg8+Q{i*6nbI)-LZ2+JTtb8FFls{3{DW5fBODh*Ekvy1Cm6iqckjGYdqD7b>qcskiT4s15Sg?fJKD!4%f56ru+8L6ice&IOS?=#U7?$PZKaJV0hQ_Z%kfA z_nq4>hh=l@#nk^$s-t=9?v&2Q?FALl%kA9Oe?IY+C~|SHxutF4P~}k-SDMB?XmUnQ zV-(oJecxm8bY! z&(;<7yCozB2!JI#qJd8nMSQx-+$bTc03=?F@K&=PUd)=1U`<&y)B*L5000B}L7GoW zL}vw>@RURMK`+EAFE;*V1UHAbdgeAkkj|CCCzt296EuXYM{64NI(QG}o>;8%)du?F9!rah+HjuQ(#R0CfJ)M+mVZ;9Q1dAl77_#c=4J z_yunI88wu#D=@=(^^1`qvkW4Ld^Z8~zQ+eTdNLi`*qYHuQS9>hT9ga4LC)Awdp1#{ zbHb396R460R1v`NtZW+N3el}9I38FER(#*2zApf>WJ6AcM&F^d;uI&8`OR-39V2wI z<3zw_DK*1g(>;Vq+h_o+RI-N|3h5g&{RWE7l*n8>UP2&nQg4g|re6r?-`hE6+l}p~ zcZT3=Cj!ma7ya#e$TL3#w>aDPzeFPn!cz;So)U_lMd8Uj1f6Fst6RL z7mFy~Fexh!K$I=AU84592z3^EmQ!oK-gIx6bVv#DS~k!O1jCM}b)O^y-|ZG{0K3t zYrIos)BO+XFCQ5H3cugg9o%k-QATHlE4xlw8k0*xRif%^=PznO=w#(4Tuw<#c2JhR zCM9<(!aYdQILGO#O}dRT(9OjZe!*0q2lGBl_b8Xvl;u@6aeN1ufkQToSq+zWZdEPp zs}Vp0s&C4a0!iaTc(^wbd3b#P8KN<;PM;H>2(PfZoq$KT(W#BUQ<}H(Ke!zk=ZHh@ zN@)B|Q!_%2sF2C;zsxnP2_nLGzKp!u5ZZK>O#YFQO0D8Nx!b@?fX2{9UYxgP|1_-8 za4ya`+&+E`Xfs2X*efMc+#65yl zKUJUo`G?@C2jKf&VDfZ5i*E9)`EBf@nzy>|!? zl(yfmTlvB|2awCh`&6KK|2O!^2h1yH3oY^-z{!00)Kz5QJIeeFF9?e`t$EC>!UvOa!yAmW}$8%~WoP{&x& z%P2{L$7D^cN<=f+U2dy%dd5#fSE)$O=LIRrPq+_p@$(&7vXA(QN1?3)o64ls;)l#* z`CnS-?W89qvXiyzYDO%dnK`e}KT6|{HtR0UWScB}nASXGC9qscS8yh>5gCgcRI5(} zw0^)n>;^s~u~lNxy-D6?P^f)dtOcqvh%q4=l(qH30}#Q8LkRiOH8oz&IIeJY#($k= zrd0tdL?r~j)1LaFvfZCc^tj#ImVG9qD)n|gN2x+CHirubOjs^25aQ)p z2%J;s4G7t^nsz?HK~s%3xzBQ-KMnMqMb`DGuL&-m{<5|dgA=Nb3e5Al}xfx7RMxz~dz;uiW zZIac3+XC3OzkmP&mOM1yz)x&4HgFIX*Wd3$4tuoMoU@$c0OEsF(>>jratR%>D9sH( zgaW{)S=Eq0RB_o}hQSvo=Ly$6>}(sNWpl*0Y~TF{vAnu~96RzB;;qln)ar)lK!k+= zePagz00{FznqqGQghGbmgH=IA2jN673DDa`JQSrnDS~+}dsgs1{>zfisG zouH@Byx2egm>SROTr5cn&^U=Wpom-o5|uomIAiu67wv{URQb&ydcEp5g)lnKveSTn zJf{c+egX^d;-^_LeJ!mWp(6%Xp1(n|jXnwvp3@{Gfgt@ctv4OOc!3ftG-Qk6 z1uEhRCuwSDtU$nI1QdYY{;mI^GPlQ?7iHV7PtA6-Ol9S`(4mAWVxmD51b_xWij?{t z@%Z>LT>4nJV$e!S4yVQ?;Dombr>7XAQyEyJ~(`P~}fN zS~XvRy7krkA~UU$kI)+~DIOv-ANh2>bzdDf1k%u}IBn{v$wL;8w!gqbmMIavsB3LP z6ur#AQSyq18LYAInH-soOoLcRj?sLB$#V?C9aWi_@n1!T4Gi_Yqamn>KCO7JNw3u< zZdgyVnZ9cOCU5TRV|hmO0S7_S^59`zZ~(UzlH)<}iJ@{p-3GV%;>bk7MUn}TU8u69 zJDQFv%^kc<^%v^aJ^t!>n>a-cw<}9}(WA(<_4*W46UgRp%VUC%SuK0j;ZA?M?LRuC z=i^+vr z> z{Js-MY$Z^{w`zI>Ie=8o*Ux~{OypXKJbf#VgVe~joo(dZ0{q)*{2zG= zja?(FNDA&50xb=9dq>wmSn9_UVA9seXWce<0={p49~J(a8`TRWNr`ViYLtTV+<3J3 z10JuWdBuh0^+}?4sWUD1SmR(=UJ6yj@{Y6#U98j--Uk0zUIWcRI3xZ z{bIxr7!dq_F$UZ{r7v8BpAd%>TY_y3axq4ml-u#ny<5soQF}f<#;2Tf^8iK^tc)2? zq5oSp<+?5k*YPq0!42?||A8qZ-{k2n7#SvaBKau5aHYnw#27X$(bSKFLo2$HyPvT9SFx|KsCd+6-XU;~NZ zB|l}f*SbEs*T6om9Yx(^YU<5{Uz8FL$gi>9CHE4PU*lii4V|bAXm4H1-}%(|=+%k3=XEn2b})NGkY6%6CZog&n624}BG=3g4g7{v+Yf#;<#(rtNz6jLPW zV%wpMx+0JbvB3wV_DZdd;;)ZPD(FY(_IOxQOp#M9!K*;MjJ znv`Cs99g^&$(?sY-J>K5W$JyWC=bo&UMFiRFqzkK8_$y`=VDnEOgkdYFAukH#e0HT9(CtMAjJ57CvO)XJ>2@9{BV4a#gOIb(aFLEzgpS!Jq~Gy2yazD ze5c6hErT72O5@~_|Xwi(7<=kfp=2eTzCuQ|CSzmXc}MwZKx4(#AE1B zoUWo^X#V!kpobFM_=Z7lVxJdQD%t2vG!6HxTXm7PyjS0vGD*}Nqzq)AtUf6mcS8#6FUPLu4?NpG%O7X{ic}O2dIxYYz$u94x}HPJdOaTWanjp6;8F zp$p$rUs22A`R40SYMC7fQa}Ujk!STECDp1CQhqQ{qG2>f&yWluG@=?l)d%B15m(dkP;9V*cGYQO*_k#*A@PnyOp{LnnZUk0VWDU7zyO! zMxba?H~KAIK*QAj610~qx~>@x(V|@Y5eDZX__jF@l%wXhsNW!Bx76lq+Bn`qMYQr)$)Rl=j-ucEj#Cc03_EqFXbLy z#8HI&LvTjr+18?XWgjVEWH>r-AJm@g^o)<$c+|ksiox+*nn9>(=$9IBSp`HwQ^N+H zm7O_4#6o2e8N$cJ?{JraEC(|6pQRonJP$yTEK3QmbG{`noe68BD!a@m1M40k8kEiT z!UJHzkWL($*auavIKA>twEs;cl|em7prlcE!aj>@+t^fAo)5+1j*Dd{p9JTm)j z5|*Q)h{kD+;sA>)&(KUONJ|ZHodz1f6p(^WB_VH>g~>alg9ijCRUOCd6=`XC?|)fG zjWF3JNI{k;U@frjU%>DrUM3qaB&0ZngCf&4DLeDIqg!sBl6GeO?5lKMK`n!%bSHw{ z;fG{T^6`w9lKgk`HgEZ@uK4CXQW&q|vnRIOg^)grM|*m1CXG783%RZqC{wcN489nY zMW!9mrAZ7C{>XPIv@7Ih!k`#u$ie^sRw&x2B`ulfwUM+D8?@8hxu5-foFRY&xbLB-?PE&vYswGKkfgkwJ(8)$;N`@>9e!t* znn`%l^?80qjAVf)@W1#cRtX^%X^o)GdY# zwtv+sow>5d191IIdATXiJ3aUO0ZT`$m}@hLkV)nUC^ry=Rdbb!1f=5T48JQ+<|Pxze5H1^CPYSc@EBX8yP{W~DLi6gG-Q ze9TX}T#NC7^g~K3VTK1&p?;E0#ZAi3Exo;$7Mt5Ec~@*!&ES~>BK0-fQ95cKMSo3@m5aV6pNQ(*9eV#A-x$ko52xuo^dfFQ_(w z_UpPJcWJNUr- z(4m4)-*v4t2;x9ksr8{6C3qY_v%=V^mx~V8!KC}k6NDucI9`$N+b?soEZ9(*PU{K9 z<^Z1HY^>ATpH~B}_v#zY^Efhra(Ydj7-Dt6(>Ijv^Vkc@b`X!MsmGd&Wq%@PO4}#R zZ&pNh9?>Bhl^ylM0x-eQPp)e8QbBrFy7qUot|#A%i7JD8wM5)k-PB&y?YEY8>F9Gl zrXr;@61qKX0kS!P{yDI!;vqXC<#XYrsHi$*v6!dj)g_pv;#YYb>4DPTtQ94RSAu zeH4koh=^V^(boTX#rIZ??ClXobYYs)n}1hqN`>vONP<%He>`=S3O*p>qJs3mz^Rlg z$rf=iR|J>AJsnkbZ8Dt9Fbarl**aKeEpDQ&av$>cLbhiB2cP1f@Na=PjNqq^2r|sY zA{;c3uRE_kbs9rPqDsE?XpHTKAO;tfaJaAYCpK0O1cD%32NQt&rK}(fAdPk^RM>qS zSIhz?AbtiiIT|n$B!!$Z^a1sc000BIL7JjF z{|67bY5_1@bw)4?|7NuL+qbIUYgW^5dk?#2HGl~Go(9+(h4F^UfCfK_5I8Q+6=gLU+v+8&L}iC=op_QJOGs8`v!$9xCeuKxi-;4;9rR&+C369911|XJ)KTv zz8R9xQUqCi@YOrckx6V=celnZ)k{BUNW#s?+&Jzw%I;FvQ#aY@Mo)+?2EPdED?-r?IA+)>Um9f887Httex>HSl2pzA%fFsw4X@$&K%f zgJc%5JWS>jU5&?oSGak0gv|E((crtgggc=GVGo5!z}A*;6E(}^Zn5z1YS!i-OMym( zg&~Inms59R%+Fa%yfc_M=q#7V?I?DRa=GQ80aO!Zj-^&>SDD~SbR;b%B;k23UzwY2jID18#%Crj;Q#EK0U?5)kKGtu{rhUBrl$ zEpL4q+2zbSrByN9f-YIo(2&*D{#5t+Ip;^ac_K_+Uk}8uPv>IWDyoXvpo|f32E4<- zJ$HCfM*!*im#Ti<WdruGN*!cK7^?ggMhhx? z<&ZCOcekrG=hStI4R}mG;Te{Hm;*B6$OMsgUD+k9DT~qf8d-K8rgE6;c^00CMtMhe zewvMItGECDg)XdCK_MEHz0m_`aDbdpN)iYHoNPE9dFFDQbp7vFbgI~(>>Dc?ThR#E zl0h@2czL*@04=Q&uk2W<5ltbCpBOe`UsJn)vUKCWJD8S8-9+0SF(QO}JIQZT@oI1% z9g-ZFJ19nX%%c*_M0g-Nsx`YsHcOp}$?qTtS`uj*E*a;O#(60hO;zc+ibk}Bx!h`7 zGvqvH53Rv3mY9_RFNUTi3JPv$`YpJBrU#H*FPJ zIyRSl4tm|`el^xpI=Zys@Ml|0bCUwTEb`7;d$i!hT}Xn9SzVjUFigpHoLi9sM=QHA z6XBI_~(2Z1St92>M{Yp+eM5p5LBje+RxgaZ2FM zuX*wOE7jxOE@L#6n^C^2mErre_~yW!eM4=07x8Qw5rR9-a}1RCrE52B6c(8UHqh1d z(r4?a-W#IJgb#cAfo8Mszt=+RNgL>7Pz1DDN%z~CWm{z&GD(TeSJtfz?=|$+L}=Pf zno}>;QI@si^hcYgjtEDtrEJmpa4@7-ItsWQ3fBgB;YEW(t)WW7{=jK(6)?+10%Yj5 znRT5_5%Gl)>%@f*%z1p_`TivBw5I;=;H0Ivj#OdB`bHL9#f2dnl@;~E0ue!IC?~ev zXaHB2UfwdTt}FSzE-A3(Y)F1))PREgW5cwW3GH7}}tN&<6qUk!C|^1sb!E9eE0tDNzzv1IPd@td4nM zA~Cv?$CJ!dnUY6ef!9FNS+BNOv_<7~1FCx~bwOUZ%dq?F>Ob1)K5E#wDmz=4V?2q) z-}&RdQ1(69y!%#_!|mbn)>IBT(5oK}Spzd?59*y{`Rg7mzo|QB{nu^?qyjgyBhz(d zo34rj>AbopO*Re~(Z%o}02}4nE>yDBWu}vihND5IzFLEa{|SxM$JkyZ1=;r70?CI} zu*$L1T<$7dg_g3YqJc~W)1Yd3yZSRr?)Ekb7NmiuSC{K&h*7r)SNE*6MjJqoTL6_P z0P|uP+&6t$3MNH);k&$+8i~ChtUUU!Kp$BCAsUpm_Cf-2P+)W-5>NmVO?`Ie@2y|f zxQSIjN=bL7^5xH_S(su@T)95={cPA-V<=kSJ^)gKY}WeZ6I98QPJaC$ z3^La?QW=k`dycag>REbpnlAar!1a&(HVz{kd31@ec_sdn3sHwvFd`!jLJmfbE(pV! zdo8mh{btVxBz|#M8!C$-fge?0o6e47`;>tSbVYlY`#4MLIakHAgepa(dKXqAaJkUy zx{ z?^&?%fa~HO4JDZ?6sy1(U3Rl0b6%dtqne6Q5M&2J)92$LT|~){Dr>?;S-R!Z#iH7! z5hA0{Lsa<^q34tT9m%CeyPNz%fIhL-0008+L7MMML}vy3Y!vQM2^tNBXe*-iXp`-N z;~ESK;qLUH){bbA(aXL1EeJTRN9&KGRvwg_-B!Qv(0!kFS#y=n}XSb>L?T(@yu@J1I@n}Z3|Te_HN6))lePUYD{xm z*V72wo-QWvhfi@E-I_$}*8U~+14e?Upguq6bkHDULiFq-sneFkKXTa78`;}(IqvH^ z(tC?AO?FC*V?b&s<+@k|B?d<~4ms|;3QFW1f2(?3vZggAKQ#*xJ;kNg^r`bR9{5*s z8Ic!^-eaidKz8AuFKc9!N2IUC{viQ*LGAFW$fwM8(&M`kQquCkN{HomB6a)vmtW1T z@_lm2_0+<0TIFKa?w`J$aQJ8>mt;*qL{Y@~EA1lC3$fyhtcsc0$O@fYZnM|RK1oqQ z`{iHmm1~6_WRP8V{A7<_or;AQr9;tzi_<@clsc1cUEloLfvS1lB}Un$YL?NN6#2^s-YUmu~rveE>NPXmS4VR zIWxXs9Lw$TX(_N%dq#@eK> zc2)?kSl0gI&+DT|aT1?UxVftGO2)bX%2I5hLx!hcIxy~z#%y%nd`U--$EQ){yQQbt zae1_~xm&|>pICr2O+*81S;gkSI)ehr?7r_>rZEcEf7Gjj64N0X zl(qH30#L!oKxyDcbT#;QxmVV;^{q)Nwgls!dwY*6lh>^eIRw z#AiwDG$~vb`}RuaNPaApBx9k`x$BV1rEHcC4-GnNJj?f*94{t>#YL$pM#5?_HbekN zb1wiLe_$i%SHl-`yzYv(!2KU2ifh&HDY<+v zs8%URJM{{|O~(fPZ?rOFuVdxxNk1F*^h)YrMF?F9_000VcL7M~r z0MlR6uE}%Zf%}e8(!$R?xZ^%re&QD8zuNNfGL~@L^8ou2;4~Y+^x&xVZyF69=XZC^R1qeZq zdzgDyM(bA4O;Ont;>Xl7@`ZrRX{_y?+3!XE zTdYOx$%WPbBYtO%aA4$kW!G1P&PYU#oNJyZl^(N-`nnESA*2BpVtHAX0?4+HW?EmQ zuk+r#zVBEZQ(FbA^yzhB8F9#)TMuJ&ODBx)4oR$aM!pgazE9W?!2H~nyk-^QCI!u* z)^dmjiX?n?{9%XXVP%R!KEeXGC~-9TopmK3N7WA)xVVF1(^#}G=ua+PtHI`jhqW` zRW#};yMp;IEI0)ElGTw6)$6GS%4dJpUm&$_04x$J_jrwtP(Xv=%O4baW>$e0KNF1< zj1F#r)nVKzz(CLpCvIud|V?BObvz@x|K6$jb{)3W&XV^37@stRiDvK8*5 z^+7C6IPia=o8{KE0ED08#pVy#Ux8_iPKScs%Gg1A>^#QPmuQx3RisrP44fXTRU}!4 z|McRVBi%YK!3kBNH~f`-r>r_~o{z3R=&<=F)%9t!xriHOTBZ6z{7cF#2jCDhB)acl zw8$rx(w6=J%bwP8#D?B zgkLC<(u+nPL~lP$p2Qey4XM$PRY#`L7Wd|5{p)dc-fq>Hb5ec0?X z!Yw~z^0z4=B*sths|ZW{jVx0&fvpo#7Y(d z$qDC~amg0@Q?jBjxJ!TiZJ&~9fYf+D1D3n+)9J5m!Sg(CdH-M&XTW|yMHg&N+g*$e zhFfrjrBhGG@qrTp0vS{)0XR-f$T4Xm2a}KCGT9i;ve8{b-_$xkPFY#{^BL_KJ&OUxYj0jy%tt-A4~*}CeIN=JY|V}pgq7Q0xsr$?PlU~ zwd0OPOkwGSxE&C{s&Iw7U*42dQM*zgXkn<_<_8wK8zl28n9)iynJjA)Kdb7t|G5p6B|Y0FIq3 z`OcRXu}-1Ht+w5U4Y%@`dn5jRVI5*9YPm*(L8p~rO|1?ZS;wV$mnWzaY&=&~<+gj_a;?MC8BxrL;CV#Tbsb$AjOH<|Iqa7kVqqcG4%= zxTUkI^2@>&D)tSL-hx656D-{!-yXeWsO+R6ga&}74x*8O|FtFv`)8IAlSIx))s!Nm%0p%ny{u!-X@D z!%(6*Q4;l6CwwcEv9z?DKOiL}LHnoNiyj@AN}PqbnEj~VKFPsXko11!oxLO0LS&`= zzmzE9UEJ*uvdcnh-jWoLhn2k+6l->stD5#;>`|*PSr7fk z2y&f*$1RUMV3?-@R^5`QLrRqz${FPUOoug)yV`r@nAnt;oR4wQ7ZgCU+L#w}0?EQfMPE zYzi4pk>JX-0D^wOq3j#R;fy@1T*P1!t^PKl4rr_5iAWgJ69pJ)CSkS#qpxt#Nu}Q3 zy(%nrCcXkk$u|r~T?Z3x2LtEvXBhQO${>U}!J@7 zA#U&MA3>@gOqxc}RYlWO=u;PoA&x^fFk?$j7N|tc!^fP;mc4qFc8@eo7}r(xRZ~w7q=UVa8wzVvMbv(FMH3K69QO!o(|Bb zA$dnsx@)QJxX_{$Dnp^(o0;YtokB4~)Gntt(FNP<;(2dOp(l16o%#gh4L<@}Dwkus zLQHvazZ6fnAo7o#MgFRMz#$rxt@XkJ5U^-4N(l&Tj0YL*+uO@2-yLdxHK|usfJzgx z2zZA^T_7PwmQ|fug>AV|FZ4vX5##WZ#{zm*O<|EBf0Q1e|8*f?_ke~QT$Tz^dUw{G zg%&H8P!&uk5<8w#C1h6+%%_i(KvAlBpR*2t6;AnyPiG{bT3U^_uH~Xc*eDs&eB!ee zPl6APzwrF#3LV5iO80qWjejNh44g`)j^y44tv=^eRAA>X@9r5VU;J*Tr~3SN^=OiB z{QWzE`nPwrZ6|k;ExDu)Te?de!MTGr((=HPxTGgvQo2zzKspoGvRxRi*tja;)!V-x zOGp3;c8srJ5E`=?Kfm4P^itj(3^ONpXV$|Wqoj_=a2u6xz6^Mn{CXbBrX&pc^aGc0J30T2+mhBM=GuK8wRa5MkJQ zO{8cA&NAEu0DWTzAsUpu^+EzsP~c=B%P`P%U(=kW>yCfS;u5(F9xL6G2?UOb2n2H^mPU1kPYtBJVS+a&Vcv&9Cr)@T;~H%8 zLCe`sDIyY*YExy=1zDE`NW25R=|d^4VLX!Hk3o1714wJLX%zr@`A@cn9fvrfyw&V76no z+pJIr);j? z{~fw_V3>o!s}@Cqz4YzCBX34~K6g(CDYNa9-62nH8~90f02Osu^4H(9_32|I8)kp0 zCB@bzP!xBo)~^)k7+ey&aQT%z+n+MB?~MEz6y$S$4LcVtCqD0Hn?Qn2ON-?U(c-)p zfaZ92PgTyDG?2V1>z80KfOI-*39_7XLat;uOA^slL)&l_c4 zDXJJ-z33Okbo{au8fRY(Qs;(2xGU`Q=30ddkc`i%L6C&08xy;{f-a#bIChsGdB8ND z5#Ew4o}iIUtUSD#$+>v@!dP|tM;XT?fCUYcam#9jJ^L)pg53ZY9VAQ-9=Sv5#HFP8 z6bM?4HZ5iGc)rDyBO0kQf}4s13^~LPoyv3zTeQ#jn~VPH2WG*4Ph2~1GR0Rk)pYfu z_WNXYr!yOLRF2yNGG`7em?0XJwe-RRAkd(66c8h@JfrERZJj!QjY(0M304#y;ZG@` zlWocurRBDUvBT6Z4Ey10cFP!UjC4G@r}5b*3eV)%7VTQ7!cp@o)Iiwke>Ez&5q-<_ z6-9tu2O<#FtkI_?Qp~XrKjzP|5qNWogR=w&P--c7Zt3tBlG1GzsA`R;2VS0|F8<+) zk>1E4A^puyL+(5jdDtJB_AYw+{Ky&MihT#cZa8Iur~6l>%ftBY+};*=Bu+qdG0My2a&jBm4{~eblV56uLxJm#a#-vMnf(+coB*9%_eJkF0Pls;`R0<`Exhh zY;MEf&tL(-QXk3G8Oq}u!z@7}D(QJ|~aOpX)Q=lsSmPom^>?*Z5(*DAnG4bK;swH(K!p)TGLP|cb~F-~}0X@#6^1zd!KLNrJzjI?jq)e0()854(N zYx5A+rEqprYZ7TYkuR0OA0p$Wp>~{k5&EP1;`9#!^NF?tndAQg-7V2=17i}bifUZ1 zvzdS4%HE~AaAxV;&lepGL2>#)7_4MNWUch^#TJYn}>J z;aJ|9@*H~v-hV!76xKbMU0S7fR*`v0a@xEEfs0K<0oCz~!tEWbRX6A0a8$LUBgDSA zerG{Vg)*(IQ&|qD8pYf%B>sD9zB+hGMn%zD1Y$q*?O{hu?CTE+gEHh0G?D!pAcLo}wyK1J6=R7VUAsUq3^avq?5SoT@;6<$bIGwR`kMY9hUhq)prsl6dq$5d0 zixyckqHM{6sx%Io$|S`Kv5%ou6kVVB$K$fP1V*XoF+7h0$Y7udl`}2-D-N$5+vDmg zCryjV#p}mWt>LopHyT~%P$ty~r4Odp z#S%8l3VHOnF?m>hU4uup_|1&(+iSuB6`O{w!N#=b&JZfBV`?SyW^{ba2cQ$|1V~Kc zkuO5eh;KfJ*L@wzqqD~SZDkBb*o^l*jCSLP=Y0V)kM!50QQ=m1Jf;q{(U_-)b}Xz5 zf?#$|fbxH|Zw_>B+kF{Z21i!Zv}SX`gVTPy_sG}4v28)xoptw*6PFPpac8>g|GC

aS8T`wl!^ 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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?AS1INF0ES%nl09od8f6WNstMT{CJF62;l z+IUbj=;8+zR;@QBE$5`HGdRHf`Rrb=&qGJ9iyA zeB|h{<0np@x^(%<)oa&p+`RSh(c>pipFMx^^3}&rpTB(l_Wj4tUyKaQ5brQDLVbkf zA3+8tMkW>(W)^mke;Ap{L6U+jtcr$gLXLs#iG{*SMvWXIP7@byJjkhR9P~jnspuk? zn2O0m)sG-Afqg`rhnmRp5!^#?|NOtjz{AYQz$C~l$Y9TqDiY|xI*LcbU^ESkrh(Bk LfHMuq|Gx. +*/ + +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