Hello community, here is the log from the commit of package mumble for openSUSE:Factory checked in at 2016-01-05 09:41:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mumble (Old) and /work/SRC/openSUSE:Factory/.mumble.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mumble" Changes: -------- --- /work/SRC/openSUSE:Factory/mumble/mumble.changes 2015-12-21 12:04:24.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.mumble.new/mumble.changes 2016-01-05 09:42:00.000000000 +0100 @@ -1,0 +2,15 @@ +Mon Jan 4 14:32:36 UTC 2016 - [email protected] + +- mumble 1.2.12: + * The log would always scroll-to-bottom, even if manually + scrolled up to view a previous message. Scroll-to-bottom is now + only triggered if the log view has not manually scrolled by the + user. + * Fixed a bug where a stale overlay client could cause the Mumble + UI to freeze under some circumstances. + * Fixed a bug where CELT and Opus encoders were not properly + reset when using more than one frame per packet in Mumble. This + would previously cause noisy artifacts at the beginning of + transmissions. + +------------------------------------------------------------------- Old: ---- mumble-1.2.11.tar.gz mumble-1.2.11.tar.gz.sig New: ---- mumble-1.2.12.tar.gz mumble-1.2.12.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mumble.spec ++++++ --- /var/tmp/diff_new_pack.fqTLKB/_old 2016-01-05 09:42:01.000000000 +0100 +++ /var/tmp/diff_new_pack.fqTLKB/_new 2016-01-05 09:42:01.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package mumble # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -49,7 +49,7 @@ %bcond_with system_celt %bcond_without system_speex Name: mumble -Version: 1.2.11%{?snapshot:_%{snapshot}} +Version: 1.2.12%{?snapshot:_%{snapshot}} Release: 0 Summary: Voice Communication Client for Gamers License: BSD-3-Clause ++++++ mumble-1.2.11.tar.gz -> mumble-1.2.12.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/CHANGES new/mumble-1.2.12/CHANGES --- old/mumble-1.2.11/CHANGES 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/CHANGES 2015-12-20 12:22:22.000000000 +0100 @@ -1,3 +1,18 @@ +2015-12-20 + Mikkel Krautz <[email protected]> + 443d0d2 AudioInput: ensure our encoders are reset correctly when using + > 1 frame per packet. + +2015-12-10 + Mikkel Krautz <[email protected]> + 1a4ae8d LogTextBrowser: move all scroll-to-bottom logic to the + LogTextBrowser. + 31b68bf Bump version to 1.2.12. + +2015-12-06 + Mikkel Krautz <[email protected]> + 212a4c0 Update changelog. + 2015-12-05 Mikkel Krautz <[email protected]> a1a5b10 GlobalShortcut: update help text for marking Mumble trusted @@ -68,6 +83,10 @@ 7b086e8 SSL: add MumbleSSL::defaultOpenSSLCipherString(). 0a89171 SSL: implement OpenSSL cipher list format reader. +2015-04-30 + Stefan Hacker <[email protected]> + 1e4e1e1 Prevent OverlayClient destructor from hanging on disconnect + 2015-03-22 Mikkel Krautz <[email protected]> 7efa896 Fix Qt 4 build of mach-override to build both x86 and x86-64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/g15helper/g15helper.plist new/mumble-1.2.12/g15helper/g15helper.plist --- old/mumble-1.2.11/g15helper/g15helper.plist 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/g15helper/g15helper.plist 2015-12-20 12:22:22.000000000 +0100 @@ -13,7 +13,7 @@ <key>CFBundleSignature</key> <string>G15H</string> <key>CFBundleVersion</key> - <string>1.2.11</string> + <string>1.2.12</string> <key>NSHumanReadableCopyright</key> <string>Copyright (c) 2009 Mikkel Krautz <[email protected]></string> </dict> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/g15helper/g15helper.rc new/mumble-1.2.12/g15helper/g15helper.rc --- old/mumble-1.2.11/g15helper/g15helper.rc 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/g15helper/g15helper.rc 2015-12-20 12:22:22.000000000 +0100 @@ -15,8 +15,8 @@ #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,2,11,0 - PRODUCTVERSION 1,2,11,0 + FILEVERSION 1,2,12,0 + PRODUCTVERSION 1,2,12,0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS (VER_DEBUG|VER_RELEASE) FILEOS VOS_NT_WINDOWS32 @@ -29,8 +29,8 @@ BEGIN VALUE "CompanyName", "Mikkel Krautz" VALUE "FileDescription", "Mumble G15 LCD Helper" - VALUE "FileVersion", "1.2.11" - VALUE "ProductVersion", "1.2.11" + VALUE "FileVersion", "1.2.12" + VALUE "ProductVersion", "1.2.12" VALUE "LegalCopyright", "Copyright (C) 2008-2011, Mikkel Krautz <[email protected]>" VALUE "OriginalFilename", "mumble-g15-helper.exe" VALUE "ProductName", "Mumble G15 LCD Helper" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/macx/common.pri new/mumble-1.2.12/macx/common.pri --- old/mumble-1.2.11/macx/common.pri 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/macx/common.pri 2015-12-20 12:22:22.000000000 +0100 @@ -1,6 +1,6 @@ # Common OSX overlay settings. -VERSION = 1.2.11 +VERSION = 1.2.12 DEFINES *= VERSION=\\\"$$VERSION\\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/macx/osax/osax.plist new/mumble-1.2.12/macx/osax/osax.plist --- old/mumble-1.2.11/macx/osax/osax.plist 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/macx/osax/osax.plist 2015-12-20 12:22:22.000000000 +0100 @@ -13,7 +13,7 @@ <key>CFBundlePackageType</key> <string>osax</string> <key>CFbundleVersion</key> - <string>1.2.11</string> + <string>1.2.12</string> <key>CFBundleSignature</key> <string>MUOL</string> <key>CSResourcesFileMapped</key> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/overlay/overlay.pro new/mumble-1.2.12/overlay/overlay.pro --- old/mumble-1.2.11/overlay/overlay.pro 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/overlay/overlay.pro 2015-12-20 12:22:22.000000000 +0100 @@ -1,6 +1,6 @@ include (../compiler.pri) -VERSION = 1.2.11 +VERSION = 1.2.12 TARGET_EXT = .dll TEMPLATE = lib CONFIG -= qt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/overlay_gl/overlay_gl.pro new/mumble-1.2.12/overlay_gl/overlay_gl.pro --- old/mumble-1.2.11/overlay_gl/overlay_gl.pro 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/overlay_gl/overlay_gl.pro 2015-12-20 12:22:22.000000000 +0100 @@ -5,7 +5,7 @@ CONFIG -= qt CONFIG *= debug_and_release TARGET = mumble$(TARGET_ADD) -VERSION = 1.2.11 +VERSION = 1.2.12 SOURCES = overlay.c LIBS *= -lrt -ldl QMAKE_CFLAGS *= -fvisibility=hidden $(CFLAGS_ADD) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/Version.h new/mumble-1.2.12/src/Version.h --- old/mumble-1.2.11/src/Version.h 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/Version.h 2015-12-20 12:22:22.000000000 +0100 @@ -36,7 +36,7 @@ #define MUMTEXT(X) MUMXTEXT(X) #ifndef MUMBLE_VERSION -#define MUMBLE_VERSION 1.2.11 +#define MUMBLE_VERSION 1.2.12 #endif #ifndef MUMBLE_VERSION #define MUMBLE_RELEASE "Compiled " __DATE__ " " __TIME__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble/AudioInput.cpp new/mumble-1.2.12/src/mumble/AudioInput.cpp --- old/mumble-1.2.11/src/mumble/AudioInput.cpp 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble/AudioInput.cpp 2015-12-20 12:22:22.000000000 +0100 @@ -144,6 +144,8 @@ bPreviousVoice = false; + bResetEncoder = true; + pfMicInput = pfEchoInput = pfOutput = NULL; iBitrate = 0; @@ -594,6 +596,8 @@ sesEcho = NULL; } + bResetEncoder = true; + bResetProcessor = false; } @@ -675,8 +679,10 @@ int AudioInput::encodeOpusFrame(short *source, int size, unsigned char *buffer) { int len = 0; #ifdef USE_OPUS - if (!bPreviousVoice) + if (bResetEncoder) { opus_encoder_ctl(opusState, OPUS_RESET_STATE, NULL); + bResetEncoder = false; + } opus_encoder_ctl(opusState, OPUS_SET_BITRATE(iAudioQuality)); @@ -692,8 +698,10 @@ if (!cCodec) return len; - if (!bPreviousVoice) + if (bResetEncoder) { cCodec->celt_encoder_ctl(ceEncoder, CELT_RESET_STATE); + bResetEncoder = false; + } cCodec->celt_encoder_ctl(ceEncoder, CELT_SET_PREDICTION(0)); @@ -841,6 +849,10 @@ speex_preprocess_ctl(sppPreprocess, SPEEX_PREPROCESS_SET_AGC_INCREMENT, &increment); } + if (bIsSpeech && !bPreviousVoice) { + bResetEncoder = true; + } + tIdle.restart(); unsigned char buffer[512]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble/AudioInput.h new/mumble-1.2.12/src/mumble/AudioInput.h --- old/mumble-1.2.11/src/mumble/AudioInput.h 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble/AudioInput.h 2015-12-20 12:22:22.000000000 +0100 @@ -122,6 +122,11 @@ CELTCodec *cCodec; CELTEncoder *ceEncoder; + /// bResetEncoder is a flag that notifies + /// our encoder functions that the encoder + /// needs to be reset. + bool bResetEncoder; + int iAudioQuality; int iAudioFrames; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble/CustomElements.cpp new/mumble-1.2.12/src/mumble/CustomElements.cpp --- old/mumble-1.2.11/src/mumble/CustomElements.cpp 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble/CustomElements.cpp 2015-12-20 12:22:22.000000000 +0100 @@ -39,36 +39,72 @@ #include "Log.h" -LogTextBrowser::LogTextBrowser(QWidget *p) : QTextBrowser(p) {} +LogTextBrowser::LogTextBrowser(QWidget *p) + : m_pos(0) + , m_scrollToBottom(true) + , QTextBrowser(p) { + + connect(verticalScrollBar(), SIGNAL(sliderMoved(int)), SLOT(verticalScrollBarMoved(int))); + connect(verticalScrollBar(), SIGNAL(actionTriggered(int)), SLOT(verticalScrollBarActionTriggered(int))); + connect(verticalScrollBar(), SIGNAL(rangeChanged(int, int)), SLOT(verticalScrollBarRangeChanged(int, int))); +} void LogTextBrowser::resizeEvent(QResizeEvent *e) { - scrollLogToBottom(); + // Scroll to the bottom of the log view on resize. + m_pos = 0; + m_scrollToBottom = true; + updateScrollPosition(); + QTextBrowser::resizeEvent(e); } bool LogTextBrowser::event(QEvent *e) { if (e->type() == LogDocumentResourceAddedEvent::Type) { - scrollLogToBottom(); + updateScrollPosition(); } return QTextBrowser::event(e); } -int LogTextBrowser::getLogScroll() { - return verticalScrollBar()->value(); +/// Update the scroll position based on the current +/// state of the scroll bar. If the scrollbar has been +/// scrolled to the bottom by the user (or has not been +/// moved at all by the user), it will always scroll to +/// the bottom automatically. Otherwise, it will keep the +/// position the user last put it at. +void LogTextBrowser::updateScrollPosition() { + if (m_scrollToBottom) { + verticalScrollBar()->setValue(verticalScrollBar()->maximum()); + } else { + verticalScrollBar()->setValue(m_pos); + } } -int LogTextBrowser::getLogScrollMaximum() { - return verticalScrollBar()->maximum(); +/// updateUserScrollState updates the current scroll +/// state. This method should only be called when a +/// user changes the scrollbar's position. +void LogTextBrowser::updateUserScrollState() { + QScrollBar *scrollBar = verticalScrollBar(); + int curpos = scrollBar->sliderPosition(); + int max = scrollBar->maximum(); + if (curpos >= max) { + m_scrollToBottom = true; + } else { + m_scrollToBottom = false; + } + m_pos = curpos; } -void LogTextBrowser::setLogScroll(int pos) { - verticalScrollBar()->setValue(pos); +void LogTextBrowser::verticalScrollBarMoved(int) { + updateUserScrollState(); } -void LogTextBrowser::scrollLogToBottom() { - verticalScrollBar()->setValue(verticalScrollBar()->maximum()); +void LogTextBrowser::verticalScrollBarActionTriggered(int) { + updateUserScrollState(); } +void LogTextBrowser::verticalScrollBarRangeChanged(int, int) { + updateScrollPosition(); +} /*! \fn int ChatbarTextEdit::completeAtCursor() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble/CustomElements.h new/mumble-1.2.12/src/mumble/CustomElements.h --- old/mumble-1.2.11/src/mumble/CustomElements.h 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble/CustomElements.h 2015-12-20 12:22:22.000000000 +0100 @@ -42,15 +42,18 @@ Q_OBJECT Q_DISABLE_COPY(LogTextBrowser) protected: + int m_pos; + bool m_scrollToBottom; + void updateUserScrollState(); virtual void resizeEvent(QResizeEvent *e); virtual bool event(QEvent *e); + protected slots: + void verticalScrollBarMoved(int pos); + void verticalScrollBarActionTriggered(int action); + void verticalScrollBarRangeChanged(int min, int max); public: LogTextBrowser(QWidget *p = NULL); - - int getLogScroll(); - int getLogScrollMaximum(); - void setLogScroll(int pos); - void scrollLogToBottom(); + void updateScrollPosition(); }; class ChatbarTextEdit : public QTextEdit { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble/Log.cpp new/mumble-1.2.12/src/mumble/Log.cpp --- old/mumble-1.2.11/src/mumble/Log.cpp 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble/Log.cpp 2015-12-20 12:22:22.000000000 +0100 @@ -441,8 +441,6 @@ QTextCursor tc = g.mw->qteLog->textCursor(); LogTextBrowser *tlog = g.mw->qteLog; - const int oldscrollvalue = tlog->getLogScroll(); - const bool scroll = (oldscrollvalue == tlog->getLogScrollMaximum()); tc.movePosition(QTextCursor::End); @@ -467,10 +465,7 @@ tc.movePosition(QTextCursor::End); g.mw->qteLog->setTextCursor(tc); - if (scroll || ownMessage) - tlog->scrollLogToBottom(); - else - tlog->setLogScroll(oldscrollvalue); + tlog->updateScrollPosition(); } if (!g.s.bTTSMessageReadBack && ownMessage) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble/OverlayClient.cpp new/mumble-1.2.12/src/mumble/OverlayClient.cpp --- old/mumble-1.2.11/src/mumble/OverlayClient.cpp 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble/OverlayClient.cpp 2015-12-20 12:22:22.000000000 +0100 @@ -90,8 +90,12 @@ delete qgpiCursor; delete qgpiLogo; - qlsSocket->disconnect(); - qlsSocket->abort(); + qlsSocket->disconnectFromServer(); + if (!qlsSocket->waitForDisconnected(1000)) { + qDebug() << "OverlayClient: Failed to cleanly disconnect: " << qlsSocket->errorString(); + qlsSocket->abort(); + } + qlsSocket->deleteLater(); ougUsers.reset(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble/mumble.plist new/mumble-1.2.12/src/mumble/mumble.plist --- old/mumble-1.2.11/src/mumble/mumble.plist 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble/mumble.plist 2015-12-20 12:22:22.000000000 +0100 @@ -26,7 +26,7 @@ </dict> </array> <key>CFBundleVersion</key> - <string>1.2.11</string> + <string>1.2.12</string> <key>NSHumanReadableCopyright</key> <string>Copyright (c) 2005-2010 Thorvald Natvig <[email protected]></string> </dict> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble/mumble.rc new/mumble-1.2.12/src/mumble/mumble.rc --- old/mumble-1.2.11/src/mumble/mumble.rc 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble/mumble.rc 2015-12-20 12:22:22.000000000 +0100 @@ -15,8 +15,8 @@ #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,2,11,0 - PRODUCTVERSION 1,2,11,0 + FILEVERSION 1,2,12,0 + PRODUCTVERSION 1,2,12,0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS (VER_DEBUG|VER_RELEASE) FILEOS VOS_NT_WINDOWS32 @@ -29,8 +29,8 @@ BEGIN VALUE "CompanyName", "Thorvald Natvig" VALUE "FileDescription", "Mumble - Low-latency VoIP client" - VALUE "FileVersion", "1.2.11" - VALUE "ProductVersion", "1.2.11" + VALUE "FileVersion", "1.2.12" + VALUE "ProductVersion", "1.2.12" VALUE "LegalCopyright", "Copyright (C) 2005-2011, Thorvald Natvig <[email protected]>" VALUE "OriginalFilename", "mumble.exe" VALUE "ProductName", "Mumble" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/mumble.pri new/mumble-1.2.12/src/mumble.pri --- old/mumble-1.2.11/src/mumble.pri 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/mumble.pri 2015-12-20 12:22:22.000000000 +0100 @@ -1,6 +1,6 @@ include(../compiler.pri) -VERSION = 1.2.11 +VERSION = 1.2.12 DIST = mumble.pri Message.h PacketDataStream.h CryptState.h Timer.h Version.h OSInfo.h SSL.h Mumble.proto CONFIG += qt thread debug_and_release warn_on DEFINES *= MUMBLE_VERSION_STRING=$$VERSION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/murmur/murmur.plist new/mumble-1.2.12/src/murmur/murmur.plist --- old/mumble-1.2.11/src/murmur/murmur.plist 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/murmur/murmur.plist 2015-12-20 12:22:22.000000000 +0100 @@ -13,7 +13,7 @@ <key>CFBundleSignature</key> <string>MMUR</string> <key>CFBundleVersion</key> - <string>1.2.11</string> + <string>1.2.12</string> <key>NSHumanReadableCopyright</key> <string>Copyright (c) 2005-2010 Thorvald Natvig <[email protected]></string> </dict> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mumble-1.2.11/src/murmur/murmur.rc new/mumble-1.2.12/src/murmur/murmur.rc --- old/mumble-1.2.11/src/murmur/murmur.rc 2015-12-06 04:01:17.000000000 +0100 +++ new/mumble-1.2.12/src/murmur/murmur.rc 2015-12-20 12:22:22.000000000 +0100 @@ -15,8 +15,8 @@ #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,2,11,0 - PRODUCTVERSION 1,2,11,0 + FILEVERSION 1,2,12,0 + PRODUCTVERSION 1,2,12,0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS (VER_DEBUG|VER_RELEASE) FILEOS VOS_NT_WINDOWS32 @@ -29,8 +29,8 @@ BEGIN VALUE "CompanyName", "Thorvald Natvig" VALUE "FileDescription", "Murmur - Low-latency VoIP server" - VALUE "FileVersion", "1.2.11" - VALUE "ProductVersion", "1.2.11" + VALUE "FileVersion", "1.2.12" + VALUE "ProductVersion", "1.2.12" VALUE "LegalCopyright", "Copyright (C) 2005-2011, Thorvald Natvig <[email protected]>" VALUE "OriginalFilename", "murmur.exe" VALUE "ProductName", "Mumble"
