Accepting request 666204 from home:wolfi323:branches:KDE:Extra

- Update to 2.0.16(-2):
  * Update scanfile.dvb to reflect latest channel additions
  * Immediately apply the new audio language if the user changes it
    while a channel is being playing
  * Fix audio language selection issues (kde#402735)
  * Add support for "Original Language" for audio and sub-title
    descriptors
  * Add some new PMT stream_type identifiers in order to allow
    supporting newer audio and video encoding types
  * Add support for High DPI pixel maps (kde#400422)
  * Add a command line option to force an specific aspect ratio
    (kde#394201)
  * Only read/write longitude/latitude from config files for USALS
    satellite configurations (kde#400268)
  * Add support for parallel instant records
  * Fix several issues related to audio CD playing
  * Update build instructions for Debian/Ubuntu and Fedora at
    README.md
  * Fix handling of command line arguments and describe the ones
    that are mutually exclusive at the docs (kde#394000)
  * Fix compilation issues and clean warnings when built with Clang
  * Fix compilation issues with qt5.11-rc2 and with FreeBSD
    (kde#393222)
  * Some code cleanups and typo fixes
- Add full Source URL
- Drop patches merged upstream:
  * 0001-only-use-qPrintable-for-debug-messages.patch
  * 0002-Fix-breakages-with-qt5.11-rc2.patch
  * fix-audio-CD-playing.patch
  * Set-vlcMedia-to-NULL-after-release.patch

OBS-URL: https://build.opensuse.org/request/show/666204
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/kaffeine?expand=0&rev=41
This commit is contained in:
Luca Beltrame 2019-01-15 12:31:16 +00:00 committed by Git OBS Bridge
parent 5294b7faf1
commit 258f654e2b
8 changed files with 42 additions and 428 deletions

View File

@ -1,44 +0,0 @@
From a9f09d4d84509259b92153f39e99e036bfcbcb61 Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date: Wed, 16 May 2018 14:11:26 -0300
Subject: [PATCH 1/3] only use qPrintable() for debug messages
There are two places qhere qPrintable() is not used for print
messages. Replace them by explicit conversion from QString
to char *.
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
src/backend-vlc/vlcmediawidget.cpp | 2 +-
src/dvb/dvbconfigdialog.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/backend-vlc/vlcmediawidget.cpp b/src/backend-vlc/vlcmediawidget.cpp
index 2421dd6..9be6263 100644
--- a/src/backend-vlc/vlcmediawidget.cpp
+++ b/src/backend-vlc/vlcmediawidget.cpp
@@ -427,7 +427,7 @@ void VlcMediaWidget::setExternalSubtitle(const QUrl &url)
qCWarning(logMediaWidget, "Cannot set subtitle file %s", qPrintable(fname));
#else
if (libvlc_video_set_subtitle_file(vlcMediaPlayer,
- qPrintable(fname)) == 0)
+ fname.toLocal8Bit().constData()) == 0)
qCWarning(logMediaWidget, "Cannot set subtitle file %s", qPrintable(fname));
#endif
}
diff --git a/src/dvb/dvbconfigdialog.cpp b/src/dvb/dvbconfigdialog.cpp
index fc44459..a639635 100644
--- a/src/dvb/dvbconfigdialog.cpp
+++ b/src/dvb/dvbconfigdialog.cpp
@@ -1539,7 +1539,7 @@ void DvbSLnbConfigObject::configure()
for (i = 0; i < size; i++) {
struct lnbSat lnb = device->getLnbSatModels().at(i);
- QRadioButton *radioButton = new QRadioButton(i18nd("libdvbv5", qPrintable(lnb.name)), mainWidget);
+ QRadioButton *radioButton = new QRadioButton(i18nd("libdvbv5", lnb.name.toLocal8Bit().constData()), mainWidget);
mainLayout->addWidget(radioButton);
lnbSelectionGroup->addButton(radioButton, i + 1);
gridLayout->addWidget(radioButton, i % ((size + 1) / 2), i / ((size + 1) / 2));
--
2.17.0

View File

@ -1,113 +0,0 @@
From 06b78c5f24891fd38d25ed64f5029106eec7c4fb Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Wed, 16 May 2018 16:38:04 -0300
Subject: [PATCH 2/3] Fix breakages with qt5.11-rc2
On Qt5.11, there was a change at the way qPrintable() works.
There, the var using it should be already a QString() type,
not allowing implicit conversions.
With that, some usages of qPrintable() are invalid for qt5.11,
as the vars to be printed are either enums or integers.
BUG: 393222
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
src/backend-vlc/vlcmediawidget.cpp | 4 ++--
src/dvb/dvbdevice_linux.cpp | 2 +-
src/dvb/dvbrecording.cpp | 2 +-
src/sqlinterface.cpp | 8 ++++----
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/backend-vlc/vlcmediawidget.cpp b/src/backend-vlc/vlcmediawidget.cpp
index 9be6263..60666d2 100644
--- a/src/backend-vlc/vlcmediawidget.cpp
+++ b/src/backend-vlc/vlcmediawidget.cpp
@@ -95,7 +95,7 @@ bool VlcMediaWidget::init()
for (uint i = 0; i < (sizeof(eventTypes) / sizeof(eventTypes[0])); ++i) {
if (libvlc_event_attach(eventManager, eventTypes[i], vlcEventHandler, this) != 0) {
- qCCritical(logMediaWidget, "Cannot attach event handler %s", qPrintable(eventTypes[i]));
+ qCCritical(logMediaWidget, "Cannot attach event handler %d", eventTypes[i]);
return false;
}
}
@@ -328,7 +328,7 @@ void VlcMediaWidget::play(const MediaSource &source)
for (uint i = 0; i < (sizeof(eventTypes) / sizeof(eventTypes[0])); ++i) {
if (libvlc_event_attach(eventManager, eventTypes[i], vlcEventHandler, this) != 0) {
- qCWarning(logMediaWidget, "Cannot attach event handler %s", qPrintable(eventTypes[i]));
+ qCWarning(logMediaWidget, "Cannot attach event handler %d", eventTypes[i]);
}
}
diff --git a/src/dvb/dvbdevice_linux.cpp b/src/dvb/dvbdevice_linux.cpp
index 1f6c4ad..aa7fd34 100644
--- a/src/dvb/dvbdevice_linux.cpp
+++ b/src/dvb/dvbdevice_linux.cpp
@@ -1245,7 +1245,7 @@ bool DvbLinuxDevice::getProps(DvbTransponder &transponder)
qCWarning(logDev, "Invalid transmission type");
return false;
default:
- qCWarning(logDev, "Unknown transmission type %s", qPrintable(transponder.getTransmissionType()));
+ qCWarning(logDev, "Unknown transmission type %d", transponder.getTransmissionType());
return false;
}
return true;
diff --git a/src/dvb/dvbrecording.cpp b/src/dvb/dvbrecording.cpp
index 1018455..1f1bf07 100644
--- a/src/dvb/dvbrecording.cpp
+++ b/src/dvb/dvbrecording.cpp
@@ -473,7 +473,7 @@ DvbSharedRecording DvbRecordingModel::getLeastImportant(QList<DvbSharedRecording
DvbSharedRecording leastImportant = recList.value(0);
foreach(DvbSharedRecording listRec, recList)
{
- qCDebug(logDvb, "name and priority %s %s", qPrintable(listRec->name), qPrintable(listRec->priority));
+ qCDebug(logDvb, "name and priority %s %d", qPrintable(listRec->name), listRec->priority);
if (listRec->priority < leastImportant->priority) {
leastImportant = listRec;
}
diff --git a/src/sqlinterface.cpp b/src/sqlinterface.cpp
index 8cc3bbd..d78d997 100644
--- a/src/sqlinterface.cpp
+++ b/src/sqlinterface.cpp
@@ -135,7 +135,7 @@ void SqlInterface::sqlInsert(SqlKey key)
break;
}
- qCWarning(logSql, "Invalid pending statement '%s'", qPrintable(pendingStatement));
+ qCWarning(logSql, "Invalid pending statement '%d'", pendingStatement);
}
void SqlInterface::sqlUpdate(SqlKey key)
@@ -155,7 +155,7 @@ void SqlInterface::sqlUpdate(SqlKey key)
break;
}
- qCWarning(logSql, "Invalid pending statement '%s'", qPrintable(pendingStatement));
+ qCWarning(logSql, "Invalid pending statement '%d'", pendingStatement);
}
void SqlInterface::sqlRemove(SqlKey key)
@@ -176,7 +176,7 @@ void SqlInterface::sqlRemove(SqlKey key)
break;
}
- qCWarning(logSql, "Invalid pending statement %s", qPrintable(pendingStatement));
+ qCWarning(logSql, "Invalid pending statement %d", pendingStatement);
}
void SqlInterface::requestSubmission()
@@ -226,7 +226,7 @@ void SqlInterface::sqlSubmit()
continue;
}
- qCWarning(logSql, "Invalid pending statement %s", qPrintable(pendingStatement));
+ qCWarning(logSql, "Invalid pending statement %d", pendingStatement);
}
pendingStatements.clear();
--
2.17.0

