FFmpeg docs say that you must return AVERROR_EOF from the read callback, not zero. Still, Telegram just propagates the return value from IODevice::read() call, which returns zero in case of EOF.
I don't know whether this commit has any effect on the upstream build, but it fixes a bug in Debian build of Telegram, which is using FFmpeg 5.1 instead of 4.4. Still, it's also useful in the upstream, as it makes work with FFmpeg more correct.
During testing with Qt 6.4 I now remember why I made a way complicated logic (yes, because the trivial one bugs with Qt 6.4)
This restores it, but uses event filters rather than hardware integration override
This commit significantly improves the usability of the volume controls
for controlling volume in a way that matches intuitively onto human
needs and loudness perception.
Using the third power of the volume is a good approximation of the
quasi-logarithmic psychoacoustic system, while being defined everywhere
and preserving the useful quality of 0% volume mapping onto gain 0.0.
The use of this exact mapping function is a prior art established by
e.g. PulseAudio, among many other programs.
Fixes#24488
– The online status of the user should be checked and updated only
when the previous active window and the current active window both have
different sessions.
– Removed MainWindow::activeChangedHook since windows should not
change online status on their own on activating.
– Renamed Application::maybeActiveSession
to Application::maybePrimarySession.
– Added updating of online status on changing of the current account
since this seems to have been missed.
1. FramelessWindowHint seem to be a redudant leftover of BypassWindowManagerHint, media viewer uses fullscreen state now that implies lack of the frame
2. MaximizeUsingFullscreenGeometryHint is useless since media viewer doesn't use maximize
3. Transient parent/window modality dance is replaced with minimum/maximum size just like in other places where tiling shouldn't be done
4. setWindowState(WindowFullScreen) is replaced with showFullScreen that ensures the flag is set on each show