| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-10-06 | device: Request 30 fps in absence of framerate negotiation | Robert Mader | |
| Sources not capable of negotiating framerates, most notably the libcamera Pipewire plugin, might still be able to honor a value requested and otherwise usually just ignore it. Thus setting a value that we can reasonably assume to be supported has several benefits: 1. It potentially prevents the source from producing much higher fps than useful for the usecase, causing resource waste. 2. It decreases the chances of running into fallback code paths which are often badly optimized performance-wise. One example is that currently the implicitly set framerate values cause regular renegotiations (including buffer re-allocations) in pipewiresrc. Another is the internal get_target_bitrate(), currently returning uint.MAX. 3. If the source can only produce e.g. 15 fps, that's usually handled without major issues. Thus follow the example of Snapshot, which has been doing this for a while and gets more testing with libcamera, and set framerate to 30/1. | |||
| 2025-10-06 | device: Target resolution of 720p on libcamera devices | Robert Mader | |
| Most cameras needing the fallback path are provided by libcamera, which does not yet provide framerates. At the same time many such cameras support very high resolutions - often in the 4K category - and are paired with rather weak CPUs. Examples for this are popular mobile phones such as the PinePhone Pro or the OnePlus6. In order to archive a somewhat stable FPS count in such scenarios, target a resolution of 720p as a compromise of quality and performance. | |||
| 2025-10-06 | Only support SystemMemory caps for video | Robert Mader | |
| An increasing number of video device providers, such as `pipewiresrc` (in the upcoming 1.6 release) and `v4l2src` (since Gst 1.26), support `memory:DMABuf` caps using the special `DMA_DRM` caps. This is not expected and handled properly, thus filter out any non-default features. | |||
| 2025-05-23 | Voice processor: add back call to set stream delay | Jacques Comeaux | |
| 2025-04-09 | RTP: Tear down most of GStreamer while not in a call. | Marvin W | |
| This includes #1679 and works around an upstream bug in pipewire causing #1685 | |||
| 2025-04-08 | Show call button regardless of contact online status | fiaxh | |
| 2025-02-24 | Voice processor: merge init and setup methods | Marvin W | |
| This ensures we are never in an uninitialized state when processing audio data | |||
| 2025-02-23 | Fix build with webrtc-audio-processing 2.x | Marvin W | |
| 2025-02-22 | Voice processor: add support for webrtc-audio-processing 1.x and 2.x | Marvin W | |
| 2025-01-12 | RTP: gtksink no longer needed | Marvin W | |
| 2023-10-07 | Fix some compiler warnings | fiaxh | |
| 2023-07-09 | Fix potential crash in video calls | Marvin W | |
| 2023-04-22 | Fix video for cameras with rotated image | Marvin W | |
| 2023-03-20 | Fix C binding for gst_video_frame_get_data | Marvin W | |
| Fixes #1267 | |||
| 2022-08-21 | RTP: Use gstreamers new VideoFrame.map | Marvin W | |
| 2022-08-21 | RTP: Use latest gstreamer vapi if vala version older than 0.56.1 | Marvin W | |
| 2022-07-27 | Gtk4 bug fixes and improvements | Marvin W | |
| 2022-07-27 | Improve Gtk4 port | fiaxh | |
| 2022-07-27 | Video for GTK4 | Marvin W | |
| 2022-07-27 | Port from GTK3 to GTK4 | fiaxh | |
| 2022-05-17 | Support devices with multiple framerate options in get_max_fps (#1224) | Matthew Egeler | |
| 2022-05-17 | Fix calculation of best camera framerate | foucault | |
| When the algorithm iterates over all the available v4l2 capabilities it tries to determine the best framerate for each one of YUYV (video/x-raw) modes presented by the hardware (best_fraction, line 357 in device.vala). Regardless of what's determined to be the "best" YUYV mode from within the conditional right after (line 385) the best fractional framerate will always point to the last iterated framerate, which might be an extremely low one, like 7 or 5 FPS. When the framerate is then stored in the Gst.Structure (line 394) the fractional framerate will always be that last value which might be different than the correct one as calculated by best_fps (line 386). This workaround solves this issue by only updating best_fraction when the conditional in line 385 is satisfied. from issue #1195 | |||
| 2022-02-13 | RTP: clarify codec support warning | mjk | |
| 2022-02-12 | Calls: Fix device selector for multi-party calls, allow picking device ↵ | Marvin W | |
| before call started | |||
| 2022-02-11 | RTP: Only display SSRC mismatch warning for GLib versions supporting ↵ | Marvin W | |
| warning_once | |||
| 2022-02-11 | RTP: Make codec and hardware support compile-time configurable | Marvin W | |
| 2022-02-10 | Various call fixes | fiaxh | |
| - Don't create incoming CIM calls twice - Fix is_color check for video devices w/ multiple formats - Tolerate mismatching content creator on jingle responses - Change MUJI namespace to urn:xmpp:jingle:muji:0 | |||
| 2022-02-09 | DTLS: Handle DTLS fingerprint in transport-info before session-accept | Marvin W | |
| 2022-02-08 | Calls: Device picker | Marvin W | |
| 2022-02-07 | Various call UI/UX improvements | fiaxh | |
| 2022-02-06 | RTP: Use two channels for Opus | Marvin W | |
| Fixes: #1189 | |||
| 2022-02-06 | RTP: Add support for G.722 | Marvin W | |
| 2022-02-06 | RTP: Restrict number of recaps to save resources | Marvin W | |
| 2022-01-27 | RTP: Workaround drawing issues on resolution change | Marvin W | |
| 2022-01-23 | Small cleanup | fiaxh | |
| 2022-01-21 | RTP: VAAPI seems to not support VBR and low-power mode at the same time | Marvin W | |
| 2022-01-21 | RTP: Use VP8 wait-for-keyframe only for GStreamer 1.18+ | Marvin W | |
| 2021-12-23 | Fix build with older Vala compilers | Marvin W | |
| - Older versions seem to assume a wrong type for Nice messages - Older versions have broken bindings for Gst.Value.set_fraction | |||
| 2021-12-19 | RTP: Disable VP9 | Marvin W | |
| 2021-12-19 | RTP: Improve screen resolution update logic | Marvin W | |
| 2021-12-18 | RTP: Less log spam | Marvin W | |
| 2021-12-18 | SRTP: Do not continue processing data after encrypt/decrypt failed | Marvin W | |
| RTP: Copy less | |||
| 2021-12-18 | RTP: Correctly handle timestamp after re-enabling a stream | Marvin W | |
| 2021-11-15 | Improve call details dialog + small multi-party call fixes | fiaxh | |
| 2021-11-15 | Optimize encoder for low cpu usage | Marvin W | |
| 2021-11-15 | Add maximum bitrate and adjust video resolution based on bitrate | Marvin W | |
| 2021-11-11 | Log probe for decode QOS | Marvin W | |
| 2021-11-11 | Limit REMB target bitrate to 2x maximum actually seen value | Marvin W | |
| 2021-11-11 | Display target bitrates in connection details UI | fiaxh | |
| 2021-11-10 | Fix REMB calculation | Marvin W | |
