From c04bb3025320cf8cd75ecf00ab8cacb39ff81843 Mon Sep 17 00:00:00 2001 From: Samson <16504129+sagudev@users.noreply.github.com> Date: Fri, 1 Mar 2024 08:51:59 +0100 Subject: [PATCH] Update gstreamer to 0.22 (#417) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update gstreamer to 0.22 * changes for https://github.com/sdroege/gstreamer-rs/commit/4957921cfa32f516c7c40798183235090fce8f1a * glib * more gstreamer changes * Apply suggestions from code review Co-authored-by: Sebastian Dröge --------- Co-authored-by: Sebastian Dröge --- Cargo.lock | 285 ++++++++++++---------- Cargo.toml | 35 +-- backends/gstreamer/Cargo.toml | 9 +- backends/gstreamer/datachannel.rs | 2 +- backends/gstreamer/lib.rs | 3 +- backends/gstreamer/media_stream.rs | 2 +- backends/gstreamer/media_stream_source.rs | 4 +- backends/gstreamer/registry_scanner.rs | 12 +- backends/gstreamer/render-android/lib.rs | 10 +- backends/gstreamer/render-unix/Cargo.toml | 4 +- backends/gstreamer/render-unix/lib.rs | 11 +- backends/gstreamer/source.rs | 6 +- 12 files changed, 205 insertions(+), 178 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3bd96659..0279bfa7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -202,7 +202,7 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" dependencies = [ - "smallvec 1.10.0", + "smallvec 1.13.1", "target-lexicon", ] @@ -789,15 +789,15 @@ checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793" [[package]] name = "gio-sys" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", - "winapi 0.3.9", + "windows-sys 0.52.0", ] [[package]] @@ -842,9 +842,9 @@ dependencies = [ [[package]] name = "glib" -version = "0.18.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cf801b6f7829fa76db37449ab67c9c98a2b1bf21076d9113225621e61a0fa6" +checksum = "ab9e86540b5d8402e905ad4ce7d6aa544092131ab564f3102175af176b90a053" dependencies = [ "bitflags 2.4.0", "futures-channel", @@ -858,30 +858,28 @@ dependencies = [ "gobject-sys", "libc", "memchr", - "once_cell", - "smallvec 1.10.0", + "smallvec 1.13.1", "thiserror", ] [[package]] name = "glib-macros" -version = "0.18.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5" +checksum = "0f5897ca27a83e4cdc7b4666850bade0a2e73e17689aabafcc9acddad9d823b8" dependencies = [ "heck", "proc-macro-crate", - "proc-macro-error", "proc-macro2 1.0.64", "quote 1.0.29", - "syn 2.0.25", + "syn 2.0.32", ] [[package]] name = "glib-sys" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4" dependencies = [ "libc", "system-deps", @@ -969,9 +967,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979" dependencies = [ "glib-sys", "libc", @@ -980,9 +978,9 @@ dependencies = [ [[package]] name = "gstreamer" -version = "0.21.2" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed97f98d186e63e49079b26af1a1b73e70ab7a2f450eb46a136f2bffc2bf12d5" +checksum = "48a5e10c539f8b594c50f6cd1bd1cd07785e06d701a077bff397ad211bc92e88" dependencies = [ "cfg-if 1.0.0", "futures-channel", @@ -995,19 +993,19 @@ dependencies = [ "muldiv", "num-integer", "num-rational", + "once_cell", "option-operations", "paste", "pin-project-lite", - "pretty-hex", - "smallvec 1.10.0", + "smallvec 1.13.1", "thiserror", ] [[package]] name = "gstreamer-app" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16bc8090a8806193237e7b6531ee429ff6e39686425f5c3eb06dfa75875390fb" +checksum = "50184e88d3462a796a5924fb329839c102b22f9383c1636323fa4ef5255dea92" dependencies = [ "futures-core", "futures-sink", @@ -1020,9 +1018,9 @@ dependencies = [ [[package]] name = "gstreamer-app-sys" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aea07f07a3f17278e6998390ecaea127e476f0af0360c2d83d96e6d3a97fb75e" +checksum = "6771c0939f286fb261525494a0aad29435b37e802284756bab24afe3bbca7476" dependencies = [ "glib-sys", "gstreamer-base-sys", @@ -1033,9 +1031,9 @@ dependencies = [ [[package]] name = "gstreamer-audio" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36d1678eacb7677c1ffdcf220ada416b5fb68e87c33b77319f14bba169fbe3fc" +checksum = "e7529f913cb6cbf1305ebc58ace01391cf9bb5a833810cf6e7c09e9a37d130f2" dependencies = [ "cfg-if 1.0.0", "glib", @@ -1043,13 +1041,15 @@ dependencies = [ "gstreamer-audio-sys", "gstreamer-base", "libc", + "once_cell", + "smallvec 1.13.1", ] [[package]] name = "gstreamer-audio-sys" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bd94ae8b177377855b38c3d809c686526786cdb771e6d68510509634b955d1" +checksum = "34d92a1e2a915874f70f0a33c3ea4589bc6b66a138b6ec8bb6acedf49bdec2c3" dependencies = [ "glib-sys", "gobject-sys", @@ -1061,9 +1061,9 @@ dependencies = [ [[package]] name = "gstreamer-base" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb150b6904a49052237fede7cc2e6479df6ced5043d95e6af8134bc141a3167f" +checksum = "514c71195b53c7eced4842b66ca9149833e41cf6a1d949e45e2ca4a4fa929850" dependencies = [ "atomic_refcell", "cfg-if 1.0.0", @@ -1075,9 +1075,9 @@ dependencies = [ [[package]] name = "gstreamer-base-sys" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ca701f9078fe115b29b24c80910b577f9cb5b039182f050dbadf5933594b64" +checksum = "286591e0f85bbda1adf9bab6f21d015acd9ca0a4d4acb61da65e3d0487e23c4e" dependencies = [ "glib-sys", "gobject-sys", @@ -1088,9 +1088,9 @@ dependencies = [ [[package]] name = "gstreamer-gl" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ecfb91128263c160448a915a15e430cfdc69317b1b087316222e0693bb51b90" +checksum = "7d21c0c5fbf74018a0254b3ab77bca0a5b2c0f002bcfd910c09113ae90a95d98" dependencies = [ "glib", "gstreamer", @@ -1098,13 +1098,14 @@ dependencies = [ "gstreamer-gl-sys", "gstreamer-video", "libc", + "once_cell", ] [[package]] name = "gstreamer-gl-egl" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a173ab223aa3c46d5f2be02b494c2086096fa3e932e2953d6392fcc07da5dc82" +checksum = "dfde7bf67f5f7c87e1ff29cdeea4918530d677b51e3f4847121ada44f1fab139" dependencies = [ "glib", "gstreamer", @@ -1115,9 +1116,9 @@ dependencies = [ [[package]] name = "gstreamer-gl-egl-sys" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3c88b6f01c8a5f9f7ba39f9805ac7026fd269fccb04d2a4b488bb928a8e954" +checksum = "7c9ec3c03af5d4ed3e58ddbca4eea13e90e01b88e37f6c0689b26e05168eb7bf" dependencies = [ "glib-sys", "gstreamer-gl-sys", @@ -1127,9 +1128,9 @@ dependencies = [ [[package]] name = "gstreamer-gl-sys" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d580971b3c99a667c9739812d499e6c5cadbb92873f984cd0d1d0b4e7346f1cd" +checksum = "61d1e3b9b02abc23835e9d770f2bd705b67a50406ea37e963b4526a77c6a7cd8" dependencies = [ "glib-sys", "gobject-sys", @@ -1142,9 +1143,9 @@ dependencies = [ [[package]] name = "gstreamer-gl-wayland" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec276a2f2d022d09f7655d7b0a4b92439a856261a077f770b02388a8556e7ff" +checksum = "f9fbfe3d0c2469023b73df8408a4b19daaf7bd30141e9fc67e4ab63d41db5ee2" dependencies = [ "glib", "gstreamer", @@ -1155,9 +1156,9 @@ dependencies = [ [[package]] name = "gstreamer-gl-wayland-sys" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917b86f16faa53a34501252fff39f09290ba1796b73e6be07d23d97f484412a1" +checksum = "83bc79debd1ef92795a3bd411986b19dbfe2527424f396e460aacc59d5fab4f1" dependencies = [ "glib-sys", "gstreamer-gl-sys", @@ -1167,9 +1168,9 @@ dependencies = [ [[package]] name = "gstreamer-gl-x11" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7021b9e32c9d2c2830898cfdb60f8b1e7fea560b7cd3e221b9fad01a32af67d" +checksum = "42ed82941c84668d89dbf81f220083422268c22ec6ab4991806649ed6758cec8" dependencies = [ "glib", "gstreamer", @@ -1180,9 +1181,9 @@ dependencies = [ [[package]] name = "gstreamer-gl-x11-sys" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c49aef03c7b9e159b5f4c557efe4a597437ea6e5e10f934ae8b214386c6ebcdc" +checksum = "54b59f2782f5e71e3ef5fd534598938966a4dc3911f2540807f7d13b586e4ed1" dependencies = [ "glib-sys", "gstreamer-gl-sys", @@ -1192,9 +1193,9 @@ dependencies = [ [[package]] name = "gstreamer-player" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276900527b2f8323c6ed97ab3ed42854bb169a993fb8cef946fb43d1e9097a66" +checksum = "5950d1d194935b27a0b2af99afe83dc9697149a1b55230f16c51eefe798c4a51" dependencies = [ "glib", "gstreamer", @@ -1205,9 +1206,9 @@ dependencies = [ [[package]] name = "gstreamer-player-sys" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ef4d00b43d0aa94e9a518e6ef4a4c504b4b855304a0a5f4ed1493d5e5ca66c" +checksum = "e0ff7af3d3c4692a36ce1c4695b2a3a6563d8e5724feded38def679bd755202f" dependencies = [ "glib-sys", "gobject-sys", @@ -1219,9 +1220,9 @@ dependencies = [ [[package]] name = "gstreamer-sdp" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87946f9c6fabb44a73fb0b3b3d611c7d4468f741dd8e4f9a3d54e1ab2a6a8b36" +checksum = "2f9aa459d119aa787efc18edcc591736e1e6cd488835825d1807532456ba2dbd" dependencies = [ "glib", "gstreamer", @@ -1230,9 +1231,9 @@ dependencies = [ [[package]] name = "gstreamer-sdp-sys" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006e4bdf4618c70a2cb440ca4adf1a4140fc118b1b314684903a48f0ef5e1da1" +checksum = "5d80dfc4811c67ca66586b4e470f85ab25aca4ea92bd2ba2665552c1dd0e5609" dependencies = [ "glib-sys", "gstreamer-sys", @@ -1242,9 +1243,9 @@ dependencies = [ [[package]] name = "gstreamer-sys" -version = "0.21.2" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "564cda782b3e6eed1b81cb4798a06794db56440fb05b422505be689f34ce3bc4" +checksum = "d5ddf526b3bf90ea627224c804f00b8bcb0452e3b447978b4d5092f8e8ff5918" dependencies = [ "glib-sys", "gobject-sys", @@ -1254,9 +1255,9 @@ dependencies = [ [[package]] name = "gstreamer-video" -version = "0.21.2" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e85b2a4d1d3b7a98ae03806c3ed5c2db89d6b37a5f138780b48de015d68715e5" +checksum = "5ab3f4045ddb92bf2b469f5db8825d4f5eb46e4beff661fc97f50bb4e2b2c626" dependencies = [ "cfg-if 1.0.0", "futures-channel", @@ -1265,14 +1266,15 @@ dependencies = [ "gstreamer-base", "gstreamer-video-sys", "libc", + "once_cell", "thiserror", ] [[package]] name = "gstreamer-video-sys" -version = "0.21.2" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302318d98e6b054501e485b6bb4ee20225823218f4a8660c182f115a33b16ee" +checksum = "c1ea7996ba44fbbf563aeeda96e24259efc9f06b407854d837ee58e260d7ba78" dependencies = [ "glib-sys", "gobject-sys", @@ -1284,9 +1286,9 @@ dependencies = [ [[package]] name = "gstreamer-webrtc" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7200f2eb49d609afcb3e064b1ba75cbd041012a1855ea921b222e772634ff370" +checksum = "8c4b120a15362865dedc4417ca605dd734f5699b75f42cfef08a9140dd333426" dependencies = [ "glib", "gstreamer", @@ -1297,9 +1299,9 @@ dependencies = [ [[package]] name = "gstreamer-webrtc-sys" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e32df9bf9d801e6f874de2476fd3dcf2a1ca9247e8979bd4de034a45fd399663" +checksum = "8968383c25abb00bdc434d21d92947654e3656503ccb24c8f1218cd96342c073" dependencies = [ "glib-sys", "gstreamer-sdp-sys", @@ -1415,9 +1417,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] @@ -1586,9 +1588,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memmap" @@ -1987,43 +1989,13 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "pretty-hex" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5" - [[package]] name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2 1.0.64", - "quote 1.0.29", - "syn 1.0.107", - "version_check 0.9.4", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "proc-macro2 1.0.64", - "quote 1.0.29", - "version_check 0.9.4", + "toml_edit", ] [[package]] @@ -2465,7 +2437,7 @@ checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" dependencies = [ "proc-macro2 1.0.64", "quote 1.0.29", - "syn 2.0.25", + "syn 2.0.32", ] [[package]] @@ -2516,7 +2488,7 @@ dependencies = [ "servo-media-player", "servo-media-streams", "servo-media-traits", - "smallvec 1.10.0", + "smallvec 1.13.1", "speexdsp-resampler", ] @@ -2716,9 +2688,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.10.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "smithay-client-toolkit" @@ -2771,9 +2743,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.25" +version = "2.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2" +checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2" dependencies = [ "proc-macro2 1.0.64", "quote 1.0.29", @@ -2850,7 +2822,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2 1.0.64", "quote 1.0.29", - "syn 2.0.25", + "syn 2.0.32", ] [[package]] @@ -2974,7 +2946,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.0", + "toml_edit", ] [[package]] @@ -2986,17 +2958,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_edit" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] - [[package]] name = "toml_edit" version = "0.21.0" @@ -3034,7 +2995,7 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" dependencies = [ - "version_check 0.1.5", + "version_check", ] [[package]] @@ -3125,12 +3086,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - [[package]] name = "void" version = "1.0.2" @@ -3248,7 +3203,7 @@ dependencies = [ "plane-split", "rayon", "sig", - "smallvec 1.10.0", + "smallvec 1.13.1", "svg_fmt", "time", "tracy-rs", @@ -3360,7 +3315,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -3384,7 +3339,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.4", ] [[package]] @@ -3402,6 +3366,21 @@ dependencies = [ "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows-targets" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +dependencies = [ + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.1" @@ -3414,6 +3393,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" + [[package]] name = "windows_aarch64_msvc" version = "0.42.1" @@ -3426,6 +3411,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" + [[package]] name = "windows_i686_gnu" version = "0.42.1" @@ -3438,6 +3429,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" + [[package]] name = "windows_i686_msvc" version = "0.42.1" @@ -3450,6 +3447,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" + [[package]] name = "windows_x86_64_gnu" version = "0.42.1" @@ -3462,6 +3465,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.1" @@ -3474,6 +3483,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" + [[package]] name = "windows_x86_64_msvc" version = "0.42.1" @@ -3486,6 +3501,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" + [[package]] name = "winit" version = "0.19.5" diff --git a/Cargo.toml b/Cargo.toml index 2febed0a..4f1e6562 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,28 +13,29 @@ members = [ "servo-media", "servo-media-derive", "streams", - "webrtc" + "webrtc", ] [workspace.dependencies] -glib = "0.18" -glib-sys = "0.18" -gst = { package = "gstreamer", version = "0.21" } -gst-app = { package = "gstreamer-app", version = "0.21" } -gst-audio = { package = "gstreamer-audio", version = "0.21" } -gst-base = { package = "gstreamer-base", version = "0.21" } -gst-gl = { package = "gstreamer-gl", version = "0.21" } -gst-player = { package = "gstreamer-player", version = "0.21" } -gst-sdp = { package = "gstreamer-sdp", version = "0.21" } -gst-video = { package = "gstreamer-video", version = "0.21" } -gst-webrtc = { package = "gstreamer-webrtc", version = "0.21", features = ["v1_18"] } -gstreamer-gl-egl = { version = "0.21" } -gstreamer-gl-wayland = { version = "0.21" } -gstreamer-gl-x11 = { version = "0.21" } -gstreamer-sys = "0.21" +glib = "0.19" +glib-sys = "0.19" +gst = { package = "gstreamer", version = "0.22" } +gst-app = { package = "gstreamer-app", version = "0.22" } +gst-audio = { package = "gstreamer-audio", version = "0.22" } +gst-base = { package = "gstreamer-base", version = "0.22" } +gst-gl = { package = "gstreamer-gl", version = "0.22" } +gst-player = { package = "gstreamer-player", version = "0.22" } +gst-sdp = { package = "gstreamer-sdp", version = "0.22" } +gst-video = { package = "gstreamer-video", version = "0.22" } +gst-webrtc = { package = "gstreamer-webrtc", version = "0.22", features = [ + "v1_18", +] } +gstreamer-gl-egl = { version = "0.22" } +gstreamer-gl-wayland = { version = "0.22" } +gstreamer-gl-x11 = { version = "0.22" } +gstreamer-sys = "0.22" ipc-channel = "0.18" [patch."https://github.com/servo/webrender"] webrender = { git = "https://github.com/jdm/webrender", branch = "crash-backtrace" } webrender_api = { git = "https://github.com/jdm/webrender", branch = "crash-backtrace" } - diff --git a/backends/gstreamer/Cargo.toml b/backends/gstreamer/Cargo.toml index 7a7982ee..72d3bbb1 100644 --- a/backends/gstreamer/Cargo.toml +++ b/backends/gstreamer/Cargo.toml @@ -11,8 +11,8 @@ path = "lib.rs" [dependencies] byte-slice-cast = "0.2" -glib = "0.18" -glib-sys = "0.18" +glib = { workspace = true } +glib-sys = { workspace = true } gst = { workspace = true } gst-app = { workspace = true } gst-audio = { workspace = true } @@ -37,7 +37,10 @@ servo-media-webrtc = { path = "../../webrtc" } url = "2.0" [target.'cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "netbsd", target_os = "openbsd"))'.dependencies] -servo-media-gstreamer-render-unix = { path = "render-unix", features = ["gl-egl", "gl-x11"] } +servo-media-gstreamer-render-unix = { path = "render-unix", features = [ + "gl-egl", + "gl-x11", +] } [target.'cfg(target_os = "android")'.dependencies] servo-media-gstreamer-render-android = { path = "render-android" } diff --git a/backends/gstreamer/datachannel.rs b/backends/gstreamer/datachannel.rs index 61957db8..6653f31d 100644 --- a/backends/gstreamer/datachannel.rs +++ b/backends/gstreamer/datachannel.rs @@ -1,4 +1,4 @@ -use glib::{ObjectExt, ToSendValue}; +use glib::prelude::*; use gst_webrtc::{WebRTCDataChannel, WebRTCDataChannelState}; use servo_media_webrtc::thread::InternalEvent; use servo_media_webrtc::WebRtcController as WebRtcThread; diff --git a/backends/gstreamer/lib.rs b/backends/gstreamer/lib.rs index de13dc3d..0f302956 100644 --- a/backends/gstreamer/lib.rs +++ b/backends/gstreamer/lib.rs @@ -13,13 +13,12 @@ mod source; pub mod webrtc; use device_monitor::GStreamerDeviceMonitor; -use glib::once_cell::sync::Lazy; use gst::prelude::*; use ipc_channel::ipc::IpcSender; use log::warn; use media_stream::GStreamerMediaStream; use mime::Mime; -use once_cell::sync::OnceCell; +use once_cell::sync::{Lazy, OnceCell}; use registry_scanner::GSTREAMER_REGISTRY_SCANNER; use servo_media::{Backend, BackendInit, SupportsMediaType}; use servo_media_audio::context::{AudioContext, AudioContextOptions}; diff --git a/backends/gstreamer/media_stream.rs b/backends/gstreamer/media_stream.rs index d8a3d794..4797e0bc 100644 --- a/backends/gstreamer/media_stream.rs +++ b/backends/gstreamer/media_stream.rs @@ -1,7 +1,7 @@ use super::BACKEND_BASE_TIME; -use glib::once_cell::sync::Lazy; use gst; use gst::prelude::*; +use once_cell::sync::Lazy; use servo_media_streams::registry::{ get_stream, register_stream, unregister_stream, MediaStreamId, }; diff --git a/backends/gstreamer/media_stream_source.rs b/backends/gstreamer/media_stream_source.rs index 2eb7d3df..5066ed3a 100644 --- a/backends/gstreamer/media_stream_source.rs +++ b/backends/gstreamer/media_stream_source.rs @@ -1,9 +1,9 @@ use crate::media_stream::{GStreamerMediaStream, RTP_CAPS_OPUS, RTP_CAPS_VP8}; -use glib::once_cell::sync::Lazy; use glib::subclass::prelude::*; use gst::prelude::*; use gst::subclass::prelude::*; use gst_base::UniqueFlowCombiner; +use once_cell::sync::Lazy; use servo_media_streams::{MediaStream, MediaStreamType}; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::{Arc, Mutex}; @@ -317,7 +317,7 @@ pub fn register_servo_media_stream_src() -> Result<(), glib::BoolError> { gst::Element::register( None, "servomediastreamsrc", - gst::Rank::None, + gst::Rank::NONE, ServoMediaStreamSrc::static_type(), ) } diff --git a/backends/gstreamer/registry_scanner.rs b/backends/gstreamer/registry_scanner.rs index 07ba5712..4d6e43e3 100644 --- a/backends/gstreamer/registry_scanner.rs +++ b/backends/gstreamer/registry_scanner.rs @@ -1,4 +1,4 @@ -use glib::once_cell::sync::Lazy; +use once_cell::sync::Lazy; use std::collections::HashSet; use std::str::FromStr; @@ -38,23 +38,23 @@ impl GStreamerRegistryScanner { fn initialize(&mut self) { let audio_decoder_factories = gst::ElementFactory::factories_with_type( gst::ElementFactoryType::DECODER | gst::ElementFactoryType::MEDIA_AUDIO, - gst::Rank::Marginal, + gst::Rank::MARGINAL, ); let audio_parser_factories = gst::ElementFactory::factories_with_type( gst::ElementFactoryType::PARSER | gst::ElementFactoryType::MEDIA_AUDIO, - gst::Rank::None, + gst::Rank::NONE, ); let video_decoder_factories = gst::ElementFactory::factories_with_type( gst::ElementFactoryType::DECODER | gst::ElementFactoryType::MEDIA_VIDEO, - gst::Rank::Marginal, + gst::Rank::MARGINAL, ); let video_parser_factories = gst::ElementFactory::factories_with_type( gst::ElementFactoryType::PARSER | gst::ElementFactoryType::MEDIA_VIDEO, - gst::Rank::Marginal, + gst::Rank::MARGINAL, ); let demux_factories = gst::ElementFactory::factories_with_type( gst::ElementFactoryType::DEMUXER, - gst::Rank::Marginal, + gst::Rank::MARGINAL, ); if has_element_for_media_type(&audio_decoder_factories, "audio/mpeg, mpegversion=(int)4") { diff --git a/backends/gstreamer/render-android/lib.rs b/backends/gstreamer/render-android/lib.rs index 9e62b679..ebd29211 100644 --- a/backends/gstreamer/render-android/lib.rs +++ b/backends/gstreamer/render-android/lib.rs @@ -15,14 +15,14 @@ use std::sync::{Arc, Mutex}; struct GStreamerBuffer { is_external_oes: bool, - frame: gst_video::VideoFrame, + frame: gst_gl::GLVideoFrame, } impl Buffer for GStreamerBuffer { fn to_vec(&self) -> Result { // packed formats are guaranteed to be in a single plane if self.frame.format() == gst_video::VideoFormat::Rgba { - let tex_id = self.frame.texture_id(0).ok_or_else(|| ())?; + let tex_id = self.frame.texture_id(0).map_err(|_| ())?; Ok(if self.is_external_oes { VideoFrameData::OESTexture(tex_id) } else { @@ -146,7 +146,7 @@ impl Render for RenderAndroid { } let frame = - gst_video::VideoFrame::from_buffer_readable_gl(buffer, &info).or_else(|_| Err(()))?; + gst_gl::GLVideoFrame::from_buffer_readable(buffer, &info).or_else(|_| Err(()))?; if self.gst_context.lock().unwrap().is_some() { if let Some(sync_meta) = frame.buffer().meta::() { @@ -192,7 +192,9 @@ impl Render for RenderAndroid { .name("servo-media-vsink") .property("sink", &appsink) .build() - .map_err(|error| PlayerError::Backend(format!("glupload creation failed: {error:?}")))?; + .map_err(|error| { + PlayerError::Backend(format!("glupload creation failed: {error:?}")) + })?; pipeline.set_property("video-sink", &vsinkbin); diff --git a/backends/gstreamer/render-unix/Cargo.toml b/backends/gstreamer/render-unix/Cargo.toml index 6f7cfdf9..227f4a75 100644 --- a/backends/gstreamer/render-unix/Cargo.toml +++ b/backends/gstreamer/render-unix/Cargo.toml @@ -15,12 +15,12 @@ name = "servo_media_gstreamer_render_unix" path = "lib.rs" [dependencies] -glib = "0.18" +glib = { workspace = true } gst = { workspace = true } gst-gl = { workspace = true } gstreamer-gl-egl = { workspace = true, optional = true } gstreamer-gl-x11 = { workspace = true, optional = true } gstreamer-gl-wayland = { workspace = true, optional = true } -gst-video = { package = "gstreamer-video", version = "0.21" } +gst-video = { workspace = true } sm-player = { package = "servo-media-player", path = "../../../player" } sm-gst-render = { package = "servo-media-gstreamer-render", path = "../render" } diff --git a/backends/gstreamer/render-unix/lib.rs b/backends/gstreamer/render-unix/lib.rs index 92959dd5..fc8d6926 100644 --- a/backends/gstreamer/render-unix/lib.rs +++ b/backends/gstreamer/render-unix/lib.rs @@ -18,14 +18,14 @@ use std::sync::{Arc, Mutex}; struct GStreamerBuffer { is_external_oes: bool, - frame: gst_video::VideoFrame, + frame: gst_gl::GLVideoFrame, } impl Buffer for GStreamerBuffer { fn to_vec(&self) -> Result { // packed formats are guaranteed to be in a single plane if self.frame.format() == gst_video::VideoFormat::Rgba { - let tex_id = self.frame.texture_id(0).ok_or(())?; + let tex_id = self.frame.texture_id(0).map_err(|_| ())?; Ok(if self.is_external_oes { VideoFrameData::OESTexture(tex_id) } else { @@ -191,8 +191,7 @@ impl Render for RenderUnix { .is_some(); let info = gst_video::VideoInfo::from_caps(caps).map_err(|_| ())?; - let frame = - gst_video::VideoFrame::from_buffer_readable_gl(buffer, &info).map_err(|_| ())?; + let frame = gst_gl::GLVideoFrame::from_buffer_readable(buffer, &info).map_err(|_| ())?; VideoFrame::new( info.width() as i32, @@ -218,7 +217,9 @@ impl Render for RenderUnix { let vsinkbin = gst::ElementFactory::make("glsinkbin") .name("servo-media-vsink") .build() - .map_err(|error| PlayerError::Backend(format!("glupload creation failed: {error:?}")))?; + .map_err(|error| { + PlayerError::Backend(format!("glupload creation failed: {error:?}")) + })?; let caps = gst::Caps::builder("video/x-raw") .features([gst_gl::CAPS_FEATURE_MEMORY_GL_MEMORY]) diff --git a/backends/gstreamer/source.rs b/backends/gstreamer/source.rs index f3756d86..87a39003 100644 --- a/backends/gstreamer/source.rs +++ b/backends/gstreamer/source.rs @@ -1,7 +1,7 @@ -use glib::once_cell::sync::Lazy; use glib::subclass::prelude::*; use gst::prelude::*; use gst::subclass::prelude::*; +use once_cell::sync::Lazy; use std::convert::TryFrom; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Mutex; @@ -242,7 +242,7 @@ mod imp { .expect("Could not create appsrc element"); let pad_templ = klass.pad_template("src").unwrap(); - let ghost_pad = gst::GhostPad::builder_from_template(&pad_templ).name("src") + let ghost_pad = gst::GhostPad::builder_from_template(&pad_templ) .query_function(|pad, parent, query| { ServoSrc::catch_panic_pad_function( parent, @@ -404,5 +404,5 @@ impl ServoSrc { // under the name "servosrc" for being able to instantiate it via e.g. // gst::ElementFactory::make(). pub fn register_servo_src() -> Result<(), glib::BoolError> { - gst::Element::register(None, "servosrc", gst::Rank::None, ServoSrc::static_type()) + gst::Element::register(None, "servosrc", gst::Rank::NONE, ServoSrc::static_type()) }