add jami
This commit is contained in:
8
net-voip/jami-client-qt/Manifest
Normal file
8
net-voip/jami-client-qt/Manifest
Normal file
@@ -0,0 +1,8 @@
|
||||
AUX drop-qt-version-check.patch 407 BLAKE2B 2ecc17d02402fff5c2237cd65a27a23d95b483778eb06fbb9a22771ae77d09210ddce467fba531bdd3880916fa47eb0d436e3468b73f5fb5fd8ae20a90c6155e SHA512 52414576304e51f8bbb0f82f2683c346e6e05d17720a1287b7d6a374da808679d09fe2a0534c6a9f416dd2c5d07c8f855797d8e287f3036382e2542991f0dbb9
|
||||
AUX fix-link.patch 341 BLAKE2B 93739792a2d17ecfd22ba7dbd985ae7c3c653d6a68d56323ac695d55eea8f450e78659ad5a38a2ce984e9a12aa3e6f8a6d37ded57435e17447a168d05594c673 SHA512 599abf002696af0d7654c83143ae15b48e55a89425834774f29edc50ce05296bc3d1a8eac70591aa163e28f2079ffc57a2e3518d806e4180b7855b1854f59bf4
|
||||
AUX missing-cmake-include.patch 423 BLAKE2B 60f30ab98480ecb3e5655a41b51db435b57599a06cd52c383b5d05fcbbaf99650011af201ddf93b43d6c25e071b75dd31a164594d64953e55ed7e3a96b6e923c SHA512 209a06200311ef0c990e680d51f6cc55d8c8940b6a93a2c8f5a6b347aaec1a3f25b366e591c8297f561704d27cea69a6f161e10edc1fc072cc639127545a1665
|
||||
AUX qt-6.6.patch 360 BLAKE2B ec421a35872612a4a17789b5c428da5913b9bf00b4a0dbfe10fe6dad80efa9181a280ab6a5762ced3a3443f8745a44a30fa6b1e028e61d40eb090290af7e7332 SHA512 33037667a59042b843dff77b36ac704344c79b3de5272280d6dfa9766319b97669bf655c19b9424d4b99d1a6cfc1cdc40590f71097a3a6c6e75b4572f16958d3
|
||||
AUX unbundle-qwindowkit.patch 547 BLAKE2B 831bea9b28939627de9bc24759750c71e64e009c89ec10de554e4c73273615304650546d9614725e82b4fc7660fbdd3fd1c00240c913a87ffc187548b398d83d SHA512 807317f664b342645df0ecd2c3fb64c1ff62022bd8f42c4aba54108b86e5f147c668440d906eeb93f9a9b47102ed2797c40e407eeb482b118f0bae6f4c682fd6
|
||||
AUX unbundle-qwindowkit2.patch 619 BLAKE2B 566e22b6b294fbc5e615e1e4c6c4efd7b87a0f71a828e495ad3d1368676967ba8046a8ecb6cb6d9bce17e5937530daeb024b37caffd3e335e37269ec77791b82 SHA512 f098306b8337f2a74d03dfc224ef3007349462e287e31ee12d5264cb6e8f0d3356c848bba3704936e707e0573574b38144c3d1b55c65a31acc87474785f6d380
|
||||
EBUILD jami-client-qt-20251003.0.ebuild 1773 BLAKE2B 0ed4961737d87498abd4f847826a52e72cf8412ca09481b568fccbd1901997fb328acc978ce0fa5c6cb0b8baa26df580f4bb251b90835dfaff3f7857ca6fbe7c SHA512 6abd9e3188e2389a77f31de56b7212902b7a01c39603b3efc0e78be5485016043b9e80ffb34dae6c560fb702f82f3f6dd5dd6a4b99fb5ae6dbd8c54cf21e7018
|
||||
EBUILD jami-client-qt-9999.ebuild 1751 BLAKE2B 654f1ff2ce712733b2ceb7758e40bab948b673de12f8c4bf6329379aee456831cc1a6c789b8413d4456a486749704aafec6c3cce2a77b6f0fe0346b69927de5d SHA512 8acdee230b76065dcebbf4b7d6c3b043fbb33c9265ca91a45b56857278df766e351282d6e425f0168dc4a49a10640ce266a173076158b2d57883cb4ab43f094c
|
||||
12
net-voip/jami-client-qt/files/drop-qt-version-check.patch
Normal file
12
net-voip/jami-client-qt/files/drop-qt-version-check.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
--- a/src/app/mainapplication.cpp
|
||||
+++ b/src/app/mainapplication.cpp
|
||||
@@ -100,9 +100,6 @@ ScreenInfo::setCurrentFocusWindow(QWindow* window)
|
||||
: QApplication(argc, argv)
|
||||
{
|
||||
const char* qtVersion = qVersion();
|
||||
- if (strncmp(qtVersion, QT_VERSION_STR, strnlen(qtVersion, sizeof qtVersion)) != 0) {
|
||||
- C_FATAL << "Qt build version mismatch!" << QT_VERSION_STR;
|
||||
- }
|
||||
|
||||
parseArguments();
|
||||
|
||||
14
net-voip/jami-client-qt/files/fix-link.patch
Normal file
14
net-voip/jami-client-qt/files/fix-link.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 29bfde9a..ba6b5c45 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -805,7 +805,8 @@ elseif (NOT APPLE)
|
||||
${LIBNOTIFY_LIBRARIES}
|
||||
${LIBGDKPIXBUF_LIBRARIES}
|
||||
${GLIB_LIBRARIES}
|
||||
- ${GIO_LIBRARIES})
|
||||
+ ${GIO_LIBRARIES}
|
||||
+ avutil)
|
||||
|
||||
install(
|
||||
TARGETS ${PROJECT_NAME}
|
||||
12
net-voip/jami-client-qt/files/missing-cmake-include.patch
Normal file
12
net-voip/jami-client-qt/files/missing-cmake-include.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 29bfde9a..eb817a6c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -24,6 +24,7 @@ endif()
|
||||
|
||||
set(CMAKE_SCRIPTS_DIR ${PROJECT_SOURCE_DIR}/extras/build/cmake)
|
||||
include(${CMAKE_SCRIPTS_DIR}/extra_tools.cmake)
|
||||
+include(FindPkgConfig)
|
||||
|
||||
option(WITH_DAEMON_SUBMODULE "Build with daemon submodule" ON)
|
||||
option(JAMICORE_AS_SUBDIR "Build Jami-core as a subdir dependency" ON)
|
||||
13
net-voip/jami-client-qt/files/qt-6.6.patch
Normal file
13
net-voip/jami-client-qt/files/qt-6.6.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/app/instancemanager.cpp b/src/app/instancemanager.cpp
|
||||
index 79154097..fbd620c4 100644
|
||||
--- a/src/app/instancemanager.cpp
|
||||
+++ b/src/app/instancemanager.cpp
|
||||
@@ -224,7 +224,7 @@ InstanceManager::~InstanceManager()
|
||||
bool
|
||||
InstanceManager::tryToRun(const QByteArray& startUri)
|
||||
{
|
||||
- return pimpl_->tryToRun(startUri);
|
||||
+ return true;
|
||||
}
|
||||
|
||||
void
|
||||
19
net-voip/jami-client-qt/files/unbundle-qwindowkit.patch
Normal file
19
net-voip/jami-client-qt/files/unbundle-qwindowkit.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 29bfde9a..f0fbe76f 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -100,13 +101,7 @@ if(NOT WIN32)
|
||||
endif()
|
||||
|
||||
# qwindowkit (frameless window)
|
||||
-add_fetch_content(
|
||||
- TARGET qwindowkit
|
||||
- URL https://github.com/stdware/qwindowkit.git
|
||||
- BRANCH 758b00cb6c2d924be3a1ea137ec366dc33a5132d
|
||||
- PATCHES ${QWINDOWKIT_PATCHES}
|
||||
- OPTIONS ${QWINDOWKIT_OPTIONS}
|
||||
-)
|
||||
+find_package(QWindowKit)
|
||||
list(APPEND CLIENT_INCLUDE_DIRS ${QWindowKit_BINARY_DIR}/include)
|
||||
list(APPEND CLIENT_LIBS QWindowKit::Quick)
|
||||
|
||||
20
net-voip/jami-client-qt/files/unbundle-qwindowkit2.patch
Normal file
20
net-voip/jami-client-qt/files/unbundle-qwindowkit2.patch
Normal file
@@ -0,0 +1,20 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index c046b597..89c64b95 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -100,14 +100,7 @@ if(NOT WIN32)
|
||||
endif()
|
||||
|
||||
# qwindowkit (frameless window)
|
||||
-add_fetch_content(
|
||||
- TARGET qwindowkit
|
||||
- URL https://github.com/stdware/qwindowkit.git
|
||||
- BRANCH 758b00cb6c2d924be3a1ea137ec366dc33a5132d
|
||||
- PATCHES ${QWINDOWKIT_PATCHES}
|
||||
- OPTIONS ${QWINDOWKIT_OPTIONS}
|
||||
-)
|
||||
-list(APPEND CLIENT_INCLUDE_DIRS ${QWindowKit_BINARY_DIR}/include)
|
||||
+find_package(QWindowKit)
|
||||
list(APPEND CLIENT_LIBS QWindowKit::Quick)
|
||||
|
||||
# If ENABLE_CRASHREPORTS is enabled, we will use crashpad_cmake for now.
|
||||
86
net-voip/jami-client-qt/jami-client-qt-20251003.0.ebuild
Normal file
86
net-voip/jami-client-qt/jami-client-qt-20251003.0.ebuild
Normal file
@@ -0,0 +1,86 @@
|
||||
# Copyright 2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake flag-o-matic
|
||||
|
||||
DESCRIPTION="Jami clent QT"
|
||||
HOMEPAGE="https://git.jami.net/savoirfairelinux/jami-client-qt"
|
||||
|
||||
if [[ "${PV}" == 9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://git.jami.net/savoirfairelinux/jami-client-qt"
|
||||
EGIT_COMMIT="2e71d00c0500ffe2241e9171f7423a52a0efa96e"
|
||||
KEYWORDS=""
|
||||
else
|
||||
EGIT_REPO_URI="https://git.jami.net/savoirfairelinux/jami-client-qt"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
EGIT_COMMIT="stable/${PV}"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3"
|
||||
|
||||
SLOT="0"
|
||||
|
||||
IUSE="doc"
|
||||
|
||||
DEPEND="
|
||||
net-voip/jami-daemon
|
||||
net-libs/libnma
|
||||
x11-libs/libnotify
|
||||
media-gfx/qrencode
|
||||
dev-libs/libayatana-appindicator
|
||||
dev-qt/qtbase
|
||||
dev-qt/qtdeclarative
|
||||
dev-qt/qtgraphicaleffects
|
||||
dev-qt/qtmultimedia[qml(+)]
|
||||
dev-qt/qtnetworkauth
|
||||
dev-qt/qtsvg
|
||||
dev-qt/qttools
|
||||
dev-qt/qtwebengine[qml(+)]
|
||||
dev-qt/qt5compat
|
||||
dev-qt/qtpositioning
|
||||
dev-qt/qtwebsockets[qml(+)]
|
||||
dev-qt/qwindowkit
|
||||
media-libs/zxing-cpp
|
||||
media-libs/zint
|
||||
app-text/htmltidy
|
||||
app-text/hunspell
|
||||
"
|
||||
|
||||
BDEPEND="doc? ( app-text/doxygen )"
|
||||
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}"/drop-qt-version-check.patch
|
||||
eapply "${FILESDIR}"/qt-6.6.patch
|
||||
eapply "${FILESDIR}"/fix-link.patch
|
||||
eapply "${FILESDIR}"/missing-cmake-include.patch
|
||||
eapply "${FILESDIR}"/unbundle-qwindowkit.patch
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cxxflags -I/usr/include/jami
|
||||
append-ldflags -ljami
|
||||
|
||||
local mycmakeargs=(
|
||||
#-DCMAKE_INSTALL_PREFIX=/usr
|
||||
#-DLIBJAMI_INCLUDE_DIR=/usr/lib64
|
||||
-DCMAKE_BUILD_TYPE=None
|
||||
-DENABLE_LIBWRAP=ON
|
||||
-DJAMICORE_AS_SUBDIR=OFF
|
||||
-DWITH_DAEMON_SUBMODULE=OFF
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
||||
-Wno-dev
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
}
|
||||
84
net-voip/jami-client-qt/jami-client-qt-9999.ebuild
Normal file
84
net-voip/jami-client-qt/jami-client-qt-9999.ebuild
Normal file
@@ -0,0 +1,84 @@
|
||||
# Copyright 2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake flag-o-matic
|
||||
|
||||
DESCRIPTION="Jami clent QT"
|
||||
HOMEPAGE="https://git.jami.net/savoirfairelinux/jami-client-qt"
|
||||
|
||||
if [[ "${PV}" == 9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/savoirfairelinux/${PN}"
|
||||
EGIT_COMMIT="2e71d00c0500ffe2241e9171f7423a52a0efa96e"
|
||||
else
|
||||
SRC_URI="https://github.com/savoirfairelinux/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3"
|
||||
|
||||
SLOT="0"
|
||||
|
||||
IUSE="doc"
|
||||
|
||||
DEPEND="
|
||||
net-voip/jami-daemon
|
||||
net-libs/libnma
|
||||
x11-libs/libnotify
|
||||
media-gfx/qrencode
|
||||
dev-libs/libayatana-appindicator
|
||||
dev-qt/qtbase
|
||||
dev-qt/qtdeclarative
|
||||
dev-qt/qtgraphicaleffects
|
||||
dev-qt/qtmultimedia[qml(+)]
|
||||
dev-qt/qtnetworkauth
|
||||
dev-qt/qtsvg
|
||||
dev-qt/qttools
|
||||
dev-qt/qtwebengine[qml(+)]
|
||||
dev-qt/qt5compat
|
||||
dev-qt/qtpositioning
|
||||
dev-qt/qtwebsockets[qml(+)]
|
||||
dev-qt/qwindowkit
|
||||
media-libs/zxing-cpp
|
||||
media-libs/zint
|
||||
app-text/htmltidy
|
||||
app-text/hunspell
|
||||
"
|
||||
|
||||
BDEPEND="doc? ( app-text/doxygen )"
|
||||
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}"/drop-qt-version-check.patch
|
||||
eapply "${FILESDIR}"/qt-6.6.patch
|
||||
eapply "${FILESDIR}"/fix-link.patch
|
||||
eapply "${FILESDIR}"/missing-cmake-include.patch
|
||||
eapply "${FILESDIR}"/unbundle-qwindowkit.patch
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cxxflags -I/usr/include/jami
|
||||
append-ldflags -ljami
|
||||
|
||||
local mycmakeargs=(
|
||||
#-DCMAKE_INSTALL_PREFIX=/usr
|
||||
#-DLIBJAMI_INCLUDE_DIR=/usr/lib64
|
||||
-DCMAKE_BUILD_TYPE=None
|
||||
-DENABLE_LIBWRAP=ON
|
||||
-DJAMICORE_AS_SUBDIR=OFF
|
||||
-DWITH_DAEMON_SUBMODULE=OFF
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
||||
-Wno-dev
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
}
|
||||
7
net-voip/jami-daemon/Manifest
Normal file
7
net-voip/jami-daemon/Manifest
Normal file
@@ -0,0 +1,7 @@
|
||||
AUX cmake.patch 572 BLAKE2B 7b35c9a654bdbcacb7c8742d6a82601ce5807c7efa08f9b05c81d5af6a439f4e7acb3bc2154dcb824701bd36cb52769001788646eeb7d0e38aa613057d95fdb0 SHA512 2092cd36a856bdb4a7a1645c637de371fe6a366cb40c2de255fbdb9388e52950400ad47bd6b6b7fa7282316561b04530883c26d99221d80b1597db6e4d39e536
|
||||
AUX ffmpeg-7.patch 2958 BLAKE2B 1eb36112b4611b606f0e6d7d5bb17920c4bfa064aed6720baebf77696675eb768e5b2e67650ab8adceaa53e89439009949920140915a85ead78c631d3161a3e6 SHA512 ddfc55f32664c505a3816c152a2de124000b34e9b7da650ee82fbdaab179976fe28a17a2add30c493494a4f7da384a456fc8a5541bdbfb41c7d590ca5190ceb8
|
||||
AUX ffmpeg-8.patch 4547 BLAKE2B edc96dc3b3837168bc6e56d8978d70ed5a3cc3a0de8fbfb42dc15d46d6056be6d586b67a123486a2dfc18154adade39f85c65637dc10ca2c9145b3768fc96d9f SHA512 6c87677936a5dcc6134ebd8a60a542b90573bddb5896731cde4f681cf06bff2fdcbc779b4f691a90a55d528c28621328862664a62a693e02805a6f0a3141c084
|
||||
AUX fmt-12.patch 1811 BLAKE2B 8654397ac8d140ec339df9029ae5e610a6061dda0944d3cd3890cc7ad9d47d65a6ae9d6744bf07f9b7ad223241fe58d372ecd24b6f5f2fd866689673467eaf81 SHA512 b645545120608e70f70ee664d43de03fa07ebc5b2af9a6515a40220aabfe057d4f69034b15781a21c5e8ff6f2fbb353b7dea69d840cb299f9dbf58eeaf082a40
|
||||
DIST jami-daemon 40700 BLAKE2B 7da599023a4639ade1808aaf525fc25cc7fdd74a3d9661b679fef4ef30c251b63d53bfed2d59d675e5f803471b68a41182122e29d5487f421f5f9109c1cd7a40 SHA512 690f8bf980899039aa89777673cc879fb4998acf063f8a6db4d62a7a3813ed693c2fe1f36171f27df2358701ffa0396e57a936cf0f305ddc99e2339dfbca37ac
|
||||
EBUILD jami-daemon-20250929.ebuild 2608 BLAKE2B eee77be68b41ba2b6341df6ca2887812d6129f7ff8d4ac9cf7f2000f80e95dd8f8e59822154a5290506c96a433afb2cdb00ef36f9a9e1e4df16302c515c73765 SHA512 cd5d0f9bae1d02d0afffdfb94fa83902507eeffb29c94f0459a32df808cf49ff95802a722ef86e81a2fcea440c608af9ae2ee0c6aced13fab2f301135de81a6c
|
||||
EBUILD jami-daemon-9999.ebuild 2608 BLAKE2B eee77be68b41ba2b6341df6ca2887812d6129f7ff8d4ac9cf7f2000f80e95dd8f8e59822154a5290506c96a433afb2cdb00ef36f9a9e1e4df16302c515c73765 SHA512 cd5d0f9bae1d02d0afffdfb94fa83902507eeffb29c94f0459a32df808cf49ff95802a722ef86e81a2fcea440c608af9ae2ee0c6aced13fab2f301135de81a6c
|
||||
15
net-voip/jami-daemon/files/cmake.patch
Normal file
15
net-voip/jami-daemon/files/cmake.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index a4c01b3ab..c0b0a7973 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -849,7 +849,9 @@ else()
|
||||
${DBUS_FILES}
|
||||
${DBUS_ADAPTOR_FILES}
|
||||
)
|
||||
- target_link_libraries(jamid ${PROJECT_NAME} PkgConfig::DBusCpp)
|
||||
+ find_package(OpenSSL REQUIRED)
|
||||
+ find_package(ZLIB REQUIRED)
|
||||
+ target_link_libraries(jamid ${PROJECT_NAME} PkgConfig::DBusCpp OpenSSL::SSL OpenSSL::Crypto ZLIB::ZLIB)
|
||||
install (TARGETS jamid DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
|
||||
endif()
|
||||
|
||||
63
net-voip/jami-daemon/files/ffmpeg-7.patch
Normal file
63
net-voip/jami-daemon/files/ffmpeg-7.patch
Normal file
@@ -0,0 +1,63 @@
|
||||
diff --git a/src/media/audio/sound/dtmfgenerator.cpp b/src/media/audio/sound/dtmfgenerator.cpp
|
||||
index c05435f66..5b9eca18a 100644
|
||||
--- a/src/media/audio/sound/dtmfgenerator.cpp
|
||||
+++ b/src/media/audio/sound/dtmfgenerator.cpp
|
||||
@@ -115,7 +115,7 @@ DTMFGenerator::fillToneBuffer(int index)
|
||||
ptr->nb_samples = sampleRate_;
|
||||
ptr->format = tone_.getFormat().sampleFormat;
|
||||
ptr->sample_rate = sampleRate_;
|
||||
- ptr->channel_layout = AV_CH_LAYOUT_MONO;
|
||||
+ ptr->ch_layout.u.mask = AV_CH_LAYOUT_MONO;
|
||||
av_channel_layout_from_mask(&ptr->ch_layout, AV_CH_LAYOUT_MONO);
|
||||
av_frame_get_buffer(ptr.get(), 0);
|
||||
tone_.genSin(ptr.get(), 0, ptr->nb_samples, tones_[index].higher, tones_[index].lower);
|
||||
diff --git a/src/media/media_decoder.cpp b/src/media/media_decoder.cpp
|
||||
index ceaa036c6..0cbeae5be 100644
|
||||
--- a/src/media/media_decoder.cpp
|
||||
+++ b/src/media/media_decoder.cpp
|
||||
@@ -375,11 +375,11 @@ MediaDemuxer::Status
|
||||
MediaDemuxer::decode()
|
||||
{
|
||||
if (inputParams_.format == "x11grab" || inputParams_.format == "dxgigrab") {
|
||||
- auto ret = inputCtx_->iformat->read_header(inputCtx_);
|
||||
- if (ret == AVERROR_EXTERNAL) {
|
||||
- JAMI_ERR("Unable to read frame: %s\n", libav_utils::getError(ret).c_str());
|
||||
- return Status::ReadError;
|
||||
- }
|
||||
+ // auto ret = inputCtx_->iformat->read_header(inputCtx_);
|
||||
+ // if (ret == AVERROR_EXTERNAL) {
|
||||
+ // JAMI_ERR("Unable to read frame: %s\n", libav_utils::getError(ret).c_str());
|
||||
+ // return Status::ReadError;
|
||||
+ // }
|
||||
auto codecpar = inputCtx_->streams[0]->codecpar;
|
||||
if (baseHeight_ != codecpar->height || baseWidth_ != codecpar->width) {
|
||||
baseHeight_ = codecpar->height;
|
||||
diff --git a/src/media/media_io_handle.h b/src/media/media_io_handle.h
|
||||
index 7a64b85a7..a668e73c0 100644
|
||||
--- a/src/media/media_io_handle.h
|
||||
+++ b/src/media/media_io_handle.h
|
||||
@@ -32,7 +32,7 @@ struct AVIOContext;
|
||||
#endif
|
||||
|
||||
typedef int (*io_readcallback)(void* opaque, uint8_t* buf, int buf_size);
|
||||
-typedef int (*io_writecallback)(void* opaque, uint8_t* buf, int buf_size);
|
||||
+typedef int (*io_writecallback)(void* opaque, const uint8_t* buf, int buf_size);
|
||||
typedef int64_t (*io_seekcallback)(void* opaque, int64_t offset, int whence);
|
||||
|
||||
namespace jami {
|
||||
diff --git a/src/media/socket_pair.cpp b/src/media/socket_pair.cpp
|
||||
index 0589affd5..f0005f6b0 100644
|
||||
--- a/src/media/socket_pair.cpp
|
||||
+++ b/src/media/socket_pair.cpp
|
||||
@@ -382,8 +382,8 @@ SocketPair::createIOContext(const uint16_t mtu)
|
||||
[](void* sp, uint8_t* buf, int len) {
|
||||
return static_cast<SocketPair*>(sp)->readCallback(buf, len);
|
||||
},
|
||||
- [](void* sp, uint8_t* buf, int len) {
|
||||
- return static_cast<SocketPair*>(sp)->writeCallback(buf, len);
|
||||
+ [](void* sp, const uint8_t* buf, int len) {
|
||||
+ return static_cast<SocketPair*>(sp)->writeCallback((uint8_t*)buf, len);
|
||||
},
|
||||
0,
|
||||
reinterpret_cast<void*>(this));
|
||||
|
||||
110
net-voip/jami-daemon/files/ffmpeg-8.patch
Normal file
110
net-voip/jami-daemon/files/ffmpeg-8.patch
Normal file
@@ -0,0 +1,110 @@
|
||||
diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp
|
||||
index f999ffe42..eae622d48 100644
|
||||
--- a/src/media/media_encoder.cpp
|
||||
+++ b/src/media/media_encoder.cpp
|
||||
@@ -72,11 +72,7 @@ MediaEncoder::~MediaEncoder()
|
||||
}
|
||||
for (auto encoderCtx : encoders_) {
|
||||
if (encoderCtx) {
|
||||
-#ifndef _MSC_VER
|
||||
avcodec_free_context(&encoderCtx);
|
||||
-#else
|
||||
- avcodec_close(encoderCtx);
|
||||
-#endif
|
||||
}
|
||||
}
|
||||
avformat_free_context(outputCtx_);
|
||||
@@ -354,7 +350,7 @@ MediaEncoder::initStream(const SystemCodecInfo& systemCodecInfo, AVBufferRef* fr
|
||||
throw MediaEncoderException(
|
||||
("Unable to compute buffer size: " + libav_utils::getError(scaledFrameBufferSize_))
|
||||
.c_str());
|
||||
- else if (scaledFrameBufferSize_ <= AV_INPUT_BUFFER_MIN_SIZE)
|
||||
+ else if (scaledFrameBufferSize_ <= 16384)
|
||||
throw MediaEncoderException("buffer too small");
|
||||
|
||||
scaledFrameBuffer_.resize(scaledFrameBufferSize_);
|
||||
@@ -448,10 +444,10 @@ MediaEncoder::encode(const std::shared_ptr<VideoFrame>& input,
|
||||
|
||||
if (is_keyframe) {
|
||||
avframe->pict_type = AV_PICTURE_TYPE_I;
|
||||
- avframe->key_frame = 1;
|
||||
+ avframe->flags |= AV_FRAME_FLAG_KEY;
|
||||
} else {
|
||||
avframe->pict_type = AV_PICTURE_TYPE_NONE;
|
||||
- avframe->key_frame = 0;
|
||||
+ avframe->flags &= ~AV_FRAME_FLAG_KEY;
|
||||
}
|
||||
|
||||
return encode(avframe, currentStreamIdx_);
|
||||
@@ -690,7 +686,7 @@ MediaEncoder::extractProfileLevelID(const std::string& parameters, AVCodecContex
|
||||
// From RFC3984:
|
||||
// If no profile-level-id is present, the Baseline Profile without
|
||||
// additional constraints at Level 1 MUST be implied.
|
||||
- ctx->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE;
|
||||
+ ctx->profile = AV_PROFILE_H264_CONSTRAINED_BASELINE;
|
||||
ctx->level = 0x0d;
|
||||
// ctx->level = 0x0d; // => 13 aka 1.3
|
||||
if (parameters.empty())
|
||||
@@ -716,17 +712,17 @@ MediaEncoder::extractProfileLevelID(const std::string& parameters, AVCodecContex
|
||||
const unsigned char profile_iop = ((result >> 8) & 0xff); // xx80xx -> 80
|
||||
ctx->level = result & 0xff; // xxxx0d -> 0d
|
||||
switch (profile_idc) {
|
||||
- case FF_PROFILE_H264_BASELINE:
|
||||
+ case AV_PROFILE_H264_BASELINE:
|
||||
// check constraint_set_1_flag
|
||||
if ((profile_iop & 0x40) >> 6)
|
||||
- ctx->profile |= FF_PROFILE_H264_CONSTRAINED;
|
||||
+ ctx->profile |= AV_PROFILE_H264_CONSTRAINED;
|
||||
break;
|
||||
- case FF_PROFILE_H264_HIGH_10:
|
||||
- case FF_PROFILE_H264_HIGH_422:
|
||||
- case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
|
||||
+ case AV_PROFILE_H264_HIGH_10:
|
||||
+ case AV_PROFILE_H264_HIGH_422:
|
||||
+ case AV_PROFILE_H264_HIGH_444_PREDICTIVE:
|
||||
// check constraint_set_3_flag
|
||||
if ((profile_iop & 0x10) >> 4)
|
||||
- ctx->profile |= FF_PROFILE_H264_INTRA;
|
||||
+ ctx->profile |= AV_PROFILE_H264_INTRA;
|
||||
break;
|
||||
}
|
||||
JAMI_DBG("Using profile %s (%x) and level %d",
|
||||
@@ -837,7 +833,7 @@ MediaEncoder::initCodec(AVMediaType mediaType, AVCodecID avcodecId, uint64_t br)
|
||||
encoderCtx->flags2 |= AV_CODEC_FLAG2_LOCAL_HEADER;
|
||||
initH264(encoderCtx, br);
|
||||
} else if (avcodecId == AV_CODEC_ID_HEVC) {
|
||||
- encoderCtx->profile = FF_PROFILE_HEVC_MAIN;
|
||||
+ encoderCtx->profile = AV_PROFILE_HEVC_MAIN;
|
||||
forcePresetX2645(encoderCtx);
|
||||
initH265(encoderCtx, br);
|
||||
av_opt_set_int(encoderCtx, "b_ref_mode", 0, AV_OPT_SEARCH_CHILDREN);
|
||||
@@ -1108,7 +1104,6 @@ MediaEncoder::stopEncoder()
|
||||
}
|
||||
}
|
||||
AVCodecContext* encoderCtx = getCurrentVideoAVCtx();
|
||||
- avcodec_close(encoderCtx);
|
||||
avcodec_free_context(&encoderCtx);
|
||||
av_free(encoderCtx);
|
||||
}
|
||||
@@ -1212,7 +1207,7 @@ MediaEncoder::testH265Accel()
|
||||
framerate.den = 1;
|
||||
encoderCtx->time_base = av_inv_q(framerate);
|
||||
encoderCtx->pix_fmt = accel->getFormat();
|
||||
- encoderCtx->profile = FF_PROFILE_HEVC_MAIN;
|
||||
+ encoderCtx->profile = AV_PROFILE_HEVC_MAIN;
|
||||
encoderCtx->opaque = accel.get();
|
||||
|
||||
auto br = SystemCodecInfo::DEFAULT_VIDEO_BITRATE;
|
||||
@@ -1349,11 +1344,7 @@ MediaEncoder::resetStreams(int width, int height)
|
||||
if (outputCtx_) {
|
||||
for (auto encoderCtx : encoders_) {
|
||||
if (encoderCtx) {
|
||||
-#ifndef _MSC_VER
|
||||
avcodec_free_context(&encoderCtx);
|
||||
-#else
|
||||
- avcodec_close(encoderCtx);
|
||||
-#endif
|
||||
}
|
||||
}
|
||||
encoders_.clear();
|
||||
|
||||
32
net-voip/jami-daemon/files/fmt-12.patch
Normal file
32
net-voip/jami-daemon/files/fmt-12.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
diff -ru dhtnet.orig/src/upnp/upnp_context.cpp dhtnet/src/upnp/upnp_context.cpp
|
||||
--- dhtnet.orig/src/upnp/upnp_context.cpp 2025-10-04 15:51:40.889482196 +0200
|
||||
+++ dhtnet/src/upnp/upnp_context.cpp 2025-10-04 16:09:31.538008243 +0200
|
||||
@@ -734,9 +734,12 @@
|
||||
}
|
||||
if (toRenewLaterCount > 0) {
|
||||
nextRenewalTime += MAPPING_RENEWAL_THROTTLING_DELAY;
|
||||
- if (logger_) logger_->debug("{} mapping(s) didn't need to be renewed (next renewal scheduled for {:%Y-%m-%d %H:%M:%S})",
|
||||
+ if (logger_) {
|
||||
+ std::time_t t = sys_clock::to_time_t(nextRenewalTime);
|
||||
+ logger_->debug("{} mapping(s) didn't need to be renewed (next renewal scheduled for {:%Y-%m-%d %H:%M:%S})",
|
||||
toRenewLaterCount,
|
||||
- fmt::localtime(sys_clock::to_time_t(nextRenewalTime)));
|
||||
+ *std::localtime(&t));
|
||||
+ }
|
||||
mappingRenewalTimer_.expires_at(nextRenewalTime);
|
||||
mappingRenewalTimer_.async_wait([this](asio::error_code const& ec) {
|
||||
if (ec != asio::error::operation_aborted)
|
||||
@@ -783,8 +786,11 @@
|
||||
if (nextRenewalTime == mappingRenewalTimer_.expiry())
|
||||
return;
|
||||
|
||||
- if (logger_) logger_->debug("Scheduling next port mapping renewal for {:%Y-%m-%d %H:%M:%S}",
|
||||
- fmt::localtime(sys_clock::to_time_t(nextRenewalTime)));
|
||||
+ if (logger_) {
|
||||
+ std::time_t t = sys_clock::to_time_t(nextRenewalTime);
|
||||
+ logger_->debug("Scheduling next port mapping renewal for {:%Y-%m-%d %H:%M:%S}",
|
||||
+ *std::localtime(&t));
|
||||
+ }
|
||||
mappingRenewalTimer_.expires_at(nextRenewalTime);
|
||||
mappingRenewalTimer_.async_wait([this](asio::error_code const& ec) {
|
||||
if (ec != asio::error::operation_aborted)
|
||||
111
net-voip/jami-daemon/jami-daemon-20250929.ebuild
Normal file
111
net-voip/jami-daemon/jami-daemon-20250929.ebuild
Normal file
@@ -0,0 +1,111 @@
|
||||
# Copyright 2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit meson
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://git.jami.net/savoirfairelinux/jami-daemon"
|
||||
SRC_URI=""
|
||||
|
||||
IUSE="+alsa +dbus doc graph +gsm +hwaccel ipv6 jack -libav +libilbc +nat-pmp +opus pipewire portaudio pulseaudio +sdes +speex +speexdsp +upnp +vaapi vdpau +video +vpx +x264"
|
||||
KEYWORDS=""
|
||||
else
|
||||
SRC_URI="https://git.jami.net/savoirfairelinux/jami-daemon"
|
||||
EGIT_COMMIT="afe2446133eb3c9279e42b0d1dcfdd9a3c76a35f"
|
||||
|
||||
IUSE="+alsa +dbus doc graph +gsm +hwaccel ipv6 jack -libav +libilbc +nat-pmp +opus pipewire portaudio pulseaudio +sdes +speex +speexdsp +upnp +vaapi vdpau +video +vpx +x264"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Jami (formerly Ring) daemon"
|
||||
HOMEPAGE="https://jami.net/"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
|
||||
SLOT="0"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-cpp/yaml-cpp-0.5.3
|
||||
>=dev-libs/boost-1.61.0
|
||||
>=dev-libs/crypto++-5.6.5
|
||||
>=dev-libs/jsoncpp-1.7.2
|
||||
>=media-video/ffmpeg-3.4[gsm?,libilbc?,opus?,speex?,v4l,vaapi?,vdpau?,vpx?,x264?,zlib]
|
||||
libilbc? ( media-libs/libilbc )
|
||||
speex? ( >=media-libs/speex-1.2.0 )
|
||||
speexdsp? ( >=media-libs/speexdsp-1.2_rc3 )
|
||||
>=net-libs/gnutls-3.4.14
|
||||
>=net-libs/opendht-1.10.1
|
||||
>=sys-libs/zlib-1.2.8
|
||||
media-libs/libva
|
||||
dev-libs/libsecp256k1
|
||||
net-libs/restinio
|
||||
net-libs/dhtnet
|
||||
net-libs/http-parser
|
||||
dev-libs/libgit2
|
||||
dev-cpp/sdbus-c++[tools(+)]
|
||||
<=media-libs/webrtc-audio-processing-1.0.0
|
||||
dev-libs/msgpack
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
jack? ( virtual/jack )
|
||||
portaudio? ( >=media-libs/portaudio-19_pre20140130 )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
dbus? ( dev-libs/dbus-c++ )
|
||||
sdes? ( >=dev-libs/libpcre-8.40 )
|
||||
video? ( virtual/libudev )
|
||||
nat-pmp? ( net-libs/libnatpmp )
|
||||
pipewire? ( media-video/pipewire )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
doc? (
|
||||
graph? ( app-doc/doxygen[dot] )
|
||||
!graph? ( app-doc/doxygen )
|
||||
)"
|
||||
|
||||
REQUIRED_USE="dbus? ( sdes )
|
||||
graph? ( doc )
|
||||
hwaccel? ( video )
|
||||
vaapi? ( hwaccel )
|
||||
?? ( dbus )"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eapply "${FILESDIR}"/cmake.patch
|
||||
eapply "${FILESDIR}"/ffmpeg-7.patch
|
||||
eapply "${FILESDIR}"/ffmpeg-8.patch
|
||||
#cmake_src_prepare
|
||||
#eautoreconf
|
||||
}
|
||||
|
||||
#src_configure() {
|
||||
# mkdir build
|
||||
# cd build
|
||||
# cmake .. -DBUILD_CONTRIB=OFF -DJAMI_DBUS=ON
|
||||
#}
|
||||
|
||||
src_configure() {
|
||||
#local mycmakeargs=(
|
||||
# -DJAMI_DBUS=ON
|
||||
# -DBUILD_CONTRIB=OFF
|
||||
# -DJAMI_VIDEO=ON
|
||||
# -DENABLE_COVERAGE=OFF
|
||||
# -DBUILD_TESTING=OFF
|
||||
# -DBUILD_EXTRA_TOOLS=ON
|
||||
#)
|
||||
#cmake_src_configure
|
||||
local emesonargs=(
|
||||
-Dinterfaces=library,dbus
|
||||
-Dopensl=disabled
|
||||
-Dportaudio=disabled
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
#cmake_src_install
|
||||
meson_src_install
|
||||
}
|
||||
111
net-voip/jami-daemon/jami-daemon-9999.ebuild
Normal file
111
net-voip/jami-daemon/jami-daemon-9999.ebuild
Normal file
@@ -0,0 +1,111 @@
|
||||
# Copyright 2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit meson
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://git.jami.net/savoirfairelinux/jami-daemon"
|
||||
SRC_URI=""
|
||||
|
||||
IUSE="+alsa +dbus doc graph +gsm +hwaccel ipv6 jack -libav +libilbc +nat-pmp +opus pipewire portaudio pulseaudio +sdes +speex +speexdsp +upnp +vaapi vdpau +video +vpx +x264"
|
||||
KEYWORDS=""
|
||||
else
|
||||
SRC_URI="https://git.jami.net/savoirfairelinux/jami-daemon"
|
||||
EGIT_COMMIT="afe2446133eb3c9279e42b0d1dcfdd9a3c76a35f"
|
||||
|
||||
IUSE="+alsa +dbus doc graph +gsm +hwaccel ipv6 jack -libav +libilbc +nat-pmp +opus pipewire portaudio pulseaudio +sdes +speex +speexdsp +upnp +vaapi vdpau +video +vpx +x264"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Jami (formerly Ring) daemon"
|
||||
HOMEPAGE="https://jami.net/"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
|
||||
SLOT="0"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-cpp/yaml-cpp-0.5.3
|
||||
>=dev-libs/boost-1.61.0
|
||||
>=dev-libs/crypto++-5.6.5
|
||||
>=dev-libs/jsoncpp-1.7.2
|
||||
>=media-video/ffmpeg-3.4[gsm?,libilbc?,opus?,speex?,v4l,vaapi?,vdpau?,vpx?,x264?,zlib]
|
||||
libilbc? ( media-libs/libilbc )
|
||||
speex? ( >=media-libs/speex-1.2.0 )
|
||||
speexdsp? ( >=media-libs/speexdsp-1.2_rc3 )
|
||||
>=net-libs/gnutls-3.4.14
|
||||
>=net-libs/opendht-1.10.1
|
||||
>=sys-libs/zlib-1.2.8
|
||||
media-libs/libva
|
||||
dev-libs/libsecp256k1
|
||||
net-libs/restinio
|
||||
net-libs/dhtnet
|
||||
net-libs/http-parser
|
||||
dev-libs/libgit2
|
||||
dev-cpp/sdbus-c++[tools(+)]
|
||||
<=media-libs/webrtc-audio-processing-1.0.0
|
||||
dev-libs/msgpack
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
jack? ( virtual/jack )
|
||||
portaudio? ( >=media-libs/portaudio-19_pre20140130 )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
dbus? ( dev-libs/dbus-c++ )
|
||||
sdes? ( >=dev-libs/libpcre-8.40 )
|
||||
video? ( virtual/libudev )
|
||||
nat-pmp? ( net-libs/libnatpmp )
|
||||
pipewire? ( media-video/pipewire )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
doc? (
|
||||
graph? ( app-doc/doxygen[dot] )
|
||||
!graph? ( app-doc/doxygen )
|
||||
)"
|
||||
|
||||
REQUIRED_USE="dbus? ( sdes )
|
||||
graph? ( doc )
|
||||
hwaccel? ( video )
|
||||
vaapi? ( hwaccel )
|
||||
?? ( dbus )"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eapply "${FILESDIR}"/cmake.patch
|
||||
eapply "${FILESDIR}"/ffmpeg-7.patch
|
||||
eapply "${FILESDIR}"/ffmpeg-8.patch
|
||||
#cmake_src_prepare
|
||||
#eautoreconf
|
||||
}
|
||||
|
||||
#src_configure() {
|
||||
# mkdir build
|
||||
# cd build
|
||||
# cmake .. -DBUILD_CONTRIB=OFF -DJAMI_DBUS=ON
|
||||
#}
|
||||
|
||||
src_configure() {
|
||||
#local mycmakeargs=(
|
||||
# -DJAMI_DBUS=ON
|
||||
# -DBUILD_CONTRIB=OFF
|
||||
# -DJAMI_VIDEO=ON
|
||||
# -DENABLE_COVERAGE=OFF
|
||||
# -DBUILD_TESTING=OFF
|
||||
# -DBUILD_EXTRA_TOOLS=ON
|
||||
#)
|
||||
#cmake_src_configure
|
||||
local emesonargs=(
|
||||
-Dinterfaces=library,dbus
|
||||
-Dopensl=disabled
|
||||
-Dportaudio=disabled
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
#cmake_src_install
|
||||
meson_src_install
|
||||
}
|
||||
Reference in New Issue
Block a user