Commit Graph

954 Commits

Author SHA1 Message Date
John Preston f918c6bb83 Pass QWindow to PowerSaveBlocker. 2022-02-04 09:43:56 +03:00
John Preston 9c01295521 Create PowerSaveBlocker-s on calls / video / audio. 2022-02-02 12:05:33 +03:00
John Preston 4bef1e9f59 Use unreliable video duration if open with audio. 2022-02-01 16:51:51 +03:00
John Preston 91c84d63de Force libvpx_vp9 decoder for VP9 videos.
Webm stickers depend on decoder support for alpha channel.
2022-01-28 19:10:07 +03:00
John Preston 8e749173de Render webm stickers in StickersListWidget. 2022-01-28 19:10:07 +03:00
John Preston 20dbf18106 Init webm player for sticker set thumbnails. 2022-01-28 19:10:07 +03:00
John Preston 589673e420 Fix non-sticker Webm in media viewer. 2022-01-28 19:10:07 +03:00
John Preston 2f9c39fe53 Support selecting Webm stickers. 2022-01-28 19:10:07 +03:00
John Preston 044c7f3ce9 Generate opaque good thumbnails for non-sticker Webm. 2022-01-28 19:10:07 +03:00
John Preston d18e28978a Cache good thumbnail in Webp for Webm stickers. 2022-01-28 19:10:07 +03:00
John Preston 846cabeda5 Premultiply YUVA alpha in FFMpegReaderImplementation. 2022-01-28 19:10:07 +03:00
John Preston 079772a399 Correctly preserve first frame alpha in video streaming. 2022-01-28 19:10:07 +03:00
John Preston 2e39befd7c Don't trust AVFormatContext duration in Webm video.
It reports some strange numbers like 1000, which is 1ms.
2022-01-28 19:10:07 +03:00
John Preston 8b7d2c880e Support rendering Webm videos with alpha. 2022-01-28 19:10:07 +03:00
John Preston 28f2c213f7 Remove app module. Support delayed quit by Cmd+Q on macOS. 2022-01-27 15:54:20 +03:00
23rd 0143d22a21 Split qt_adapters to separated files. 2022-01-26 10:33:28 +03:00
John Preston 3ff17a8789 Refactor image transformation interfaces. 2022-01-21 15:33:44 +03:00
23rd 8b56676c23 Fixed formatting of some internal links. 2022-01-16 14:13:12 +03:00
John Preston c313cfb4ec Don't show empty context menu. 2022-01-03 14:47:05 +03:00
John Preston 611be90880 Rewrite sponsored to use fake sender names. 2021-12-31 16:07:36 +03:00
John Preston 3623fb1f9a Disable saveAs in media viewer if restricted. 2021-12-30 14:58:34 +03:00
John Preston b773bb6e70 Add icons to the media viewer menus. 2021-12-29 21:22:33 +03:00
Ilya Fedin ffe4208595 Implement loop status/shuffle for MPRIS 2021-12-29 00:56:46 +04:00
John Preston 5e7e7eaa83 FullMsgId rely on PeerId instead of ChannelId. 2021-12-22 10:11:57 +00:00
John Preston 2eb64e051b Don't start animations from QEvent::Enter.
The enter/leave events may be sent from ~QWidget() and if we start
animating something with grabbing of widgets it crashes sometimes.
2021-11-29 15:56:50 +04:00
John Preston 3c0f80719e Don't show playlist with mouse over controls. 2021-11-29 11:11:38 +04:00
John Preston c153cdc70e Change volume by wheel events on volume icon. 2021-11-29 11:11:16 +04:00
John Preston 07dfe88d62 Fix player controls with animations disabled. 2021-11-29 10:25:55 +04:00
Ilya Fedin 4e63346877 Use AL_REMIX_UNMATCHED_SOFT enum value instead of hard-coded value
This makes the feature require version 1.21.0, previously was 1.20.1
2021-11-26 18:48:35 +04:00
Ilya Fedin f69d0823a9 Get rid of oal-soft specific alext.h include 2021-11-26 18:48:35 +04:00
John Preston 0f443da758 Track noforwards flag in specific messages. 2021-11-26 18:00:22 +04:00
John Preston 5cb5e3cc22 Use similar dropdown for playback speed. 2021-11-26 18:00:22 +04:00
John Preston c947586091 Add reverse / shuffle options dropdown. 2021-11-26 18:00:22 +04:00
John Preston 551e1f787c Move volume dropdown management to audio player. 2021-11-26 18:00:21 +04:00
John Preston cdf09e0519 Use composition for playbackSpeed button. 2021-11-26 18:00:21 +04:00
John Preston 4b489ee7d2 Fade out controls in a narrow player. 2021-11-26 18:00:21 +04:00
John Preston ca61b80fe5 Update audio player icons. 2021-11-26 18:00:21 +04:00
John Preston 38367dc1c7 Allow repeat all in shuffle mode. 2021-11-26 18:00:21 +04:00
John Preston 433169626b Fix restarting shuffled playlist. 2021-11-26 18:00:21 +04:00
John Preston 5cd339332c Implement shuffled playlist. 2021-11-26 18:00:20 +04:00
John Preston 7d89952541 Edit noforwards in group / channel type. 2021-11-26 18:00:20 +04:00
John Preston 0309eb023e Cycle through repeat modes by repeat toggle button. 2021-11-26 18:00:20 +04:00
John Preston ecb4d1d9ba Support repeat all in the audio player. 2021-11-26 18:00:20 +04:00
John Preston 68378cf8e5 Support reversed order in the playlist. 2021-11-26 18:00:20 +04:00
John Preston 74cfaff100 Migrate Media::Player::Instance to rpl. 2021-11-26 18:00:20 +04:00
John Preston 92e2b91f81 Add repeat / order controls to the audio player. 2021-11-26 18:00:20 +04:00
John Preston 395100584f Add a second dropdown with playback mode controls. 2021-11-26 18:00:20 +04:00
John Preston c849d17667 Remove corner download if noforwards. 2021-11-26 18:00:18 +04:00
John Preston 96c910190b Restrict saving files as if noforwards. 2021-11-26 18:00:18 +04:00
John Preston 487e8a9009 Disable copy to clipboard if noforwards. 2021-11-26 18:00:18 +04:00
John Preston 8a1140c09f Extract Media::Player::Dropdown widget. 2021-11-18 21:51:10 +04:00
John Preston a2bf1544df Remove Q_OBJECT from VolumeWidget. 2021-11-18 21:51:10 +04:00
John Preston f4a6be2ed9 Move audio player icons to "player" folder. 2021-11-18 21:51:10 +04:00
John Preston f2e4a5a35a Highlight YouTube video timestamps as external links. 2021-11-18 16:03:12 +04:00
John Preston c534f3f22e Some internal HistoryItem refactoring.
Replace most IsServerMsgId / id <=> 0 with isRegular().
Track isLocal / isHistoryEntry in flags.
Remove toHistoryMessage.
2021-11-07 12:50:13 +04:00
Ilya Fedin 847c01d605 Add Qt 6 support
Tested only on Linux so far
2021-10-21 13:15:00 +04:00
23rd 159beb138a Moved api peer photo processing to separated file.
Removed MainWidget::deletePhotoLayer.
2021-10-20 22:56:19 +03:00
23rd 9117b3cdfa Extracted DeleteMessagesBox to separated file. 2021-10-19 06:34:27 +03:00
CoderTimZ c9e24c2283 Display dates with the system date format 2021-10-11 21:56:29 +04:00
John Preston 19ce1edc16 Use base::SafeRound instead of std::round.
Previous assertion violations because of NaN from std::round were
in video streaming, see commits 27d58ba07b, 8f5830d520.

