Implement Cast Streaming mirroring, DLNA casting, daemon+GUI, and breadd integration
Some checks failed
dev release / build (push) Failing after 12s
Some checks failed
dev release / build (push) Failing after 12s
Builds out the full v1 scope: a vendored+patched openscreen subset for low-latency Cast Streaming (Mirroring receiver 0F5096E8) alongside the existing Cast V2/HLS and new DLNA/AVTransport casting paths, breadcastd's Idle/Casting state machine with a private IPC socket, the breadcast GTK4 popup as a thin IPC client, and bread.cast.*/bread.command.cast.* breadd integration (device discovery, start/stop, mirroring lifecycle events). Also adds bakery/systemd/Forgejo CI packaging. Validated end-to-end against a real Chromecast/Google TV: negotiated Cast Streaming session, live pipeline playback, and daemon+GUI click-to-cast/ stop through the actual popup.
This commit is contained in:
parent
887c29002f
commit
8c745d18e0
283 changed files with 36788 additions and 0 deletions
63
breadcast-core/Cargo.toml
Normal file
63
breadcast-core/Cargo.toml
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
[package]
|
||||
name = "breadcast-core"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
authors.workspace = true
|
||||
description = "Shared, GTK-agnostic logic for breadcast: Chromecast + DLNA discovery/control, capture/encode/serve pipeline"
|
||||
|
||||
[dependencies]
|
||||
anyhow = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
mdns-sd = "0.20"
|
||||
rust_cast = { version = "0.21", features = ["thread_safe"] }
|
||||
ashpd = { version = "0.13", features = ["screencast"] }
|
||||
gstreamer = "0.25"
|
||||
gstreamer-app = "0.25"
|
||||
gstreamer-video = "0.25"
|
||||
tiny_http = "0.12"
|
||||
rupnp = "3.0.0"
|
||||
futures-util = "0.3.33"
|
||||
breadcast-caststream-sys = { path = "../breadcast-caststream-sys" }
|
||||
|
||||
[dev-dependencies]
|
||||
tracing-subscriber = { workspace = true }
|
||||
|
||||
[[example]]
|
||||
name = "discover"
|
||||
path = "src/examples/discover.rs"
|
||||
|
||||
[[example]]
|
||||
name = "cast_test"
|
||||
path = "src/examples/cast_test.rs"
|
||||
|
||||
[[example]]
|
||||
name = "capture_test"
|
||||
path = "src/examples/capture_test.rs"
|
||||
|
||||
[[example]]
|
||||
name = "video_test"
|
||||
path = "src/examples/video_test.rs"
|
||||
|
||||
[[example]]
|
||||
name = "mirror_test"
|
||||
path = "src/examples/mirror_test.rs"
|
||||
|
||||
[[example]]
|
||||
name = "apple_hls_test"
|
||||
path = "src/examples/apple_hls_test.rs"
|
||||
|
||||
[[example]]
|
||||
name = "dlna_discover"
|
||||
path = "src/examples/dlna_discover.rs"
|
||||
|
||||
[[example]]
|
||||
name = "dlna_mirror_test"
|
||||
path = "src/examples/dlna_mirror_test.rs"
|
||||
|
||||
[[example]]
|
||||
name = "cast_stream_test"
|
||||
path = "src/examples/cast_stream_test.rs"
|
||||
Loading…
Add table
Add a link
Reference in a new issue