diff --git a/Cargo.lock b/Cargo.lock index fec787f..c0e0012 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,12 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ab_glyph" -version = "0.2.29" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0" +checksum = "1e0f4f6fbdc5ee39f2ede9f5f3ec79477271a6d6a2baff22310d51736bda6cea" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -14,15 +14,15 @@ dependencies = [ [[package]] name = "ab_glyph_rasterizer" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" +checksum = "b2187590a23ab1e3df8681afdf0987c48504d80291f002fcdb651f0ef5e25169" [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aho-corasick" @@ -35,9 +35,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -50,50 +50,50 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.96" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "assert_cmd" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" +checksum = "2bd389a4b2970a01282ee455294913c0a43724daedcd1a24c3eb0ec1c1320b66" dependencies = [ "anstyle", "bstr", @@ -107,9 +107,9 @@ dependencies = [ [[package]] name = "assert_fs" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7efdb1fdb47602827a342857666feb372712cbc64b414172bd6b167a02927674" +checksum = "a652f6cb1f516886fcfee5e7a5c078b9ade62cfcb889524efe5a64d682dd27a9" dependencies = [ "anstyle", "doc-comment", @@ -122,9 +122,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "bitflags" @@ -134,30 +134,33 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bitstream-io" -version = "2.6.0" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" +checksum = "1f30faa215941f112abe3f87ae44889e4596260602a1a2b82837c7860fdd56a0" +dependencies = [ + "core2", +] [[package]] name = "bitvec_helpers" -version = "3.1.6" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a6aff977a34114f146bd3379c9d170a8eafcffcdeecbb7cc3bd2470a39709a" +checksum = "514cb00a8ce758dc6a8718723919145cefdd6306766936f62b3c117ef3393bd5" dependencies = [ "bitstream-io", ] [[package]] name = "bstr" -version = "1.11.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", "regex-automata", @@ -166,15 +169,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytemuck" -version = "1.21.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" +checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" [[package]] name = "byteorder" @@ -184,24 +187,24 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cc" -version = "1.2.13" +version = "1.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" dependencies = [ "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "clap" -version = "4.5.29" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acebd8ad879283633b343856142139f2da2317c96b05b4dd6181c61e2480184" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" dependencies = [ "clap_builder", "clap_derive", @@ -209,9 +212,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.29" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ba32cbda51c7e1dfd49acc1457ba1a7dec5b64fe360e828acb13ca8dc9c2f9" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" dependencies = [ "anstream", "anstyle", @@ -222,9 +225,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.28" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" dependencies = [ "heck", "proc-macro2", @@ -234,9 +237,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "color_quant" @@ -246,21 +249,21 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "console" -version = "0.15.10" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" +checksum = "2e09ced7ebbccb63b4c65413d821f2e00ce54c5ca4514ddc6b3c892fdbcbc69d" dependencies = [ "encode_unicode", "libc", "once_cell", "unicode-width", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -315,6 +318,15 @@ dependencies = [ "libc", ] +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "crc32fast" version = "1.4.2" @@ -357,23 +369,23 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" [[package]] name = "dirs" -version = "5.0.1" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ "dirs-sys", ] [[package]] name = "dirs-sys" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.48.0", + "windows-sys 0.60.2", ] [[package]] @@ -393,9 +405,9 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "dwrote" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70182709525a3632b2ba96b6569225467b18ecb4a77f46d255f713a6bebf05fd" +checksum = "bfe1f192fcce01590bd8d839aca53ce0d11d803bf291b2a6c4ad925a8f0024be" dependencies = [ "lazy_static", "libc", @@ -411,18 +423,18 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.10" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -442,9 +454,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -467,11 +479,11 @@ checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d" [[package]] name = "font-kit" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64b34f4efd515f905952d91bc185039863705592c0c53ae6d979805dd154520" +checksum = "2c7e611d49285d4c4b2e1727b72cf05353558885cc5252f93707b845dfcaf3d3" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.1", "byteorder", "core-foundation", "core-graphics", @@ -530,32 +542,32 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] name = "globset" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" dependencies = [ "aho-corasick", "bstr", @@ -570,16 +582,16 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.1", "ignore", "walkdir", ] [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" [[package]] name = "hdr10plus" @@ -609,7 +621,7 @@ dependencies = [ "predicates", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror", ] [[package]] @@ -620,9 +632,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hevc_parser" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e98d088d307c457bf32a9f47495217701144269230f677797585208ff8a7828" +checksum = "ba26bdcdc294bf70310ae2d004cab22ea6df3ca257c2f339117ca35dc8ee3983" dependencies = [ "anyhow", "bitvec_helpers", @@ -663,9 +675,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown", @@ -673,14 +685,14 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.11" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +checksum = "70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd" dependencies = [ "console", - "number_prefix", "portable-atomic", "unicode-width", + "unit-prefix", "web-time", ] @@ -692,15 +704,15 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jpeg-decoder" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" +checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" [[package]] name = "js-sys" @@ -720,59 +732,59 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.169" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.53.2", ] [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.1", "libc", ] [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "log" -version = "0.4.25" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "matroska-demuxer" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d62ca6ff378b07542b477763bea55c3540733fc2db537a0caa45cd5ea2c59f6" +checksum = "fb23384e6bf1431427b45e7db9574146e948ef0cd975018693e6f53eb6d44199" [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "miniz_oxide" -version = "0.8.4" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", "simd-adler32", @@ -803,16 +815,16 @@ dependencies = [ ] [[package]] -name = "number_prefix" -version = "0.4.0" +name = "once_cell" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] -name = "once_cell" -version = "1.20.3" +name = "once_cell_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "option-ext" @@ -841,18 +853,18 @@ dependencies = [ [[package]] name = "pathfinder_simd" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cf07ef4804cfa9aea3b04a7bbdd5a40031dbb6b4f2cbaf2b011666c80c5b4f2" +checksum = "bf9027960355bf3afff9841918474a81a5f972ac6d226d518060bba758b5ad57" dependencies = [ "rustc_version", ] [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plotters" @@ -904,9 +916,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "predicates" @@ -940,31 +952,37 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "redox_users" -version = "0.4.6" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", - "thiserror 1.0.69", + "thiserror", ] [[package]] @@ -1007,11 +1025,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.44" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", @@ -1020,15 +1038,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -1041,24 +1059,24 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", @@ -1067,9 +1085,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.138" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "indexmap", "itoa", @@ -1098,9 +1116,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.98" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -1109,13 +1127,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.16.0" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ - "cfg-if", "fastrand", - "getrandom 0.3.1", + "getrandom 0.3.3", "once_cell", "rustix", "windows-sys 0.59.0", @@ -1123,9 +1140,9 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ "rustix", "windows-sys 0.59.0", @@ -1139,38 +1156,18 @@ checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" [[package]] name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.11", + "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.69" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", @@ -1191,15 +1188,21 @@ checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-width" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" + +[[package]] +name = "unit-prefix" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817" [[package]] name = "utf8parse" @@ -1228,15 +1231,15 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.13.3+wasi-0.2.2" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" dependencies = [ "wit-bindgen-rt", ] @@ -1350,15 +1353,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.59.0" @@ -1369,18 +1363,12 @@ dependencies = [ ] [[package]] -name = "windows-targets" -version = "0.48.5" +name = "windows-sys" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-targets 0.53.2", ] [[package]] @@ -1392,7 +1380,7 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", @@ -1400,10 +1388,20 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" +name = "windows-targets" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] [[package]] name = "windows_aarch64_gnullvm" @@ -1412,10 +1410,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" +name = "windows_aarch64_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" @@ -1424,10 +1422,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] -name = "windows_i686_gnu" -version = "0.48.5" +name = "windows_aarch64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" @@ -1435,6 +1433,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" @@ -1442,10 +1446,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] -name = "windows_i686_msvc" -version = "0.48.5" +name = "windows_i686_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" @@ -1454,10 +1458,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" +name = "windows_i686_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" @@ -1466,10 +1470,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" +name = "windows_x86_64_gnu" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" @@ -1478,10 +1482,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" +name = "windows_x86_64_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" @@ -1489,6 +1493,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "wio" version = "0.2.2" @@ -1500,11 +1510,11 @@ dependencies = [ [[package]] name = "wit-bindgen-rt" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.1", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index d14c8c7..dc400e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,21 +7,21 @@ rust-version = "1.85.0" license = "MIT" [dependencies] -bitvec_helpers = { version = "3.1.6", default-features = false, features = ["bitstream-io"] } hdr10plus = { path = "./hdr10plus", features = ["hevc", "json"] } -hevc_parser = { version = "0.6.8", features = ["hevc_io"] } +bitvec_helpers = { version = "4.0.0", default-features = false, features = ["bitstream-io"] } +hevc_parser = { version = "0.6.9", features = ["hevc_io"] } -clap = { version = "4.5.29", features = ["derive", "wrap_help", "deprecated"] } -serde_json = { version = "1.0.138", features = ["preserve_order"] } -indicatif = "0.17.11" -anyhow = "1.0.95" -thiserror = "2.0.11" +clap = { version = "4.5.41", features = ["derive", "wrap_help", "deprecated"] } +serde_json = { version = "1.0.140", features = ["preserve_order"] } +indicatif = "0.18.0" +anyhow = "1.0.98" +thiserror = "2.0.12" plotters = { version = "0.3.7", default-features = false, features = ["bitmap_backend", "bitmap_encoder", "all_series"] } -serde = { version = "1.0.217", features = ["derive"] } +serde = { version = "1.0.219", features = ["derive"] } [dev-dependencies] -assert_cmd = "2.0.16" -assert_fs = "1.1.2" +assert_cmd = "2.0.17" +assert_fs = "1.1.3" predicates = "3.1.3" [[bin]] diff --git a/hdr10plus/Cargo.toml b/hdr10plus/Cargo.toml index 198e08d..78e2e7a 100644 --- a/hdr10plus/Cargo.toml +++ b/hdr10plus/Cargo.toml @@ -9,12 +9,12 @@ description = "HDR10+ metadata parsing and writing" repository = "https://github.com/quietvoid/hdr10plus_tool/tree/master/hdr10plus" [dependencies] -bitvec_helpers = { version = "3.1.6", default-features = false, features = ["bitstream-io"] } -hevc_parser = { version = "0.6.8", optional = true } +bitvec_helpers = { version = "4.0.0", default-features = false, features = ["bitstream-io"] } +hevc_parser = { version = "0.6.9", optional = true } -anyhow = "1.0.95" -serde = { version = "1.0.217", features = ["derive"], optional = true } -serde_json = { version = "1.0.138", features = ["preserve_order"], optional = true } +anyhow = "1.0.98" +serde = { version = "1.0.219", features = ["derive"], optional = true } +serde_json = { version = "1.0.140", features = ["preserve_order"], optional = true } libc = { version = "0.2", optional = true } diff --git a/hdr10plus/src/hevc/mod.rs b/hdr10plus/src/hevc/mod.rs index dbab4fb..b8c7959 100644 --- a/hdr10plus/src/hevc/mod.rs +++ b/hdr10plus/src/hevc/mod.rs @@ -15,13 +15,13 @@ pub fn encode_hdr10plus_nal(metadata: &Hdr10PlusMetadata, validate: bool) -> Res // Write NALU SEI_PREFIX header let mut header_writer = BitstreamIoWriter::with_capacity(64); - header_writer.write(false)?; // forbidden_zero_bit + header_writer.write_bit(false)?; // forbidden_zero_bit - header_writer.write_n(&NAL_SEI_PREFIX, 6)?; // nal_type - header_writer.write_n(&0_u8, 6)?; // nuh_layer_id - header_writer.write_n(&1_u8, 3)?; // nuh_temporal_id_plus1 + header_writer.write::<6, u8>(NAL_SEI_PREFIX)?; // nal_type + header_writer.write_const::<6, 0>()?; // nuh_layer_id + header_writer.write_const::<3, 1>()?; // nuh_temporal_id_plus1 - header_writer.write_n(&USER_DATA_REGISTERED_ITU_T_35, 8)?; + header_writer.write::<8, u8>(USER_DATA_REGISTERED_ITU_T_35)?; let mut payload = metadata.encode_with_opts(&opts)?; @@ -32,7 +32,7 @@ pub fn encode_hdr10plus_nal(metadata: &Hdr10PlusMetadata, validate: bool) -> Res payload.len() ); - header_writer.write_n(&(payload.len() as u64), 8)?; + header_writer.write::<8, u8>(payload.len() as u8)?; payload.push(0x80); diff --git a/hdr10plus/src/metadata.rs b/hdr10plus/src/metadata.rs index 603d127..e03044c 100644 --- a/hdr10plus/src/metadata.rs +++ b/hdr10plus/src/metadata.rs @@ -117,12 +117,12 @@ impl Hdr10PlusMetadata { let mut reader = BsIoSliceReader::from_slice(data); let mut meta = Hdr10PlusMetadata { - itu_t_t35_country_code: reader.get_n(8)?, - itu_t_t35_terminal_provider_code: reader.get_n(16)?, - itu_t_t35_terminal_provider_oriented_code: reader.get_n(16)?, - application_identifier: reader.get_n(8)?, - application_version: reader.get_n(8)?, - num_windows: reader.get_n(2)?, + itu_t_t35_country_code: reader.read::<8, u8>()?, + itu_t_t35_terminal_provider_code: reader.read::<16, u16>()?, + itu_t_t35_terminal_provider_oriented_code: reader.read::<16, u16>()?, + application_identifier: reader.read::<8, u8>()?, + application_version: reader.read::<8, u8>()?, + num_windows: reader.read::<2, u8>()?, ..Default::default() }; @@ -137,9 +137,9 @@ impl Hdr10PlusMetadata { meta.processing_windows = Some(processing_windows); } - meta.targeted_system_display_maximum_luminance = reader.get_n(27)?; + meta.targeted_system_display_maximum_luminance = reader.read::<27, u32>()?; - meta.targeted_system_display_actual_peak_luminance_flag = reader.get()?; + meta.targeted_system_display_actual_peak_luminance_flag = reader.read_bit()?; if meta.targeted_system_display_actual_peak_luminance_flag { let atsd = ActualTargetedSystemDisplay::parse(&mut reader)?; meta.actual_targeted_system_display = Some(atsd); @@ -147,28 +147,28 @@ impl Hdr10PlusMetadata { for _ in 0..meta.num_windows { for i in 0..3 { - meta.maxscl[i] = reader.get_n(17)?; + meta.maxscl[i] = reader.read::<17, u32>()?; } - meta.average_maxrgb = reader.get_n(17)?; + meta.average_maxrgb = reader.read::<17, u32>()?; - meta.num_distribution_maxrgb_percentiles = reader.get_n(4)?; + meta.num_distribution_maxrgb_percentiles = reader.read::<4, u8>()?; for _ in 0..meta.num_distribution_maxrgb_percentiles { let dmrgb = DistributionMaxRgb::parse(&mut reader)?; meta.distribution_maxrgb.push(dmrgb); } - meta.fraction_bright_pixels = reader.get_n(10)?; + meta.fraction_bright_pixels = reader.read::<10, u16>()?; } - meta.mastering_display_actual_peak_luminance_flag = reader.get()?; + meta.mastering_display_actual_peak_luminance_flag = reader.read_bit()?; if meta.mastering_display_actual_peak_luminance_flag { let amd = ActualMasteringDisplay::parse(&mut reader)?; meta.actual_mastering_display = Some(amd); } for _ in 0..meta.num_windows { - meta.tone_mapping_flag = reader.get()?; + meta.tone_mapping_flag = reader.read_bit()?; if meta.tone_mapping_flag { let bc = BezierCurve::parse(&mut reader)?; @@ -176,9 +176,9 @@ impl Hdr10PlusMetadata { } } - meta.color_saturation_mapping_flag = reader.get()?; + meta.color_saturation_mapping_flag = reader.read_bit()?; if meta.color_saturation_mapping_flag { - meta.color_saturation_weight = reader.get_n(6)?; + meta.color_saturation_weight = reader.read::<6, u8>()?; } meta.set_profile(); @@ -279,14 +279,14 @@ impl Hdr10PlusMetadata { let mut writer = BitstreamIoWriter::with_capacity(64); if opts.with_country_code { - writer.write_n(&self.itu_t_t35_country_code, 8)?; + writer.write::<8, u8>(self.itu_t_t35_country_code)?; } - writer.write_n(&self.itu_t_t35_terminal_provider_code, 16)?; - writer.write_n(&self.itu_t_t35_terminal_provider_oriented_code, 16)?; - writer.write_n(&self.application_identifier, 8)?; - writer.write_n(&self.application_version, 8)?; - writer.write_n(&self.num_windows, 2)?; + writer.write::<16, u16>(self.itu_t_t35_terminal_provider_code)?; + writer.write::<16, u16>(self.itu_t_t35_terminal_provider_oriented_code)?; + writer.write::<8, u8>(self.application_identifier)?; + writer.write::<8, u8>(self.application_version)?; + writer.write::<2, u8>(self.num_windows)?; if let Some(pws) = &self.processing_windows { for pw in pws { @@ -294,46 +294,46 @@ impl Hdr10PlusMetadata { } } - writer.write_n(&self.targeted_system_display_maximum_luminance, 27)?; + writer.write::<27, u32>(self.targeted_system_display_maximum_luminance)?; - writer.write(self.targeted_system_display_actual_peak_luminance_flag)?; + writer.write_bit(self.targeted_system_display_actual_peak_luminance_flag)?; if let Some(atsd) = &self.actual_targeted_system_display { atsd.encode(&mut writer)?; } for _ in 0..self.num_windows { - for e in &self.maxscl { - writer.write_n(e, 17)?; + for e in self.maxscl { + writer.write::<17, u32>(e)?; } - writer.write_n(&self.average_maxrgb, 17)?; + writer.write::<17, u32>(self.average_maxrgb)?; - writer.write_n(&self.num_distribution_maxrgb_percentiles, 4)?; + writer.write::<4, u8>(self.num_distribution_maxrgb_percentiles)?; for dm in &self.distribution_maxrgb { dm.encode(&mut writer)?; } - writer.write_n(&self.fraction_bright_pixels, 10)?; + writer.write::<10, u16>(self.fraction_bright_pixels)?; } - writer.write(self.mastering_display_actual_peak_luminance_flag)?; + writer.write_bit(self.mastering_display_actual_peak_luminance_flag)?; if let Some(amd) = &self.actual_mastering_display { amd.encode(&mut writer)?; } for _ in 0..self.num_windows { - writer.write(self.tone_mapping_flag)?; + writer.write_bit(self.tone_mapping_flag)?; if let Some(bc) = &self.bezier_curve { bc.encode(&mut writer)?; } } - writer.write(self.color_saturation_mapping_flag)?; + writer.write_bit(self.color_saturation_mapping_flag)?; if self.color_saturation_mapping_flag { - writer.write_n(&self.color_saturation_weight, 6)?; + writer.write::<6, u8>(self.color_saturation_weight)?; } writer.byte_align()?; @@ -380,8 +380,8 @@ impl Hdr10PlusMetadata { impl DistributionMaxRgb { fn parse(reader: &mut BsIoSliceReader) -> Result { Ok(DistributionMaxRgb { - percentage: reader.get_n(7)?, - percentile: reader.get_n(17)?, + percentage: reader.read::<7, u8>()?, + percentile: reader.read::<17, u32>()?, }) } @@ -427,8 +427,8 @@ impl DistributionMaxRgb { } fn encode(&self, writer: &mut BitstreamIoWriter) -> Result<()> { - writer.write_n(&self.percentage, 7)?; - writer.write_n(&self.percentile, 17)?; + writer.write::<7, u8>(self.percentage)?; + writer.write::<17, u32>(self.percentile)?; Ok(()) } @@ -437,32 +437,32 @@ impl DistributionMaxRgb { impl ProcessingWindow { fn parse(reader: &mut BsIoSliceReader) -> Result { Ok(ProcessingWindow { - window_upper_left_corner_x: reader.get_n(16)?, - window_upper_left_corner_y: reader.get_n(16)?, - window_lower_right_corner_x: reader.get_n(16)?, - window_lower_right_corner_y: reader.get_n(16)?, - center_of_ellipse_x: reader.get_n(16)?, - center_of_ellipse_y: reader.get_n(16)?, - rotation_angle: reader.get_n(8)?, - semimajor_axis_internal_ellipse: reader.get_n(16)?, - semimajor_axis_external_ellipse: reader.get_n(16)?, - semiminor_axis_external_ellipse: reader.get_n(16)?, - overlap_process_option: reader.get()?, + window_upper_left_corner_x: reader.read::<16, u16>()?, + window_upper_left_corner_y: reader.read::<16, u16>()?, + window_lower_right_corner_x: reader.read::<16, u16>()?, + window_lower_right_corner_y: reader.read::<16, u16>()?, + center_of_ellipse_x: reader.read::<16, u16>()?, + center_of_ellipse_y: reader.read::<16, u16>()?, + rotation_angle: reader.read::<8, u8>()?, + semimajor_axis_internal_ellipse: reader.read::<16, u16>()?, + semimajor_axis_external_ellipse: reader.read::<16, u16>()?, + semiminor_axis_external_ellipse: reader.read::<16, u16>()?, + overlap_process_option: reader.read_bit()?, }) } fn encode(&self, writer: &mut BitstreamIoWriter) -> Result<()> { - writer.write_n(&self.window_upper_left_corner_x, 16)?; - writer.write_n(&self.window_upper_left_corner_y, 16)?; - writer.write_n(&self.window_lower_right_corner_x, 16)?; - writer.write_n(&self.window_lower_right_corner_y, 16)?; - writer.write_n(&self.center_of_ellipse_x, 16)?; - writer.write_n(&self.center_of_ellipse_y, 16)?; - writer.write_n(&self.rotation_angle, 8)?; - writer.write_n(&self.semimajor_axis_internal_ellipse, 16)?; - writer.write_n(&self.semimajor_axis_external_ellipse, 16)?; - writer.write_n(&self.semimajor_axis_external_ellipse, 16)?; - writer.write(self.overlap_process_option)?; + writer.write::<16, u16>(self.window_upper_left_corner_x)?; + writer.write::<16, u16>(self.window_upper_left_corner_y)?; + writer.write::<16, u16>(self.window_lower_right_corner_x)?; + writer.write::<16, u16>(self.window_lower_right_corner_y)?; + writer.write::<16, u16>(self.center_of_ellipse_x)?; + writer.write::<16, u16>(self.center_of_ellipse_y)?; + writer.write::<8, u8>(self.rotation_angle)?; + writer.write::<16, u16>(self.semimajor_axis_internal_ellipse)?; + writer.write::<16, u16>(self.semimajor_axis_external_ellipse)?; + writer.write::<16, u16>(self.semimajor_axis_external_ellipse)?; + writer.write_bit(self.overlap_process_option)?; Ok(()) } @@ -471,8 +471,8 @@ impl ProcessingWindow { impl ActualTargetedSystemDisplay { fn parse(reader: &mut BsIoSliceReader) -> Result { let mut atsd = ActualTargetedSystemDisplay { - num_rows_targeted_system_display_actual_peak_luminance: reader.get_n(5)?, - num_cols_targeted_system_display_actual_peak_luminance: reader.get_n(5)?, + num_rows_targeted_system_display_actual_peak_luminance: reader.read::<5, u8>()?, + num_cols_targeted_system_display_actual_peak_luminance: reader.read::<5, u8>()?, ..Default::default() }; @@ -483,7 +483,8 @@ impl ActualTargetedSystemDisplay { for i in 0..atsd.num_rows_targeted_system_display_actual_peak_luminance as usize { for j in 0..atsd.num_cols_targeted_system_display_actual_peak_luminance as usize { - atsd.targeted_system_display_actual_peak_luminance[i][j] = reader.get_n(4)?; + atsd.targeted_system_display_actual_peak_luminance[i][j] = + reader.read::<4, u8>()?; } } @@ -491,18 +492,12 @@ impl ActualTargetedSystemDisplay { } fn encode(&self, writer: &mut BitstreamIoWriter) -> Result<()> { - writer.write_n( - &self.num_rows_targeted_system_display_actual_peak_luminance, - 5, - )?; - writer.write_n( - &self.num_cols_targeted_system_display_actual_peak_luminance, - 5, - )?; + writer.write::<5, u8>(self.num_rows_targeted_system_display_actual_peak_luminance)?; + writer.write::<5, u8>(self.num_cols_targeted_system_display_actual_peak_luminance)?; for i in 0..self.num_rows_targeted_system_display_actual_peak_luminance as usize { for j in 0..self.num_cols_targeted_system_display_actual_peak_luminance as usize { - writer.write_n(&self.targeted_system_display_actual_peak_luminance[i][j], 4)?; + writer.write::<4, u8>(self.targeted_system_display_actual_peak_luminance[i][j])?; } } @@ -513,8 +508,8 @@ impl ActualTargetedSystemDisplay { impl ActualMasteringDisplay { fn parse(reader: &mut BsIoSliceReader) -> Result { let mut amd = ActualMasteringDisplay { - num_rows_mastering_display_actual_peak_luminance: reader.get_n(5)?, - num_cols_mastering_display_actual_peak_luminanc: reader.get_n(5)?, + num_rows_mastering_display_actual_peak_luminance: reader.read::<5, u8>()?, + num_cols_mastering_display_actual_peak_luminanc: reader.read::<5, u8>()?, ..Default::default() }; @@ -525,7 +520,7 @@ impl ActualMasteringDisplay { for i in 0..amd.num_rows_mastering_display_actual_peak_luminance as usize { for j in 0..amd.num_cols_mastering_display_actual_peak_luminanc as usize { - amd.mastering_display_actual_peak_luminance[i][j] = reader.get_n(4)?; + amd.mastering_display_actual_peak_luminance[i][j] = reader.read::<4, u8>()?; } } @@ -533,12 +528,12 @@ impl ActualMasteringDisplay { } fn encode(&self, writer: &mut BitstreamIoWriter) -> Result<()> { - writer.write_n(&self.num_rows_mastering_display_actual_peak_luminance, 5)?; - writer.write_n(&self.num_cols_mastering_display_actual_peak_luminanc, 5)?; + writer.write::<5, u8>(self.num_rows_mastering_display_actual_peak_luminance)?; + writer.write::<5, u8>(self.num_cols_mastering_display_actual_peak_luminanc)?; for i in 0..self.num_rows_mastering_display_actual_peak_luminance as usize { for j in 0..self.num_cols_mastering_display_actual_peak_luminanc as usize { - writer.write_n(&self.mastering_display_actual_peak_luminance[i][j], 4)?; + writer.write::<4, u8>(self.mastering_display_actual_peak_luminance[i][j])?; } } @@ -549,9 +544,9 @@ impl ActualMasteringDisplay { impl BezierCurve { fn parse(reader: &mut BsIoSliceReader) -> Result { let mut bc = BezierCurve { - knee_point_x: reader.get_n(12)?, - knee_point_y: reader.get_n(12)?, - num_bezier_curve_anchors: reader.get_n(4)?, + knee_point_x: reader.read::<12, u16>()?, + knee_point_y: reader.read::<12, u16>()?, + num_bezier_curve_anchors: reader.read::<4, u8>()?, ..Default::default() }; @@ -559,7 +554,7 @@ impl BezierCurve { .resize(bc.num_bezier_curve_anchors as usize, 0); for i in 0..bc.num_bezier_curve_anchors as usize { - bc.bezier_curve_anchors[i] = reader.get_n(10)?; + bc.bezier_curve_anchors[i] = reader.read::<10, u16>()?; } Ok(bc) @@ -597,12 +592,12 @@ impl BezierCurve { } fn encode(&self, writer: &mut BitstreamIoWriter) -> Result<()> { - writer.write_n(&self.knee_point_x, 12)?; - writer.write_n(&self.knee_point_y, 12)?; - writer.write_n(&self.num_bezier_curve_anchors, 4)?; + writer.write::<12, u16>(self.knee_point_x)?; + writer.write::<12, u16>(self.knee_point_y)?; + writer.write::<4, u8>(self.num_bezier_curve_anchors)?; - for e in &self.bezier_curve_anchors { - writer.write_n(e, 10)?; + for e in self.bezier_curve_anchors.iter().copied() { + writer.write::<10, u16>(e)?; } Ok(()) diff --git a/src/core/mod.rs b/src/core/mod.rs index a62699e..b0aee8d 100644 --- a/src/core/mod.rs +++ b/src/core/mod.rs @@ -57,16 +57,16 @@ pub fn st2094_40_sei_msg(sei_payload: &[u8], validate: bool) -> Result(8).unwrap(); - let itu_t_t35_terminal_provider_code = reader.get_n::(16).unwrap(); - let itu_t_t35_terminal_provider_oriented_code = reader.get_n::(16).unwrap(); + let itu_t_t35_country_code = reader.read::<8, u8>().unwrap(); + let itu_t_t35_terminal_provider_code = reader.read::<16, u16>().unwrap(); + let itu_t_t35_terminal_provider_oriented_code = reader.read::<16, u16>().unwrap(); if itu_t_t35_country_code == 0xB5 && itu_t_t35_terminal_provider_code == 0x003C && itu_t_t35_terminal_provider_oriented_code == 0x0001 { - let application_identifier = reader.get_n::(8).unwrap(); - let application_version = reader.get_n::(8).unwrap(); + let application_identifier = reader.read::<8, u8>().unwrap(); + let application_version = reader.read::<8, u8>().unwrap(); let valid_version = if validate { application_version == 1