LINUX.ORG.RU

Вышел PipeWire 1.0.0

 


1

2

Наконец-то, вышла долгожданная первая мажорная версия PipeWire, мультимедийного сервера и фреймворка, предназначенного для вывода и обработки звука в реальном времени. Имеется совместимость по API и ABI с ALSA, PulseAudio и JACK. Изменений не сильно много, но они являются знаковыми (как-никак, а первая релизная версия).

Основные изменения:


  • Устранена утечка памяти в memfd/dmabuf при выгрузке буферов при завершении работы.
  • Добавлена обработка конкурентных вызовов jack_port_get_buffer(), из-за того, что это используется в Ardour.
  • Улучшено представление времени (уменьшены колебания) в ALSA при использовании IRQ.
  • Множественные улучшения документации.

Другие изменения:


PipeWire

  • Теперь везде соблюдается PIPEWIRE_DLCLOSE, и удалена pw_in_valgrind().
  • Удалено предупреждение, возникающее при попытке клиента изменить игнорируемые параметры.

Модули

  • Устранена потенциальная ошибка сегментирования при копировании структур mix.
  • Устранены возможные состояния гонки в setrlimit в module-rt.
  • Устранена утечка памяти в filter-chain.
  • Параметр rtp.prime установлен для отправителей (но не получателей).
  • Модули ROC портированы на ROC 0.3.

SPA

  • Добавлен параметр для задержки в libcamera.
  • Исправлены некоторые предупреждения при компиляции.
  • Обновлён плагин EVL.

Bluetooth

  • Добавлен кодек LC3, а также улучшена совместимость

PulseAudio

  • Исправлена ошибка в отправке событий при изменении состояния выхода или источника.

JACK

  • Улучшена работа с транспором и временем. Теперь используются уникальные идентификаторы для создания последовательных снапшотов текущего времени и транспорта.
  • Убрано перечисление неиспользуемых параметров порта.
  • Оптимизировано переиспользование буфера.

Документация

  • Добавлены man-страницы для pw-dump, pw-loopback, pipewire-pulse и модулей.
  • Теперь man-страницы создаются при помощи Doxygen.
  • Добавлена документация для модулей PulseAudio.

Из других изменений можно отметить добавление поддержки GNU/Hurd.

>>> Официальный анонс

★★☆

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

Ну вот теперь можно использовать её для обхода ограничений записи скринкастов в вайланде!

kirill_rrr ★★★★★
()
Ответ на: комментарий от Skullnet

В Pipewire нормальный алгоритм ресемплинга по умолчанию (см тут. https://src.infinitewave.ca/), причём можно ресемплинг настроить как тебе нужно через allowed-rates и даже , кажется, отключить вообще.

сама идея отключить ресемплинг не имеет смысла. Он и так не используется когда не нужен, а когда нужен без него ничего работать не будет.

allowed-rates - возможность переключаться динамически между доступными частотами, чтобы избежать ресемплинга. По умолчанию так работает и пульсаудио. Штука неоднозначная и не предсказуемая, полезность достаточно спорная.

Ресемплинг настраивается и в пульсе, и в пайпвайре. Качественный ресемплинг в пайпвайре так же жрет cpu и влияет на задержку, в подавляющем большинстве случаев оно того не стоит.

altwazar ★★★★
()
Ответ на: комментарий от AP

Пайпварь не делает с задержками ничего такого, чего не делает пш-пш-аудио. Поэтому задержка там такая же, причём её постоянность не гарантирована. Именно по этой причине в Ardour ещё очень долго, а может, и никогда не будет поддержки PipeWare на запись.

Странный набор предрассудков.

Поэтому задержка там такая же

Не такая же, пульса как-то не очень работает с экстремально низкими задержками, с буфером меньше 1 мс например, а pipewire может работать стабильно с таким буфером, если железо тянет.

И да, pipewire таки именно «делает» что-то с задержками, как минимум использует rtkit и рулит приоритетами. Если так настроить его.

причём её постоянность не гарантирована

Она и в jack не гарантирована, можно размер буфера пересобачить в любой момент по живому и наш любимый Ardour от этого легко может приказать долго жить. Но почему-то поддержку jack никто не убирает из Ardour из-за этого ))) Так чем же работа с pipewire отличается то?

В pipewire есть режим фиксации задержки и размера буфера, при этом все начинает работать по логике идентичной jack. Какие тут проблемы, чтобы «в Ardour никогда(!) не появилась запись через pipewire» - решительно непонятно.

По факту сейчас Ardour через jack api работает с pipewire заметно лучше чем с самим настоящим jack. Тогда вопрос - ну и чем pipewire не угодило то?