Now the crashes happened in the ConvertScale() call from a background
thread when preparing an image from clipboard for sending to a chat.
2021-09-27 12:13:57 +04:00
Hermesis cfcc1b1ce7 Control video in fullscreen mode using arrows and numbers 2021-09-26 14:07:02 +04:00
John Preston c336d725ea Fix media controls hiding workaround. 2021-09-19 16:55:55 +03:00
John Preston 8069fdd873 Use base/random.h instead of openssl::RandomValue. 2021-09-15 13:42:22 +03:00
23rd 900a7d0b2b Appended references to const auto types in loop to prevent copying.
Suggested by Apple Clang.
2021-09-09 16:32:04 +03:00
John Preston 7797099a49 Fix media viewer loading animation first show. 2021-09-07 23:41:08 +03:00
John Preston 8f9e394dd0 Fix build with GCC. 2021-09-07 23:41:08 +03:00
23rd 150dbef19f Added ability to save icon of last voice playback speed. 2021-09-07 23:41:07 +03:00
23rd 81a72caf07 Added context menu to voice playback speed button.
Fixed #16868.
Fixed #16138.
2021-09-07 23:41:07 +03:00
John Preston 434a7c5293 Remember volume from SMC.
Co-authored-by: 23rd <23rd@vivaldi.net>
2021-09-06 15:40:51 +03:00
udf fb1c253992 Set mixer volume on media control change 2021-09-06 15:40:51 +03:00
udf d53932382c Set mixer volume before changing setting 2021-09-06 15:40:51 +03:00
John Preston 463da7e410 Allow Ui::GL::Renderer::deinit on lost context. 2021-09-06 13:13:26 +03:00
23rd 4550b2a315 Decreased record bitrate of voice messages.
Fixed #6708.
2021-09-01 01:23:20 +03:00
23rd bcbab7ad8e Added ability to change playback speed for long audio files. 2021-09-01 01:23:20 +03:00
23rd b635a9d4a5 Changed voice playback speed setting to storage value of speed. 2021-09-01 01:23:20 +03:00
23rd e6f0c176f7 Moved AudioMsgId to separated file. 2021-09-01 01:23:20 +03:00
John Preston beff635e45 Colorize bubbles according to a custom chat theme. 2021-08-30 20:32:57 +03:00
John Preston 2694cb76a7 Remove crash debug information from streaming. 2021-08-25 11:24:32 +03:00
John Preston 401529e7d1 Fix possible crash in media viewer hide workaround. 2021-08-24 19:25:31 +03:00
John Preston 7948fc509e Remove (incorrect) checks for double casts. 2021-08-24 18:11:47 +03:00
John Preston 2d6155fc85 Throw fp exceptions in Windows 32 bit build. 2021-08-24 17:43:31 +03:00
John Preston 8f5830d520 Workaround both std::round-s in video streaming. 2021-08-24 12:42:27 +03:00
John Preston e8f1373edc Add some checks for NAN in video playback. 2021-08-23 20:29:40 +03:00
John Preston 7e6f24552a Add basic OpenGL info to crash annotations. 2021-08-23 18:29:20 +03:00
John Preston 27d58ba07b Try to do a non-failed double->crl::time cast.
A crash on some old CPUs show, that in video frame processing
sometimes a cast from double to crl::time fails, writing to
the resulting crl::time value INT64_MIN (0x8000000000000000).

