Could you try removing and recreating the lock file?
If there's gstreamer version u in the lock, and the pathc contains gstreamer version v, where u != v (even if it's semver-compatible), the patch won't be used.
Patch works as if you publish it to crates IO. Publishing new minor version does not affect you, if you already have a lockfile.
I always do "cargo clean; cargo update; cargo build" to try and ensure no hysteresis in the lock file, but I will have to admit I have tried deleting the lock file. I shall try that now.
I think patch works only in the root of workspace, though I am not sure. I don’t seem to have any additional advice, without looking at the project’s code.
Currently I am having to put untested changes into the mainline repository of GStreamer_Sys before being able to do any tests in my clone of the GStreamer_Rs repository.
It turns out that putting the patch section in the top-level project/workspace Cargo.toml instead of the subproject Cargo.toml does the needful. Thanks to Arvid E. Picciani and David Hewson on Twitter for pushing me in the right direction. Everything now seems to work and much progress can be made.