James_Holden ★★★★
()

Отличная штука. Часто пользуюсь блютуз-наушниками с ноутом, никаких проблем со звуком и микрофоном.

otto ★★★
()
Ответ на: комментарий от James_Holden

Да, мне тоже непонятна такая странная позиция насчёт Варьки. На линуксмюзишане почитываю обсуждение, кто не пробовал пайпвари - все однозначно против. Как на лор сходил :)

Самое классное, что Ардору фактически и уметь специально ничего не надо. Его можно запустить, типа, с альсой, или с джеком, и всё это будет работать в пайпваре, Ардор даже не поймёт разницы. Круто! Давно, очень давно в линуксе не появлялось такой нужной технологии. Я за Варю Трубную обеими руками.

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

Самое классное, что Ардору фактически и уметь специально ничего не надо.

Именно :)

AP ★★★★★
()
Ответ на: комментарий от kirill_rrr

Ну если так посмотреть, то Pipewire - это anti-Wayland. Pipewire собирает разные API и фичи в один фреймворк, а Wayland - наоборот.

Skullnet ★★★★★
()
Ответ на: комментарий от Skullnet

И? У них обсуждение в контексте ардора и записи в jack подобном режиме, а ты про бытовое проигрывание без всяких фиксаций размера буфера.

Я pipewire давно использую и назад не собираюсь, но в рамках простого вывода звука без jack и proaudio профилей это та же самая пульса. Оценить же применимость для работы со звуком при низких задержках не могу.

altwazar ★★★★
()
Ответ на: комментарий от Skullnet

Не совсем так. Pipewire - это как раз расширение функционала Wayland протокола, который разработчики второго посчитали необходимым сложить со своих плеч. Это и есть разделенный, модульный подход к разработке - который в итоге и приводит к множеству хорошо поддерживаемых, постоянно развиваемых и компонентов - работающих в едином целом.

maximilionus
()
Ответ на: комментарий от maximilionus

Скринкаст в вяленом, да и вообще обработка видео — это вторичный функционал PipeWire (тем более функционал для работы с видео в PipeWire создавался не только для вяленого). А основной — всё-таки звук.

Werenter ★★☆
() автор топика
Ответ на: комментарий от maximilionus

Не совсем так. Pipewire - это как раз расширение функционала Wayland протокола, который разработчики второго посчитали необходимым сложить со своих плеч.

Иными словами, не осилили сделать нормально.

Это и есть разделенный, модульный подход к разработке - который в итоге и приводит к множеству хорошо поддерживаемых, постоянно развиваемых и компонентов - работающих в едином целом.

Какой модульный? У тебя в вяленном DE крутится в своём самопальном графическом сервере. Была бы у Wayland полноценная библиотека, которая реализовывала все фичи графического сервера, которые везде одинаковые и фичи нужные для реализации DE - тогда вот это модульность. А сейчас это «спагетти архитектура», где Pipewire воткнут как костыль. Они даже не удосужились написать протокол для скрикасинга.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 1)
Ответ на: комментарий от Skullnet

Ну давай-давай, поплачь ещё. Радоваться надо, что мы все ближе и ближе к возможности полноценно использовать вяленого со всеми его плюшками. Тебе не надо - мне надо.

maximilionus
()
Ответ на: комментарий от maximilionus

Радоваться надо, что мы все ближе и ближе к возможности полноценно использовать вяленого со всеми его плюшками.

Какими ещё плюшками? Ваши плюшки намазаны говном. Полноценное использование костыльного инвалида без фич, ага.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 1)
Ответ на: комментарий от maximilionus

Я очень рад, что Pipewire пишут не те же люди что и Wayland. Результат и впечатления кардинально противоположные. Долгих лет и здравия разработчикам Pipewire!

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от Skullnet

Была бы у Wayland полноценная библиотека, которая реализовывала все фичи графического сервера

…то это и привело бы к ситуации, называемой «спагетти архитектура», так как любой тайловый оконный мереджер вынужден был бы цепляться бы за торчащие из этой библиотеки провода, чтоб разложенные в тайлы окошки не перетаскивались стандартной библиотечной реализацией перетаскивателя.

Твой друг кирилка - дурачок, ляпнул невпопад, а ты за ним глупости повторяешь. Спагетти-код - это по определению нечто слабоструктурированное, где компоненты связаны сотней нитей и зависят друг от друга. Т.е. это xorg. Wayland как таковой борется с этой проблемой, сам он предельно простой, никаких ограничений на реализацию сервера не накладывает, бери и строй ту архитектуру, которая тебе нравится.