View File

@ -1,33 +0,0 @@
From dbe1593af6bfb54460d249f960936f1378224eb8 Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date: Sun, 28 Oct 2018 06:34:13 -0300
Subject: vlcmediawidget: Set vlcMedia to NULL after release
As we're now calling the code at makePlay() on two different
places, we should ensure that it will only work if vlcMedia
was created.
Without that, if someone tries to play an audio CD and it
fails for whatever reason (like if the system doesn't have
a CD device), it crashes.
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
src/backend-vlc/vlcmediawidget.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/backend-vlc/vlcmediawidget.cpp b/src/backend-vlc/vlcmediawidget.cpp
index 1f5d61d..e7bc801 100644
--- a/src/backend-vlc/vlcmediawidget.cpp
+++ b/src/backend-vlc/vlcmediawidget.cpp
@@ -353,6 +353,7 @@ void VlcMediaWidget::makePlay()
libvlc_media_player_set_media(vlcMediaPlayer, vlcMedia);
libvlc_media_release(vlcMedia);
+ vlcMedia = NULL;
if (libvlc_media_player_play(vlcMediaPlayer) != 0)
return;
--
cgit v0.11.2

View File

@ -1,222 +0,0 @@
From ef66906e3d3fda0144e18ed874c32266c1347ab1 Mon Sep 17 00:00:00 2001
From: Andrey Bychkov <mrdrew@altlinux.org>
Date: Fri, 26 Oct 2018 09:32:53 +0300
Subject: vlcmediawidget: fix audio CD playing
While here, also fix:
- all tracks playing
- 'next' & 'previous' working
---
src/backend-vlc/vlcmediawidget.cpp | 77 +++++++++++++++++++++++++++++++-------
src/backend-vlc/vlcmediawidget.h | 7 ++++
src/mediawidget.cpp | 4 +-
3 files changed, 72 insertions(+), 16 deletions(-)
diff --git a/src/backend-vlc/vlcmediawidget.cpp b/src/backend-vlc/vlcmediawidget.cpp
index fe320ae..568e9bc 100644
--- a/src/backend-vlc/vlcmediawidget.cpp
+++ b/src/backend-vlc/vlcmediawidget.cpp
@@ -27,6 +27,7 @@
#include <QMap>
#include <vlc/vlc.h>
#include <vlc/libvlc_version.h>
+#include <unistd.h>
#include "../configuration.h"
#include "vlcmediawidget.h"
@@ -279,6 +280,9 @@ void VlcMediaWidget::play(const MediaSource &source)
QByteArray url = source.getUrl().toEncoded();
playingDvd = false;
+ trackNumber = 1;
+ numDevType = 0;
+
switch (source.getType()) {
case MediaSource::Url:
if (url.endsWith(".iso")) {
@@ -287,6 +291,8 @@ void VlcMediaWidget::play(const MediaSource &source)
break;
case MediaSource::AudioCd:
+ numDevType=2;
+
if (url.size() >= 7) {
url.replace(0, 4, "cdda");
} else {
@@ -315,11 +321,24 @@ void VlcMediaWidget::play(const MediaSource &source)
break;
}
- libvlc_media_t *vlcMedia = libvlc_media_new_location(vlcInstance, url.constData());
+ typeOfDevice = url.constData();
+
+ vlcMedia = libvlc_media_new_location(vlcInstance, typeOfDevice);
+ if (numDevType == 2)
+ libvlc_media_add_option(vlcMedia, "cdda-track=1");
+
+ makePlay();
+
+ setCursor(Qt::BlankCursor);
+ setCursor(Qt::ArrowCursor);
+ timer->start(1000);
+ setMouseTracking(true);
+}
+void VlcMediaWidget::makePlay()
+{
if (vlcMedia == NULL) {
libvlc_media_player_stop(vlcMediaPlayer);
- qCWarning(logMediaWidget, "Cannot create media %s", qPrintable(source.getUrl().toDisplayString()));
return;
}
@@ -335,24 +354,46 @@ void VlcMediaWidget::play(const MediaSource &source)
libvlc_media_player_set_media(vlcMediaPlayer, vlcMedia);
libvlc_media_release(vlcMedia);
-// FIXME! subtitleUrl is only available for MediaSourceUrl private class
-// if (source.subtitleUrl.isValid())
-// setExternalSubtitle(source.subtitleUrl);
+ if (libvlc_media_player_play(vlcMediaPlayer) != 0)
+ return;
+}
- if (libvlc_media_player_play(vlcMediaPlayer) != 0) {
- qCWarning(logMediaWidget, "Cannot play media %s", qPrintable(source.getUrl().toDisplayString()));
- }
+void VlcMediaWidget::playDirection(int direction)
+{
+ char numBuff[256];
+ char strBuff[512] = "cdda-track=";
- setCursor(Qt::BlankCursor);
- setCursor(Qt::ArrowCursor);
- timer->start(1000);
- setMouseTracking(true);
+ if (direction == -1)
+ trackNumber--;
+ else
+ trackNumber++;
+
+ sprintf(numBuff, "%d", trackNumber);
+ strcat(strBuff, numBuff);
+
+ if (vlcMedia != NULL)
+ libvlc_media_release(vlcMedia);
+
+ vlcMedia = libvlc_media_new_location(vlcInstance, typeOfDevice);
+ libvlc_media_add_option(vlcMedia, strBuff);
+
+ makePlay();
+
+ sleep(1);
+
+ int playerState = libvlc_media_player_get_state(vlcMediaPlayer);
+
+ if (playerState != libvlc_Playing)
+ stop();
}
void VlcMediaWidget::stop()
{
libvlc_media_player_stop(vlcMediaPlayer);
+ if (trackNumber != 1)
+ trackNumber = 1;
+
timer->stop();
setCursor(Qt::BlankCursor);
setCursor(Qt::ArrowCursor);
@@ -452,7 +493,10 @@ bool VlcMediaWidget::jumpToPreviousChapter()
{
int currentTitle = libvlc_media_player_get_title(vlcMediaPlayer);
int currentChapter = libvlc_media_player_get_chapter(vlcMediaPlayer);
- libvlc_media_player_previous_chapter(vlcMediaPlayer);
+ if (numDevType == 2)
+ playDirection(-1);
+ else
+ libvlc_media_player_previous_chapter(vlcMediaPlayer);
if ((libvlc_media_player_get_title(vlcMediaPlayer) != currentTitle) ||
(libvlc_media_player_get_chapter(vlcMediaPlayer) != currentChapter)) {
@@ -466,7 +510,10 @@ bool VlcMediaWidget::jumpToNextChapter()
{
int currentTitle = libvlc_media_player_get_title(vlcMediaPlayer);
int currentChapter = libvlc_media_player_get_chapter(vlcMediaPlayer);
- libvlc_media_player_next_chapter(vlcMediaPlayer);
+ if (numDevType == 2)
+ playDirection(1);
+ else
+ libvlc_media_player_next_chapter(vlcMediaPlayer);
if ((libvlc_media_player_get_title(vlcMediaPlayer) != currentTitle) ||
(libvlc_media_player_get_chapter(vlcMediaPlayer) != currentChapter)) {
@@ -507,6 +554,8 @@ int VlcMediaWidget::updatePlaybackStatus()
playbackStatus = MediaWidget::Paused;
break;
case libvlc_Ended:
+ playDirection(1);
+ break;
case libvlc_Error:
playbackStatus = MediaWidget::Idle;
// don't keep last picture shown
diff --git a/src/backend-vlc/vlcmediawidget.h b/src/backend-vlc/vlcmediawidget.h
index 785370d..1534ed0 100644
--- a/src/backend-vlc/vlcmediawidget.h
+++ b/src/backend-vlc/vlcmediawidget.h
@@ -25,6 +25,7 @@
class libvlc_event_t;
class libvlc_instance_t;
+class libvlc_media_t;
class libvlc_media_player_t;
class QTimer;
@@ -68,6 +69,8 @@ public:
bool jumpToNextChapter();
void showDvdMenu();
void dvdNavigate(int key);
+ void playDirection(int direction);
+ void makePlay();
int updatePlaybackStatus();
void updateCurrentTotalTime();
@@ -90,10 +93,14 @@ private:
static void vlcEventHandler(const libvlc_event_t *event, void *instance);
libvlc_instance_t *vlcInstance;
+ libvlc_media_t *vlcMedia;
libvlc_media_player_t *vlcMediaPlayer;
bool playingDvd;
bool mouseVisible;
QMap<int, int> subtitleId;
+ QByteArray typeOfDevice;
+ int numDevType;
+ int trackNumber = 1;
};
#endif /* VLCMEDIAWIDGET_H */
diff --git a/src/mediawidget.cpp b/src/mediawidget.cpp
index fd84d87..f38d301 100644
--- a/src/mediawidget.cpp
+++ b/src/mediawidget.cpp
@@ -793,14 +793,14 @@ void MediaWidget::previous()
{
if (source->getType() == MediaSource::Url)
emit playlistPrevious();
- source->previous();
+ backend->jumpToPreviousChapter();
}
void MediaWidget::next()
{
if (source->getType() == MediaSource::Url)
emit playlistNext();
- source->next();
+ backend->jumpToNextChapter();
}
void MediaWidget::stop()
--
cgit v0.11.2

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e61573199fe4e04377679a5cf8b32b3aa0bb4201c56371e11820d3a3ae41904d
size 5988584

3
kaffeine-2.0.16-2.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8659189d907c2512321dd2c0d0c47176229c344970d633e33f29ce82432deee5
size 5995824

View File

@ -1,3 +1,37 @@
-------------------------------------------------------------------
Tue Jan 15 11:51:16 UTC 2019 - wbauer@tmo.at
- Update to 2.0.16(-2):
* Update scanfile.dvb to reflect latest channel additions
* Immediately apply the new audio language if the user changes it
while a channel is being playing
* Fix audio language selection issues (kde#402735)
* Add support for "Original Language" for audio and sub-title
descriptors
* Add some new PMT stream_type identifiers in order to allow
supporting newer audio and video encoding types
* Add support for High DPI pixel maps (kde#400422)
* Add a command line option to force an specific aspect ratio
(kde#394201)
* Only read/write longitude/latitude from config files for USALS
satellite configurations (kde#400268)
* Add support for parallel instant records
* Fix several issues related to audio CD playing
* Update build instructions for Debian/Ubuntu and Fedora at
README.md
* Fix handling of command line arguments and describe the ones
that are mutually exclusive at the docs (kde#394000)
* Fix compilation issues and clean warnings when built with Clang
* Fix compilation issues with qt5.11-rc2 and with FreeBSD
(kde#393222)
* Some code cleanups and typo fixes
- Add full Source URL
- Drop patches merged upstream:
* 0001-only-use-qPrintable-for-debug-messages.patch
* 0002-Fix-breakages-with-qt5.11-rc2.patch
* fix-audio-CD-playing.patch
* Set-vlcMedia-to-NULL-after-release.patch
-------------------------------------------------------------------
Mon Oct 29 08:43:00 UTC 2018 - wbauer@tmo.at

View File

@ -1,7 +1,7 @@
#
# spec file for package kaffeine
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2019 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
@ -12,28 +12,20 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: kaffeine
Version: 2.0.15
Version: 2.0.16
Release: 0
Summary: VLC-based Multimedia Player
License: GPL-2.0-or-later
Group: Productivity/Multimedia/Video/Players
URL: http://kaffeine.kde.org/
Source0: %{name}-%{version}.tar.xz
Source0: https://download.kde.org/stable/%{name}/%{name}-%{version}-2.tar.xz
# PATCH-FEATURE-OPENSUSE kaffeine-fixsplitter.patch -- GUI improvement (allow more flexibly set splitters)
Patch0: kaffeine-fixsplitter.patch
# PATCH-FIX-UPSTREAM -- 0001-only-use-qPrintable-for-debug-messages.patch
Patch1: 0001-only-use-qPrintable-for-debug-messages.patch
# PATCH-FIX-UPSTREAM -- 0002-Fix-breakages-with-qt5.11-rc2.patch
Patch2: 0002-Fix-breakages-with-qt5.11-rc2.patch
# PATCH-FIX-UPSTREAM
Patch3: fix-audio-CD-playing.patch
# PATCH-FIX-UPSTREAM
Patch4: Set-vlcMedia-to-NULL-after-release.patch
BuildRequires: extra-cmake-modules
BuildRequires: pkgconfig
BuildRequires: cmake(KF5CoreAddons)
@ -74,7 +66,7 @@ playing their movies: from DVD (including DVD menus, titles, chapters, etc.), VC
%lang_package
%prep
%autosetup -p1
%autosetup -p1 -n %{name}-%{version}-2
%build
%cmake_kf5 -d build