Repository navigation
Releases: wolfebase/broadwave
Release list
Broadwave 0.15.1
Added
- Server:
BROADWAVE_RESET_SIGNIN=1(or-reset-signin) turns device sign-in off at start, for a server whose admin devices are all lost. - Web: Settings › About shows whether the secure name is on, and why not when it is off.
- Releases are published on GitHub with their notes, so the update notice finds them.
- Web: press / to search from any page; on the guide it goes to the guide's search field.
Changed
- Apple TV: Back in the player goes to the guide with the channel still playing in its corner; Back again goes to the Apple TV home screen. With nothing playing, the first Back in the guide brings back the last channel once.
- Server: a reverse proxy at a public name (Nginx Proxy Manager, SWAG, Caddy, Traefik) now works like the Cloudflare tunnel: every request through it needs a paired device. A request by a public name, or that a proxy says came from outside the home network, counts as away from home. A device at home that opens a public name needs to be paired too; the server's address and
.localname stay open, and so does a Tailscale MagicDNS name (.ts.net) or Tailscale Serve used from the tailnet. Tailscale Funnel needs a paired device.
Fixed
- Apple TV: the server list starts on your server, not on the demo; with none found it starts on Enter an address and says what to check.
- Apple TV: the guide always opens on a channel, not on the Now button.
- Apple TV: Down in the player shows one overlay at a time, and Back leaves the player in one press.
- Apple TV: Info reads clearly over bright pictures; the time header's now mark no longer covers a time; card titles take two lines instead of being cut off.
- iPhone and iPad: Recordings keeps its Unwatched, Show and Sort choices; a recording's line reads "Today, 4:10 AM · 1h 15m"; pulling on Sports updates the scores; recording from Sports confirms at the bottom of the screen.
- Apple: the Home hero says Sports only over a real game.
- Web: the guide keeps its filter (Favorites, News, Sports…) when you leave it or reload.
- Web: Tomorrow and the other day buttons in the guide land where there are listings, not on an empty evening past the end of a short guide.
- Web: recordings play at the volume and mute you last chose, like live TV.
- Web: the search field has one focus ring around the whole field and a larger icon.
- Web: the guide's "Listings through" note starts at the visible edge after you scroll instead of being cut off, and a program you have nearly scrolled past no longer covers it.
- Web: keyboard focus rings are no longer cut off on the top tabs, the guide's filter buttons, and the Settings list on the TV layout.
- Device names with an apostrophe (like the default names of Apple devices) show correctly instead of as numbers.
- Setup says when it found no tuner, and puts Add by address and the likely reasons first.
- A guide with no listings says so and points to Settings › Guide; setup, Signal and labels fit playlist sources.
- Sports: sitcoms and dramas tagged with a sport, studio shows and wrestling are no longer shown as games, and an air date is never shown as a game's title.
- A server built from source no longer shows an update notice for an older release.
- A server in a bridged Docker container no longer asks for a secure name it can't serve.
- Quieter first-start log lines; the server's own browser is listed as This computer.
- Install docs: the apps are coming to the App Store; guide length is about 2 days free (14 with a listings plan); Compose asks for your time zone and defaults to user 1000; away from home leads with Sign in with Cloudflare.
Docker image: ghcr.io/wolfebase/broadwave:0.15.1
0.15.0
Added
- Sign in with Cloudflare. In Settings, Devices and away from home, sign in, pick your domain and a name, and Broadwave makes the tunnel and the address itself. Pasting a tunnel token still works under Advanced. The tunnel's secret is kept outside the catalog, so it is not in backups.
- A secure name on the home network. Each server gets its own HTTPS address with a trusted certificate, with nothing to install; the apps use it when it answers and the plain address when it doesn't.
BROADWAVE_DIRECT=0turns it off. - Low-latency live TV on Apple devices over the secure name: about 4 seconds behind live, and channels start in about 1.5 seconds when the frequency is already tuned.
- Apple TV: Down opens a channel strip with live pictures; Back keeps the channel playing in a corner of the guide; the transport bar shows the program's timeline; Info leads with the program; search shows results as you type; Recordings are poster shelves; Sports shows games only; Settings is a list of sections; a live Top Shelf; commercial breaks as chapters.
- iPhone and iPad: pause, back 10 s, Start over, and a timeline with a LIVE mark on live TV; controls that hide themselves; iPad controls over the picture; the guide looks ahead to Tonight and Tomorrow; tap a row to watch; search by show while you type; Settings split into this device and the server; a mini player with the picture and play/pause; haptics.
- Web: tap shows the controls on a phone and swipes change channel; Settings is split into sections with a searchable lineup; search groups by show; a 10-foot TV layout; Record series records a show on any channel it airs.
- AirPlay and Google Cast play away from home with a short-lived link.
Changed
- Channels you just watched come back in about a second: a tuner stays tuned 90 seconds after the last viewer leaves.
- Watching through the tunnel always uses adaptive quality.
- A channel with no signal says so in about 2 seconds the second time.
- Recordings cut short by a restart keep what they have and record the rest; a recording that fails partway tries again.
- A guide refresh writes every source at once, so a failing source can't empty the guide.
- Search reaches the whole guide, with up to six airings per show.
- Only tuners seen recently count when the schedule plans recordings.
Fixed
- Channels that list a sound track but never send it now play the picture without sound instead of not playing at all.
- Multiview's second picture starts in about 4 seconds instead of 13.
- Swiping a player panel closed no longer changes the channel.
- A tune that makes room by stopping an idle mosaic no longer closes the channel being asked for.
- Back to a page that was still starting watches again instead of waiting forever.
- Pairing codes and invites are stored with a server key that is not in backups.
0.12.0
Live captions, every sound track in one stream, Watch together, a choice of live delay, and the last hour of each tuned channel kept for Start over and recordings.
Added
- Live captions in the web player and in the iPhone and Apple TV players. Roll-up captions appear as they are typed, in step with the picture, and stay on through a break in the broadcast.
cturns them on and off on the web. - Switch between a channel's sound tracks (English, Spanish, described video) without restarting the picture, on the web, iPhone, iPad, and Apple TV. Every sound track rides in the one stream; set
BROADWAVE_ALTERNATES=0to carry only the main one. - Watch together in the browser: see who is watching the same channel, join or leave, and a pause, rewind, or seek moves everyone in the group.
- Live delay: Lowest, Balanced, or Stable, per room from the player's Options, with a default for each device in Settings. On iPhone, iPad, and Apple TV too.
- The server keeps the last hour of each tuned channel on disk while it is tuned, using at most half the free space and always leaving 4 GB. Record a show you are already watching and the recording starts from the beginning of the show. A series pass that finds its show already on, on a channel someone has been watching since it began, records it from the beginning. Settings can make it 30 minutes, 2 or 4 hours, or turn it off, and Diagnostics shows what each tuned channel holds.
- Channel changes are faster: the channel you just left stays warm for 20 seconds, and on Apple TV the channel the remote rests on in the Channels panel starts before you press. Diagnostics lists the last channel starts and how long each step took.
- Web player extras: a stats overlay (
i), keyboard help (?), last channel (L), typing a channel number, a sleep timer, volume memory, and theater mode (t). A TV remote can walk the guide, the player, and setup. - Apple TV info panels (Info, Channels, Stream), Record, Start over, and Multiview in the player's menu, and clickpad up and down to change channel. On iPhone, swipe to change channel and pinch to fill the screen.
- Download a finished recording from the web. A
.nfofile can be written beside each recording for Plex, Jellyfin, and Kodi. - Settings list how much space each show uses and what records next, and a conflict can record the later airing instead.
- A recording that finishes counts the signal damage it carries.
- Manage recordings, skip commercial breaks, and record one airing from the guide in the Apple apps.
- The web app installs as a standalone app.
Fixed
- Screens come back on their own after the server restarts, and the pictures that were playing come back first. A multiview tile keeps its picture across a restart, the sound tile gets its picture first, and a tile the picture budget turned away asks again.
- A channel that will not start says why in plain words, and a picture that stops tries again by itself.
- A web screen joining a room starts on the room's frame instead of catching up. Every encode of a channel dates the same broadcast frame the same way, so a TV and a browser on different streams stay together.
- The web player no longer trims its speed forever when it sits just outside the sync band, which dropped frames at Lowest delay.
- The player's Options panel no longer drops half the frames on a browser drawing without a graphics chip.
- A server with a GPU and a fast processor now checks the processor with the encode live TV actually runs. The old check timed a different encode, counted process startup, and read 2.3x on a machine that runs live TV at 3.1x, so live TV stayed on a GPU that Plex was saturating.
- An Apple TV that fell a second or more behind the others skipped every minute trying to catch up: a forward jump on Apple TV lands short. It now jumps past the others and pauses the exact difference, once, and if that misses twice it stops correcting and offers "Back in sync" instead of skipping.
- Apple TVs wait for the TV to finish switching to the channel's frame rate before lining up again.
- A channel's other sound tracks are found even when the first read of the broadcast starts in the middle of a packet.
- A page kept for Back no longer holds its tuner, and a tuner held for a flip back goes to the next channel when it is needed.
- HD encodes are tagged BT.709, so small tiles keep their colors.
- The container switches to
PUIDandPGIDsafely. - A page on another website can no longer change the server or replace its catalog through a browser open on your network. The web app and the Apple apps work as before.
- The server log no longer repeats a look around the house every 45 seconds.
0.11.6
Apple TVs keep playing through a garbled broadcast, and stay together from the start.
Fixed
- One damaged frame from the antenna could stop every Apple TV and iPhone on that channel until someone changed channels. The server now drops a frame whose timing is far off and keeps the rest.
- Apple TVs that joined a channel a browser had just started sat about a tenth of a second apart for the first few minutes. They now line up right away (with the next app update).
- The player shows a clear message when a channel loses its signal, the recordings folder can't be written, or a phone loses its connection, and plays again on its own when that's fixed.
- A recording that would cross the free-space reserve says how much space is left and how much Broadwave keeps.
0.11.5
Optional automatic updates that wait until nobody is watching or recording.
Added
- An optional updater for Docker Compose and Unraid keeps Broadwave on the newest release. It checks nightly at 03:30 and skips a night while someone is watching, a recording is running, or a recording starts within two hours. See "Automatic updates" in the README.
broadwave -update-checkreports whether the running server is busy, for any updater that can run a check first.
Changed
- The install section covers Docker Desktop, where the tuner address has to be entered by hand.
0.11.4
Multiview and single screens stop stalling at the live edge.
Fixed
- A multiview tile of a 60 frames-a-second channel could freeze for 15-20 seconds at a time. Its segments now stay short.
- A browser alone on a channel whose picture arrives late or unevenly stalled again and again near live. After a stall, that screen and multiview now step back from live, a little at a time, until the picture holds.
0.11.3
Several screens on one channel stay smooth and in step, on Apple TV and in the browser.
Fixed
- With several screens or a multiview on one broadcast, a live encode could decode damaged data for as long as it ran, so every screen on it stuttered. Each encode now starts on a whole picture, recovers when it falls behind, and the server logs when a reader lags.
- Apple TV playback hitched several times a second while it kept in step with other screens. It now changes speed rarely and by a fixed amount, and Apple TVs in a room lock together within seconds of joining.
- Screens now share a delay of 13 seconds instead of 10, the closest Apple TV can reliably play to live.
- On Apple TV the playback controls hide again, and the notice about a new device no longer covers the picture.
- The guide no longer lists a show twice.
- A playlist channel learns its real codecs from the stream and has a preview picture.
- The web player says when live TV cannot keep going, and setup actions stay on screen on a TV.
0.11.2
0.11.2
Sound and picture line up in every browser, and Safari plays live TV again.
Fixed
- In Chrome and other browsers the sound could play up to a second late. The server now places each track's start inside the stream itself, not only in a table that some browsers skip.
- Safari showed no picture on live TV. It plays now, and the sync between screens corrects Safari by seeking instead of changing its speed, which made it stall.
- A new screen no longer pauses and then jumps when it joins a channel.
Install
docker run -d --name broadwave --network host \
-v /path/to/config:/config \
-v /path/to/recordings:/config/work/recordings \
--device /dev/dri \
ghcr.io/wolfebase/broadwave:0.11.2Compose file: deploy/docker/compose.yaml (the image there is :latest). Unraid template: deploy/unraid/broadwave.xml.
0.10.0
0.10.0
The server times its own picture and sizes the stream to match. The apps can still find it when Bonjour is quiet.
Added
- At startup the server times a short 1080p60 encode. Diagnostics reports that speed and what this machine will send: the tallest picture, whether the selected tile stays at 60, and how many tiles fit. A slow machine gets a smaller picture. A copied broadcast is unchanged.
- The iPhone and Apple TV look for the server on the local network when Bonjour finds nothing. They follow a move to a new address only when the reply proves it is the same server.
- Diagnostics lists the channels that are on, and the recent log with passwords left out.
- The web home leads with program artwork.
Fixed
- A startup encode that runs past its deadline is stopped, including when a script keeps running under it.
Install
docker run -d --name broadwave --network host \
-v /path/to/config:/config \
-v /path/to/recordings:/config/work/recordings \
--device /dev/dri \
ghcr.io/wolfebase/broadwave:0.10.0Compose file: deploy/docker/compose.yaml (the image there is :latest). Unraid template: deploy/unraid/broadwave.xml.
0.9.1
0.9.1
Fixed
- Restoring a backup keeps playlist passwords.
- A sports key stays out of the log when a score request fails.
Install
docker run -d --name broadwave --network host \
-v /path/to/config:/config \
-v /path/to/recordings:/config/work/recordings \
--device /dev/dri \
ghcr.io/wolfebase/broadwave:0.9.1Compose file: deploy/docker/compose.yaml (the image there is :latest). Unraid template: deploy/unraid/broadwave.xml.