Commit Graph

11 Commits

Author SHA1 Message Date
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
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ý e6239d6a51 feat: update video encoding to use nvautogpuh264enc for NVIDIA driver 590+ support. (#667) 2026-07-31 14:28:19 +02:00
Miroslav Šedivý 7b7c876775 update nvidia docs. 2025-09-16 19:59:55 +02:00
Miroslav Šedivý 5b9225f401 add hostname to broadcast variables. (#576) 2025-09-10 22:53:52 +02:00
Miroslav Šedivý b783a9adbe docs: add overview of available encoders. 2025-04-05 22:37:56 +02:00
Miroslav Šedivý 81c259cdc9 docs: add nvidis gpu examples. #502 2025-04-05 21:45:19 +02:00
Miroslav Šedivý 3a8a5c30ef docs: use ConfigurationTab that allows switching between yaml, env and cmd. 2025-04-05 18:25:04 +02:00
Miroslav Šedivý 9f480f5581 update docs with more deeplinking. 2025-03-26 22:46:11 +01:00
Miroslav Šedivý 5e04c31222 fix links on webpage. 2025-03-22 23:02:57 +01:00