Commit Graph

857 Commits

Author SHA1 Message Date
John Preston 4d99c1fd44 Allow sharing system audio with window share. 2021-07-15 16:42:38 +03:00
John Preston 4276b6cce0 Use rpl for Window::Theme::Background updates. 2021-07-15 16:42:36 +03:00
John Preston 86a2a4d63a Count unique video senders in limit. 2021-07-13 22:08:10 +03:00
John Preston db81638656 Allow sharing screen with sound on Windows. 2021-07-13 22:08:09 +03:00
John Preston 402729dc99 Check unmuted video limit in group call. 2021-07-13 22:08:09 +03:00
John Preston 801c8b6220 Screencast with system sound on Windows. 2021-07-13 22:08:09 +03:00
John Preston cc013305ac Apply local volume / mute to additional audio stream. 2021-07-13 22:08:09 +03:00
John Preston f17fc0b670 Support additional audio ssrc. 2021-07-13 22:08:09 +03:00
Ilya Fedin 79cc797aff Fix -Wunused-variable warnings 2021-07-13 21:43:34 +03:00
Ilya Fedin 89765340c3 Fix -Wunused-function warnings 2021-07-13 21:31:22 +03:00
John Preston a74228acea Don't use MTP* for ChannelData flags. 2021-07-08 16:11:09 +03:00
John Preston e34375405e Don't use MTP* for UserData flags. 2021-07-08 14:19:12 +03:00
John Preston 2ffda9f240 Don't use MTP* for ChatAdminRight / ChatRestriction. 2021-07-08 13:34:06 +03:00
John Preston 6be9b25e99 Submit voice chat boxes by Enter. 2021-07-05 15:37:34 +03:00
John Preston 6cea7d4a52 Fix YUV->RGB on D3D9 ANGLE backend. 2021-07-01 23:46:52 +03:00
John Preston 8a6ff3f414 Add separator above volume control in voice chats. 2021-06-24 17:44:55 +04:00
John Preston 5dcc219f1c For large video tile always request full quality. 2021-06-24 10:57:23 +04:00
John Preston d1e3e7d240 Don't show pinned tooltips if only one video. 2021-06-23 20:14:49 +04:00
John Preston 14a2b10989 Show error if camera could not be enabled. 2021-06-23 12:04:05 +04:00
John Preston b29f8aa1e6 Remove background over highlight in volume change item. 2021-06-23 11:07:23 +04:00
John Preston f9bb932cd8 Fix voice chat window expanding near the screen edges. 2021-06-23 10:52:04 +04:00
John Preston ff14ac68ee Always show tooltip about the muted microphone. 2021-06-22 19:50:26 +04:00
John Preston 659ddae9a8 Use native child window in video calls on Windows. 2021-06-21 11:29:29 +04:00
John Preston b70276912e Use native child window in group calls on Windows. 2021-06-21 09:23:10 +04:00
John Preston 8897f9e46a Limit requested qualities to 4 Full / 16 Medium. 2021-06-18 18:43:13 +04:00
John Preston 7a588be54f Add a hint to unmute your microphone. 2021-06-18 17:47:07 +04:00
John Preston 1cb1f1cbc1 Add a hint to turn on the camera. 2021-06-18 16:11:32 +04:00
John Preston 003fb52fb9 Make 100% volume value more sticky. 2021-06-17 16:42:50 +04:00
John Preston ec234cdc43 Improve volume slider design in group calls. 2021-06-17 16:22:51 +04:00
John Preston 0b4605a656 Don't pass Quality::Medium for screencast to tgcalls. 2021-06-17 12:03:26 +04:00
John Preston e19af1257c Improve video in voice chats controls layout. 2021-06-17 11:52:53 +04:00
23rd b422ec025e Removed Ui::show from classes that have pointer to Controller. 2021-06-17 10:57:45 +04:00
23rd 6d08542afa Moved proxy global variables from facades to core settings. 2021-06-16 09:31:32 +03:00
John Preston 52e841ec29 Select correct quality for incoming screencast. 2021-06-16 08:59:15 +04:00
John Preston df28da4d97 Show "Video is paused" in wide panel mode. 2021-06-15 16:49:53 +04:00
John Preston f18e157e46 Add video placeholder if can't receive it. 2021-06-15 14:30:51 +04:00
John Preston b2bf8244dd Add "Enable noise suppression" setting to group calls. 2021-06-15 12:33:02 +04:00
John Preston 7059336ff0 Show red mute icon for force-muted. 2021-06-14 15:15:33 +04:00
John Preston 94f10ce72e Fix dropping self level around mute button. 2021-06-14 14:57:25 +04:00
John Preston 68be54288c Fix working using OpenGLES / ANGLE. 2021-06-14 12:16:00 +04:00
John Preston 0fde35f59e Increase limit for full video request. 2021-06-11 22:52:59 +04:00
John Preston 46dfde881a Fix crash in screencast error handling. 2021-06-11 19:19:50 +04:00
John Preston 95f7704d14 Fix crash in voice chat camera enabling. 2021-06-11 19:12:14 +04:00
John Preston 8d8fffd306 Fix OpenGL renderers on macOS. 2021-06-11 17:35:16 +04:00
John Preston 7a0ba58ffd Don't construct Webrtc::VideoTrack only for state tracking. 2021-06-11 14:20:00 +04:00
John Preston 4543656aa3 Implement screencast pause in TDesktop. 2021-06-11 14:20:00 +04:00
John Preston 2f986660ff Optimize background painting in OpenGL renderers. 2021-06-10 23:37:09 +04:00
John Preston f9f98975a1 Implement OpenGL renderer for one-on-one calls. 2021-06-10 17:16:17 +04:00
John Preston 84f6a5f957 Handle "video_joined" flag in self participant. 2021-06-09 09:19:29 +04:00
John Preston 054223efe0 Request screen recording permissions on macOS. 2021-06-09 09:19:29 +04:00
John Preston c5a46d9d1b For surface with parent backend should be fixed. 2021-06-09 09:19:29 +04:00
John Preston e41fb0d8fd Fix ARGB32 frame rendering. 2021-06-09 09:19:28 +04:00
John Preston 5970f3de9e Show video paused icon. 2021-06-09 09:19:28 +04:00
John Preston 7878552e7d Fix hiding rows with video in narrow column. 2021-06-09 09:19:28 +04:00
John Preston b3648d0147 Use QOpenGLShaderProgram::bind. 2021-06-09 09:19:28 +04:00
John Preston dd79b3c0d5 Add noise to blur to remove color banding. 2021-06-09 09:19:28 +04:00
John Preston 3d76e6de55 Improve level meter design in group call settings. 2021-06-09 09:19:28 +04:00
John Preston 4f8989fad7 Fix large video being removed animation. 2021-06-09 09:19:28 +04:00
John Preston 945411274f Close large video tile by click anywhere. 2021-06-09 09:19:28 +04:00
John Preston f1f7330bf6 Hide "Remove" context action for participants-groups. 2021-06-09 09:19:28 +04:00
John Preston a1957fe5c0 Stop connecting sound when group call leave starts. 2021-06-09 09:19:28 +04:00
John Preston 9a21d55de7 Show last blurred frame or userpic for paused videos. 2021-06-09 09:19:28 +04:00
John Preston 303ad02c61 Always call raise() before activateWindow(). 2021-06-09 09:19:28 +04:00
John Preston 1858e7e8ac Fix many video tiles in voice chats. 2021-06-09 09:19:28 +04:00
John Preston 482ad74c57 Stop camera/screen video when muted by admin. 2021-06-09 09:19:27 +04:00
John Preston 68ae40ee56 Draw all except controls in OpenGL media viewer. 2021-06-09 09:19:27 +04:00
John Preston 24f8a88625 Start OpenGL media viewer renderer. 2021-06-09 09:19:27 +04:00
John Preston 70f0cce340 Update API scheme. 2021-06-09 09:19:27 +04:00
John Preston 254b02ad6b Fix Release build on Windows. 2021-06-07 16:21:55 +04:00
John Preston e6977b2c33 Start sharing without source choosing in case of PipeWire. 2021-06-01 14:58:30 +04:00
John Preston 28f83f2af4 Show participants Bio when not speaking. 2021-06-01 14:16:55 +04:00
John Preston 5a6e8a0a8c Improve style of desktop capture source choosing. 2021-06-01 13:58:15 +04:00
John Preston e8dd969e78 Fix paint-image vertex shader on macOS. 2021-05-31 23:53:41 +04:00
John Preston acce2a217d Beta version 2.7.6: Fix build on macOS. 2021-05-31 21:51:47 +04:00
John Preston 2fe75f8296 Add large / small video animation. 2021-05-31 21:25:15 +04:00
John Preston b22363224f Track tiles visibility separately from geometry. 2021-05-31 18:40:53 +04:00
John Preston b3c92ed3f4 Rejoin if the call started accepting video. 2021-05-31 18:00:41 +04:00
John Preston dfcc13c7e6 Warn user about pinning of his screencast. 2021-05-31 17:35:41 +04:00
John Preston ba6cee6f81 Add video/screencast pinned/unpinned toasts. 2021-05-31 17:10:30 +04:00
John Preston bcdfd2150d Auto-pin new screencasts. 2021-05-31 15:53:15 +04:00
John Preston d19d6bbcd9 Group call owner chat/channel is always admin. 2021-05-31 15:52:51 +04:00
John Preston 4080fa9bdc Allow mute for me even force-muted participants. 2021-05-31 15:46:15 +04:00
John Preston 136e930362 Paint outline in raster mode. 2021-05-31 08:54:23 +04:00
23rd be53bd5293 Added ability to start recording voice chat without title. 2021-05-30 23:39:55 +03:00
John Preston ec9fa00f46 Bring second large peer video to the top. 2021-05-31 00:07:11 +04:00
John Preston 6a001f2e6c Auto-switch large video by speaking participant. 2021-05-30 23:52:01 +04:00
John Preston 8bde53cd0f Add Back button to large video tiles. 2021-05-30 21:08:54 +04:00
John Preston 090d7d7112 Show video large on click. 2021-05-30 19:14:08 +04:00
John Preston 97c7c0742c Rename LargeVideo to Video in voice chats. 2021-05-30 18:46:51 +04:00
John Preston 90efbf1210 Remove some experimental code. 2021-05-30 18:21:11 +04:00
John Preston 38506d27a1 Hide member rows with active small videos. 2021-05-30 18:09:59 +04:00
John Preston 8a693bc932 Move 'Invite members' button to the bottom. 2021-05-30 14:56:54 +04:00
John Preston 0e49bf5dee Add video tiles in narrow members column. 2021-05-29 23:57:21 +04:00
John Preston 6a967948de Optimize uploading of textures. 2021-05-29 23:27:12 +04:00
John Preston 0771fc14db Use unique_id for tiles instead of PeerData*. 2021-05-29 22:58:11 +04:00
John Preston e1614a280f Add blur effect for video tile background. 2021-05-29 17:00:09 +04:00
John Preston ddf81c949b Add green outline to speaking video tiles. 2021-05-28 21:05:28 +04:00
John Preston 3f2b473287 Add tooltips for wide mode controls. 2021-05-28 19:08:11 +04:00
John Preston d659200a42 Show unmute button tooltip about space bar. 2021-05-28 14:47:41 +04:00
John Preston 9a812090a2 Add some error tooltips in group calls. 2021-05-28 13:23:24 +04:00
John Preston 5b0278847d Add context menu to video tile right click. 2021-05-27 23:20:16 +04:00
John Preston 9d07bb2946 Remove 'Share Screen' menu item in scheduled chats. 2021-05-27 22:47:18 +04:00
John Preston b27d314fa7 Skip deleted users in voice chat invites. 2021-05-27 22:46:20 +04:00
John Preston df666ff724 Implement more robust reconnect management. 2021-05-27 17:09:36 +04:00
John Preston 3709714339 Make '[un]registerLeaveSubscription' work in all windows. 2021-05-27 09:34:33 +04:00
John Preston 6ea66bc527 Fix joining broadcasted streams in voice chats. 2021-05-27 00:37:05 +04:00
John Preston 45cca35724 Implement menu in wide video mode. 2021-05-26 18:21:50 +04:00
John Preston 1c42513e44 Fix pinning video from narrow mode. 2021-05-26 15:29:26 +04:00
John Preston f3e6f5e772 Cancel outgoing video when muted by admin. 2021-05-26 15:12:00 +04:00
John Preston c6f44e7928 Hide video button if the call doesn't support video. 2021-05-26 14:27:48 +04:00
John Preston 7b6b32db74 Fix name display in group call video tiles. 2021-05-26 13:35:01 +04:00
John Preston e7ef3c4b6d Fix crash in GL_RED textures uploading. 2021-05-25 23:34:55 +04:00
John Preston 51d8e9c43d Skip empty rects in painting. 2021-05-25 17:23:50 +04:00
John Preston e50a7a2e42 Toggle wide mode only when videos with frames. 2021-05-25 16:55:01 +04:00
John Preston aaad250a77 Show names in OpenGL renderer. 2021-05-25 16:26:41 +04:00
John Preston 699730b7f4 Show mute icon in OpenGL renderer. 2021-05-25 14:56:26 +04:00
John Preston 302cffba1c Display pin button in OpenGL renderer. 2021-05-25 12:08:06 +04:00
John Preston 2af1d95650 Fix scheduled voice chat creation. 2021-05-24 22:45:16 +04:00
John Preston df6f5d83d6 Make shaders work on OpenGL 2.1. 2021-05-24 22:45:16 +04:00
John Preston 42baa3e1bc Convert YUV420 -> ARGB32 in fragment shader. 2021-05-24 22:45:16 +04:00
John Preston 5f393babd6 Fix video wrap geometry in narrow column. 2021-05-24 22:45:16 +04:00
John Preston b864563f47 Support mode switching in single widget Viewport. 2021-05-24 22:45:16 +04:00
John Preston 3edb2d08ba Optimize frame shader, apply rotation. 2021-05-24 22:45:16 +04:00
John Preston d44f923277 OpenGL render of frames in single widget. 2021-05-24 22:45:16 +04:00
John Preston ec468431b4 Raster render of wide mode in single widget. 2021-05-24 22:45:16 +04:00
John Preston f40659a7b4 Round corners of LargeVideo. 2021-05-24 22:45:16 +04:00
John Preston 047989abcf Fill solid background in OpenGL renderer. 2021-05-24 22:45:16 +04:00
John Preston 3e79b67032 Start OpenGL renderer for group calls. 2021-05-24 22:45:16 +04:00
John Preston 748eb9ff12 Remove labels from wide mode buttons. 2021-05-24 22:45:16 +04:00
John Preston 385b98ff3d Nice three-button narrow mode with gradient fading. 2021-05-24 22:45:16 +04:00
John Preston c64e953174 Choose OpenGL / Raster in media viewer. 2021-05-24 22:45:15 +04:00
John Preston a45064257a Choose OpenGL / Raster surface at runtime. 2021-05-24 22:45:15 +04:00
John Preston 445c798bbc Improve pin video button design and controls hiding. 2021-05-24 22:45:15 +04:00
John Preston c48c4d4283 Use QOpenGLWidget on all systems. 2021-05-24 22:45:15 +04:00
John Preston aaea367fba Hide controls when mouse is out of video area. 2021-05-24 22:45:15 +04:00
John Preston b905a18161 Destroy all tgcalls instances before quit. 2021-05-24 22:45:15 +04:00
John Preston f4ae7ecbe7 Remove tracking of video ssrc-s. 2021-05-24 22:45:15 +04:00
John Preston 9a8812d00b Move participants list to the right of the window. 2021-05-24 22:45:15 +04:00
John Preston 13b3de683a Improve narrow participants column design. 2021-05-24 22:45:15 +04:00
John Preston 64243d1437 Fix crash in joining active video chat. 2021-05-24 22:45:15 +04:00
John Preston a730c88491 Add icons and improve narrow participants column. 2021-05-24 22:45:15 +04:00
John Preston 316f0537c4 Implement video pin / controls hiding in video tiles. 2021-05-24 22:45:15 +04:00
John Preston 7f739065e8 First version of tiled layout. 2021-05-24 22:45:15 +04:00
John Preston bd83ed8130 Add 'pin screencast' context menu item. 2021-05-24 22:45:15 +04:00
John Preston e39ffbc83c Update tgcalls, request required video channels. 2021-05-24 22:45:15 +04:00
John Preston 1471e9b8e2 Destroy group call instances async. 2021-05-24 22:45:15 +04:00
John Preston 4c23d51be5 Fix volume icon over video. 2021-05-24 22:45:15 +04:00
John Preston 412cfb24d2 Stop video when rejoining-as, handle errors. 2021-05-24 22:45:15 +04:00
John Preston 2a5977e97f Support enlarge / minimize of video. 2021-05-24 22:45:15 +04:00
John Preston 64c34b7029 Hide controls in wide video mode. 2021-05-24 22:45:15 +04:00
John Preston 0db0abe608 Use LargeVideo in the default mode. 2021-05-24 22:45:15 +04:00
John Preston 5f4903a279 Show controls in the middle of wide video. 2021-05-24 22:45:14 +04:00
John Preston 20ff79abf4 Fix camera / screen self track activation. 2021-05-24 22:45:14 +04:00
John Preston 3a321d64f6 Switch between videos by left click. 2021-05-24 22:45:14 +04:00
John Preston 7e8d1f7974 Toggle video pin from LargeVideo. 2021-05-24 22:45:14 +04:00
John Preston 6b10045b7b Enable screen sharing on Linux. 2021-05-24 22:45:14 +04:00
John Preston 50558de591 Show name and information on wide large video. 2021-05-24 22:45:14 +04:00
John Preston 80e3e8a01e Extract MembersRow from calls_group_members module. 2021-05-24 22:45:14 +04:00
John Preston d38780c94d Add shadow under name over video. 2021-05-24 22:45:14 +04:00
John Preston 801435e57c Show participant names in narrow column. 2021-05-24 22:45:14 +04:00
John Preston 8001efe6ab Track peer together with video endpoint. 2021-05-24 22:45:14 +04:00
John Preston 909a3cef9b Create a new Instance for each screencast. 2021-05-24 22:45:14 +04:00
John Preston 9ac510a1ad Fix title of wide mode video chat. 2021-05-24 22:45:14 +04:00
John Preston 00ce302b38 Improve narrow participants column design. 2021-05-24 22:45:14 +04:00
John Preston 0dcc7a05f7 Fix crash in pinned video switching. 2021-05-24 22:45:14 +04:00
John Preston 54c2769d8a Improve voice /video chat members management. 2021-05-24 22:45:14 +04:00
John Preston 2e400d88d3 Fix creating group calls. 2021-05-24 22:45:14 +04:00
John Preston d9aa660253 Handle members slice loaded. 2021-05-24 22:45:14 +04:00
John Preston ba1dade4b0 New API/tgcalls with two outgoing videos. 2021-05-24 22:45:14 +04:00
John Preston a48649987e Improve screencast source choosing design. 2021-05-24 22:45:14 +04:00
John Preston 022c0a1327 Update tgcalls library. 2021-05-24 22:45:14 +04:00
John Preston 69ceed5bbc Update API scheme to layer 129. 2021-05-24 22:45:14 +04:00
John Preston b3fcb4ef36 Allow 'mute for me' of muted by admin participants. 2021-05-24 22:45:14 +04:00
John Preston 8342b2d275 Fix bug with video_muted flag. 2021-05-24 22:45:14 +04:00
John Preston 36888f844f Disable (crashing) capturer on Linux. 2021-05-24 22:45:14 +04:00
John Preston 1a784fc678 Track video_muted from API. 2021-05-24 22:45:14 +04:00
John Preston dac9017df1 Improve video chat controls layout. 2021-05-24 22:45:14 +04:00
John Preston 7b3b5a1463 Use 'Screencast' video content type. 2021-05-24 22:45:14 +04:00
John Preston b7fc3f67d7 Add toggle video and screen sharing buttons. 2021-05-24 22:45:13 +04:00
John Preston e0bfaad3a2 Make style of mute button customizable. 2021-05-24 22:45:13 +04:00
John Preston 380a0d1f86 Improve wide video layout. 2021-05-24 22:45:13 +04:00
John Preston b7f6fc9a2d Update API scheme. 2021-05-24 22:45:13 +04:00
John Preston e12fe974b2 Add pinned video in wide mode. 2021-05-24 22:45:13 +04:00
John Preston b15623d435 Allow pinning video to top of members list. 2021-05-24 22:45:13 +04:00
John Preston eb8f709943 Show members list in PanelMode::Wide. 2021-05-24 22:45:13 +04:00
John Preston c93ddf6aac Separate Call/GroupCall delegates and Instance. 2021-05-24 22:45:13 +04:00
John Preston 6e34360f7e Move some group call modules. 2021-05-24 22:45:13 +04:00
John Preston c9d07cd0f8 Proof-of-concept desktop capture source picker. 2021-05-24 22:45:13 +04:00
John Preston 9ff6b57b94 Use common desktop_capturer code on Windows. 2021-05-24 22:45:13 +04:00
John Preston fb49b0ca27 Add proof-of-concept screen sharing on macOS. 2021-05-24 22:45:13 +04:00
John Preston 38cb1b195d Add proof-of-concept screen sharing on Windows. 2021-05-24 22:45:13 +04:00
John Preston ebdbe4a8d6 Show video instead of userpics in members list. 2021-05-24 22:45:13 +04:00
John Preston ba02a5c46a Resolve video chat participants by unknown ssrcs. 2021-05-24 22:45:13 +04:00
John Preston a6f379a17a Parse and serialize video parameters. 2021-05-24 22:45:13 +04:00
John Preston 3be8521b9a Fix 'Start Now' in scheduled voice chats. 2021-04-27 14:15:25 +04:00
John Preston 819ce06dfb Don't mark messages as read when screen is locked. 2021-04-27 13:31:51 +04:00
John Preston e5ac7a1416 Fix creating a scheduled voice chat. 2021-04-12 15:36:19 +04:00
John Preston aa843ee978 Update lib_ui. 2021-04-12 13:02:53 +04:00
John Preston a100048cce Fix build on macOS and Linux. 2021-04-12 10:48:17 +04:00
John Preston 4ecd1049b2 Allow scheduling voice chats for up to 7 days. 2021-04-12 10:48:16 +04:00