Они даже не удосужились написать протокол для скрикасинга.

Зачем писать протокол для передачи видеопотока, если уже существует инфраструктура для передачи медиапотоков, и можно просто выступать в ней одним из возможных источников? Это даже не классическое «существует 15 протоколов, надо придумать универсальный», это «нам нужен свой медиапротокол, чтоб на лорчике не говорили что мы хуже чем x11»

khrundel ★★★★
()
Ответ на: комментарий от khrundel

…то это и привело бы к ситуации, называемой «спагетти архитектура», так как любой тайловый оконный мереджер вынужден был бы цепляться бы за торчащие из этой библиотеки провода, чтоб разложенные в тайлы окошки не перетаскивались стандартной библиотечной реализацией перетаскивателя.

С хера ли? Все иксовые оконные менеджеры юзают фичи иксов (Xlib/Xcb). Ты опять херню сморозил.

Твой друг кирилка - дурачок, ляпнул невпопад, а ты за ним глупости повторяешь.

Ну понятно, что у тебя кто-то за кем-то обязательно повторяет. А может это он за мной повторяет? На самом деле просто есть нормальное представление об архитектуре и ущербная Wayland архитектура придуманная смузихлёбами в неё не вписывается. Учитесь как делать у разработчика Pipewire.

Т.е. это xorg. Wayland как таковой борется с этой проблемой

Война - это мир. Свобода - это рабство. Wayland - борьба с «спагетти архитектурой».

Wayland как таковой борется с этой проблемой, сам он предельно простой, никаких ограничений на реализацию сервера не накладывает, бери и строй ту архитектуру, которая тебе нравится.

Тебя не задолбало повторять эту мантру? Тебе уже в двух темах подробно объяснили что отсутствие единой реализации - это прямой путь к фрагментированному аду. Нормальным разработчикам DE нахрен не всралось писать свой собственный графический сервер, если они не хотят уничтожить конкурентов, потому что трудозатраты примерно как от написания своего самопального тулкита с нуля для одного приложения только в 10 раз больше. И нужно постоянно следить, чтобы, например, приложение которое работает в GNOME работало и в KDE, и это только если DE строго 2, а не 20. Единый сервер/фреймворк решает эту проблему и ты про неё даже думать не будешь.

Зачем писать протокол для передачи видеопотока, если уже существует инфраструктура для передачи медиапотоков

Чтобы не было зависимости от стороннего приложения, тебе @kirill_rrr всю прошлую тему это объяснял. Видимо ты и правда непробиваемо туп.

Тебе наверное норм, если линукс намертво прибьют гвоздями к systemd, да? Это тоже самое, разницы никакой.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 6)
Ответ на: комментарий от khrundel

Могу поспорить, что несмотря на «называемой «спагетти архитектура», так как любой тайловый оконный мереджер вынужден был бы цепляться бы за торчащие из этой библиотеки провода, чтоб разложенные в тайлы окошки не перетаскивались стандартной библиотечной реализацией перетаскивателя» лично ты, фанатик долбаный, не озаботился выпилом из ядра драйверов неиспользуемого железа, поддержки numa-памяти, всяких там irda, wimax и batman-сетей, маргинальных ФС которые никогда в жизни не увидишь и прочей лапши. Которая «называемой «спагетти архитектура»» и «цепляться бы за торчащие из этой библиотеки провода» и всё такое прочее.

Тут ещё надо упомянуть, не для тебя конечно, такие сложные концепции не для тебя, что суть тайлингового ВМ не в том чтобы выпилить управление окном через мышь и заголовок, а в том, чтобы запилить качественный тайлинг.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от Werenter

А что поделать, кто то же должен исправить косяки вяленого...

kirill_rrr ★★★★★
()
Ответ на: комментарий от Skullnet

С хера ли? Все иксовые оконные менеджеры юзают фичи иксов (Xlib/Xcb). Ты опять херню сморозил.

А как это вообще связано со спагетти? Походу ты не понимаешь о чём пишешь вообще. Термин «спагетти» - это не просто какое-то обобщённое ругательство, синоним «плохой», это устоявшееся понятие, означающее:

  • софт разделён на формально независимые компоненты
  • компоненты между собой сильно связанны, знают о внутреннем устройстве друг друга, взаимодействуют по большому количеству каналов и часто на низком уровне.

