Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kpipewire6 for openSUSE:Factory checked in at 2024-11-06 16:50:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kpipewire6 (Old) and /work/SRC/openSUSE:Factory/.kpipewire6.new.2020 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kpipewire6" Wed Nov 6 16:50:28 2024 rev:16 rq:1221534 version:6.2.3 Changes: -------- --- /work/SRC/openSUSE:Factory/kpipewire6/kpipewire6.changes 2024-10-24 15:41:25.088782496 +0200 +++ /work/SRC/openSUSE:Factory/.kpipewire6.new.2020/kpipewire6.changes 2024-11-06 16:51:24.818716654 +0100 @@ -1,0 +2,11 @@ +Tue Nov 5 13:30:18 UTC 2024 - Fabian Vogt <[email protected]> + +- Update to 6.2.3: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.2.3 +- Changes since 6.2.2: + * update version for new release + * libx264encoder: Ensure stream size is always a multiple of 2 (kde#485733) + * encoder: Make it possble to override the filter graph used for software encode + +------------------------------------------------------------------- Old: ---- kpipewire-6.2.2.tar.xz kpipewire-6.2.2.tar.xz.sig New: ---- kpipewire-6.2.3.tar.xz kpipewire-6.2.3.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kpipewire6.spec ++++++ --- /var/tmp/diff_new_pack.kg1T9r/_old 2024-11-06 16:51:25.430742191 +0100 +++ /var/tmp/diff_new_pack.kg1T9r/_new 2024-11-06 16:51:25.434742358 +0100 @@ -27,7 +27,7 @@ %{!?_plasma6_version: %define _plasma6_version %(echo %{_plasma6_bugfix} | awk -F. '{print $1"."$2}')} %bcond_without released Name: kpipewire6 -Version: 6.2.2 +Version: 6.2.3 Release: 0 Summary: PipeWire integration for KDE Plasma License: LGPL-2.0-only AND LGPL-3.0-only ++++++ kpipewire-6.2.2.tar.xz -> kpipewire-6.2.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-6.2.2/CMakeLists.txt new/kpipewire-6.2.3/CMakeLists.txt --- old/kpipewire-6.2.2/CMakeLists.txt 2024-10-22 14:55:48.000000000 +0200 +++ new/kpipewire-6.2.3/CMakeLists.txt 2024-11-05 13:35:17.000000000 +0100 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.16) -project(KPipewire VERSION "6.2.2") +project(KPipewire VERSION "6.2.3") set(KF6_MIN_VERSION "6.5.0") find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-6.2.2/po/ar/kpipewire6.po new/kpipewire-6.2.3/po/ar/kpipewire6.po --- old/kpipewire-6.2.2/po/ar/kpipewire6.po 2024-10-22 14:55:48.000000000 +0200 +++ new/kpipewire-6.2.3/po/ar/kpipewire6.po 2024-11-05 13:35:17.000000000 +0100 @@ -1,7 +1,7 @@ -# Copyright (C) YEAR This file is copyright: +# Copyright (C) 2024 This file is copyright: # This file is distributed under the same license as the kpipewire package. +# SPDX-FileCopyrightText: 2022, 2024 Zayed Al-Saidi <[email protected]> # -# Zayed Al-Saidi <[email protected]>, 2022. msgid "" msgstr "" "Project-Id-Version: kpipewire\n" @@ -16,6 +16,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"X-Generator: Lokalize 23.08.5\n" #: pipewirecore.cpp:98 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-6.2.2/po/nn/kpipewire6.po new/kpipewire-6.2.3/po/nn/kpipewire6.po --- old/kpipewire-6.2.2/po/nn/kpipewire6.po 2024-10-22 14:55:48.000000000 +0200 +++ new/kpipewire-6.2.3/po/nn/kpipewire6.po 2024-11-05 13:35:17.000000000 +0100 @@ -1,6 +1,5 @@ # Translation of kpipewire6 to Norwegian Nynorsk # -# Karl Ove Hufthammer <[email protected]>, 2022. msgid "" msgstr "" "Project-Id-Version: kpipewire\n" @@ -14,7 +13,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 22.04.2\n" +"X-Generator: Lokalize 24.11.70\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-6.2.2/src/encoder.cpp new/kpipewire-6.2.3/src/encoder.cpp --- old/kpipewire-6.2.2/src/encoder.cpp 2024-10-22 14:55:48.000000000 +0200 +++ new/kpipewire-6.2.3/src/encoder.cpp 2024-11-05 13:35:17.000000000 +0100 @@ -314,7 +314,7 @@ outputs->pad_idx = 0; outputs->next = nullptr; - ret = avfilter_graph_parse(m_avFilterGraph, "format=pix_fmts=yuv420p", outputs, inputs, NULL); + ret = avfilter_graph_parse(m_avFilterGraph, m_filterGraphToParse.toUtf8().data(), outputs, inputs, NULL); if (ret < 0) { qCWarning(PIPEWIRERECORD_LOGGING) << "Failed creating filter graph"; return false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-6.2.2/src/encoder_p.h new/kpipewire-6.2.3/src/encoder_p.h --- old/kpipewire-6.2.2/src/encoder_p.h 2024-10-22 14:55:48.000000000 +0200 +++ new/kpipewire-6.2.3/src/encoder_p.h 2024-11-05 13:35:17.000000000 +0100 @@ -135,6 +135,15 @@ */ bool createFilterGraph(const QSize &size); + /** + * The filter graph to be passed to FFmpeg to parse. + * + * Adjust this if you need to insert any extra filters in between input and + * output filters. + * + * Make sure that the output format of the filter graph is yuv420p. + */ + QString m_filterGraphToParse = QStringLiteral("format=pix_fmts=yuv420p"); DmaBufHandler m_dmaBufHandler; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-6.2.2/src/libx264encoder.cpp new/kpipewire-6.2.3/src/libx264encoder.cpp --- old/kpipewire-6.2.2/src/libx264encoder.cpp 2024-10-22 14:55:48.000000000 +0200 +++ new/kpipewire-6.2.3/src/libx264encoder.cpp 2024-11-05 13:35:17.000000000 +0100 @@ -20,10 +20,16 @@ #include "logging_record.h" +using namespace Qt::StringLiterals; + LibX264Encoder::LibX264Encoder(H264Profile profile, PipeWireProduce *produce) : SoftwareEncoder(produce) , m_profile(profile) { + // Adjust the filter graph to ensure we are using an even frame size using a + // pad filter. Otherwise the size adjustment below will insert a row/column + // of garbage instead of black. + m_filterGraphToParse = u"pad=ceil(iw/2)*2:ceil(ih/2)*2,format=pix_fmts=yuv420p"_s; } bool LibX264Encoder::initialize(const QSize &size) @@ -43,8 +49,12 @@ } Q_ASSERT(!size.isEmpty()); - m_avCodecContext->width = size.width(); - m_avCodecContext->height = size.height(); + // Important: libx264 rejects streams with sizes that are not even. So to + // ensure we don't get errors, we need to ensure the size we set here is + // even. We also insert a pad filter into the filter chain above to ensure + // we don't end up padding with garbage. + m_avCodecContext->width = std::ceil(size.width() / 2) * 2; + m_avCodecContext->height = std::ceil(size.height() / 2) * 2; m_avCodecContext->max_b_frames = 0; m_avCodecContext->gop_size = 100; m_avCodecContext->pix_fmt = AV_PIX_FMT_YUV420P;
