Repository navigation
Releases: devopvoid/webrtc-java
Releases · devopvoid/webrtc-java
Release list
Release v0.20.0
What's Changed
Features
- Decode VP9 spatial layers with VA-API by @devopvoid in #388
- Encode H.264 and H.265 temporal layers with VA-API by @devopvoid in #381
- Encode VP9 temporal layers with VA-API by @devopvoid in #380
- Encode AV1 temporal layers with VA-API by @devopvoid in #379
- Encode AV1 with VA-API on Linux by @devopvoid in #377
- Decode AV1 with VA-API on Linux by @devopvoid in #376
- Decode H.264 with VA-API on Linux by @devopvoid in #375
- Encode VP9 with VA-API on Linux without turning it on by @devopvoid in #374
- Decode H.265 with VA-API on Linux by @devopvoid in #372
- Let the audio codecs of a factory be limited and ordered by @devopvoid in #340
- Report receiver source changes and audio packet infos by @devopvoid in #366
- Send encoded frames through RTP sender injectors by @devopvoid in #365
- List the hardware codecs of the hardware video codec factories by @devopvoid in #359
- Decode H.265 and AV1 with NVDEC on Linux by @devopvoid in #353
- Encode H.265 and VP9 and decode VP9 with VA-API on Linux, when turned on by @devopvoid in #352
- Encode VP9 in hardware on Windows, when turned on by @devopvoid in #348
- Encode and decode H.265 in hardware on Windows by @devopvoid in #347
- Build WebRTC with H.265 by @devopvoid in #346
- Decode with Vulkan Video on Linux in the media player by @devopvoid in #345
- Decode HEVC and AV1 in hardware in the media player by @devopvoid in #331
- Let a video processor change camera and desktop frames by @devopvoid in #342
- Add first-packet observers, sender and receiver IDs, and track volume by @devopvoid in #338
- Add the missing peer connection signaling and control calls by @devopvoid in #334
- Decode H.264 and VP9 with NVDEC on NVIDIA GPUs on Linux by @devopvoid in #321
- Decode video in hardware in the media player by @devopvoid in #320
- Decode VP9 on the GPU with Media Foundation on Windows by @devopvoid in #319
- Decode VP9 with VideoToolbox on macOS by @devopvoid in #318
- Add a hardware video decoder factory, with Media Foundation on Windows by @devopvoid in #315
- Encode AV1 on the GPU with Media Foundation and NVENC by @devopvoid in #314
- Encode H.264 with VA-API on Intel and AMD GPUs on Linux by @devopvoid in #313
- Encode H.264 with NVENC on NVIDIA GPUs, on Windows and Linux by @devopvoid in #312
- Add a hardware video encoder factory, with Media Foundation H.264 by @devopvoid in #310
- Add custom video codec factories by @devopvoid in #303
- Map the remaining peer connection configuration fields by @devopvoid in #317
- Map the remaining sender encoding parameters by @devopvoid in #316
Bug Fixes
- Restore version and changelog before 0.20.0 release by @devopvoid in #392
- Map the VP9 interpolation filter to VA-API's order by @devopvoid in #383
- Write the H.264 and H.265 headers for VA-API drivers that need them by @devopvoid in #371
- Call network thread observers on a callback thread by @devopvoid in #364
- Play and record on Windows devices that mix in more than two channels by @devopvoid in #358
- Capture screens with ScreenCaptureKit on macOS by @devopvoid in #354
- Mark encoded frames as the end of their temporal unit by @devopvoid in #356
- Dispose a MediaStream from onAddTrack as a view, and return its ID by @devopvoid in #343
- Keep camera hotplug and track views from crashing or releasing shared tracks by @devopvoid in #341
- Stop exceptions from callbacks unwinding through WebRTC by @devopvoid in #335
- Keep audio device change handling from aborting or corrupting state by @devopvoid in #337
- Keep exceptions inside the audio device change callbacks by @Yml-0 in #333
- Fall back from a failed hardware video decoder without losing or damaging pictures by @devopvoid in #329
- Keep a seek near the end of the source and the position after seeking back by @devopvoid in #328
- Keep hardware encoders for sources whose first frame has an odd size by @devopvoid in #324
Refactor
- Let the PeerConnectionFactory own its worker thread by @devopvoid in #355
Documentation
- Link the unreleased docs from the README and release notes by @devopvoid in #386
- Note that VP9 cannot be injected by @devopvoid in #385
- Add icons and links to the home page features by @devopvoid in #384
- List the hardware codecs in tables by @devopvoid in #378
- Open the other channel's docs in the same tab by @devopvoid in #382
- List hardware codecs, video processing and frame injection as features by @devopvoid in #369
Performance
- Cut the processor time of hardware decoding on Windows by @devopvoid in #326
Testing
- Play real sizes and formats the GPU refuses in the media player by @devopvoid in #325
- Cover the lifecycle of hardware decoding in the media player by @devopvoid in #323
- Check that hardware decoders crop padded frames to the picture by @devopvoid in #322
Miscellaneous Tasks
- Bump @vue/server-renderer and vue in /docs by @dependabot[bot] in #363
- Bump source-map-js from 1.2.1 to 1.2.2 in /docs by @dependabot[bot] in #362
- Publish the docs of the latest release, and main's under /next/ by @devopvoid in #361
- Send Central credentials again under Maven 3.10 by @devopvoid in #339
- Bump the github-actions group across 3 directories with 3 updates by @dependabot[bot] in #309
- Share one platform matrix and deploy snapshots once by @devopvoid in #306
- Add Dependabot and trim caches and artifacts by @devopvoid in #304
- Harden the release workflow and keep native caches warm by @devopvoid in #302
Other
- Bump the maven-dependencies group with 3 updates by @dependabot[bot] in #370
- Update WebRTC branch from 7977 to 8059 (M155) by @devopvoid in #360
- Build WebRTC with autoninja by @devopvoid in #357
- Patch FFmpeg so that Direct3D 12 decoding works on AMD and Intel by @devopvoid in #330
- Bump the maven-dependencies group with 7 updates by @dependabot[bot] in #308
- Bump the maven-plugins group with 9 updates by @dependabot[bot] in [#307](https://github.com/devopvoid/webrt...
Release v0.19.0
What's Changed
Features
- Add encoded frame transforms and a media recorder by @devopvoid in #300
- Add a native extension API and an FFmpeg-based media module by @devopvoid in #291
Bug Fixes
- Repair the release pipeline and publish the media module by @devopvoid in #299
- Clear the CI build annotations by @devopvoid in #294
- Take Map method IDs from the interface instead of from HashMap by @devopvoid in #290
- Keep device-captured audio out of sink-fed audio senders by @devopvoid in #289
- Give AudioTrackSource a dispose() to release its native reference by @devopvoid in #287
Miscellaneous Tasks
- Cache the FFmpeg build of the macOS x86_64 target by @devopvoid in #295
Other
- Sync the WebRTC checkout without git history by @devopvoid in #298
- Cross compile the macOS x86_64 target natively on Apple Silicon by @devopvoid in #296
- Build FFmpeg on every platform and make the media module part of the normal build by @devopvoid in #292
Release v0.18.0
What's Changed
Features
- Allow setting custom WebRTC field trials on PeerConnectionFactory by @devopvoid in #284
Bug Fixes
- Make CustomVideoSource's frame_id_ counter thread-safe by @devopvoid in #286
- Synchronize CustomAudioSource's sinks_ against AddSink/RemoveSink by @devopvoid in #285
- JNI memory-safety and thread-safety bugs in the native bridge by @devopvoid in #283
Release v0.17.0
What's Changed
Features
- Expose asynchronous data channel send results by @SendableMetatype in #281
- Add windows arm64 platform support by @SendableMetatype in #266
- Offer both screens and windows in the Wayland portal picker by @B077AS in #264
Bug Fixes
- Report rejected synchronous data channel sends by @SendableMetatype in #278
- Throw instead of aborting when the default audio device module fails to initialize by @SendableMetatype in #276
- Keep the desktop capture frame rate at the configured value by @SendableMetatype in #274
- Keep libwebrtc quiet by default and make logToDebug work again by @SendableMetatype in #273
- Delete the local references created for received data channel messages by @SendableMetatype in #272
- Load libudev and libdbus at runtime instead of linking them by @SendableMetatype in #271
Documentation
- Correct changelog v0.16.0 and supported os matrix by @devopvoid in #282
- Correct data channel buffered amount semantics by @SendableMetatype in #279
- List the Linux runtime dependencies of the native library by @SendableMetatype in #275
Performance
- Avoid redundant data channel buffer copies by @SendableMetatype in #280
Testing
- Give the DTMF completion wait more headroom by @SendableMetatype in #268
Miscellaneous Tasks
- Test the windows arm64 natives on a native runner by @SendableMetatype in #270
- Test cross compiled natives on native runners by @SendableMetatype in #267
Other
- Bootstrap depot_tools before fetching the WebRTC source by @SendableMetatype in #277
Release v0.16.0
What's Changed
Other
- Add Wayland/PipeWire desktop capture support by @B077AS in #261
- Improve release workflow reliability and artifact management by @devopvoid in #260
- Refactor release workflows and setup for multi-platform deployment by @devopvoid in #259
New Contributors
Release v0.15.0
What's Changed
Features
- Bridge OnIceSelectedCandidatePairChanged to Java observers by @SendableMetatype in #247
- Add asynchronous sendAsync to RTCDataChannel by @SendableMetatype in #246
- Device transport and form factor types by @Stasyanych in #203
- Add funding information to support development
- Add legacy AGC1 and update AGC2 in the AudioProcessingConfig by @devopvoid in #205
Bug Fixes
- Honor the buffer window in every send path by @SendableMetatype in #245
- Add OnBufferedAmountChange callback to RTCDataChannelObserver by @devopvoid in #206
Documentation
- Add sponsorship link to index page
- Recreated using VitePress by @devopvoid in #210
- Add notes on native library classifiers for webrtc-java
- Reorganize guide links
Testing
- Buffer trickled candidates until both descriptions are applied by @SendableMetatype in #256
Other
- Update versions of dependencies and plugins by @devopvoid in #257
- Update WebRTC branch version from 7339 to 7977 (m152) by @SendableMetatype in #249
- Derive the WebRTC cache branch from the pom and guard deploys by @SendableMetatype in #248
- Bump org.eclipse.jetty:jetty-server in /webrtc-examples by @dependabot[bot] in #255
- Bump com.fasterxml.jackson.core:jackson-databind by @dependabot[bot] in #254
- Bump picomatch from 4.0.3 to 4.0.5 in /docs by @dependabot[bot] in #253
- Bump rollup from 4.50.0 to 4.59.0 in /docs by @dependabot[bot] in #235
- Bump vite from 7.1.11 to 7.3.6 in /docs by @dependabot[bot] in #252
- Bump postcss from 8.5.6 to 8.5.26 in /docs by @dependabot[bot] in #251
- Bump org.eclipse.jetty:jetty-util in /webrtc-examples by @dependabot[bot] in #250
- Updates all checkout GitHub Actions to v6 by @maxkratz in #226
- Bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /docs by @dependabot[bot] in #230
- Bump vite from 7.1.5 to 7.1.11 in /docs by @dependabot[bot] in #218
- Update WebRTC branch version from 7204 to 7339 (m140)
- Bump vite from 7.1.4 to 7.1.5 in /docs by @dependabot[bot] in #211
New Contributors
- @Isacco-B made their first contribution in #236
- @SendableMetatype made their first contribution in #249
- @jonathannaguin made their first contribution in #244
- @dependabot[bot] made their first contribution in #255
- @Stasyanych made their first contribution in #241
- @westernbear made their first contribution in #231
Release v0.14.0
What's Changed
Features
- Restrict ICE port ranges and control candidate gathering behavior by @devopvoid in #202
- Push or pull audio frames with a headless audio device module by @devopvoid in #201
- Add guide for configuring send-only and receive-only media
- Add the platform classifier to the native library filename by @SnirDecartAI in #194
- Add VideoBufferConverter.convertToI420 by @SnirDecartAI in #192
- Add SyncClock for audio and video synchronization support
- Add CustomVideoSource and related JNI bindings for video frame handling
- Added a new web-based example
- Custom audio source that can be provided to audio tracks by @devopvoid in #188
Bug Fixes
- RTCDtmfSenderTests timeouts
- Update error handling to stop capturing on permanent errors #186
- Ensure JNIEnv is properly attached before deleting global reference 146
- Return a valid NtpTime from SyncClock::GetNtpTime by @SnirDecartAI in #193
- Release video frame after processing in WHEP example #191
- Made RTCRtpCodecCapability's int fields optional by @SnirDecartAI in #190
Documentation
- Add AudioRecorder and AudioPlayer documentation
- Documentation for VideoBufferConverter
- Documentation for MediaStreamTrack, VideoBufferConverter, and VideoCapture
- Add Video Capture guide
- Add Screen Capturer and Window Capturer guides
- Add Power Management utility
- Add Audio Converter guide
- Add Voice Activity Detector guide
- Reorganize media guides into categories
- Add section on disabling audio processing with dummy audio layer
- Add Custom Video Source guide and update documentation
- Update example descriptions and add WebClientExample
- Add Custom Audio Source guide
- Update asset paths and add a privacy policy by @devopvoid in #187
- Add camera capture guide
- Update CHANGELOG.md
Miscellaneous Tasks
- Add custom video source and generator to the web example
Other
- Update release workflow to use main branch
- Update GitHub Actions workflows to use changelog generation
- Update all GitHub Actions setup-java to v5 by @maxkratz in #200
New Contributors
- @maxkratz made their first contribution in #200
- @SnirDecartAI made their first contribution in #194
Release v0.13.0
What's Changed
Bug Fixes
- macOS screen capturing only the first frame
- Crash in
MediaDevicesby validating COM initialization in audio device management
Feature
- Enable H.264 support for Linux, macOS and Windows
- Added RTCDtmfSender implementation for sending DTMF tones
Documentation
- Comprehensive guide and examples are now available @ https://jrtc.dev
Refactoring
- Moved
masterbranch tomain
Release v0.12.0
What's Changed
Bug Fixes
- Maven release action for macOS platforms
Feature
- Add the missing macOS camera capture functionality (#180)
- Add a copy method for NativeI420Buffer and VideoFrame
Build
- Update package installation commands and enhance sysroot configuration for Linux (#178)
Refactoring
- Updated the native interface to m138 (#179)
Release v0.11.0
What's Changed
Bug Fixes
- Screen/Window capturer memory leak.
Build
- Updated project to a more recent stable WebRTC branch, m134 (6998).
- Link against the WebRTC custom libc++ and libc++abi on Linux, and against libc++ on Windows.
- Added support for Linux ARM and ARM64 builds.
- Build with Clang on all platforms.