Именно этого и хочешь ты. Чтоб был некий универсальный и полнофункциональный компонент, способный исполнять функции в куче по разному работающих DE. Это можно реализовать 3мя методами:

  • внедрить вообще все возможные варианты поведения и управлять через конфиг. Вот условно прописывать mode=stack и получать стековый DS.
  • реализовать полнофункциональный DS но добавить 100500 точек подключения, чтоб можно было цепляться и переделывать какое захочешь поведение
  • реализовать просто библиотеку с 100500 низкоуровневыми функциями, чтоб авторы конкретных DE строили поведение из библиотечных кирпичиков.

Варианты 2 и 3 будут собственно означать ту или иную меру спагетности. Вариант 1 слишком дорог в разработке и поддержке либо не даст достаточной гибкости.

Ну а твой друг кирилка это обвинение выдвинул от того, что он этот термин слышал, но сам по себе глупый. Ему не понравилась необходимость захватывать экран через pipewire и он решил что это означает спагетти, так как присутствует «лишний» канал. Почему он так решил? Потому что в его голове wayland - это аналог x11, а x11 умеет в захват. Так в его башке образовалось 2 взаимопротиворечащих претензии:

  • pipewire не нужен, так как есть wayland, которого достаточно для захвата, значит спагетти
  • wayland неполноценен, потому что не имеет возможности для захвата.

Ну и он обе эти претензии выкатил. Если бы авторы вейланда послушались бы его, и запилили свой протокол для захвата и воткнули бы его в вейланд, то сложность коммуникаций от этого бы ничуть не уменьшилась бы, но формально остался бы 1 протокол, вейланд.

Ну понятно, что у тебя кто-то за кем-то обязательно повторяет.

Ну ты же повторяешь, причём не понимая что пишешь. Это не мне кажется, это реальность такова.

Война - это мир. Свобода - это рабство. Wayland - борьба с «спагетти архитектурой».

Отличный, содержательный аргумент. Сразу видно что ты понимаешь о чём пишешь. Я тебе в ответ другую цитату из Оруэлла дам: «4 ноги - хорошо, 2 ноги - плохо». Именно это ты и пытаешься мне объяснить.

Тебя не задолбало повторять эту мантру?

Ну а чего бы не повторить, если оно так и есть?

Тебе уже в двух темах подробно объяснили что отсутствие единой реализации - это прямой путь к фрагментированному аду.

Ну а я тебе, дураку, уже объяснил, что «фрагментация» и «свобода выбора» - это синонимы, означающие одно и то же, просто по-разному эмоционально окрашены. Некоторые люди не ценят свободу выбора DE, называют это «фрагментацией» и призывают всех пользоваться одним и не морочить друг другу голову. Другие возражают, называют фрагментацию «свободой выбора» и призывают сохранить её. И только ты одновременно умудряешься топить и за и против, просто от того что слова разные.

Это как с абортами, одни за аборты и называют это репродуктивной свободой, а другие против и называют детоубийством, и с той и с другой стороны много сумасшедших, но я вот лично не видел ни одного кто одновременно выступал бы за репродуктивную свободу и против детоубийства на ранней стадии беременности.

Нормальным разработчикам DE нахрен не всралось писать свой собственный графический сервер,

Если не хотят, пусть не пишут. Берут существующий и как-то прилаживают.

если они не хотят уничтожить конкурентов, потому что трудозатраты примерно как от написания своего самопального тулкита с нуля для одного приложения только в 10 раз больше.

Чувак, ты не можешь одновременно требовать написать единый для всех дисплейсервер и обвинять в желании уничтожить конкурентов. Единый сервер, контролируемый редхатом - это как бы и есть то что ты называешь «монополия». Ну т.е. придёт разработчик свея и скажет «а запилите мне такую функцию, очень надо», а ему: «ПНХ». И будут правы, так как не обязаны делать работу за него. Придёт он через месяц снова и скажет: «я сам запилил, примите патч», а ему снова: «ПНХ» и опять же будут правы, так как никто не обязан принимать в свой проект говнокод от любого желающего. И пойдёт разработчик sway лесом, жалуясь что в апстрим не принимают важную фичу, которая сделала бы свей лучше гнома. Ты этого хочешь?

И вот чтоб такого говна не было и придуман вейланд. Разрабы DE могут делать что хотят, могут брать готовый DS, тот же weston например, или mir, если функционал их устраивает, могут пилить свой с нуля, могут пилить на основе либы типа wlroots, могут кооперироваться и пилить что-то совместно.

Чем ты, клован, недоволен?

Чтобы не было зависимости от стороннего приложения

