mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-23 04:00:05 +02:00
qt6_multimedia: bump version
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
From 78a4a3341fa2a348e4865686d6d30d5bc3ce43a9 Mon Sep 17 00:00:00 2001
|
||||
From 0ac90d7b667fbd8aa116e4b6e3524b01286d3c82 Mon Sep 17 00:00:00 2001
|
||||
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
||||
Date: Wed, 18 Oct 2023 15:46:10 +1000
|
||||
Date: Tue, 9 Apr 2024 22:25:53 +1000
|
||||
Subject: Enable OpenAL (wasm) audio backend for Haiku
|
||||
|
||||
|
||||
diff --git a/src/multimedia/CMakeLists.txt b/src/multimedia/CMakeLists.txt
|
||||
index 0190c6d..1566fbc 100644
|
||||
index 42c094f..56eee11 100644
|
||||
--- a/src/multimedia/CMakeLists.txt
|
||||
+++ b/src/multimedia/CMakeLists.txt
|
||||
@@ -243,7 +243,7 @@ qt_internal_extend_target(Multimedia CONDITION QT_FEATURE_wmf AND MINGW
|
||||
@@ -251,7 +251,7 @@ qt_internal_extend_target(Multimedia CONDITION QT_FEATURE_wmf AND MINGW
|
||||
windows/qcomtaskresource_p.h
|
||||
)
|
||||
|
||||
@@ -18,7 +18,7 @@ index 0190c6d..1566fbc 100644
|
||||
wasm/qwasmmediadevices.cpp wasm/qwasmmediadevices_p.h
|
||||
wasm/qwasmaudiosource.cpp wasm/qwasmaudiosource_p.h
|
||||
diff --git a/src/multimedia/configure.cmake b/src/multimedia/configure.cmake
|
||||
index 6098065..9da9e27 100644
|
||||
index 5e6682f..06f7b30 100644
|
||||
--- a/src/multimedia/configure.cmake
|
||||
+++ b/src/multimedia/configure.cmake
|
||||
@@ -76,7 +76,7 @@ qt_feature("ffmpeg" PRIVATE
|
||||
@@ -38,10 +38,10 @@ index 6098065..9da9e27 100644
|
||||
+ CONDITION NOT QT_FEATURE_alsa AND NOT QT_FEATURE_pulseaudio AND NOT QT_FEATURE_mmrenderer AND NOT QT_FEATURE_coreaudio AND NOT QT_FEATURE_wmsdk AND NOT ANDROID AND NOT WASM AND NOT HAIKU
|
||||
)
|
||||
diff --git a/src/multimedia/platform/qplatformmediadevices.cpp b/src/multimedia/platform/qplatformmediadevices.cpp
|
||||
index f971fb4..f509fcb 100644
|
||||
index 484886f..e4846ca 100644
|
||||
--- a/src/multimedia/platform/qplatformmediadevices.cpp
|
||||
+++ b/src/multimedia/platform/qplatformmediadevices.cpp
|
||||
@@ -25,7 +25,7 @@
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <qpulseaudiomediadevices_p.h>
|
||||
#elif defined(Q_OS_QNX)
|
||||
#include <qqnxmediadevices_p.h>
|
||||
@@ -50,15 +50,15 @@ index f971fb4..f509fcb 100644
|
||||
#include <private/qwasmmediadevices_p.h>
|
||||
#endif
|
||||
|
||||
@@ -66,7 +66,7 @@ QPlatformMediaDevices *QPlatformMediaDevices::instance()
|
||||
devicesHolder.nativeInstance = new QPulseAudioMediaDevices;
|
||||
@@ -41,7 +41,7 @@ std::unique_ptr<QPlatformMediaDevices> QPlatformMediaDevices::create()
|
||||
return std::make_unique<QPulseAudioMediaDevices>();
|
||||
#elif defined(Q_OS_QNX)
|
||||
devicesHolder.nativeInstance = new QQnxMediaDevices;
|
||||
return std::make_unique<QQnxMediaDevices>();
|
||||
-#elif defined(Q_OS_WASM)
|
||||
+#elif defined(Q_OS_WASM) || defined(Q_OS_HAIKU)
|
||||
devicesHolder.nativeInstance = new QWasmMediaDevices;
|
||||
return std::make_unique<QWasmMediaDevices>();
|
||||
#else
|
||||
devicesHolder.nativeInstance = new QPlatformMediaDevices;
|
||||
return std::make_unique<QPlatformMediaDevices>();
|
||||
diff --git a/src/multimedia/wasm/qwasmaudiodevice.cpp b/src/multimedia/wasm/qwasmaudiodevice.cpp
|
||||
index c87a0ad..0b9c806 100644
|
||||
--- a/src/multimedia/wasm/qwasmaudiodevice.cpp
|
||||
@@ -103,7 +103,7 @@ index c87a0ad..0b9c806 100644
|
||||
auto f = QAudioFormat::Float;
|
||||
|
||||
diff --git a/src/multimedia/wasm/qwasmaudiosink.cpp b/src/multimedia/wasm/qwasmaudiosink.cpp
|
||||
index 4c698f3..cf73873 100644
|
||||
index d1068e7..e75b0f8 100644
|
||||
--- a/src/multimedia/wasm/qwasmaudiosink.cpp
|
||||
+++ b/src/multimedia/wasm/qwasmaudiosink.cpp
|
||||
@@ -4,18 +4,23 @@
|
||||
@@ -188,52 +188,8 @@ index 4c698f3..cf73873 100644
|
||||
default:
|
||||
return formatError();
|
||||
}
|
||||
@@ -212,7 +253,7 @@ void QWasmAudioSink::resume()
|
||||
alSourcePlay(aldata->source);
|
||||
}
|
||||
|
||||
-int QWasmAudioSink::bytesFree() const
|
||||
+qsizetype QWasmAudioSink::bytesFree() const
|
||||
{
|
||||
int processed;
|
||||
alGetSourcei(aldata->source, AL_BUFFERS_PROCESSED, &processed);
|
||||
@@ -220,7 +261,7 @@ int QWasmAudioSink::bytesFree() const
|
||||
+ processed) : 0;
|
||||
}
|
||||
|
||||
-void QWasmAudioSink::setBufferSize(int value)
|
||||
+void QWasmAudioSink::setBufferSize(qsizetype value)
|
||||
{
|
||||
if (m_running)
|
||||
return;
|
||||
@@ -228,7 +269,7 @@ void QWasmAudioSink::setBufferSize(int value)
|
||||
m_bufferSize = value;
|
||||
}
|
||||
|
||||
-int QWasmAudioSink::bufferSize() const
|
||||
+qsizetype QWasmAudioSink::bufferSize() const
|
||||
{
|
||||
return m_bufferSize;
|
||||
}
|
||||
diff --git a/src/multimedia/wasm/qwasmaudiosink_p.h b/src/multimedia/wasm/qwasmaudiosink_p.h
|
||||
index ec703c8..975b7f6 100644
|
||||
--- a/src/multimedia/wasm/qwasmaudiosink_p.h
|
||||
+++ b/src/multimedia/wasm/qwasmaudiosink_p.h
|
||||
@@ -70,9 +70,9 @@ public:
|
||||
void reset() override;
|
||||
void suspend() override;
|
||||
void resume() override;
|
||||
- int bytesFree() const override;
|
||||
- void setBufferSize(int value) override;
|
||||
- int bufferSize() const override;
|
||||
+ qsizetype bytesFree() const override;
|
||||
+ void setBufferSize(qsizetype value) override;
|
||||
+ qsizetype bufferSize() const override;
|
||||
qint64 processedUSecs() const override;
|
||||
QAudio::Error error() const override;
|
||||
QAudio::State state() const override;
|
||||
diff --git a/src/multimedia/wasm/qwasmaudiosource.cpp b/src/multimedia/wasm/qwasmaudiosource.cpp
|
||||
index 9f51d70..365d502 100644
|
||||
index 81f222c..d18cb7c 100644
|
||||
--- a/src/multimedia/wasm/qwasmaudiosource.cpp
|
||||
+++ b/src/multimedia/wasm/qwasmaudiosource.cpp
|
||||
@@ -3,7 +3,10 @@
|
||||
@@ -247,64 +203,23 @@ index 9f51d70..365d502 100644
|
||||
#include <AL/al.h>
|
||||
#include <AL/alc.h>
|
||||
#include <QDataStream>
|
||||
@@ -217,7 +220,7 @@ void QWasmAudioSource::resume()
|
||||
alcCaptureStart(aldata->device);
|
||||
}
|
||||
|
||||
-int QWasmAudioSource::bytesReady() const
|
||||
+qsizetype QWasmAudioSource::bytesReady() const
|
||||
{
|
||||
if (!m_running)
|
||||
return 0;
|
||||
@@ -226,14 +229,14 @@ int QWasmAudioSource::bytesReady() const
|
||||
return m_format.bytesForFrames(samples);
|
||||
}
|
||||
|
||||
-void QWasmAudioSource::setBufferSize(int value)
|
||||
+void QWasmAudioSource::setBufferSize(qsizetype value)
|
||||
{
|
||||
if (!m_running)
|
||||
return;
|
||||
m_bufferSize = value;
|
||||
}
|
||||
|
||||
-int QWasmAudioSource::bufferSize() const
|
||||
+qsizetype QWasmAudioSource::bufferSize() const
|
||||
{
|
||||
return m_bufferSize;
|
||||
}
|
||||
diff --git a/src/multimedia/wasm/qwasmaudiosource_p.h b/src/multimedia/wasm/qwasmaudiosource_p.h
|
||||
index 41faa34..7a306d9 100644
|
||||
--- a/src/multimedia/wasm/qwasmaudiosource_p.h
|
||||
+++ b/src/multimedia/wasm/qwasmaudiosource_p.h
|
||||
@@ -55,9 +55,9 @@ public:
|
||||
void reset() override;
|
||||
void suspend() override;
|
||||
void resume() override;
|
||||
- int bytesReady() const override;
|
||||
- void setBufferSize(int value) override;
|
||||
- int bufferSize() const override;
|
||||
+ qsizetype bytesReady() const override;
|
||||
+ void setBufferSize(qsizetype value) override;
|
||||
+ qsizetype bufferSize() const override;
|
||||
qint64 processedUSecs() const override;
|
||||
QAudio::Error error() const override;
|
||||
QAudio::State state() const override;
|
||||
--
|
||||
2.42.0
|
||||
|
||||
|
||||
From ca8425a49f7e54c9e724adbe6a3f8653fa125361 Mon Sep 17 00:00:00 2001
|
||||
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
||||
Date: Wed, 18 Oct 2023 15:47:01 +1000
|
||||
Subject: Improve openal backend for Haiku
|
||||
|
||||
|
||||
diff --git a/src/multimedia/wasm/qwasmmediadevices.cpp b/src/multimedia/wasm/qwasmmediadevices.cpp
|
||||
index 2f4ff68..c91ab37 100644
|
||||
index 4e59fd1..0f6fff5 100644
|
||||
--- a/src/multimedia/wasm/qwasmmediadevices.cpp
|
||||
+++ b/src/multimedia/wasm/qwasmmediadevices.cpp
|
||||
@@ -197,6 +197,7 @@ void QWasmMediaDevices::parseDevices(emscripten::val devices)
|
||||
@@ -71,6 +71,7 @@ QPlatformAudioSink *QWasmMediaDevices::createAudioSink(const QAudioDevice &devic
|
||||
return new QWasmAudioSink(deviceInfo.id(), parent);
|
||||
}
|
||||
|
||||
+#ifndef Q_OS_HAIKU
|
||||
void QWasmMediaDevices::parseDevices(emscripten::val devices)
|
||||
{
|
||||
if (devices.isNull() || devices.isUndefined()) {
|
||||
@@ -194,9 +195,11 @@ void QWasmMediaDevices::parseDevices(emscripten::val devices)
|
||||
m_firstInit = false;
|
||||
|
||||
}
|
||||
+#endif
|
||||
|
||||
void QWasmMediaDevices::getMediaDevices()
|
||||
{
|
||||
@@ -312,15 +227,16 @@ index 2f4ff68..c91ab37 100644
|
||||
emscripten::val navigator = emscripten::val::global("navigator");
|
||||
m_jsMediaDevicesInterface = navigator["mediaDevices"];
|
||||
|
||||
@@ -243,6 +244,7 @@ void QWasmMediaDevices::getMediaDevices()
|
||||
@@ -243,7 +246,7 @@ void QWasmMediaDevices::getMediaDevices()
|
||||
std::move(enumerateDevicesCallback));
|
||||
});
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
}
|
||||
|
||||
void QWasmMediaDevices::getOpenALAudioDevices()
|
||||
@@ -252,10 +254,17 @@ void QWasmMediaDevices::getOpenALAudioDevices()
|
||||
@@ -253,10 +256,17 @@ void QWasmMediaDevices::getOpenALAudioDevices()
|
||||
auto capture = alcGetString(nullptr, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER);
|
||||
// present even if there is no capture device
|
||||
if (capture && !m_audioOutputs.contains(capture)) {
|
||||
@@ -338,7 +254,7 @@ index 2f4ff68..c91ab37 100644
|
||||
m_audioInputsAdded = true;
|
||||
emit audioInputsChanged();
|
||||
}
|
||||
@@ -263,10 +272,17 @@ void QWasmMediaDevices::getOpenALAudioDevices()
|
||||
@@ -264,10 +274,17 @@ void QWasmMediaDevices::getOpenALAudioDevices()
|
||||
auto playback = alcGetString(nullptr, ALC_DEFAULT_DEVICE_SPECIFIER);
|
||||
// present even if there is no playback device
|
||||
if (playback && !m_audioOutputs.contains(capture)) {
|
||||
@@ -357,7 +273,7 @@ index 2f4ff68..c91ab37 100644
|
||||
}
|
||||
m_firstInit = true;
|
||||
diff --git a/src/multimedia/wasm/qwasmmediadevices_p.h b/src/multimedia/wasm/qwasmmediadevices_p.h
|
||||
index b97036f..244e1ee 100644
|
||||
index b97036f..84bcdbc 100644
|
||||
--- a/src/multimedia/wasm/qwasmmediadevices_p.h
|
||||
+++ b/src/multimedia/wasm/qwasmmediadevices_p.h
|
||||
@@ -19,16 +19,20 @@
|
||||
@@ -381,7 +297,15 @@ index b97036f..244e1ee 100644
|
||||
#include <QMapIterator>
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@@ -73,13 +77,16 @@ private:
|
||||
@@ -67,19 +71,24 @@ private:
|
||||
void updateCameraDevices();
|
||||
void getMediaDevices();
|
||||
void getOpenALAudioDevices();
|
||||
+#ifndef __HAIKU__
|
||||
void parseDevices(emscripten::val devices);
|
||||
+#endif
|
||||
|
||||
QMap <std::string, QAudioDevice> m_audioOutputs;
|
||||
QMap <std::string, QAudioDevice> m_audioInputs;
|
||||
QMap <std::string, QCameraDevice> m_cameraDevices;
|
||||
|
||||
@@ -399,77 +323,22 @@ index b97036f..244e1ee 100644
|
||||
bool m_initDone = false;
|
||||
bool m_firstInit = false;
|
||||
};
|
||||
--
|
||||
2.42.0
|
||||
|
||||
|
||||
From 15c7fc247f0552b070ba078d5fc32b10a63de9c9 Mon Sep 17 00:00:00 2001
|
||||
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
||||
Date: Wed, 18 Oct 2023 15:47:19 +1000
|
||||
Subject: Fix encode url for local files
|
||||
|
||||
|
||||
diff --git a/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegmediadataholder.cpp b/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegmediadataholder.cpp
|
||||
index 689ae49..ae6e62d 100644
|
||||
index 2871b24..6223061 100644
|
||||
--- a/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegmediadataholder.cpp
|
||||
+++ b/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegmediadataholder.cpp
|
||||
@@ -145,8 +145,11 @@ std::optional<MediaDataHolder::ContextError>
|
||||
MediaDataHolder::recreateAVFormatContext(const QUrl &media, QIODevice *stream)
|
||||
@@ -156,7 +156,11 @@ namespace {
|
||||
QMaybe<AVFormatContextUPtr, MediaDataHolder::ContextError>
|
||||
loadMedia(const QUrl &mediaUrl, QIODevice *stream, const std::shared_ptr<ICancelToken> &cancelToken)
|
||||
{
|
||||
*this = MediaDataHolder{};
|
||||
-
|
||||
+#ifndef Q_OS_HAIKU
|
||||
QByteArray url = media.toString(QUrl::PreferLocalFile).toUtf8();
|
||||
const QByteArray url = mediaUrl.toString(QUrl::PreferLocalFile).toUtf8();
|
||||
+#else
|
||||
+ QByteArray url = media.isLocalFile() ? (media.toString(QUrl::PreferLocalFile).toLocal8Bit()) : (media.toEncoded());
|
||||
+ const QByteArray url = mediaUrl.isLocalFile() ? (mediaUrl.toString(QUrl::PreferLocalFile).toLocal8Bit()) : (mediaUrl.toEncoded());
|
||||
+#endif
|
||||
|
||||
AVFormatContext *context = nullptr;
|
||||
AVFormatContextUPtr context{ avformat_alloc_context() };
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
||||
|
||||
From 00668d72f8f4d1c63b700904332f64f642a76556 Mon Sep 17 00:00:00 2001
|
||||
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
||||
Date: Wed, 18 Oct 2023 16:03:16 +1000
|
||||
Subject: Disable emscripten device parser for Haiku
|
||||
|
||||
|
||||
diff --git a/src/multimedia/wasm/qwasmmediadevices.cpp b/src/multimedia/wasm/qwasmmediadevices.cpp
|
||||
index c91ab37..5c14d74 100644
|
||||
--- a/src/multimedia/wasm/qwasmmediadevices.cpp
|
||||
+++ b/src/multimedia/wasm/qwasmmediadevices.cpp
|
||||
@@ -71,6 +71,7 @@ QPlatformAudioSink *QWasmMediaDevices::createAudioSink(const QAudioDevice &devic
|
||||
return new QWasmAudioSink(deviceInfo.id(), parent);
|
||||
}
|
||||
|
||||
+#ifndef Q_OS_HAIKU
|
||||
void QWasmMediaDevices::parseDevices(emscripten::val devices)
|
||||
{
|
||||
if (devices.isNull() || devices.isUndefined()) {
|
||||
@@ -194,6 +195,7 @@ void QWasmMediaDevices::parseDevices(emscripten::val devices)
|
||||
m_firstInit = false;
|
||||
|
||||
}
|
||||
+#endif
|
||||
|
||||
void QWasmMediaDevices::getMediaDevices()
|
||||
{
|
||||
diff --git a/src/multimedia/wasm/qwasmmediadevices_p.h b/src/multimedia/wasm/qwasmmediadevices_p.h
|
||||
index 244e1ee..84bcdbc 100644
|
||||
--- a/src/multimedia/wasm/qwasmmediadevices_p.h
|
||||
+++ b/src/multimedia/wasm/qwasmmediadevices_p.h
|
||||
@@ -71,7 +71,9 @@ private:
|
||||
void updateCameraDevices();
|
||||
void getMediaDevices();
|
||||
void getOpenALAudioDevices();
|
||||
+#ifndef __HAIKU__
|
||||
void parseDevices(emscripten::val devices);
|
||||
+#endif
|
||||
|
||||
QMap <std::string, QAudioDevice> m_audioOutputs;
|
||||
QMap <std::string, QAudioDevice> m_audioInputs;
|
||||
--
|
||||
2.42.0
|
||||
2.43.2
|
||||
|
||||
@@ -4,13 +4,14 @@ used for developing software with a graphical user interface, and also used \
|
||||
for developing non-GUI programs such as command-line tools and consoles for \
|
||||
servers."
|
||||
HOMEPAGE="https://qt.io/"
|
||||
COPYRIGHT="2015-2023 The Qt Company Ltd."
|
||||
COPYRIGHT="2015-2024 The Qt Company Ltd."
|
||||
LICENSE="GNU LGPL v2.1
|
||||
GNU LGPL v3
|
||||
GNU FDL v1"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://download.qt.io/official_releases/qt/${portVersion%.*}/$portVersion/submodules/qtmultimedia-everywhere-src-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="ba4b236ca3ec118841b7f5ba87797e24a8c5cbef9ba973fe219fbfc310d38782"
|
||||
QT_MIRROR_URI="https://qt-mirror.dannhauer.de/archive"
|
||||
SOURCE_URI="$QT_MIRROR_URI/qt/${portVersion%.*}/$portVersion/submodules/qtmultimedia-everywhere-src-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="f394bae49e3d4ee6a3b0c9e1e5e31bb870cc04a4b44f4cda3615baf7bd078c70"
|
||||
SOURCE_DIR="qtmultimedia-everywhere-src-$portVersion"
|
||||
PATCHES="qt6_multimedia-$portVersion.patchset"
|
||||
|
||||
Reference in New Issue
Block a user