This is shown in crash logs, with lines like:

...,rounded:104,casted:-9223372036854775808,...

where logs are written like:

...
).arg(std::round(adjust * _options.speed)
).arg(crl::time(std::round(adjust * _options.speed))
...

I don't know what to do and how to workaround this. Trying other casts.
2021-08-23 17:58:59 +03:00
John Preston 868015da25 Add extensive video playback crash logs. 2021-08-23 12:17:40 +03:00
John Preston 3136c0586e Add some more assertions to debug a crash. 2021-08-21 09:33:20 +03:00
John Preston 0d449c037b Beta version 2.9.5: Fix hide workaround for media viewer. 2021-08-20 19:56:40 +03:00
John Preston 3d36e501a1 Add some assertions to debug a crash in video playback. 2021-08-20 18:42:13 +03:00
John Preston c79cd0b692 Use Images::Read instead of App::readImage. 2021-08-11 18:55:08 +03:00
Ilya Fedin 97262a99c7 Get rid of osx and linux32 special targets 2021-08-11 16:59:27 +03:00
23rd 479611f6df Removed ui_getPeerForMouseAction. 2021-07-27 02:50:08 +03:00
23rd 93bcd90fd4 Provided more context for click handlers. 2021-07-27 02:18:49 +03:00
23rd 7c8b1cd5b1 Disabled forced session switching when closing PiP.
Regression was introduced in 7decf68122.
2021-07-26 18:54:58 +03:00
23rd a14f2144e1 Removed layout.cpp/h. 2021-07-26 17:38:51 +03:00
23rd c6071d1148 Moved generic document preview info to separated file. 2021-07-26 17:38:51 +03:00
John Preston c0f8e68f5d Don't use CurrentSingleComponentFormat.
Fix noise in voice chat blur in OpenGL ES (ANGLE).
2021-07-23 15:42:16 +03:00
Ilya Fedin ba9b72e038 Fix -Wunused-variable warnings with gcc 2021-07-19 22:31:27 +03:00
John Preston 10e1feb40b Use GL_BGRA_EXT format with ANGLE. 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
Ilya Fedin 79cc797aff Fix -Wunused-variable warnings 2021-07-13 21:43:34 +03:00
Ilya Fedin b6881022ce Allow to build with -Werror and clang
Fixes -Wdeprecated-enum-enum-conversion, -Wdeprecated-declarations, -Wrange-loop-construct, -Winconsistent-missing-override
2021-07-13 21:32:06 +03:00
Ilya Fedin 89765340c3 Fix -Wunused-function warnings 2021-07-13 21:31:22 +03:00
Ilya Fedin c53564cfdc Set service name for MPRIS 2021-07-10 14:28:04 +03:00
23rd a631a28092 Removed App::pixmapFromImageInPlace. 2021-07-06 12:13:06 +03:00
23rd af7ea90246 Added floating panel of playing playlist for scheduled audio files. 2021-07-01 23:53:45 +03:00
23rd 348cf4829c Added ability to scroll media in section of scheduled messages.
Fixed #8388.
2021-07-01 23:53:45 +03:00
23rd 4753a57091 Added ability to validate playlists in section of scheduled messages. 2021-07-01 23:53:45 +03:00
John Preston 6cea7d4a52 Fix YUV->RGB on D3D9 ANGLE backend. 2021-07-01 23:46:52 +03:00
John Preston 348666de6d Use media viewer size hack only when required. 2021-07-01 23:46:52 +03:00
23rd 7decf68122 Fixed possible crash in OverlayWidget when video continues from PiP. 2021-06-24 17:44:28 +04:00
John Preston 4ff9e90153 Add some assertions and logging for a crash debugging. 2021-06-24 10:49:01 +04:00
John Preston 28fe98af80 Add some assertions for a strange crash debugging. 2021-06-24 10:24:52 +04:00
23rd 460baa54d8 Fixed switching between PiP and OverlayWidget. 2021-06-18 07:30:54 +03:00
23rd 6c56fad180 Fixed updating of parent id for file click handlers.
Fixed #16447.
2021-06-18 07:30:54 +03:00
23rd 3fd772ce17 Moved file click handlers to separated file. 2021-06-18 07:30:54 +03:00
23rd 7924979dfb Removed Ui::showPeerHistoryAtItem from facades. 2021-06-17 10:57:46 +04:00
23rd c25779b844 Removed showDocument and showPhoto from Media::View::OverlayWidget. 2021-06-17 10:57:45 +04:00
23rd 1f816c249b Replaced DocumentOpenClickHandler. 2021-06-17 10:57:45 +04:00
23rd 9290cd3a16 Added SessionController pointer to Media::View::OverlayWidget. 2021-06-17 10:57:45 +04:00
23rd 7885be4a94 Added ability to show content from Controller for inline results. 2021-06-17 10:57:45 +04:00
23rd 6d0d399250 Added initial ability to show documents in OverlayWidget from Controller. 2021-06-17 10:57:45 +04:00
23rd 0e89c93993 Added initial ability to show content in OverlayWidget from Controller. 2021-06-17 10:57:45 +04:00
John Preston e2a97e2ae9 Fix possible crash in media viewer. 2021-06-17 10:09:22 +04:00
23rd c22d200c17 Removed unused observable trackFinished from Media::Audio::Instance. 2021-06-16 09:31:32 +03: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 4e0355d09f Fix semi-transparent .webp in media viewer. 2021-06-14 15:28:39 +04:00
John Preston 68be54288c Fix working using OpenGLES / ANGLE. 2021-06-14 12:16:00 +04:00
John Preston 10636d931f Validate video speed before applying. 2021-06-14 11:22:57 +04:00
John Preston 5ab8a7d9c5 Fix controls in PiP video player. 2021-06-11 20:29:34 +04:00
John Preston 4f0f815201 Fix crash in saving document from media viewer. 2021-06-11 19:36:27 +04:00
23rd 8d72026cbd Fixed build for Linux. 2021-06-10 23:00:56 +03:00
23rd 69eaecc218 Moved SystemMediaControlsManagerto Media namespace. 2021-06-10 23:00:56 +03:00
23rd 8356bac6d7 Added new event of seeking to media player. 2021-06-10 23:00:55 +03: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 e0e2b973f1 Remove shadow debugging image saving. 2021-06-10 15:38:19 +04:00
John Preston aeb994dd40 Fix radial loading and seek frame in PiP. 2021-06-10 14:05:15 +04:00
John Preston 112c597556 Fix video rotation apply in PiP player. 2021-06-10 11:44:31 +04:00
John Preston fc94045f41 Fix PiP cursor after drag/resize finished. 2021-06-10 10:39:09 +04:00
John Preston 2a8055c513 Fix action invocation after dragging PiP window.
Regression was introduced in d752aa3481.
2021-06-10 10:31:47 +04:00
John Preston fba116f0d5 Implement custom OpenGL renderer for PiP. 2021-06-10 10:12:37 +04:00
John Preston c5a46d9d1b For surface with parent backend should be fixed. 2021-06-09 09:19:29 +04:00
John Preston b3648d0147 Use QOpenGLShaderProgram::bind. 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 1886a5c4ed Fix build on macOS. 2021-06-09 09:19:28 +04:00
John Preston 71ddfacfaa Fix showing static content in OpenGL media viewer. 2021-06-09 09:19:28 +04:00
John Preston 23c2bce1bb Animated zoom+rotate in OpenGL media viewer. 2021-06-09 09:19:28 +04:00