Это бессмысленное бла-бла-бла. Если тебе нужен функционал стороннего приложения, ты от него хоть как будешь зависим. 99.9% программ не нуждаются в захвате экрана, им pipewire не нужен, они от него независимы. Если программе нужен захват, она будет зависеть от чего-то, и нет никакой разницы, будет это «что-то» расширением вейланда или pipewire. Ты, клован, можешь внятно сформулировать, чем скриншотилке клиент для pipewire хуже клиента для wl-расширения. Причём захватывалке в условном скайпе всё равно придётся pipewire подключать.

khrundel ★★★★
()
Последнее исправление: khrundel (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Могу поспорить, что несмотря на «…» лично ты, фанатик долбаный, не озаботился выпилом из ядра драйверов неиспользуемого железа, поддержки numa-памяти, всяких там irda, wimax и batman-сетей, маргинальных ФС которые никогда в жизни не увидишь и прочей лапши.

Я рад что ты решил подтвердить мой диагноз. Пусть все видят, что ты реально дурачок.

По существу же твоего возражения, даже если бы твой список содержал именно спагетти-код, то с чего ты решил, что возражение против реализации спагетти-архитектуры в новом графическом стеке подразумевает обязанность выпиливать его в каких-то других местах? Когда Дейкстра заявлял что goto - это плохо, давайте не будем его использовать, разве ему предлагали или сейчас же собственноручно выпилить goto из всего существующего софта или заткнуться?

Я уж не вспоминаю о такой мелочи, что я по факту не призывал отказаться от спагетти, я просто сообщил твоему другу Skullnet, что он одновременно обзывает wayland спагетти-архитектурой, видимо не понимая что это означает, и требует её реализации.

khrundel ★★★★
()
Ответ на: комментарий от khrundel

что возражение против реализации спагетти-архитектуры в новом графическом стеке подразумевает обязанность выпиливать его в каких-то других местах?

Потому что он нужен в сложном и универсальном инфраструктурном комбайне, а если ты хочешь выпилить спагетти оттуда - ну это не имеет вообще никакого смысла если ты не начнёшь выпиливать его отовсюду или хотя бы из ключевых компонентов.

kirill_rrr ★★★★★
()
Ответ на: комментарий от khrundel

99.9% программ не нуждаются в захвате экрана, им pipewire не нужен, они от него независимы. Если программе нужен захват, она будет зависеть от чего-то, и нет никакой разницы

Есть разница и очень большая. Если 99,9% системы не занимается скринкастингом, то 0,01% занимается. И значит вся система в целом занимается. И системе нужна функция скринкаста и это предполагает api для видеозахвата.

А вот левая софтина, более того - комбайн, нахрен не нужна между источником и приёмником видеопотока. И реализаця с ней будет хуже чем без неё. Вообще в принципе с технической точки зрения и конкретно в принципе потому, что на системах без pipeware (да, такие тоже должны существовать!) будет отваливаться базовый функционал ГС.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)

Жду ебилда. Чтобы попробовать новую версию в качестве замены PulseAudio в программах, которые без неё не собираются.

question4 ★★★★★
()
Ответ на: комментарий от kirill_rrr

Потому что он нужен в сложном и универсальном инфраструктурном комбайне, а если ты хочешь выпилить спагетти оттуда - ну это не имеет вообще никакого смысла если ты не начнёшь выпиливать его отовсюду или хотя бы из ключевых компонентов.

Ты хочешь сказать, что после того как ты понял, что «спагетти-архитектура» относится скорее к X11, ты вдруг осознал что это не так уж и плохо?

Ну ок. Однако ты по прежнему настаиваешь, что никто не имеет права критиковать некие решения, пока не выпилит такие же (на самом деле не такие же, старый драйвер как бы не имеет вообще никакого отношения к «спагетти», но пофиг). Ты не находишь свою позицию по данному вопросу… Ну странной по крайней мере?

khrundel ★★★★
()
Ответ на: комментарий от khrundel

что «спагетти-архитектура» относится скорее к X11

Не, Х11 это скорее жирная и вредная лазанья, а вайланд действительно куча лапши. Без кетчупа. Кетчуп только фрикадельками а майонез только с с сыром, не наоборот и не отдельно.

что это не так уж и плохо

Вообще то да. Ну т.е. плохо, но без этого в реальном мире сложного универсального комбайна не постриить. Особенно чтобы работало сейчас в не через 20 лет.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Есть разница и очень большая. Если 99,9% системы не занимается скринкастингом, то 0,01% занимается. И значит вся система в целом занимается. И системе нужна функция скринкаста и это предполагает api для видеозахвата.

