Commit graph

202 commits

Author SHA1 Message Date
John Preston
3c931b11d6 Clear CacheHelper::waiting mutex in time.
I hope this fixes crashes in streaming semaphore usage.

CacheHelper::waiting points to Context::_semaphore, so it
should be cleared before Context is destroyed, not later.
2023-09-18 12:40:02 +04:00
John Preston
d567282430 Preload stories in the sources lists. 2023-07-20 07:20:14 +04:00
John Preston
e7ccf5d8ad Fix possible std::clamp contract violation. 2023-07-20 07:20:13 +04:00
John Preston
aba84a6010 Update API scheme on layer 160: Duration. 2023-07-20 07:20:10 +04:00
John Preston
b71d72ca7c Allow showing stories in different contexts. 2023-07-20 07:20:10 +04:00
John Preston
1f1e543df7 Fix good thumbnail generation in sibling stories. 2023-07-20 07:20:10 +04:00
John Preston
2c17f41c61 Beta version 4.6.12: Compare speed values safely. 2023-03-17 21:18:56 +04:00
John Preston
1eff68813d Reuse new speed change control for video. 2023-03-15 13:36:40 +04:00
John Preston
5ca7b95cdb Implement new voice speed change control design. 2023-03-14 17:30:50 +04:00
John Preston
9c74c04738 Implement audio speed using libavfilter. 2023-03-08 16:10:36 +04:00
John Preston
5cba1cdc64 Fix blurred background for small images.
Fixes #25707.
2023-01-12 11:45:45 +04:00
John Preston
b3858d5d97 Fix streamed media downloading.
Fixes #8500.
2022-12-26 14:24:07 +04:00
23rd
2acedca6b7 Replaced some qstr with u""_q literal. 2022-11-29 14:12:50 +03:00
John Preston
644ec1f599 Remove base::Observable / base::Variable. 2022-11-11 11:43:24 +04:00
John Preston
8268e9f872 Support new rounding for GIFs / videos. 2022-11-01 19:25:35 +04:00
John Preston
fc3810fd7f Improve scaling / expanding for photos.
Fixes #25061.
2022-09-19 17:44:59 +04:00
John Preston
749fb52113 Implement animated spoilers. 2022-09-18 16:52:30 +04:00
John Preston
d6ba092697 Make GIFs and videos with captions larger. 2022-09-05 19:03:52 +04:00
Alexander Kernozhitsky
a5bd4ef6f7 Fix code style 2022-09-04 08:04:02 +04:00
Alexander Kernozhitsky
c6c2a44e9d Patch the remaining uses or FFmpeg APIs 2022-09-04 08:04:02 +04:00
John Preston
184ebc865c Fix downloading videos of size > INT_MAX to disk. 2022-08-16 08:56:30 +03:00
John Preston
2499955496 Support custom emoji in the message input field. 2022-07-26 20:12:08 +03:00
John Preston
60d998bf36 Fix build on Linux. 2022-06-14 21:27:50 +04:00
John Preston
88393eb77b Fixed streaming for big files. 2022-05-19 17:27:03 +04:00
John Preston
6dedf7c63e Update API scheme to layer 143. 2022-05-19 17:27:02 +04:00
John Preston
dd9e317257 Recover after a streaming error. 2022-03-30 14:08:36 +04:00
John Preston
e8748986bf Fix fallback to software decoding in FFmpeg. 2022-03-30 12:22:50 +04:00
John Preston
41eb223bbf Render NV12 in OpenGL from hwaccel without swscale. 2022-03-23 10:03:43 +04:00
John Preston
0dca556843 Use FFmpeg hardware acceleration in media viewer / PiP. 2022-03-23 10:03:38 +04:00
23rd
c9ebec1cf0 Removed base/observer.h from main pch.
Removed unused inheritances from base::Subscriber.
2022-03-15 18:02:30 +03:00
Nicholas Guriev
436622ad7c Fix build against FFmpeg v5.0
It has been released on January 17th. This patch keeps source compatibility
with older versions.
2022-02-28 20:22:18 +03:00
John Preston
95e806cb89 Play webm stickers only once if looping is disabled. 2022-02-10 19:11:21 +03:00
John Preston
4bef1e9f59 Use unreliable video duration if open with audio. 2022-02-01 16:51:51 +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
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
3ff17a8789 Refactor image transformation interfaces. 2022-01-21 15:33:44 +03:00
Ilya Fedin
847c01d605 Add Qt 6 support
Tested only on Linux so far
2021-10-21 13:15:00 +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
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
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
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