Alessandro Ros and GitHub
3fef488eea
drop support for Debian Bullseye ( #6137 )
...
Bullseye reached EOL on 31st august 2026.
2026-08-27 09:50:42 +02:00
cf5cd38cf9
webrtc: fix deprecated webrtcICEServers parser for IPv6 hosts; ( #5932 )
...
strings.Split produces wrong part count when the host contains colons
(IPv6). SplitN(s, ";", 4) keeps the hostport token intact.
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-08-25 06:55:05 +00:00
Alessandro Ros and GitHub
3f2b3cd3f5
support setting read buffer size on macOS ( #6128 ) ( #6131 )
2026-08-25 06:19:31 +00:00
Hudson Cavazin and GitHub
ccf1b61e20
httpp: propagate Flush() through the response writer wrappers ( #6126 )
...
handlerLogger's responseRecorder and handlerWriteTimeout's writeTimeoutWriter
both wrap http.ResponseWriter but implement neither http.Flusher nor Unwrap().
Any handler that flushes mid-response has that flush silently dropped, and its
output only reaches the client when the handler returns.
That defeats the stated purpose of writeTimeoutWriter, whose own comment says it
exists so one can "write long responses, splitted in chunks, without causing
timeouts": the deadline is reset per Write(), but nothing ever leaves the buffer
until the end.
Found while adding a server-sent-events endpoint: events written and flushed at
t=0.4s only reached the client at t=2.2s, when the handler returned.
Adding Flush() plus Unwrap() (so http.ResponseController can reach through) fixes
both. The new test drives a real listener through both wrappers and reads while
the handler is still blocked, so it fails on the current code by hitting the read
deadline.
2026-08-24 14:40:43 +00:00
55d319abfc
webrtc: Register RTX for incoming video tracks ( #6125 )
...
webrtc.ConfigureNack() only wires up the NACK RTCP interceptor. pion
still needs an explicit RTX codec registered per media codec before it
can answer a publisher's retransmission offer with one, so
incomingVideoCodecs having none means NACK-triggered retransmission
can never actually happen for incoming video, no matter what the
publisher offers.
Fixes #5678
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-08-24 14:40:20 +00:00
bluenviron-bot and GitHub
7bf901ea9a
bump hls.js to v1.7.1 ( #6130 )
2026-08-23 12:28:04 +02:00
Alessandro Ros and GitHub
6c1463bbd8
docs: add YouTube and Twitch instructions ( #6133 )
2026-08-23 10:36:25 +02:00
3e09466c18
bump golangci-lint to 2.13.1 ( #6129 )
...
* bump golangci-lint to 2.13.1
* additional changes
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-08-22 16:57:28 +00:00
f6625b9e5f
build(deps): bump code.cloudfoundry.org/bytefmt from 0.85.0 to 0.86.0 ( #6127 )
...
Bumps [code.cloudfoundry.org/bytefmt](https://github.com/cloudfoundry/bytefmt ) from 0.85.0 to 0.86.0.
- [Release notes](https://github.com/cloudfoundry/bytefmt/releases )
- [Commits](https://github.com/cloudfoundry/bytefmt/compare/v0.85.0...v0.86.0 )
---
updated-dependencies:
- dependency-name: code.cloudfoundry.org/bytefmt
dependency-version: 0.86.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-22 07:02:07 +02:00
bluenviron-bot and GitHub
4d842abb1e
bump golangci-lint to 2.13.1 ( #6120 )
2026-08-21 16:59:00 +02:00
713cd76074
build(deps): bump github.com/stretchr/testify from 1.12.0 to 1.12.1 ( #6123 )
...
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify ) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/stretchr/testify/releases )
- [Commits](https://github.com/stretchr/testify/compare/v1.12.0...v1.12.1 )
---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
dependency-version: 1.12.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-21 07:02:34 +02:00
5c9014b022
build(deps): bump github.com/matthewhartstonge/argon2 ( #6124 )
...
Bumps [github.com/matthewhartstonge/argon2](https://github.com/matthewhartstonge/argon2 ) from 1.5.6 to 1.5.7.
- [Release notes](https://github.com/matthewhartstonge/argon2/releases )
- [Changelog](https://github.com/matthewhartstonge/argon2/blob/main/CHANGELOG.md )
- [Commits](https://github.com/matthewhartstonge/argon2/compare/v1.5.6...v1.5.7 )
---
updated-dependencies:
- dependency-name: github.com/matthewhartstonge/argon2
dependency-version: 1.5.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-21 07:02:28 +02:00
Alessandro Ros and GitHub
9934156a0f
use internal/core/VERSION as single source of truth to get version ( #6119 )
2026-08-19 20:40:50 +02:00
Alessandro Ros and GitHub
883194a19b
bump dependencies ( #6113 )
2026-08-18 11:53:43 +00:00
Alessandro Ros and GitHub
8ac6ba64c8
moq: support pulling streams from other servers ( #6111 )
2026-08-18 13:23:40 +02:00
Alessandro Ros and GitHub
31a054b79d
moq: impose maximum size on pending reordered bytes ( #6112 )
...
Decrease the maximum memory that clients can take by imposing a maximum
size of 100MB on the pending reordered bytes.
2026-08-18 12:49:38 +02:00
c59aac9c02
build(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.0 ( #6104 )
...
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify ) from 1.11.1 to 1.12.0.
- [Release notes](https://github.com/stretchr/testify/releases )
- [Commits](https://github.com/stretchr/testify/compare/v1.11.1...v1.12.0 )
---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
dependency-version: 1.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-18 12:42:59 +02:00
Alessandro Ros and GitHub
89e3060db0
api: redact password in responses ( #6110 )
...
passwords are not exposed anymore through the API. They can only be
set, not read.
2026-08-18 12:16:57 +02:00
Alessandro Ros and GitHub
f5bbf2bd8e
docs: prevent gaps in numbering ( #6109 )
2026-08-18 09:33:32 +00:00
Alessandro Ros and GitHub
5fb93cceaf
prevent again security warning about 'Zip Slip' in RPI camera downloader ( #6108 )
2026-08-18 07:49:58 +00:00
Alessandro Ros and GitHub
5d877b4512
moq: make /moq URL suffix optional ( #6107 )
...
In order to establish a MoQ session with WebTransport, a /moq suffix
was required until now. This is now optional in order to allow
connecting to the server with the standard MoQ URL format.
2026-08-18 07:43:51 +00:00
Alessandro Ros and GitHub
b80737c122
add destFingerprint parameter ( #6106 )
...
this allows to validate self-signed certificates of forward
destinations.
2026-08-18 09:35:37 +02:00
b39d0af7f1
build(deps): bump github.com/asticode/go-astits from 1.15.0 to 1.16.0 ( #6105 )
...
Bumps [github.com/asticode/go-astits](https://github.com/asticode/go-astits ) from 1.15.0 to 1.16.0.
- [Commits](https://github.com/asticode/go-astits/compare/v1.15.0...v1.16.0 )
---
updated-dependencies:
- dependency-name: github.com/asticode/go-astits
dependency-version: 1.16.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-18 07:02:52 +02:00
Alessandro Ros and GitHub
cca0f5a0cb
change default value of authHTTPExclude ( #6103 )
...
by default, do not exclude any action from HTTP authentication. Old
value triggered several security warnings.
2026-08-17 18:30:48 +02:00
Alessandro Ros and GitHub
a56c635f8e
fix deadlock when changing configuration through file and API ( #6077 ) ( #6101 )
...
When changing configuration in parallel by editing the configuration
file and calling the API, the server could get into a deadlock that
prevented any further action. This is fixed.
2026-08-17 11:14:01 +00:00
Alessandro Ros and GitHub
8657b48a03
srt: restore ability to run tests on most systems ( #6102 )
2026-08-17 12:26:44 +02:00
Alessandro Ros and GitHub
831ed9564b
webrtc: support forwarding streams ( #6099 )
2026-08-16 21:09:59 +02:00
Alessandro Ros and GitHub
c9f003f247
restore ability to run the server in a read-only file system ( #6098 )
...
This was temporarily lost after the introduction of the native MoQ QUIC
listener.
2026-08-16 16:03:37 +02:00
6a40b29538
srt: apply UDP read buffer size from configuration ( #6069 )
...
Use upstream datarhei/gosrt's ListenerControl config field
(datarhei/gosrt#144 ) to set SO_RCVBUF on the SRT listener's UDP socket.
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2026-08-16 13:27:57 +00:00
Alessandro Ros and GitHub
f89b0feb28
prevent security warning about "Zip Slip" in RPI camera downloader ( #6097 )
2026-08-16 11:51:15 +00:00
d5ef4b455b
build(deps): bump golang.org/x/net from 0.57.0 to 0.58.0 ( #6092 )
...
Bumps [golang.org/x/net](https://github.com/golang/net ) from 0.57.0 to 0.58.0.
- [Commits](https://github.com/golang/net/compare/v0.57.0...v0.58.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/net
dependency-version: 0.58.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-16 13:29:57 +02:00
Alessandro Ros and GitHub
8a327110ee
prevent security warning about "Zip Slip" in RPI camera downloader ( #6096 )
2026-08-16 11:17:03 +00:00
2e12e9df11
build(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 ( #6093 )
...
Bumps [golang.org/x/crypto](https://github.com/golang/crypto ) from 0.54.0 to 0.55.0.
- [Commits](https://github.com/golang/crypto/compare/v0.54.0...v0.55.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.55.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-16 13:12:28 +02:00
Alessandro Ros and GitHub
550bb297dc
fix race condition during sub-stream creation ( #6075 ) ( #6095 )
...
When a stream with always-available turned on switches from offline to
online, or from a publisher to another, the reader mutex was not
acquired during writing of codec parameters. This is now fixed.
2026-08-16 11:05:50 +00:00
Alessandro Ros and GitHub
309257925e
document payload requirements ( #6094 )
2026-08-16 10:22:31 +00:00
Alessandro Ros and GitHub
53acffacb4
hls: stop using cookies with plain HTTP ( #6089 )
...
in case of plain HTTP, fall back to query parameters, which are safer than
HTTP cookies because they are not shared between different
pages/domains, although they are visible in the URL.
2026-08-16 10:20:51 +00:00
Alessandro Ros and GitHub
ee2ff01704
hls: unlock the session-in-query+iOS combination ( #6088 )
...
this was previously blocked because the session in query was meant to
be dynamic, therefore incompatible with static playlists required by
iOS. It is not anymore, so we can support that.
2026-08-16 10:11:33 +00:00
Alessandro Ros and GitHub
4f78c3f2d6
docs: suggest using playsinline in video tags ( #6091 )
2026-08-16 10:03:16 +00:00
Alessandro Ros and GitHub
ef6a74455b
hls: prefer hls.js on iOS too ( #6090 )
...
In the embedded HLS reader, use hls.js on iOS, that was previously
disabled due to compatibility issues that should have been solved.
2026-08-16 11:57:13 +02:00
Alessandro Ros and GitHub
337acacd60
moq: limit maximum amount of published tracks ( #6087 )
...
this prevents clients from consuming an excessive amount of memory.
2026-08-15 21:10:53 +00:00
Alessandro Ros and GitHub
679b2b9532
impose a minimum value to clock rate of always-available tracks ( #6086 )
...
Clock rates below 10 caused the emission of empty samples. Fix the
issue by imposing a minimum value of 8khz, that rises to 22khz in case
of AAC.
2026-08-15 17:08:49 +00:00
Alessandro Ros and GitHub
f29816fe50
moq: do not accept empty payloads ( #6085 )
2026-08-15 16:56:35 +00:00
Alessandro Ros and GitHub
02e060721d
remove useless JPEG checks from recorder ( #6083 )
...
MJPEG frames are already validated before reaching the recorder,
there's no need to validate them twice.
2026-08-15 17:38:01 +02:00
Alessandro Ros and GitHub
78081d71d5
rpi: prevent invalid MJPEG sizes ( #6080 )
...
width and height of MJPEG frames must be multiple of 8 and less than
2048, otherwise they cannot be routed with RTP/RTSP.
2026-08-15 16:27:41 +02:00
c990fad680
build(deps): bump code.cloudfoundry.org/bytefmt from 0.84.0 to 0.85.0 ( #6076 )
...
Bumps [code.cloudfoundry.org/bytefmt](https://github.com/cloudfoundry/bytefmt ) from 0.84.0 to 0.85.0.
- [Release notes](https://github.com/cloudfoundry/bytefmt/releases )
- [Commits](https://github.com/cloudfoundry/bytefmt/compare/v0.84.0...v0.85.0 )
---
updated-dependencies:
- dependency-name: code.cloudfoundry.org/bytefmt
dependency-version: 0.85.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-15 07:00:18 +02:00
Alessandro Ros and GitHub
145381e81d
rtmp: inform about authentication failures ( #5657 ) ( #6072 )
...
Reply with NetStream.Play.Failed or NetStream.Publish.Unauthorized when
a client is not authorized to play or publish. This makes clients like
OBS to stop recreating the connection in case of authentication
failures.
2026-08-13 09:05:39 +00:00
20048e7c11
build(deps): bump github.com/alecthomas/kong from 1.16.0 to 1.16.1 ( #6070 )
...
Bumps [github.com/alecthomas/kong](https://github.com/alecthomas/kong ) from 1.16.0 to 1.16.1.
- [Commits](https://github.com/alecthomas/kong/compare/v1.16.0...v1.16.1 )
---
updated-dependencies:
- dependency-name: github.com/alecthomas/kong
dependency-version: 1.16.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-13 07:00:33 +02:00
bluenviron-bot and GitHub
c11e995bb4
bump hls.js to v1.7.0 ( #6071 )
2026-08-13 07:00:28 +02:00
Alessandro Ros and GitHub
b86f02c227
restore datarhei/gosrt ( #6068 )
2026-08-12 10:10:23 +00:00
8ce023fd70
build(deps): bump github.com/pion/ice/v4 from 4.4.0 to 4.4.1 ( #6066 )
...
Bumps [github.com/pion/ice/v4](https://github.com/pion/ice ) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/pion/ice/releases )
- [Commits](https://github.com/pion/ice/compare/v4.4.0...v4.4.1 )
---
updated-dependencies:
- dependency-name: github.com/pion/ice/v4
dependency-version: 4.4.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 07:01:14 +02:00