Смотри, объясняю на пальцах, почему ты дурак. Тебе полезно это узнать, чем раньше тем лучше, меньше дров наломаешь. Ты мыслишь лозунгами. Ты слышал про спагетти - ты увидел что-то как тебе показалось похожее, ты лозунг выдал. Ты слышал что таскать зависимости плохо, ты подобное увидел - ты лозунг выдал. Что означают эти слова с практической точки зрения ты вообще не вдупляешь.

Вот для 0.01% программ захвата аргумент с зависимостями валиден. Глуп, но хотя бы имеет смысл. Действительно, если ты собрался распространять свою скриншотилку, придётся в неё статически линковать библиотеку для dbus и для доступа к pipewire, ну или включать их в appimage например, что тоже увеличит размер. Будет ли это увеличение большим, будет ли оно хотя бы больше чем то, которое произойдёт при аналогичной линковки/включении клиентской либы для гипотетического wayland-скринкаста неизвестно, но предположим что будет. ОК, тупо, но понять можно. Но то что ты несёшь сейчас - это уже вообще ни в какие ворота не лезет, «вся система вцелом занимается» с практической точки зрения означает, что ты реально обеспокоен тем, что установленная на компе система, с GUI, с требованием поддержки скринкаста, что она потребует чтоб был установлен dbus и pipewire. Где ты блин видел десктопный линукс, на котором не было бы dbus? С пайпвайром в общем-то то же самое, есть, конечно, уникумы, пользующиеся пульсой или алсой, но как бы если ставишь себе obs-студию то уж как-то можно будет потерпеть наличие в системе pipewire.

Кстати, твоё неприятие вейланда также следует из любви к лозунгам. Ты когда-то услышал какую-то критику, ничего не понял, но то что «вейланд плохой» запомнил. С тех пор повторяешь, выдумывая какие-то нелепые претензии.

khrundel ★★★★
()
Ответ на: комментарий от kirill_rrr

А вот левая софтина, более того - комбайн, нахрен не нужна между источником и приёмником видеопотока. И реализаця с ней будет хуже чем без неё. Вообще в принципе с технической точки зрения и конкретно в принципе потому, что на системах без pipeware (да, такие тоже должны существовать!) будет отваливаться базовый функционал ГС.

Pipewire не является необходимой прослойкой, это просто один из способов реализовать доступ к захвату стандартным методом. Можешь хоть KMS/DRM напрямую открыть и захватывать что угодно без прослоек. А pipewire только избавляет от реализации своих велосипедов.

altwazar ★★★★
()
Ответ на: комментарий от altwazar

Если уж совсем точно, pipewire вообще просто транспорт и для, собственно, захвата не нужен от слова совсем.

Смысл в чём:

  • вот у нас есть приложение, которому нужен скриншот (видеозахват, и т.д.). Приложение простое/во flatpak/ограниченное apparmor-ом и т.д. не суть.
  • вот у нас есть композитор, в котором есть все битмапы и который функцию захвата может осуществить

Задача: связать их неким транспортом, таким чтобы надёжно передать битмапы, но при этом не нарушить порядок доступа в каждом. Мы же не хотим, чтобы один лез в другой.

И тут у нас удачно появляется pipewire, у которого обработчики - это стандартный fd (файловый дескриптор), с которыми хоть flatpack, хоть кто угодно, умеет работать.

Соответственно, через механизм портала (который из себя представляет, по сути, стандартный (что важно!!!) IPC-интерфейс DBus с какой-то композиторозависимой хренью за ним (поэтому -portal-gnome/kde/wlr), которая конечное приложение не интересует) мы договариваемся от том, дадут-ли нам дескриптор «на том конце провода» и если дают, то просто читаем из него, как из банального fd, то что нам надо. А механизм передачи «точка-точка» (fd-композитора -> fd-клиента) прозрачно берёт на себя pipewire, на то он и медиасервер, чтобы это делать.

SkyMaverick ★★★★★
()
Последнее исправление: SkyMaverick (всего исправлений: 3)
Ответ на: комментарий от wandrien

Я хз, но пульса куда-то чем-то течёт и через сутки начинает адово ресемплить с низким качеством.

Shadow ★★★★★
()
Ответ на: комментарий от khrundel

Где ты блин видел десктопный линукс, на котором не было бы dbus?

Учитывая что ты ничего кроме гнома не видел - не удивительно. А я вполне себе знаком с системами без dbus. Не сижу в них конечно, но тыкался. Да, и любой netinst-debian начинаются именно с такого состояния.

Хотя тут есть нюанс. «десктопный линукс». А нету никакого «десктопного» и «не десктопного» линукса, есть просто линукс. Он собирается из нужных зависимостей, и для всех нормальных ДЕ звуковой сервер - не зависимость а опция.

С пайпвайром в общем-то то же самое, есть, конечно, уникумы, пользующиеся пульсой или алсой

Ау, чувак, оно буквально пару дней назад официально было признано годнным к использованию самими разработчиками! Системы с пайпварью ещё даже не в большинстве! Тем более он реально нужен подавляющему меньшинству, и то в основном для упрощения настройки блютуз-наушников.

Единственная причина почему оно по умолчанию в убунту и федоре - да, именно неполноценность ГС на вайланде, затыкаемое пайпварью.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Это в нормальных системах. Для вайланда это единтвенный стандартизованный вариант.

Как оно в вейленде и почему все хотят pipewire я написал. Запись напрямую возможна через kms/drm, она работала и работает. Запись напрямую с композитора никто не будет делать, так как она не дает никаких преимуществ и только плодила бы костыли и распыляла ресурсы разработчиков.

altwazar ★★★★
()
Ответ на: комментарий от otto

Жду ебилда

Так уже:

На 8:50 ещё не было.

P.S. Или я его не заметил, так как он с тильдой…

question4 ★★★★★
()
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Тем более он реально нужен подавляющему меньшинству, и то в основном для упрощения настройки блютуз-наушников.

Все мои знакомые, пользующиеся наушниками с домашним компьютером, используют Bluetooth :)

question4 ★★★★★
()
Ответ на: комментарий от khrundel

А как это вообще связано со спагетти? Походу ты не понимаешь о чём пишешь вообще. Термин «спагетти» - это не просто какое-то обобщённое ругательство, синоним «плохой», это устоявшееся понятие, означающее:

Снова написал лютую дичь. «Спагетти» - это полная противоположность модульности. Xorg дизайнился модульным и продуманным, чтобы соответствовало Unix-way. Хоть и получился некий «комбайн», но зато в нём все DE используют одни и те же фичи, а значит любой компонент DE можно заменить на другой. Как раз то что я и юзаю: могу, например, заменить композитор и менеджер окон в своём DE. Wayland - это лютое смузихлёбство, когда всё пихнули в одно монолитное мегаприложение - тот же комбайн, но модульности уже никакой нет, как и нет взаимозамеяемости. К тому же из-за написания с нуля - высокие трудозатраты. Всё просто, а у тебя лютая шиза.

Ну а я тебе, дураку, уже объяснил, что «фрагментация» и «свобода выбора» - это синонимы, означающие одно и то же, просто по-разному эмоционально окрашены.

В результате фрагментации у тебя будет следующий выбор: юзать свою бомжереализацию сервера, либо прогибаться под определённые DE, где реализация полноценная. Отличная перспектива.

Некоторые люди не ценят свободу выбора DE, называют это «фрагментацией» и призывают всех пользоваться одним и не морочить друг другу голову.

У DE есть свобода выбора и она заканчивается там, где начинается моя свобода, а для этого нужно как раз пользоваться «одним». Других вариантов нет.

Это как с абортами, одни за аборты и называют это репродуктивной свободой, а другие против и называют детоубийством

Причём тут аборты, когда мы тут больше говорим про рынок? Если участник рынка нарушает общепринятое законодательство в открытую и пытается ограничить свободу потребителя? Как только участник рынка получает полную свободу - потребитель её лишается. Это тоже очень мутное сравнение, однако, если DE смогут делать свой сервер - мы получим лютый ад на десктопе. С Android уже это как раз и проходим, но только в плане прошивок. Open-source без всякой свободы.

Если не хотят, пусть не пишут. Берут существующий и как-то прилаживают.

В этом и проблема. У Wayland нет ни существующего сервера, ни единого фреймворка.

Единый сервер, контролируемый редхатом - это как бы и есть то что ты называешь «монополия».

В твоей тупой башке всё должна контролировать ЦК Партии, а я говорю про механизмы, которые нужно реализовать один раз и забыть. Вот Xorg написали и всего его юзают. Почти даже не развивают, потому что все фичи уже давно написаны. Только мейнтейнят и фиксят баги.

Ну т.е. придёт разработчик свея и скажет «а запилите мне такую функцию, очень надо», а ему: «ПНХ».

Как раз сейчас так и происходит с Wayland, в котором отказываются делать фичи для десктопа. В Xorg такое невозможно, потому что тут всё решается механизмами, а не политическими решениями.

И будут правы, так как не обязаны делать работу за него. Придёт он через месяц снова и скажет: «я сам запилил, примите патч», а ему снова: «ПНХ» и опять же будут правы, так как никто не обязан принимать в свой проект говнокод от любого желающего.

