Выпуск ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎΠ³ΠΎ сСрвСра PipeWire 1.0.0

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎΠ³ΠΎ сСрвСра PipeWire 1.0.0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ·, ознамСновавший Π·Ρ€Π΅Π»ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. На ΡƒΡ€ΠΎΠ²Π½Π΅ API ΠΈ ABI вСрсия 1.0 ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстима с Π²Π΅Ρ‚ΠΊΠΎΠΉ 0.3. PipeWire позиционируСтся ΠΊΠ°ΠΊ сСрвСр, ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ Π½Π° смСну Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΌΡƒ сСрвСру PulseAudio ΠΈ отличаСтся ΠΎΡ‚ Π½Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ срСдств для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π²ΡƒΠΊΠ° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌΠΈ ΠΈ Π½ΠΎΠ²ΠΎΠΉ модСлью бСзопасности для управлСния доступом Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ поддСрТиваСтся Π² GNOME ΠΈ ΡƒΠΆΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ примСняСтся Π² Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивах Linux. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ LGPLv2.1.

PipeWire прСдоставляСт возмоТности для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π»ΡŽΠ±Ρ‹Ρ… ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², способСн ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ с Π²ΠΈΠ΄Π΅ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для управлСния источниками Π²ΠΈΠ΄Π΅ΠΎ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ устройства Π·Π°Ρ…Π²Π°Ρ‚Π° Π²ΠΈΠ΄Π΅ΠΎ, web-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ΅ прилоТСниями содСрТимоС экрана. НапримСр, PipeWire Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с бСзопасным Π·Π°Ρ…Π²Π°Ρ‚ΠΎΠΌ содСрТимого экрана ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌ доступом ΠΊ экрану Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Wayland.

PipeWire Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Ρ€ΠΎΠ»ΠΈ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ сСрвСра, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ возмоТности PulseAudio ΠΈ JACK, Π² Ρ‚ΠΎΠΌ числС ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ потрСбности систСм ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π²ΡƒΠΊΠ°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ ΠΌΠΎΠ³ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ PulseAudio. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, PipeWire ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ модСль бСзопасности, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ доступом Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ проброса Π·Π²ΡƒΠΊΠ° ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π² Π½ΠΈΡ…. Одной ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° самодостаточных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Flatpak ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π² графичСском стСкС Π½Π° Π±Π°Π·Π΅ Wayland.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности:

  • Π—Π°Ρ…Π²Π°Ρ‚ ΠΈ воспроизвСдСниС Π·Π²ΡƒΠΊΠ° ΠΈ Π²ΠΈΠ΄Π΅ΠΎ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌΠΈ;
  • БрСдства для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π·Π²ΡƒΠΊΠ° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;
  • ΠœΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ совмСстный доступ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ;
  • МодСль ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° основании Π³Ρ€Π°Ρ„Π° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π³Ρ€Π°Ρ„Π°. ДопускаСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСрвСра, Ρ‚Π°ΠΊ ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²;
  • Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс доступа ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дСскрипторов ΠΈ доступа ΠΊ Π·Π²ΡƒΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠ»ΡŒΡ†Π΅Π²Ρ‹Π΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹ (shared ringbuffer);
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π»ΡŽΠ±Ρ‹Ρ… процСссов;
  • НаличиС ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΊ GStreamer для упрощСния ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ прилоТСниями;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ ΠΈ Flatpak;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SPA (Simple Plugin API) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ТСсткого Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;
  • Гибкая систСма согласования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ выдСлСния Π±ΡƒΡ„Π΅Ρ€ΠΎΠ²;
  • ИспользованиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ процСсса для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π²ΡƒΠΊΠ° ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ сСрвСра, Ρ…Π°Π±Π° для прСдоставлСния Π²ΠΈΠ΄Π΅ΠΎ прилоТСниям (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для gnome-shell screencast API) ΠΈ сСрвСра для управлСния доступом ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ устройствам Π·Π°Ρ…Π²Π°Ρ‚Π° Π²ΠΈΠ΄Π΅ΠΎ.

Из ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π²Π΅Ρ‚ΠΊΠΎΠΉ 0.3 отмСчаСтся Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ jackdbus, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PipeWire Π² качСствС ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ систСмы JACK. Для ALSA задСйствовано ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ IRQ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ Pro-Audio, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ JACK. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ старой ΠΈ Π½ΠΎΠ²ΠΎΠΉ вСрсии webrtc-audio-processing. Π’ pw-cat Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² DFF DSD. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ GNU/Hurd.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru