Commit Graph

31 Commits

Author SHA1 Message Date
@刘羡鱼 dae23a90b5 feat(auth): add OIDC-only member authentication (#686)
* feat(auth): add OIDC member authentication

* docs(auth): document OIDC member login

* fix(auth): address OAuth review feedback

* refactor(auth): move OAuth flow into member provider
2026-09-24 00:15:46 +02:00
Abdellatif Anaflous 73b9d71b0d fix(capture): accept a bare pipeline string in video pipelines entries (#701)
* fix(capture): accept a bare pipeline string in video pipelines entries

NEKO_CAPTURE_VIDEO_PIPELINES expects every entry to be a full pipeline config
object, but the singular capture.video.pipeline option trains people to write
the whole pipeline as a plain string, so a dict like {"high": "ximagesrc ...
! appsink"} failed to unmarshal, the error got reduced to a warn and neko fell
back to the default vp8 pipeline silently, also overriding a directly set
video codec

the json string hook decodes the env value into a generic map, so the shorthand
is restored in the mapstructure chain: a string value for an entry now becomes
VideoConfig{GstPipeline: ...}, the same shape the single pipeline option
produces, object entries are untouched

the new config test drives the production env flow (Init + Set) and fails on
master with the same two warnings the reporter saw

Fixes #689

* feat(capture): add shorthand support for pipeline entries as plain strings.

---------

Co-authored-by: Miroslav Šedivý <sedivy.miro@gmail.com>
2026-09-10 13:45:30 +02:00
ycsi b0f01cedea feat(capture): toggle mouse pointer via capture.video.show_pointer (#691)
* feat(capture): toggle mouse pointer via capture.video.show_pointer

- config: register capture.video.show_pointer config option
- config: default pointer to visible (ShowPointer: true) on the
hardcoded fallback pipeline, override applies only when the flag is
explicitly set, so per-pipeline YAML overrides stay untouched
- compose: document NEKO_CAPTURE_VIDEO_SHOW_POINTER example

* fix(capture): apply show_pointer to all pipelines

- capture: thread capture.video.show_pointer into broadcast and
  screencast gstreamer pipelines, previously hardcoded show-pointer=true
  and silently ignored the flag
- config: resolve capture.video.show_pointer once into
  Capture.VideoShowPointer so all pipeline builders share one value
- docs: document capture.video.show_pointer in configuration/capture.md,
  including its reach into broadcast and screencast, and regenerate
  help.txt/help.json
- compose: drop stray commented-out example, default compose file is
  not meant to list every option
2026-08-29 13:47:04 +02:00
Miroslav Šedivý baf21c1d97 feat: remove default configuration to prevend accidental override.
we used to have file neko.yaml with default configuration, but if we would add neko.yml the default configuration would still be read. so instead, default configuartion was moved to the sever itself and no file is distributed with it by defautl.
2026-08-15 15:36:06 +02:00
Miroslav Šedivý bce6c57b6a fix: update CORS handling to log warnings for wildcard usage and disable cors by default. (#674) 2026-08-05 16:28:42 +02:00
Budovi dfc41f73d6 Add support for H265 encoded streams (#648)
* Add H265 support

Adds H265 as a selectable video codec with software (x265enc), VAAPI
(vah265enc), and NVENC (nvh265enc) pipeline paths in both the legacy
pipeline builder and the RTPCodec definition.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Replace legacy vaapih264enc with vah264enc

The gstreamer-vaapi plugin suite (vaapih264enc) is superseded by the va
plugin (vah264enc) in gst-plugins-bad. Switch to it and update the
parameters accordingly: CBR instead of VBR for lower-latency streaming,
key-int-max instead of keyframe-period, and target-usage instead of
quality-level.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Unify keyframe interval to 60 frames for NVENC H264/H265 encoder paths

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-04 15:16:33 +02:00
Miroslav Šedivý db8452416b refactor: replace custom array search utility with slices.Contains for improved readability and performance. 2026-08-04 12:49:38 +02:00
Miroslav Šedivý e6239d6a51 feat: update video encoding to use nvautogpuh264enc for NVIDIA driver 590+ support. (#667) 2026-07-31 14:28:19 +02:00
Miroslav Šedivý baf6eee8a9 fix: prevent overriding video pipelines with legacy settings. (#666) 2026-07-31 14:28:06 +02:00
Miroslav Šedivý 2c124c506e Upgrade go dependencies (#644)
* update pion WebRTC from v3 to v4.

* update mapstructure dependency to use go-viper version.

* update go-chi dependency to v5.
2026-04-25 15:20:43 +02:00
Miroslav Šedivý a4f1cfbe0d refactor: standardize constant names and improve goroutine handling across multiple files. 2026-04-08 15:16:47 +02:00
Miroslav Šedivý ddd5ebfc2c change heartbeat interval from 120 to 10 seconds. #585 2025-09-24 21:00:55 +02:00
Miroslav Šedivý 5b9225f401 add hostname to broadcast variables. (#576) 2025-09-10 22:53:52 +02:00
Miroslav Šedivý 007b55a32b add link to docs in V2 configuration warning message. 2025-04-06 17:22:34 +02:00
Miroslav Šedivý 0e3bcedcd4 update config options naming, move scripts to own folder. 2025-04-05 18:24:23 +02:00
Miroslav Šedivý a75424d2f3 generate legacy pipelines when specifying codec. 2025-04-04 08:59:45 +02:00
Miroslav Šedivý 51bbad7650 rename package to github name. 2025-03-26 23:51:19 +01:00
Miroslav Šedivý 4eadf996ed enable legacy supprot if at least one legacy config entry is found. 2025-02-20 20:10:07 +01:00
Miroslav Šedivý 33580fe440 add v2 migration configuration docs. 2025-02-19 19:25:10 +01:00
Miroslav Šedivý a7287dca25 cookie add domain & path, change expiration to duration from seconds. 2025-02-17 19:33:52 +01:00
Miroslav Šedivý 004e893921 update agr descs. 2025-02-08 20:12:40 +01:00
Miroslav Šedivý 3082d3241b implement client heartbeat #460. 2024-12-30 13:41:22 +01:00
Miroslav Šedivý 063fa8821f fix legacy capture pipeline. 2024-09-08 23:26:34 +02:00
Miroslav Šedivý 373e9970f9 add legacy simulcast stream that shows pointer. 2024-09-07 21:13:40 +02:00
Miroslav Šedivý b3b31fba1f disable legacy mode if wanted. 2024-09-07 20:51:21 +02:00
Miroslav Šedivý 15e805c9b2 rename package. 2024-09-06 23:26:29 +02:00
Miroslav Šedivý 6a9cb24743 add V2: prefix to all config options. 2024-09-06 22:57:34 +02:00
Miroslav Šedivý 96ab1c53bb allow setting desktop / capture display separately. 2024-09-06 22:57:34 +02:00
Miroslav Šedivý e0a4b39cd5 add v2 compatible config. 2024-09-06 22:57:34 +02:00
Miroslav Šedivý b5c3f8d4a6 WIP: legacy config integration. 2024-09-06 22:57:34 +02:00
Miroslav Šedivý cfb423b13d move server to server directory. 2024-09-06 22:56:24 +02:00