Commit graph

76 commits

Author SHA1 Message Date
hrxi a55a10e88f meson: Add RTP options that are also present in the CMakeLists.txt 2023-10-06 15:25:12 +02:00
hrxi e6938c2965 meson: Add rtp plugin 2023-10-06 15:25:12 +02:00
Marvin W 8c8c2dc4b0
Fix potential crash in video calls 2023-07-09 15:32:53 +02:00
Marvin W dbb8abc117
Fix video for cameras with rotated image 2023-04-22 17:04:28 +02:00
Marvin W cb10110c57
Fix C binding for gst_video_frame_get_data
Fixes #1267
2023-03-20 15:53:53 -06:00
Marvin W 0aa73c4569
RTP: Use gstreamers new VideoFrame.map 2022-08-21 20:02:48 +02:00
Marvin W e85477bb19
RTP: Use latest gstreamer vapi if vala version older than 0.56.1 2022-08-21 19:33:20 +02:00
Marvin W 7b252d040a
CMake: Fix version checks 2022-08-21 00:41:27 +02:00
Marvin W e51b55432f Gtk4 bug fixes and improvements 2022-07-27 20:55:54 +02:00
fiaxh f44cbe02c1 Improve Gtk4 port 2022-07-27 20:34:20 +02:00
Marvin W 2b3ce5fc95 Video for GTK4 2022-07-27 20:34:20 +02:00
fiaxh 7e7dcedaf3 Port from GTK3 to GTK4 2022-07-27 20:34:20 +02:00
Matthew Egeler f25bfb0096
Support devices with multiple framerate options in get_max_fps (#1224) 2022-05-17 14:12:32 +02:00
foucault 186361fd8a Fix calculation of best camera framerate
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-05-17 14:08:22 +02:00
mjk 3719fcbefb RTP: clarify codec support warning 2022-02-13 21:32:28 +01:00
Marvin W 369d0c79d7
Calls: Fix device selector for multi-party calls, allow picking device before call started 2022-02-12 14:36:26 +01:00
Marvin W 6532c2b160
RTP: Only display SSRC mismatch warning for GLib versions supporting warning_once 2022-02-11 20:33:06 +01:00
Marvin W e768c40e11
RTP: Make codec and hardware support compile-time configurable 2022-02-11 19:55:19 +01:00
fiaxh dbc6d87cb9 Various call fixes
- 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-10 15:43:34 +01:00
Marvin W 28248607f0
DTLS: Handle DTLS fingerprint in transport-info before session-accept 2022-02-09 23:58:54 +01:00
Marvin W 43ea088f64
Calls: Device picker 2022-02-08 21:58:18 +01:00
fiaxh 4ef50db3e5 Various call UI/UX improvements 2022-02-07 01:21:11 +01:00
Marvin W 5ed8d28a27
RTP: Use two channels for Opus
Fixes: #1189
2022-02-06 00:19:27 +01:00
Marvin W bfd089516a
RTP: Add support for G.722 2022-02-06 00:19:26 +01:00
Marvin W 460c520db7
RTP: Restrict number of recaps to save resources 2022-02-06 00:19:26 +01:00
Marvin W 0c524cdc4a
RTP: Workaround drawing issues on resolution change 2022-01-27 22:09:53 +01:00
fiaxh b123800f26 Small cleanup 2022-01-23 19:50:01 +01:00
Marvin W f270fc7686
RTP: VAAPI seems to not support VBR and low-power mode at the same time 2022-01-21 15:34:06 +01:00
Marvin W 37cfbd8c76
RTP: Use VP8 wait-for-keyframe only for GStreamer 1.18+ 2022-01-21 15:23:38 +01:00
Marvin W 9490ffed6b
Fixes for older valac versions 2021-12-25 18:25:29 +01:00
Marvin W 1c47652814
Fix build with older Vala compilers
- Older versions seem to assume a wrong type for Nice messages
- Older versions have broken bindings for Gst.Value.set_fraction
2021-12-23 07:06:07 +01:00
Marvin W 8e99ed1e9c RTP: Disable VP9 2021-12-19 22:38:27 +01:00
Marvin W cd6d501c23 RTP: Improve screen resolution update logic 2021-12-19 22:38:00 +01:00
Marvin W b07c4187ef RTP: Less log spam 2021-12-18 21:47:50 +01:00
Marvin W 9aeff4bf9e SRTP: Do not continue processing data after encrypt/decrypt failed
RTP: Copy less
2021-12-18 21:45:36 +01:00
Marvin W 4f80a9f5cc RTP: Correctly handle timestamp after re-enabling a stream 2021-12-18 21:43:12 +01:00
fiaxh 2b3d150949 Improve call details dialog + small multi-party call fixes 2021-11-15 13:29:13 +01:00
Marvin W ec65415186
Optimize encoder for low cpu usage 2021-11-15 23:49:48 +01:00
Marvin W 0b828a0ae5
Add maximum bitrate and adjust video resolution based on bitrate 2021-11-15 22:49:44 +01:00
Marvin W 9958cfbe7b
Log probe for decode QOS 2021-11-11 22:49:48 +01:00
Marvin W 9e5a3895ae
Limit REMB target bitrate to 2x maximum actually seen value 2021-11-11 22:35:45 +01:00
fiaxh e205743f0c Display target bitrates in connection details UI 2021-11-11 21:54:55 +01:00
Marvin W 1b157a20ab
Fix REMB calculation 2021-11-10 23:13:33 +01:00
Marvin W cfe43de5d5
Make elements sync to get proper qos data 2021-11-10 23:13:33 +01:00
Marvin W f398135bc8 RTP: Make opus mono-channel 2021-11-10 11:05:34 +01:00
Marvin W ea19a9c5cb RTP: Only start gstreamer pipeline once needed 2021-11-10 11:05:34 +01:00
Marvin W b593aa05ef RTP: Encode with device 2021-11-10 11:05:34 +01:00
Marvin W 083f73b0ca Split payloader off encoder chain 2021-11-10 11:05:34 +01:00
Marvin W 72569ea52f Improve codec support 2021-11-10 11:05:34 +01:00
Marvin W aae13b9ea6 Crop video to match widget ratio 2021-11-10 11:05:34 +01:00