-
Notifications
You must be signed in to change notification settings - Fork 208
JetKVM Advanced, CGO-based 2-way Audio Support #718
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pennycoders
wants to merge
230
commits into
jetkvm:dev
Choose a base branch
from
pennycoders:feat/audio-support
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+15,197
β131
Open
Changes from 193 commits
Commits
Show all changes
230 commits
Select commit
Hold shift + click to select a range
466271d
feat: add usb gadget audio config
lqs cc83e41
feat: add audio encoder
lqs 9d12dd1
fix: audio rtp timestamp
lqs c529c90
Merge remote-tracking branch 'upstream/dev' into feat/usb-audio
lqs 28a8fa0
feat: use native jetkvm-audio
lqs 4f47d62
[#315] Updates: add advanced audio support
pennycoders 09ac8c5
Cleanup / Fix: linting errors, code formatting, etc
pennycoders 575abb7
[WIP] Updates: audio input support
pennycoders 3dc196b
Fix: lint errors
pennycoders 3444607
Improvements, Fixes: reduce mouse lag when audio is on
pennycoders 612dca3
Fix: eslint errors
pennycoders 3158ca5
Finetuning: further perf. tunning
pennycoders 520c218
Efficiency Improvements: Switch to websocket-based communication for β¦
pennycoders 638d08c
Fix: goimports
pennycoders a208715
Fix: goimports
pennycoders 3c1f96d
Separation of Concerns: Move the audio-related code into the audio inβ¦
pennycoders 94ca3fa
Stability: prevent race condition when clicking on Mic Start, Stop buβ¦
pennycoders 5f905e7
Fix: session duplication detection, dev_deploy.sh script
pennycoders 4b693b4
perf(usbgadget): reduce input latency by pre-opening HID files and reβ¦
pennycoders a9a92c5
feat(rpc): optimize input handling with direct path for performance
pennycoders 4688f9e
perf(build): add ARM Cortex-A7 optimization flags for audio builds
pennycoders 1f2c462
build(audio): update cgo LDFLAGS to use env vars for library versions
pennycoders c51bdc5
Fix: linter errors
pennycoders 767311e
[WIP] Fix: performance issues
pennycoders 629cdf5
perf(audio): optimize audio processing with batching and atomic operaβ¦
pennycoders 7e83015
refactor(vite.config): fix local ui development proxy
adamshiervani 423d577
[WIP] Performance Enhancements: move audion processing into a separatβ¦
pennycoders d5295d0
Updates: golangci-lint workflow
pennycoders a976ce1
Updates: set LDFLAGS and CFLAGS for the lint steps
pennycoders dee8a0b
Fix: golangci-lint
pennycoders 071129a
Fix: use absolute path for caching
pennycoders 4875c24
Fix: Lint env vars
pennycoders de0077a
Fix: always save cache
pennycoders 73e8897
Improvement: Automatically invalidate cache
pennycoders b3373e5
Improvement: use cache save/restore actions
pennycoders bd4fbef
Tweak: steps order
pennycoders 7129bd5
Fix: workflow indentation
pennycoders 671d875
Fix: literal /home/vscode in cache paths
pennycoders aeb7a12
Fix: linting errors
pennycoders 62d4ec2
Fix: audio subprocess handling
pennycoders 3c1e9b8
Fix: audio subprocess handling, avg atency audio metric
pennycoders 1e1677b
Fix: linter errors
pennycoders e360348
Fix: linter errors
pennycoders 6ecb829
Fix: linter errors
pennycoders 97bcb3c
Fix: linter errors
pennycoders 32055f5
Cleanup: remove polling fallback for /audio/mute status
pennycoders 0ed8425
Improvements, Fixes: enhanced audio metrics (including prometheus forβ¦
pennycoders 0e1c896
Fix: go lint errors
pennycoders 5e28a6c
feat(audio): add system memory endpoint and process metrics monitoring
pennycoders 2082b1a
refactor(audio): rename audio-server flag to audio-output-server for β¦
pennycoders 879ea5e
Fix: fix audio input by reverting change
pennycoders 38ad145
[WIP] Updates: audio output & input subprocesses memory & cpu usage
pennycoders 692f7dd
[WIP] Updates: audio output & input subprocesses memory & cpu usage
pennycoders ddc2f90
[WIP] Updates: audio output & input subprocesses memory & cpu usage
pennycoders 27a999c
[WIP] Updates: audio output & input subprocesses memory & cpu usage
pennycoders 76174f4
refactor(audio): improve performance and simplify code structure
pennycoders 88679cd
refactor(audio): improve process monitoring with dynamic clock ticks
pennycoders 57b7baf
feat(audio): implement comprehensive audio optimization system
pennycoders 785a68d
chore(ui)/package upgrades (#724)
IDisposable f729675
Added crontab scheduler for jiggler (#316)
jackislanding a3b2b46
Lint fix from last merge. (#733)
IDisposable 199cca8
Update mount list for new Debian 13 release (#739)
kt315ua 0651fae
feat: improve custom jiggler settings and add timezone support (#742)
adamshiervani 9d40263
fix: compiler error (#743)
IDisposable 70e49a1
chore: ensure that rpc messages get processed sequentially and avoid β¦
alexballas 5188717
fix: useJsonRpc "any" issue
IDisposable e0f7b1d
Merge branch 'dev' into feat/audio-support
pennycoders a9a1082
Docs: Updated documentation
pennycoders 3a28105
Fix: linting errors
pennycoders 44a35aa
feat(audio): add socket buffer configuration and monitoring
pennycoders bc53523
Fix: USB Gadgets update
pennycoders 2afe2ca
Fix: USB Gadgets updates
pennycoders f24443e
Improvement: automatically resume audio when the audio usb gadget is β¦
pennycoders 1a0377b
Improvement: automatically resume audio when the audio usb gadget is β¦
pennycoders 6f02870
fix(audio): improve audio device state management
pennycoders c89d678
refactor(audio): remove unused context from audio input manager
pennycoders d1c192b
feat(audio): add real-time USB audio config updates and validation
pennycoders 7ec583e
refactor(audio): centralize config and remove debug logs
pennycoders 35a666e
refactor(audio): centralize configuration constants in audio module
pennycoders 9e343b3
refactor(audio): move hardcoded values to config for better flexibility
pennycoders c521692
refactor(audio): centralize config constants and update usage
pennycoders 60a6e6c
refactor(audio): centralize config values and improve documentation
pennycoders 34f8829
refactor(audio): improve configuration handling and validation
pennycoders 6898a6e
feat(audio): add granular metrics collection and comprehensive error β¦
pennycoders fff2d2b
feat(usbgadget): add nil checks for gadget operations and cleanup tests
pennycoders e4ed2b8
refactor(audio): rename audio components for clarity and add validation
pennycoders b1f85db
feat(audio): enhance error handling and add device health monitoring
pennycoders 6a68e23
refactor(audio): improve error handling and memory management
pennycoders e8d12ba
style(audio): fix formatting and add missing newlines
pennycoders 8fb0b9f
feat(audio): centralize audio configuration and improve debugging
pennycoders dc2db8e
feat(audio): add comprehensive input validation and base components
pennycoders 50e0419
refactor(audio): standardize log levels and messages across components
pennycoders cb20956
refactor(AudioControlPopover): simplify audio metrics display and remβ¦
pennycoders 6355dd8
feat(audio): add pool hit tracking and optimize buffer management
pennycoders 9dda569
feat(audio): enhance validation and add logging standards
pennycoders e3e7b89
style(audio): fix formatting and add missing newlines
pennycoders 25363ce
perf(audio): replace frame validation with ultra-fast version
pennycoders cdf0b20
perf(audio): optimize validation and buffer pool with caching
pennycoders ece36ce
feat(audio): optimize validation and add dynamic opus encoder configuβ¦
pennycoders 3efe2f2
refactor(audio/validation): improve frame data validation with specifβ¦
pennycoders 758bbbf
feat(audio): add latency histogram metrics collection and visualization
pennycoders f9adb43
feat(audio): add latency metrics collection for input and output
pennycoders fe45719
refactor(audio): remove granular latency metrics and histogram functiβ¦
pennycoders 0d4176c
refactor(audio): centralize metrics collection with new registry
pennycoders 9c0aff4
feat(audio): implement audio input supervisor and opus config management
pennycoders 858859e
perf(audio): optimize audio config for RV1106 SoC compatibility
pennycoders 6adcc26
feat(audio): add goroutine cache cleanup and process reuse
pennycoders fd76083
feat(audio): implement dynamic Opus config updates and optimize audioβ¦
pennycoders f51f6da
fix(audio): improve logging for Opus config and subprocess status
pennycoders dfbf924
fix(audio): improve audio initialization and process termination handβ¦
pennycoders 950ca2b
fix(audio): improve process termination handling in input supervisor
pennycoders 8110be6
feat(audio): optimize audio processing with batch processing and goroβ¦
pennycoders d7b67e5
feat(audio): implement goroutine pool for task processing
pennycoders f9781f1
perf(audio): increase worker pool sizes and optimize worker management
pennycoders 1b7198a
feat(audio): implement sized buffer pool and config caching
pennycoders 2ab90e7
feat(audio): add validation cache fields to AudioConfigCache
pennycoders 9f1dd28
feat(audio): add batch write processing and improve thread management
pennycoders 370178e
fix(audio): remove arm architecture restriction from cgo build tags
pennycoders 5353c1c
perf(audio): optimize opus decode-write with separate buffers
pennycoders a557987
perf(audio): optimize hotpath by removing redundant checks and logging
pennycoders a741f05
fix(audio): add proper locking for config cache updates
pennycoders 260f62e
perf(audio): optimize audio processing paths and reduce overhead
pennycoders 5c55da0
perf(audio): optimize metrics collection and logging overhead
pennycoders ca365f1
feat(audio): add subprocess pre-warming to reduce activation latency
pennycoders 2568660
feat(metrics): add configurable metrics collection and performance opβ¦
pennycoders a3702da
Cleanup: reduce PR complexity
pennycoders 5dc0432
[WIP] Cleanup: decrease PR complexity
pennycoders 476a245
[WIP] Cleanup: Reduce PR complexity
pennycoders b497444
[WIP] Cleanup: reduce PR complexity
pennycoders b63404c
[WIP] Cleanup: reduce PR complexity
pennycoders 6f15fdf
perf(build): update ARM optimization flags for better compatibility
pennycoders cdf6731
[WIP] Performance Updates:
pennycoders c404596
Audio Input resiliency. Make sure the IPC client always recovers
pennycoders c1cc8dd
refactor(audio): remove audio input subprocess pre-warming feature
pennycoders 4075057
[WIP] Cleanup: Reduce PR Complexity
pennycoders 463f34e
Fix: audio output not working due to too agressive timeout
pennycoders 1a0c7a8
refactor(audio): rename latency config fields for clarity
pennycoders fcd07b2
perf(audio): enhance buffer pool performance with adaptive caching
pennycoders 9cb976a
Merge branch 'dev' into feat/audio-support
pennycoders d907267
Updates: merge 'dev' intu 'feat/audio-support'
pennycoders 0a38451
feat(audio): add audio handlers and refactor session management
pennycoders 2c2f2d4
Refactoring: Move most audio business logic into the audio package
pennycoders e45bec4
Fix: currently selected preset not coming from the API
pennycoders 1584373
Fix: quality not updating in the Audio Control Popover when changed
pennycoders d3bbe1b
refactor(audio): standardize component logging names and cleanup
pennycoders 8a189ba
[WIP] Updates / FIles reorg: reduce PR complexity
pennycoders 947b4f9
[WIP] Updates: Reduce PR complexity
pennycoders d3e2b2d
fix(audio): correct mute state broadcast in audio control service
pennycoders 5a0dce9
Fix: Microphone & audio on page load, PID field parsing in audio inpβ¦
pennycoders b267348
feat(audio): add microphone stop endpoint and improve mute handling
pennycoders e27f1cf
fix(AudioControlPopover): swap mute button theme and labels for clariβ¦
pennycoders 7d39a27
[WIP] Improvements: improve Audio Input Activation / Deactivation proβ¦
pennycoders e3b4bb2
refactor(audio): replace mute functionality with start/stop for microβ¦
pennycoders bfdbbdc
[WIP] Simplification
pennycoders 96a6a0f
refactor(audio): improve process management and error handling
pennycoders a2a87b4
refactor(audio): move channel and process management to base supervisor
pennycoders 6890f17
refactor(audio): consolidate supervision logic into base implementation
pennycoders a6913bf
perf(audio): make refCount operations atomic and optimize frame pooling
pennycoders 323d258
refactor(audio): improve memory management with atomic operations andβ¦
pennycoders df58e04
feat(audio): implement zero-copy batch processing with reference counβ¦
pennycoders 219c972
Merge branch 'dev' into feat/audio-support
pennycoders 91f9dba
feat(audio): improve audio quality handling and recovery mechanisms
pennycoders 1d1658d
refactor(audio): replace GetConfig() calls with direct Config access
pennycoders 6f10010
refactor(audio): remove redundant config variable assignments
pennycoders 8cf0b63
perf(audio): increase buffer sizes and timeouts for quality change buβ¦
pennycoders 0893eb8
feat(audio): improve reliability with graceful degradation and async β¦
pennycoders f873b50
fix(audio): adjust congestion and CPU thresholds for single-core system
pennycoders 89e68f5
[WIP] Change playback latency spikes on Audio Output Quality changes
pennycoders aa21b4b
Updates: increase congestion treshold multiplier
pennycoders 845eade
[WIP] Fix: Audio Latency issues: move audio to a dedicated media stream
pennycoders 0ebfc76
[WIP] Cleanup: PR SImplification
pennycoders 00e5148
[WIP] Cleanup: reduce PR complexity
pennycoders f71d180
[WIP] Cleanup: reduce PR complexity
pennycoders 2bc7e50
[WIP] Cleanup, Refactor: Reduce PR complexity, common IPC layer
pennycoders 3c6184d
[Milestone] Improvement: In-flight audio output quality update
pennycoders bda92b4
[Milestone] Fix: in-flight audio input quality updates
pennycoders a5d1ef1
refactor(audio): optimize performance and simplify code
pennycoders 5d4f4d8
UX Improvement: keep Mic state accross page refreshes
pennycoders 0f2aa9a
feat(audio): improve socket handling and validation performance
pennycoders 02acee0
Fix: Audio Output Enable / Disable
pennycoders eca1e6a
Cleanup: implement PR Review suggestions
pennycoders 8cff7d6
pr-optimizations,perf(input): optimize JSON-RPC input handling with uβ¦
pennycoders 2a81497
Improvements: input performance
pennycoders d4c10ae
Updates: use uint64 since we won't have negative numbers here
pennycoders f48c3fe
[WIP] Updates, Cleanup: use uint64 for non-negative values
pennycoders e0b6e61
Updates: defer the mutex unlock
pennycoders eab0261
Cleanup: remove devLog with calculated param
pennycoders 5da357b
[WIP] Cleanup: Remove hid optimization code, as it is out of scope
pennycoders 0e76023
Improvement (Maintainability): Make all C code more manageable by movβ¦
pennycoders 15baf93
Merge branch 'dev' into feat/audio-support
pennycoders 9e43921
Fix: add accidentally removed test file back, devcontainer build procβ¦
pennycoders 49d62f8
Cleanup: only set PKG_CONFIG_PATH once
pennycoders 557aa58
Cleanup: Simplify Makefile by exporting all needed env vars at the top
pennycoders 0eaad6b
Merge branch 'dev' into feat/audio-support
pennycoders b6858ab
[WIP] Cleanup / Refinement: PR Review
pennycoders c8630e7
[WIP] Cleanpup: Remove audio input quality settings to reduce complexity
pennycoders e296949
Fix: indentation
pennycoders 9d6bd99
[WIP] Cleanpup: Remove audio input quality settings to reduce complexity
pennycoders cca1fe7
[WIP] Cleanpup: Remove audio input quality settings to reduce complexity
pennycoders ca38ebe
[WIP] Fix: add commented code back
pennycoders b040b8f
[WIP] Optimizations: Optimize audio system
pennycoders ebb7960
Fix: pcm_snd_wait won't work when device is busy
pennycoders 7ab4a0e
[WIP] Simplification: PR Simplification
pennycoders 996016b
[WIP] Cleanup: remove unnecessary complexity
pennycoders e894470
[WIP] Cleanup: function naming
pennycoders fb98c4e
[WIP] Maintainability: Add debug / trace logs to make it easy to debuβ¦
pennycoders 5e257b3
[WIP] Add debug logging throughout the audio system
pennycoders 0944c88
[WIP] Maintainability Improvement: Add debug logging throughout the aβ¦
pennycoders 1f88dab
[WIP] Maintainability Improvement: Add debug logging throughout the aβ¦
pennycoders b23cc50
[WIP] Cleanup: removed redundant code
pennycoders a8b58b5
[WIP] Cleanup: removed redundant code
pennycoders 647eca4
Cleanup: removed redundant code, comments, etc.
pennycoders 7ffb9e1
Cleanup: removed redundant code, comments, etc.
pennycoders 8a3f1b6
Cleanup, Optimizations: Small aaudio optimizations
pennycoders 2f7bf55
Cleanup, Optimizations: Small aaudio optimizations
pennycoders 26e7180
Cleanup, Optimizations: Small aaudio optimizations
pennycoders a5fb3bf
Fix: remove misplaced const
pennycoders caa0a60
Cleanup: removed redundant code
pennycoders 0027001
Cleanup: removed redundant code
pennycoders 55bcfb5
Consistency: keep if block multi-line
pennycoders eca3c52
PR Review Optimization: As recommended, use ternary operators insteadβ¦
pennycoders 140a803
perf(audio): add ARM NEON SIMD optimizations for audio processing
pennycoders 17c3c4b
PR Cleanup: reset .golangci.yml to its original state
pennycoders 3e24a3c
Merge branch 'dev' into feat/audio-support
pennycoders 1dbc6c9
[WIP] Cleanup: PR cleanup
pennycoders 432303e
[WIP] Cleanup: PR Cleanup
pennycoders f2edfa6
[WIP] Cleanup: PR Cleanup
pennycoders 8b86124
[WIP] Cleanup: PR Cleanup
pennycoders 6ee79b7
[WIP] Cleanup: PR Cleanup
pennycoders 274854b
[WIP] Cleanup: PR Cleanup
pennycoders File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,13 @@ | ||
bin/* | ||
static/* | ||
.vscode/ | ||
tmp/ | ||
.devcontainer/devcontainer-lock.json | ||
.idea | ||
.DS_Store | ||
*.log | ||
*.tmp | ||
*.code-workspace | ||
|
||
device-tests.tar.gz | ||
device-tests.tar.gz | ||
CLAUDE.md |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,7 @@ | ||
version: "2" | ||
run: | ||
build-tags: | ||
- nolint | ||
linters: | ||
enable: | ||
- forbidigo | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.