diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 732a179..52cce81 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,16 +12,16 @@ stages: variables: FDO_UPSTREAM_REPO: "dabrain34/GstPipelineStudio" - GNOME_RUNTIME_IMAGE: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-44' - WINDOWS_RUST_STABLE_IMAGE: "$CI_REGISTRY_IMAGE/windows:$GST_RS_IMG_TAG-main-$GST_RS_STABLE" - WINDOWS_RUST_STABLE_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows:$GST_RS_IMG_TAG-main-$GST_RS_STABLE" + GNOME_RUNTIME_IMAGE: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master" + WINDOWS_RUST_STABLE_IMAGE: "$CI_REGISTRY_IMAGE/windows:$GST_RS_WIN_IMG_TAG" + WINDOWS_RUST_STABLE_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows:$GST_RS_WIN_IMG_TAG" # Version and tag for our current container .fedora: variables: FDO_DISTRIBUTION_VERSION: "38" # Update this to trigger a container rebuild - FDO_DISTRIBUTION_TAG: "2023-08-25.0" + FDO_DISTRIBUTION_TAG: "2023-08-25.1" before_script: - source ./ci/env.sh - mkdir .cargo && echo -e "[net]\ngit-fetch-with-cli = true" > .cargo/config @@ -70,12 +70,12 @@ build-fedora-container: # # We also don't need a CONTEXT_DIR var as its also # hardcoded to be windows-docker/ - DOCKERFILE: 'ci/windows-docker/Dockerfile' - GST_UPSTREAM_BRANCH: '1.22' + DOCKERFILE: "ci/windows-docker/Dockerfile" + GST_UPSTREAM_BRANCH: "1.22" tags: - - 'windows' - - 'shell' - - '2022' + - "windows" + - "shell" + - "2022" script: # We need to pass an array and to resolve the env vars, so we can't use a variable: - $DOCKER_BUILD_ARGS = @("--build-arg", "DEFAULT_GST_BRANCH=$GST_UPSTREAM_BRANCH", "--build-arg", "RUST_VERSION=$RUST_VERSION") @@ -87,35 +87,37 @@ build-fedora-container: } windows rust docker stable: - extends: '.windows rust docker build' + extends: ".windows rust docker build" variables: RUST_IMAGE: !reference [variables, "WINDOWS_RUST_STABLE_IMAGE"] - RUST_UPSTREAM_IMAGE: !reference [variables, "WINDOWS_RUST_STABLE_UPSTREAM_IMAGE"] + RUST_UPSTREAM_IMAGE: + !reference [variables, "WINDOWS_RUST_STABLE_UPSTREAM_IMAGE"] RUST_VERSION: !reference [variables, "GST_RS_STABLE"] .msvc2019 build: stage: test tags: - - 'docker' - - 'windows' - - '2022' + - "docker" + - "windows" + - "2022" windows installer stable: needs: - - job: 'windows rust docker stable' + - job: "windows rust docker stable" artifacts: false image: "$WINDOWS_RUST_STABLE_IMAGE" - extends: '.msvc2019 build' + extends: ".msvc2019 build" script: + - rustc --version - git fetch --tags - "& ./ci/build_gps.ps1" - "& ./installer/wix/prepare_gstreamer.ps1" - "& ./installer/wix/build_installer.ps1" artifacts: - paths: - - installer/wix/*.msi - expire_in: 10 days - when: 'manual' + paths: + - installer/wix/*.msi + expire_in: 10 days + when: "manual" rustfmt-clippy: extends: @@ -130,15 +132,15 @@ rustfmt-clippy: - cargo clippy --color=always --all-targets -- -D warnings windows installer release: - extends: 'windows installer stable' + extends: "windows installer stable" stage: release only: - flatpak - tags artifacts: - paths: - - installer/wix/*.msi - when: 'always' + paths: + - installer/wix/*.msi + when: "always" test-stable: extends: @@ -204,8 +206,7 @@ flatpak: - .flatpak-builder/git/ - target/ - target_test/ - when: 'manual' - + when: "manual" macos installer stable: stage: test @@ -234,10 +235,10 @@ macos installer stable: - installer/**/GstPipelineStudio*.dmg - installer/**/GstPipelineStudio*.tar.gz expire_in: 14 days - when: 'manual' + when: "manual" macos installer release: - extends: 'macos installer stable' + extends: "macos installer stable" stage: release only: - flatpak @@ -247,5 +248,4 @@ macos installer release: paths: - installer/**/GstPipelineStudio*.dmg - installer/**/GstPipelineStudio*.tar.gz - when: 'always' - + when: "always" diff --git a/Cargo.lock b/Cargo.lock index 2f728e8..9321e33 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -72,6 +72,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + [[package]] name = "byteorder" version = "1.4.3" @@ -80,11 +86,11 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "cairo-rs" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871" +checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "cairo-sys-rs", "glib", "libc", @@ -94,9 +100,9 @@ dependencies = [ [[package]] name = "cairo-sys-rs" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e" +checksum = "bd4d115132e01c0165e3bf5f56aedee8980b0b96ede4eb000b693c05a8adb8ff" dependencies = [ "glib-sys", "libc", @@ -143,6 +149,12 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + [[package]] name = "error-chain" version = "0.10.0" @@ -170,7 +182,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.80", "synstructure", ] @@ -226,7 +238,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote", - "syn", + "syn 1.0.80", ] [[package]] @@ -254,11 +266,10 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf" +checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3" dependencies = [ - "bitflags 1.3.2", "gdk-pixbuf-sys", "gio", "glib", @@ -268,9 +279,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" dependencies = [ "gio-sys", "glib-sys", @@ -281,11 +292,10 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4887e17b6926db51f1e538d871a8b1f5ceb5dfa3bd0034dc42ec355b390d8f" +checksum = "6982d9815ed6ac95b0467b189e81f29dea26d08a732926ec113e65744ed3f96c" dependencies = [ - "bitflags 1.3.2", "cairo-rs", "gdk-pixbuf", "gdk4-sys", @@ -297,9 +307,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4993c019bf03d18137c00ddafb2b23e73f7cbb45ae244f52af2542a3f4a9452" +checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -312,6 +322,33 @@ dependencies = [ "system-deps", ] +[[package]] +name = "gdk4-win32" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe66650c41f64e41ada9f85c4bdb96e5549c669e594892240dfb147a63256057" +dependencies = [ + "gdk4", + "gdk4-win32-sys", + "gio", + "glib", + "libc", + "system-deps", +] + +[[package]] +name = "gdk4-win32-sys" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b5c187546cd3ad9f1787b46c66272d8fcdf8197bfe4f6e2647fe910c39e396d" +dependencies = [ + "gdk-pixbuf-sys", + "gdk4-sys", + "glib-sys", + "libc", + "system-deps", +] + [[package]] name = "gimli" version = "0.26.1" @@ -320,11 +357,10 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" [[package]] name = "gio" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1981edf8679d2f2c8ec3120015867f45aa0a1c2d5e3e129ca2f7dda174d3d2a9" +checksum = "7884cba6b1c5db1607d970cadf44b14a43913d42bc68766eea6a5e2fe0891524" dependencies = [ - "bitflags 1.3.2", "futures-channel", "futures-core", "futures-io", @@ -340,9 +376,9 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5d3076ecb86c8c3a672c9843d6232b3a344fb81d304d0ba1ac64b23343efa46" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" dependencies = [ "glib-sys", "gobject-sys", @@ -353,11 +389,11 @@ dependencies = [ [[package]] name = "glib" -version = "0.17.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91b429154ec5943185aeeaf79e646297567b6a056965f1e89da2657a0e23255b" +checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "futures-channel", "futures-core", "futures-executor", @@ -376,24 +412,23 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.17.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bc80ac951300ca288dd9ab3863743c37a608fb0e5ca12863495640ec6b781ab" +checksum = "179643c50bf28d20d2f6eacd2531a88f2f5d9747dd0b86b8af1e8bb5dd0de3c0" dependencies = [ - "anyhow", "heck 0.4.0", "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 2.0.29", ] [[package]] name = "glib-sys" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ddcb73fa8236277bedadaaadb76aef49c85d66340f83bece244f46c2d4f0e01" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" dependencies = [ "libc", "system-deps", @@ -401,9 +436,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a0155d388840c77d61b033b66ef4f9bc7f4133d83df83572d6b4fb234a3be7d" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" dependencies = [ "glib-sys", "libc", @@ -412,9 +447,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.17.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cf11565bb0e4dfc2f99d4775b6c329f0d40a2cff9c0066214d31a0e1b46256" +checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401" dependencies = [ "glib", "graphene-sys", @@ -423,9 +458,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf80a4849a8d9565410a8fec6fc3678e9c617f4ac7be182ca55ab75016e07af9" +checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59" dependencies = [ "glib-sys", "libc", @@ -435,11 +470,10 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "432f981e4ea9f0739a5731d8a649acb794a3a729d2254e559ce7d613b17caf95" +checksum = "cc25855255120f294d874acd6eaf4fbed7ce1cdc550e2d8415ea57fafbe816d5" dependencies = [ - "bitflags 1.3.2", "cairo-rs", "gdk4", "glib", @@ -451,9 +485,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "096cb59175b0915ebf69c05a45263c0c989bd8537b8f2169912d0de644ba6a76" +checksum = "e1ecf3a63bf1223d68f80f72cc896c4d8c80482fbce1c9a12c66d3de7290ee46" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -467,17 +501,18 @@ dependencies = [ [[package]] name = "gst-plugin-gtk4" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38df9956c32e9aa41df32cc624adc33397f73e8572d41016d9f31b2b875ccb" +checksum = "c3ee0132150ee059c35642b51c5d663eadb9fa4d21f83a56dd584b03c1c45ffd" dependencies = [ + "gdk4-win32", "gst-plugin-version-helper", "gstreamer", "gstreamer-base", "gstreamer-gl", "gstreamer-video", "gtk4", - "once_cell", + "windows-sys", ] [[package]] @@ -509,22 +544,21 @@ dependencies = [ [[package]] name = "gstreamer" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d73132d9be53e8317e92169e06aea63be6712210fa254b4f17b76f207bd44cf" +checksum = "f8cdb86791dc39a5443f7d08cf3e7ae9c88a94991aba620d177cb5804838201f" dependencies = [ - "bitflags 1.3.2", "cfg-if", "futures-channel", "futures-core", "futures-util", "glib", "gstreamer-sys", + "itertools", "libc", "muldiv", "num-integer", "num-rational", - "once_cell", "option-operations", "paste", "pretty-hex", @@ -534,12 +568,11 @@ dependencies = [ [[package]] name = "gstreamer-base" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5598bfedbff12675a6cddbe420b6a3ba5039c64aaf7df130db6339d09b634b0e" +checksum = "0fe38a6d5c1e516ce3fd6069e972a540d315448ed69fdadad739e6c6c6eb2a01" dependencies = [ "atomic_refcell", - "bitflags 1.3.2", "cfg-if", "glib", "gstreamer", @@ -549,9 +582,9 @@ dependencies = [ [[package]] name = "gstreamer-base-sys" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26114ed96f6668380f5a1554128159e98e06c3a7a8460f216d7cd6dce28f928c" +checksum = "88b9c029583ed61fa5258076a42df91732dc7f5582044ea7ee66a721641e6af4" dependencies = [ "glib-sys", "gobject-sys", @@ -562,25 +595,23 @@ dependencies = [ [[package]] name = "gstreamer-gl" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b82b83d18ad1c4d890694b4bedde170c748462a11f51a68428671bc1bf93e71e" +checksum = "e616c363a79424bae3623d85b5f71542ef5cad318da9fe4e887e78992a4239d3" dependencies = [ - "bitflags 1.3.2", "glib", "gstreamer", "gstreamer-base", "gstreamer-gl-sys", "gstreamer-video", "libc", - "once_cell", ] [[package]] name = "gstreamer-gl-sys" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f08af9ae5ca5aa01c4875346bb7e61310b75a9afc3607b52a6b73470be93bbc7" +checksum = "a5e3e2f33ecd2d4e410a63ccad18d0e3692dac69b9752286e66a006fa57c952d" dependencies = [ "glib-sys", "gobject-sys", @@ -593,9 +624,9 @@ dependencies = [ [[package]] name = "gstreamer-sys" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56fe047adef7d47dbafa8bc1340fddb53c325e16574763063702fc94b5786d2" +checksum = "a70e3a99118bcd1221f8a62d7a905bae5e5cc2cda678bb46bf3cd36e0f899d33" dependencies = [ "glib-sys", "gobject-sys", @@ -605,11 +636,10 @@ dependencies = [ [[package]] name = "gstreamer-video" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f74a5a277e91afde7f049174e6c84cfe670c7ae424a4a15ab309e60f25336f7" +checksum = "0db8adfc000cd58f8ece0fe6b4beb79e19e4a6135cfb81138fdb016b603f7d60" dependencies = [ - "bitflags 1.3.2", "cfg-if", "futures-channel", "glib", @@ -617,14 +647,13 @@ dependencies = [ "gstreamer-base", "gstreamer-video-sys", "libc", - "once_cell", ] [[package]] name = "gstreamer-video-sys" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ddb6112d438aac0004d2db6053a572f92b1c5e0e9d6ff6c71d9245f7f73e46" +checksum = "e0284250a09fa824b21df1a21967eef4a5d85b5e0c1e335ed2ba9b9be1424dae" dependencies = [ "glib-sys", "gobject-sys", @@ -636,11 +665,10 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.6.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73421200ad9c3919d0720779b345b05d31a6ce9998e74fc27012f12580822e46" +checksum = "a3b095b26f2a2df70be1805d3590eeb9d7a05ecb5be9649b82defc72dc56228c" dependencies = [ - "bitflags 1.3.2", "cairo-rs", "field-offset", "futures-channel", @@ -653,29 +681,28 @@ dependencies = [ "gtk4-macros", "gtk4-sys", "libc", - "once_cell", "pango", ] [[package]] name = "gtk4-macros" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4676c4f90d8b010e88cb4558f61f47d76d6f6b8e6f6b89e62640f443907f61" +checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f" dependencies = [ "anyhow", "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.80", ] [[package]] name = "gtk4-sys" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13cf3bc9559f71963c957eb639060b643e1276ae47b892ef6091d5bc15c3e1b" +checksum = "7b0bdde87c50317b4f355bcbb4a9c2c414ece1b7c824fb4ad4ba8f3bdb2c6603" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -716,6 +743,15 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -851,11 +887,10 @@ dependencies = [ [[package]] name = "pango" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243c048be90312220fb3bd578176eed8290568274a93c95040289d39349384bc" +checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1" dependencies = [ - "bitflags 1.3.2", "gio", "glib", "libc", @@ -865,9 +900,9 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" dependencies = [ "glib-sys", "gobject-sys", @@ -939,7 +974,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.80", "version_check", ] @@ -968,18 +1003,18 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.30" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] name = "quote" -version = "1.0.10" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -1085,7 +1120,7 @@ checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.80", ] [[package]] @@ -1157,6 +1192,17 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "syn" +version = "2.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -1165,7 +1211,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.80", "unicode-xid", ] @@ -1208,7 +1254,7 @@ checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.80", ] [[package]] @@ -1267,6 +1313,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" +[[package]] +name = "unicode-ident" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" + [[package]] name = "unicode-normalization" version = "0.1.19" @@ -1348,6 +1400,72 @@ 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", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "xml-rs" version = "0.6.1" diff --git a/Cargo.toml b/Cargo.toml index 84b3acf..a927f8a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,14 +2,14 @@ name = "gst_pipeline_studio" version = "0.3.0" edition = "2018" -rust-version = "1.67" +rust-version = "1.70.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -gtk = { version = "0.6.1", package = "gtk4" } -gst = { package = "gstreamer", version = "0.20" } -gst-plugin-gtk4 = { version = "0.10", optional=true } +gtk = { version = "0.7.2", package = "gtk4" } +gst = { package = "gstreamer", version = "0.21.0" } +gst-plugin-gtk4 = { version = "0.11.0", optional=true } anyhow = "1" log = "0.4.11" once_cell = "1.7.2" diff --git a/build-aux/org.freedesktop.dabrain34.GstPipelineStudio.Devel.json b/build-aux/org.freedesktop.dabrain34.GstPipelineStudio.Devel.json index 83508d4..6ba7243 100644 --- a/build-aux/org.freedesktop.dabrain34.GstPipelineStudio.Devel.json +++ b/build-aux/org.freedesktop.dabrain34.GstPipelineStudio.Devel.json @@ -1,7 +1,7 @@ { "app-id": "org.freedesktop.dabrain34.GstPipelineStudio.Devel", "runtime": "org.gnome.Platform", - "runtime-version": "44", + "runtime-version": "master", "sdk": "org.gnome.Sdk", "sdk-extensions": [ "org.freedesktop.Sdk.Extension.rust-stable" diff --git a/ci/images_template.yml b/ci/images_template.yml index 4ae3a5f..1381fa6 100644 --- a/ci/images_template.yml +++ b/ci/images_template.yml @@ -1,4 +1,4 @@ variables: - GST_RS_IMG_TAG: '2023-04-12.1' - GST_RS_STABLE: '1.67.0' - GST_RS_MSRV: '1.63.0' + GST_RS_WIN_IMG_TAG: "2023-08-31.0" + GST_RS_FDO_IMG_TAG: "2023-08-25.1" + GST_RS_STABLE: "1.70.0" diff --git a/ci/install-rust.sh b/ci/install-rust.sh index ec53d1b..64ee30d 100755 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -1,6 +1,6 @@ source ./ci/env.sh -RUSTUP_VERSION=1.23.1 +RUSTUP_VERSION=1.26.0 RUST_VERSION=$1 RUST_ARCH="x86_64-unknown-linux-gnu" diff --git a/ci/windows-docker/Dockerfile b/ci/windows-docker/Dockerfile index 9c5b95b..0d65a54 100644 --- a/ci/windows-docker/Dockerfile +++ b/ci/windows-docker/Dockerfile @@ -1,6 +1,6 @@ # escape=` -FROM "registry.freedesktop.org/gstreamer/gstreamer/amd64/windows:2023-03-20.0-main" +FROM "registry.freedesktop.org/gstreamer/gstreamer/amd64/windows:2023-08-24.0-main" # Make sure any failure in PowerShell is fatal ENV ErrorActionPreference='Stop' @@ -8,7 +8,6 @@ SHELL ["powershell","-NoLogo", "-NonInteractive", "-Command"] ARG DEFAULT_GST_BRANCH="1.22" ARG DEFAULT_GTK_BRANCH="4.8.2" -ARG DEFAULT_PANGO_BRANCH="1.50.14" ARG RUST_VERSION="invalid" RUN choco install -y pkgconfiglite nasm llvm @@ -17,8 +16,7 @@ RUN choco install -y pkgconfiglite nasm llvm RUN setx PATH '%PATH%;C:\Program Files\NASM;C:\gst-install\bin;c:\Program Files\gettext-iconv\bin' ENV PKG_CONFIG_PATH="C:\gst-install\lib\pkgconfig" -COPY install_pango.ps1 install_gst.ps1 install_gtk.ps1 C:\ -RUN C:\install_pango.ps1 +COPY install_gst.ps1 install_gtk.ps1 C:\ RUN C:\install_gst.ps1 RUN C:\install_gtk.ps1 diff --git a/src/app.rs b/src/app.rs index d9f2c0f..3a533c3 100644 --- a/src/app.rs +++ b/src/app.rs @@ -188,7 +188,7 @@ impl GPSApp { let app_weak = app.downgrade(); let timeout_id = glib::timeout_add_local(std::time::Duration::from_millis(500), move || { - let app = upgrade_weak!(app_weak, glib::Continue(false)); + let app = upgrade_weak!(app_weak, glib::ControlFlow::Break); let player = app.player.borrow(); let label: gtk::Label = app @@ -211,7 +211,7 @@ impl GPSApp { // Display the playing position in the gui. label.set_text(&position_desc); // Tell the callback to continue calling this closure. - glib::Continue(true) + glib::ControlFlow::Continue }); let timeout_id = RefCell::new(Some(timeout_id)); @@ -448,7 +448,7 @@ impl GPSApp { drawing_area_window.set_child(Some(&*self.graphview.borrow())); // Setup the logger to get messages into the TreeView - let (ready_tx, ready_rx) = glib::MainContext::channel(glib::PRIORITY_DEFAULT); + let (ready_tx, ready_rx) = glib::MainContext::channel(glib::Priority::DEFAULT); let app_weak = self.downgrade(); logger::init_logger( ready_tx, @@ -458,9 +458,9 @@ impl GPSApp { ); GPSUI::logger::setup_logger_list(self); let _ = ready_rx.attach(None, move |msg: String| { - let app = upgrade_weak!(app_weak, glib::Continue(false)); + let app = upgrade_weak!(app_weak, glib::ControlFlow::Break); GPSUI::logger::add_to_logger_list(&app, &msg); - glib::Continue(true) + glib::ControlFlow::Continue }); let window = &self.window; diff --git a/src/gps/player.rs b/src/gps/player.rs index 6ddd5ae..c692c85 100644 --- a/src/gps/player.rs +++ b/src/gps/player.rs @@ -121,10 +121,10 @@ impl Player { self.check_for_gtk4sink(pipeline.as_ref().unwrap()); // GPSApp is not Send(trait) ready , so we use a channel to exchange the given data with the main thread and use // GPSApp. - let (ready_tx, ready_rx) = glib::MainContext::channel(glib::PRIORITY_DEFAULT); + let (ready_tx, ready_rx) = glib::MainContext::channel(glib::Priority::DEFAULT); let player_weak = self.downgrade(); let _ = ready_rx.attach(None, move |element: gst::Element| { - let player = upgrade_weak!(player_weak, glib::Continue(false)); + let player = upgrade_weak!(player_weak, glib::ControlFlow::Break); let paintable = element.property::("paintable"); let n_sink = player.n_video_sink.get(); player @@ -134,7 +134,7 @@ impl Player { .expect("App should be available") .set_app_preview(&paintable, n_sink); player.n_video_sink.set(n_sink + 1); - glib::Continue(true) + glib::ControlFlow::Continue }); let bin = pipeline.unwrap().dynamic_cast::(); if let Ok(bin) = bin.as_ref() { @@ -180,10 +180,10 @@ impl Player { let bus = pipeline.bus().expect("Pipeline had no bus"); let pipeline_weak = self.downgrade(); - bus.add_watch_local(move |_bus, msg| { - let pipeline = upgrade_weak!(pipeline_weak, glib::Continue(false)); + let _ = bus.add_watch_local(move |_bus, msg| { + let pipeline = upgrade_weak!(pipeline_weak, glib::ControlFlow::Break); pipeline.on_pipeline_message(msg); - glib::Continue(true) + glib::ControlFlow::Continue })?; *self.pipeline.borrow_mut() = Some(pipeline); } @@ -529,15 +529,9 @@ impl Player { impl Drop for PlayerInner { fn drop(&mut self) { - // TODO: If a recording is currently running we would like to finish that first - // before quitting the pipeline and shutting down the pipeline. if let Some(pipeline) = self.pipeline.borrow().to_owned() { // We ignore any errors here let _ = pipeline.set_state(gst::State::Null); - - // Remove the message watch from the bus - let bus = pipeline.bus().expect("Pipeline had no bus"); - let _ = bus.remove_watch(); } } }