Какая-то кучка пидоров, которая просто сидит ровно на жопе и ничего не делает, причём офигели до такой степени, что даже не хотят принимать патчи. Сами код не пишут - мы не обязаны делать за вам, и другим не дают - а ваш код говно. Как же сильно воняет GNOME-ом. Не удивлён, почему Xorg не развивается так как хотелось бы. В Wayland вообще полно таких челиков, поэтому нафиг, он мертворожденный.

И пойдёт разработчик sway лесом, жалуясь что в апстрим не принимают важную фичу, которая сделала бы свей лучше гнома. Ты этого хочешь?

Это уже происходит с Wayland-ом, где не добавляют нужные некоторым DE протоколы. Так что твоя попытка примазать это иксам провалилась.

И вот чтоб такого говна не было и придуман вейланд. Разрабы DE могут делать что хотят, могут брать готовый DS, тот же weston например, или mir, если функционал их устраивает, могут пилить свой с нуля, могут пилить на основе либы типа wlroots, могут кооперироваться и пилить что-то совместно.

Опять фрагментация, какой не возьми - один хуже другого. Вон недавно ещё один вышел - https://github.com/CuarzoSoftware/Louvre Эту ситуацию уже проходили в XMPP и Tox клиентах, где 95% - недопиленное гавно и только среди всего шлака одна более-менее нормальная реализация. Поэтому идея делать единый графический сервер - это самый лучший вариант.

Это бессмысленное бла-бла-бла. Если тебе нужен функционал стороннего приложения, ты от него хоть как будешь зависим. 99.9% программ не нуждаются в захвате экрана, им pipewire не нужен, они от него независимы.

Вышел PipeWire 1.0.0 (комментарий)

К сказанному добавлю ещё то, что бывают сторонние приложения-виджеты рабочего стола, которые берут фреймбуфер окон всех приложений и показывают его на превью. В xfwm4 это делается при Alt+Tab. В Wayland это невозможно в принципе сделать. Придётся прибивать гвоздями менеджер окон к дисплейному серверу, выкидывая модульность и взаимозаменяемость.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 4)
Ответ на: комментарий от altwazar

Как оно в вейленде и почему все хотят pipewire я написал. Запись напрямую возможна через kms/drm, она работала и работает. Запись напрямую с композитора никто не будет делать, так как она не дает никаких преимуществ и только плодила бы костыли и распыляла ресурсы разработчиков.

Вот поэтому и костыль. Так как архитектура Wayland-а ущербна и единой библиотеки с фичами скринкасинга нет, лучший вариант в этом зоопарке - это прикостылить сторонний сервис. Pipewire в этом не виноват, в этом виноват Wayland. В иксах у меня уже есть графический сервер, где есть фичи записи экрана, мне не нужен Pipewire для этого вообще, его я юзаю для звука-only.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 3)
Ответ на: комментарий от kirill_rrr

Учитывая что ты ничего кроме гнома не видел - не удивительно. А я вполне себе знаком с системами без dbus. Не сижу в них конечно, но тыкался…Хотя тут есть нюанс. «десктопный линукс». А нету никакого «десктопного» и «не десктопного» линукса, есть просто линукс.

Ну как бы на этом и можно с тобой заканчивать. Ты прямо при формулировании сам засомневался и свалился в вопрос «что есть линукс».

А между тем линукс, которому нужен захват рабочего стола в вейланде - это не любой линукс, это не андроид, это не прошивка роутера, не сервер без гуя и даже не киоск. Всерьёз втирать про отсутствие dbus в условиях, когда даже xfce в него умеет - ну такое. А если какое-нибудь DE реально в дбус не умеет, но полноценную поддержку вейланда заполучить стремится - самое время перейти на промышленный стандарт.

Ау, чувак, оно буквально пару дней назад официально было признано годнным к использованию самими разработчиками!

Волшебная сила 1.0 что ли?

Системы с пайпварью ещё даже не в большинстве!

А типа вейланд давно уже в большинстве? Ты как бы удерживай в голове мысль, речь идёт о переспективе, а не о релизе слаквари 2015 года.

khrundel ★★★★
()
Ответ на: комментарий от kirill_rrr

Ну вот ты сам пишешь, что тыкался, но не пользовался.

А реальным применениям нужен dbus.

Зачем им не пользоваться при программировании, если можно пользоватся?

wandrien ★★
()
Ответ на: комментарий от khrundel

В целом всё верно.

Pipewire как отдельный компонент предоставления api для скринкаста выглядит архитектурно грамотным решением.

Впрочем, это архитектурно.

Как оно реализовано по факту, не смотрел. Надеюсь, что качественно.

wandrien ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.