--- ./Makefile 2019-09-07 16:22:46.574420000 -0400 +++ ./Makefile 2019-09-07 20:20:13.449078000 -0400 @@ -2,7 +2,7 @@ PORTNAME= telegram-desktop DISTVERSIONPREFIX= v -DISTVERSION= 1.7.14 +DISTVERSION= 1.8.4 CATEGORIES= net-im MAINTAINER= henry.hu.sh@gmail.com @@ -33,10 +33,10 @@ GH_TUPLE= catchorg:Catch2:5ca44b68:catch/Telegram/ThirdParty/Catch \ mapbox:variant:550ac2f:variant/Telegram/ThirdParty/variant \ Microsoft:GSL:d846fe5:gsl/Telegram/ThirdParty/GSL \ - telegramdesktop:libtgvoip:0e92a22:libtgvoip/Telegram/ThirdParty/libtgvoip \ - telegramdesktop:crl:9ea8700:crl/Telegram/ThirdParty/crl \ + telegramdesktop:libtgvoip:d4a0f71:libtgvoip/Telegram/ThirdParty/libtgvoip \ + telegramdesktop:crl:52baf11:crl/Telegram/ThirdParty/crl \ Cyan4973:xxHash:7cc9639:xxhash/Telegram/ThirdParty/xxHash \ - john-preston:rlottie:302b7f9:rlottie/Telegram/ThirdParty/rlottie \ + john-preston:rlottie:589db02:rlottie/Telegram/ThirdParty/rlottie \ lz4:lz4:9a2a9f2:lz4/Telegram/ThirdParty/lz4 USE_GNOME= glib20 USE_QT= core gui imageformats network widgets buildtools_build qmake_build dbus --- ./distinfo 2019-09-07 16:22:46.589527000 -0400 +++ ./distinfo 2019-09-07 16:54:34.956633000 -0400 @@ -1,19 +1,19 @@ -TIMESTAMP = 1564285102 -SHA256 (telegramdesktop-tdesktop-v1.7.14_GH0.tar.gz) = a52ab6efb4dc7579f05543df3fc3814baa09c0644e00ca30e37a9c6f99a5d164 -SIZE (telegramdesktop-tdesktop-v1.7.14_GH0.tar.gz) = 14296012 +TIMESTAMP = 1567889674 +SHA256 (telegramdesktop-tdesktop-v1.8.4_GH0.tar.gz) = 97f034d78447c99002b8742c75a3a436e709cdf2f5dff79f7ca04a8c76298627 +SIZE (telegramdesktop-tdesktop-v1.8.4_GH0.tar.gz) = 14367314 SHA256 (catchorg-Catch2-5ca44b68_GH0.tar.gz) = 8cdf2a345897bda1aaabffd4496dffe263768cef3e4254e74ae63545c8e12cc2 SIZE (catchorg-Catch2-5ca44b68_GH0.tar.gz) = 375264 SHA256 (mapbox-variant-550ac2f_GH0.tar.gz) = 7ab3aa7c9fa672027f13721584df5f7ec09c0ecca499d374c6ac76e147ef7354 SIZE (mapbox-variant-550ac2f_GH0.tar.gz) = 108686 SHA256 (Microsoft-GSL-d846fe5_GH0.tar.gz) = 4c463f93ca3b1dcb0b8d73b54309c1d31145761c457f1a6fd53554a6d469b468 SIZE (Microsoft-GSL-d846fe5_GH0.tar.gz) = 58930 -SHA256 (telegramdesktop-libtgvoip-0e92a22_GH0.tar.gz) = 179c780bf199ff41984756d1b0b96287edf0fa1490f76a31eb9cbdc572ecce6f -SIZE (telegramdesktop-libtgvoip-0e92a22_GH0.tar.gz) = 1484785 -SHA256 (telegramdesktop-crl-9ea8700_GH0.tar.gz) = 68011a83a139d68bed4fd13b946c1aea6f7bea8bffc702a4795f2c0e23f9efd4 -SIZE (telegramdesktop-crl-9ea8700_GH0.tar.gz) = 21873 +SHA256 (telegramdesktop-libtgvoip-d4a0f71_GH0.tar.gz) = bff049b414bdaafe488f3d46d894e910c06ff5233bf33001d59fe50b7de3702a +SIZE (telegramdesktop-libtgvoip-d4a0f71_GH0.tar.gz) = 1484804 +SHA256 (telegramdesktop-crl-52baf11_GH0.tar.gz) = 04effcfcbcd1486619d93dba0a30ca16579bca5cc37273ed1908dd8b375e3e3b +SIZE (telegramdesktop-crl-52baf11_GH0.tar.gz) = 21842 SHA256 (Cyan4973-xxHash-7cc9639_GH0.tar.gz) = f40801820e885f92bbe3d2434efeb39aa18eeaf878341982e8525b538468e3ed SIZE (Cyan4973-xxHash-7cc9639_GH0.tar.gz) = 37534 -SHA256 (john-preston-rlottie-302b7f9_GH0.tar.gz) = ade35b77c10c2a733ecccbca261222c36755bbd0f0d03f2e2772bd7cc0ad3d2b -SIZE (john-preston-rlottie-302b7f9_GH0.tar.gz) = 7896441 +SHA256 (john-preston-rlottie-589db02_GH0.tar.gz) = 415a78d04836f5bf4e535b034a7d5cf540d55cce98b9be869c3178e1c251f361 +SIZE (john-preston-rlottie-589db02_GH0.tar.gz) = 7887733 SHA256 (lz4-lz4-9a2a9f2_GH0.tar.gz) = 437827e1a1a0eec752777d29ef7ac78b195c805438448fe08154d9b5b181b8ea SIZE (lz4-lz4-9a2a9f2_GH0.tar.gz) = 293999 --- ./files/CMakeLists.inj 2018-10-12 20:26:36.215594000 -0400 +++ ./files/CMakeLists.inj 2019-09-07 17:07:33.124862000 -0400 @@ -12,6 +12,7 @@ add_precompiled_header(lib_base ../../Telegram/SourceFiles/base/base_pch.h) add_precompiled_header(lib_export ../../Telegram/SourceFiles/export/export_pch.h) add_precompiled_header(lib_storage ../../Telegram/SourceFiles/storage/storage_pch.h) +add_precompiled_header(lib_mtproto ../../Telegram/SourceFiles/mtproto/mtp_pch.h) # vim: ft=cmake # -------------- debian/CMakeLists.inj end -------------- --- ./files/gyp-patches 2019-09-07 16:22:46.615069000 -0400 +++ ./files/gyp-patches 2019-09-07 17:39:10.502663000 -0400 @@ -1,4 +1,4 @@ ---- Telegram/gyp/codegen_rules.gypi.orig 2019-07-07 13:34:35 UTC +--- Telegram/gyp/codegen_rules.gypi.orig 2019-09-06 13:41:43 UTC +++ Telegram/gyp/codegen_rules.gypi @@ -15,7 +15,7 @@ '<(SHARED_INTERMEDIATE_DIR)/update_dependent_styles.timestamp', @@ -25,7 +25,7 @@ '-o', '<(SHARED_INTERMEDIATE_DIR)/update_dependent_qrc.timestamp', '<@(qrc_files)', ], ---- Telegram/gyp/lib_export.gyp.orig 2019-07-07 13:34:35 UTC +--- Telegram/gyp/lib_export.gyp.orig 2019-09-06 13:41:43 UTC +++ Telegram/gyp/lib_export.gyp @@ -46,7 +46,7 @@ 'include_dirs': [ @@ -36,18 +36,18 @@ '<(submodules_loc)/GSL/include', '<(submodules_loc)/variant/include', '<(submodules_loc)/crl/src', ---- Telegram/gyp/lib_scheme.gyp.orig 2019-07-07 13:34:35 UTC +--- Telegram/gyp/lib_scheme.gyp.orig 2019-09-06 13:41:43 UTC +++ Telegram/gyp/lib_scheme.gyp -@@ -48,7 +48,7 @@ +@@ -49,7 +49,7 @@ '<(SHARED_INTERMEDIATE_DIR)/scheme.h', ], 'action': [ - 'python', '<(src_loc)/codegen/scheme/codegen_scheme.py', + '%%PYTHON_CMD%%', '<(src_loc)/codegen/scheme/codegen_scheme.py', - '-o', '<(SHARED_INTERMEDIATE_DIR)', '<(res_loc)/scheme.tl', - ], - 'message': 'codegen_scheme-ing scheme.tl..', ---- Telegram/gyp/qt_moc.gypi.orig 2019-07-07 13:34:35 UTC + '-o', '<(SHARED_INTERMEDIATE_DIR)', + '<(res_loc)/tl/mtproto.tl', + '<(res_loc)/tl/api.tl', +--- Telegram/gyp/qt_moc.gypi.orig 2019-09-06 13:41:43 UTC +++ Telegram/gyp/qt_moc.gypi @@ -15,12 +15,12 @@ '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp', @@ -64,7 +64,7 @@ # 'noSelectingScroll(); // TODO --- ./files/patch-Telegram_SourceFiles_history_history__inner__widget.cpp 2019-09-07 16:22:46.615664000 -0400 +++ ./files/patch-Telegram_SourceFiles_history_history__inner__widget.cpp 2019-09-07 17:39:10.417336000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/history/history_inner_widget.cpp.orig 2019-07-07 13:34:35 UTC +--- Telegram/SourceFiles/history/history_inner_widget.cpp.orig 2019-09-06 13:41:43 UTC +++ Telegram/SourceFiles/history/history_inner_widget.cpp -@@ -1382,7 +1382,7 @@ void HistoryInner::mouseActionFinish( +@@ -1390,7 +1390,7 @@ void HistoryInner::mouseActionFinish( _widget->noSelectingScroll(); _widget->updateTopBarSelection(); @@ -9,7 +9,7 @@ if (!_selected.empty() && _selected.cbegin()->second != FullSelection) { const auto [item, selection] = *_selected.cbegin(); if (const auto view = item->mainView()) { -@@ -1391,7 +1391,7 @@ void HistoryInner::mouseActionFinish( +@@ -1399,7 +1399,7 @@ void HistoryInner::mouseActionFinish( QClipboard::Selection); } } --- ./files/patch-Telegram_SourceFiles_history_view_history__view__list__widget.cpp 2019-09-07 16:22:46.602581000 -0400 +++ ./files/patch-Telegram_SourceFiles_history_view_history__view__list__widget.cpp 2019-09-07 17:39:10.418421000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/history/view/history_view_list_widget.cpp.orig 2019-07-07 13:34:35 UTC +--- Telegram/SourceFiles/history/view/history_view_list_widget.cpp.orig 2019-09-06 13:41:43 UTC +++ Telegram/SourceFiles/history/view/history_view_list_widget.cpp -@@ -2042,7 +2042,7 @@ void ListWidget::mouseActionFinish( +@@ -2050,7 +2050,7 @@ void ListWidget::mouseActionFinish( _mouseSelectType = TextSelectType::Letters; //_widget->noSelectingScroll(); // #TODO select scroll @@ -9,7 +9,7 @@ if (_selectedTextItem && _selectedTextRange.from != _selectedTextRange.to) { if (const auto view = viewForItem(_selectedTextItem)) { -@@ -2051,7 +2051,7 @@ void ListWidget::mouseActionFinish( +@@ -2059,7 +2059,7 @@ void ListWidget::mouseActionFinish( QClipboard::Selection); } } --- ./files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp 2019-09-07 16:22:46.602867000 -0400 +++ ./files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp 2019-09-07 17:39:10.424856000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/platform/linux/main_window_linux.cpp.orig 2019-07-07 13:34:35 UTC +--- Telegram/SourceFiles/platform/linux/main_window_linux.cpp.orig 2019-09-06 13:41:43 UTC +++ Telegram/SourceFiles/platform/linux/main_window_linux.cpp -@@ -25,7 +25,9 @@ bool noQtTrayIcon = false, tryAppIndicator = false; +@@ -26,7 +26,9 @@ bool noQtTrayIcon = false, tryAppIndicator = false; bool useGtkBase = false, useAppIndicator = false, useStatusIcon = false, trayIconChecked = false, useUnityCount = false; #ifndef TDESKTOP_DISABLE_GTK_INTEGRATION @@ -10,7 +10,7 @@ GtkStatusIcon *_trayIcon = 0; GtkWidget *_trayMenu = 0; GdkPixbuf *_trayPixbuf = 0; -@@ -291,7 +293,9 @@ void MainWindow::workmodeUpdated(DBIWorkMode mode) { +@@ -292,7 +294,9 @@ void MainWindow::workmodeUpdated(DBIWorkMode mode) { if (noQtTrayIcon) { #ifndef TDESKTOP_DISABLE_GTK_INTEGRATION if (useAppIndicator) { @@ -20,7 +20,7 @@ } else if (useStatusIcon) { Libs::gtk_status_icon_set_visible(_trayIcon, false); } -@@ -307,7 +311,9 @@ void MainWindow::workmodeUpdated(DBIWorkMode mode) { +@@ -308,7 +312,9 @@ void MainWindow::workmodeUpdated(DBIWorkMode mode) { if (noQtTrayIcon) { #ifndef TDESKTOP_DISABLE_GTK_INTEGRATION if (useAppIndicator) { @@ -30,7 +30,7 @@ } else if (useStatusIcon) { Libs::gtk_status_icon_set_visible(_trayIcon, true); } -@@ -326,7 +332,9 @@ void MainWindow::psUpdateIndicator() { +@@ -327,7 +333,9 @@ void MainWindow::psUpdateIndicator() { if (iconFile.exists()) { QByteArray path = QFile::encodeName(iconFile.absoluteFilePath()), name = QFile::encodeName(iconFile.fileName()); name = name.mid(0, name.size() - 4); @@ -40,7 +40,7 @@ } else { useAppIndicator = false; } -@@ -423,11 +431,15 @@ void MainWindow::LibsLoaded() { +@@ -424,11 +432,15 @@ void MainWindow::LibsLoaded() { && (Libs::g_object_ref_sink != nullptr) && (Libs::g_object_unref != nullptr); @@ -56,7 +56,7 @@ if (tryAppIndicator && useGtkBase && useAppIndicator) { noQtTrayIcon = true; -@@ -463,6 +475,7 @@ void MainWindow::psCreateTrayIcon() { +@@ -464,6 +476,7 @@ void MainWindow::psCreateTrayIcon() { } #ifndef TDESKTOP_DISABLE_GTK_INTEGRATION @@ -64,7 +64,7 @@ if (useAppIndicator) { DEBUG_LOG(("Trying to create AppIndicator")); _trayMenu = Libs::gtk_menu_new(); -@@ -493,6 +506,7 @@ void MainWindow::psCreateTrayIcon() { +@@ -494,6 +507,7 @@ void MainWindow::psCreateTrayIcon() { useAppIndicator = false; } } @@ -72,7 +72,7 @@ if (useStatusIcon) { if (Libs::gdk_init_check(0, 0)) { if (!_trayMenu) _trayMenu = Libs::gtk_menu_new(); -@@ -617,10 +631,12 @@ MainWindow::~MainWindow() { +@@ -628,10 +642,12 @@ MainWindow::~MainWindow() { Libs::g_object_unref(_trayMenu); _trayMenu = nullptr; } --- ./files/patch-Telegram_SourceFiles_qt__functions.cpp 2018-08-25 16:34:53.472242000 -0400 +++ ./files/patch-Telegram_SourceFiles_qt__functions.cpp 2019-09-07 17:39:10.434592000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/qt_functions.cpp.orig 2018-08-05 22:39:05 UTC +--- Telegram/SourceFiles/qt_functions.cpp.orig 2019-09-07 21:39:10 UTC +++ Telegram/SourceFiles/qt_functions.cpp -@@ -0,0 +1,94 @@ +@@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. @@ -33,6 +33,8 @@ +** $QT_END_LICENSE$ +** +****************************************************************************/ ++ ++#include + +/* TODO: find a dynamic library with these symbols. */ + --- ./files/patch-Telegram_SourceFiles_settings_settings__notifications.cpp 2019-09-07 16:22:46.644298000 -0400 +++ ./files/patch-Telegram_SourceFiles_settings_settings__notifications.cpp 2019-09-07 17:39:10.436767000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/settings/settings_notifications.cpp.orig 2019-07-07 13:34:35 UTC +--- Telegram/SourceFiles/settings/settings_notifications.cpp.orig 2019-09-06 13:41:43 UTC +++ Telegram/SourceFiles/settings/settings_notifications.cpp -@@ -480,11 +480,11 @@ void NotificationsCount::SampleWidget::destroyDelayed( +@@ -494,11 +494,11 @@ void NotificationsCount::SampleWidget::destroyDelayed( _deleted = true; // Ubuntu has a lag if deleteLater() called immediately. @@ -14,4 +14,4 @@ +#endif // Q_OS_LINUX32 || Q_OS_LINUX64 || Q_OS_FREEBSD } - void SetupAdvancedNotifications(not_null container) { + void SetupAdvancedNotifications( --- ./files/patch-Telegram_SourceFiles_ui_text_text.cpp 2019-09-07 16:22:46.616207000 -0400 +++ ./files/patch-Telegram_SourceFiles_ui_text_text.cpp 2019-09-07 17:39:10.438928000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/ui/text/text.cpp.orig 2019-07-07 13:34:35 UTC +--- Telegram/SourceFiles/ui/text/text.cpp.orig 2019-09-06 13:41:43 UTC +++ Telegram/SourceFiles/ui/text/text.cpp -@@ -2016,11 +2016,11 @@ class Renderer { (private) +@@ -2018,11 +2018,11 @@ class Renderer { (private) if (item == -1) return; --- ./files/patch-Telegram_SourceFiles_ui_text_text__block.cpp 2019-09-07 16:22:46.603151000 -0400 +++ ./files/patch-Telegram_SourceFiles_ui_text_text__block.cpp 2019-09-07 17:39:10.439999000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/ui/text/text_block.cpp.orig 2019-07-07 13:34:35 UTC +--- Telegram/SourceFiles/ui/text/text_block.cpp.orig 2019-09-06 13:41:43 UTC +++ Telegram/SourceFiles/ui/text/text_block.cpp -@@ -335,6 +335,9 @@ TextBlock::TextBlock(const style::font &font, const QS +@@ -337,6 +337,9 @@ TextBlock::TextBlock(const style::font &font, const QS QStackTextEngine engine(part, blockFont->f); BlockParser parser(&engine, this, minResizeWidth, _from, part); --- ./files/patch-Telegram_SourceFiles_window_main__window.cpp 2019-09-07 16:22:46.616486000 -0400 +++ ./files/patch-Telegram_SourceFiles_window_main__window.cpp 2019-09-07 17:39:10.443202000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/window/main_window.cpp.orig 2019-07-07 13:34:35 UTC +--- Telegram/SourceFiles/window/main_window.cpp.orig 2019-09-06 13:41:43 UTC +++ Telegram/SourceFiles/window/main_window.cpp -@@ -565,7 +565,7 @@ bool MainWindow::minimizeToTray() { +@@ -564,7 +564,7 @@ bool MainWindow::minimizeToTray() { } void MainWindow::reActivateWindow() { @@ -9,7 +9,7 @@ const auto reActivate = [=] { if (const auto w = App::wnd()) { if (auto f = QApplication::focusWidget()) { -@@ -580,7 +580,7 @@ void MainWindow::reActivateWindow() { +@@ -579,7 +579,7 @@ void MainWindow::reActivateWindow() { }; crl::on_main(this, reActivate); App::CallDelayed(200, this, reActivate); --- ./files/patch-Telegram_ThirdParty_libtgvoip_VoIPController.cpp 2019-09-07 16:22:46.603433000 -0400 +++ ./files/patch-Telegram_ThirdParty_libtgvoip_VoIPController.cpp 2019-09-07 17:39:10.444260000 -0400 @@ -1,16 +1,5 @@ ---- Telegram/ThirdParty/libtgvoip/VoIPController.cpp.orig 2019-06-24 11:42:33 UTC +--- Telegram/ThirdParty/libtgvoip/VoIPController.cpp.orig 2019-07-15 12:59:17 UTC +++ Telegram/ThirdParty/libtgvoip/VoIPController.cpp -@@ -2389,8 +2389,8 @@ simpleAudioBlock random_id:long random_bytes:string ra - stm->decoder=NULL; - }else if(stm->type==STREAM_TYPE_VIDEO){ - if(!stm->packetReassembler){ -- stm->packetReassembler=make_shared(); -- stm->packetReassembler->SetCallback(bind(&VoIPController::ProcessIncomingVideoFrame, this, placeholders::_1, placeholders::_2, placeholders::_3)); -+ //stm->packetReassembler=make_shared(); -+ //stm->packetReassembler->SetCallback(bind(&VoIPController::ProcessIncomingVideoFrame, this, placeholders::_1, placeholders::_2, placeholders::_3)); - } - }else{ - LOGW("Unknown incoming stream type: %d", stm->type); @@ -3048,7 +3048,7 @@ static void initMachTimestart() { #endif --- ./files/patch-Telegram_gyp_telegram__sources.txt 2019-09-07 16:22:46.616767000 -0400 +++ ./files/patch-Telegram_gyp_telegram__sources.txt 2019-09-07 17:39:10.470054000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/gyp/telegram_sources.txt.orig 2019-07-07 13:34:35 UTC +--- Telegram/gyp/telegram_sources.txt.orig 2019-09-06 13:41:43 UTC +++ Telegram/gyp/telegram_sources.txt -@@ -577,8 +577,8 @@ +@@ -605,8 +605,8 @@ <(src_loc)/platform/linux/linux_libs.h <(src_loc)/platform/linux/file_utilities_linux.cpp <(src_loc)/platform/linux/file_utilities_linux.h @@ -11,7 +11,7 @@ <(src_loc)/platform/linux/launcher_linux.cpp <(src_loc)/platform/linux/launcher_linux.h <(src_loc)/platform/linux/main_window_linux.cpp -@@ -894,14 +894,7 @@ +@@ -923,14 +923,7 @@ <(emoji_suggestions_loc)/emoji_suggestions.cpp <(emoji_suggestions_loc)/emoji_suggestions.h --- ./files/patch-issue6219 2019-09-07 16:22:46.603766000 -0400 +++ ./files/patch-issue6219 1969-12-31 19:00:00.000000000 -0500 @@ -1,172 +0,0 @@ -From 0710dde4d5526454318b2748331e887c01ecfdce Mon Sep 17 00:00:00 2001 -From: John Preston -Date: Tue, 9 Jul 2019 13:43:57 +0200 -Subject: [PATCH] Use private Qt color API only in official build. - -Fixes #6219. ---- - .../SourceFiles/ffmpeg/ffmpeg_utility.cpp | 100 ++++++++++++------ - Telegram/gyp/lib_ffmpeg.gyp | 6 +- - 2 files changed, 71 insertions(+), 35 deletions(-) - -diff --git a/Telegram/SourceFiles/ffmpeg/ffmpeg_utility.cpp b/Telegram/SourceFiles/ffmpeg/ffmpeg_utility.cpp -index 5d0e50926..3775f7503 100644 ---- Telegram/SourceFiles/ffmpeg/ffmpeg_utility.cpp -+++ Telegram/SourceFiles/ffmpeg/ffmpeg_utility.cpp -@@ -11,7 +11,10 @@ For license and copyright information please follow this link: - #include "logs.h" - - #include -+ -+#ifdef TDESKTOP_OFFICIAL_TARGET - #include -+#endif // TDESKTOP_OFFICIAL_TARGET - - extern "C" { - #include -@@ -44,6 +47,58 @@ void AlignedImageBufferCleanupHandler(void* data) { - && !(image.bytesPerLine() % kAlignImageBy); - } - -+void UnPremultiplyLine(uchar *dst, const uchar *src, int intsCount) { -+#ifdef TDESKTOP_OFFICIAL_TARGET -+ const auto layout = &qPixelLayouts[QImage::Format_ARGB32]; -+ const auto convert = layout->convertFromARGB32PM; -+#else // TDESKTOP_OFFICIAL_TARGET -+ const auto layout = nullptr; -+ const auto convert = []( -+ uint *dst, -+ const uint *src, -+ int count, -+ std::nullptr_t, -+ std::nullptr_t) { -+ for (auto i = 0; i != count; ++i) { -+ dst[i] = qUnpremultiply(src[i]); -+ } -+ }; -+#endif // TDESKTOP_OFFICIAL_TARGET -+ -+ convert( -+ reinterpret_cast(dst), -+ reinterpret_cast(src), -+ intsCount, -+ layout, -+ nullptr); -+} -+ -+void PremultiplyLine(uchar *dst, const uchar *src, int intsCount) { -+#ifdef TDESKTOP_OFFICIAL_TARGET -+ const auto layout = &qPixelLayouts[QImage::Format_ARGB32]; -+ const auto convert = layout->convertToARGB32PM; -+#else // TDESKTOP_OFFICIAL_TARGET -+ const auto layout = nullptr; -+ const auto convert = []( -+ uint *dst, -+ const uint *src, -+ int count, -+ std::nullptr_t, -+ std::nullptr_t) { -+ for (auto i = 0; i != count; ++i) { -+ dst[i] = qPremultiply(src[i]); -+ } -+ }; -+#endif // TDESKTOP_OFFICIAL_TARGET -+ -+ convert( -+ reinterpret_cast(dst), -+ reinterpret_cast(src), -+ intsCount, -+ layout, -+ nullptr); -+} -+ - } // namespace - - IOPointer MakeIOPointer( -@@ -360,58 +415,35 @@ void UnPremultiply(QImage &to, const QImage &from) { - if (!GoodStorageForFrame(to, from.size())) { - to = CreateFrameStorage(from.size()); - } -- -- const auto layout = &qPixelLayouts[QImage::Format_ARGB32]; -- const auto convert = layout->convertFromARGB32PM; - const auto fromPerLine = from.bytesPerLine(); - const auto toPerLine = to.bytesPerLine(); - const auto width = from.width(); -+ const auto height = from.height(); -+ auto fromBytes = from.bits(); -+ auto toBytes = to.bits(); - if (fromPerLine != width * 4 || toPerLine != width * 4) { -- auto fromBytes = from.bits(); -- auto toBytes = to.bits(); -- for (auto i = 0; i != to.height(); ++i) { -- convert( -- reinterpret_cast(toBytes), -- reinterpret_cast(fromBytes), -- width, -- layout, -- nullptr); -+ for (auto i = 0; i != height; ++i) { -+ UnPremultiplyLine(toBytes, fromBytes, width); - fromBytes += fromPerLine; - toBytes += toPerLine; - } - } else { -- convert( -- reinterpret_cast(to.bits()), -- reinterpret_cast(from.bits()), -- from.width() * from.height(), -- layout, -- nullptr); -+ UnPremultiplyLine(toBytes, fromBytes, width * height); - } - } - - void PremultiplyInplace(QImage &image) { -- const auto layout = &qPixelLayouts[QImage::Format_ARGB32]; -- const auto convert = layout->convertToARGB32PM; - const auto perLine = image.bytesPerLine(); - const auto width = image.width(); -+ const auto height = image.height(); -+ auto bytes = image.bits(); - if (perLine != width * 4) { -- auto bytes = image.bits(); -- for (auto i = 0; i != image.height(); ++i) { -- convert( -- reinterpret_cast(bytes), -- reinterpret_cast(bytes), -- width, -- layout, -- nullptr); -+ for (auto i = 0; i != height; ++i) { -+ PremultiplyLine(bytes, bytes, width); - bytes += perLine; - } - } else { -- convert( -- reinterpret_cast(image.bits()), -- reinterpret_cast(image.bits()), -- image.width() * image.height(), -- layout, -- nullptr); -+ PremultiplyLine(bytes, bytes, width * height); - } - } - -diff --git a/Telegram/gyp/lib_ffmpeg.gyp b/Telegram/gyp/lib_ffmpeg.gyp -index 9971d76ae..b9ada5362 100644 ---- Telegram/gyp/lib_ffmpeg.gyp -+++ Telegram/gyp/lib_ffmpeg.gyp -@@ -46,7 +46,11 @@ - '<(src_loc)/ffmpeg/ffmpeg_utility.cpp', - '<(src_loc)/ffmpeg/ffmpeg_utility.h', - ], -- 'conditions': [[ 'build_macold', { -+ 'conditions': [[ '"<(official_build_target)" != ""', { -+ 'defines': [ -+ 'TDESKTOP_OFFICIAL_TARGET=<(official_build_target)', -+ ], -+ }], [ 'build_macold', { - 'xcode_settings': { - 'OTHER_CPLUSPLUSFLAGS': [ '-nostdinc++' ], - },