Commit Graph

818 Commits

Author SHA1 Message Date
Markus Volk
daa0c135a8 pipewire: remove 'inherit gsettings'
- remove duplicated PACKAGECONFIG

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-19 08:10:45 -07:00
Markus Volk
0e272e17be xdg-desktop-portal-wlr: update
There is not a new version released yet, but this update has lots of fixes
and adds features for recent pipewire and hyprland support.
But most important ... without the update it will cause a 30 sec. delay to
the start of various gtk apps in combination with current xdg-desktop-portal
release.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-12 11:03:04 -07:00
Martin Jansa
9317d99070 dleyna-{server,renderer}: fix dev-so QA issue with multilib
* the libdir is arch specific, but the subdirectory is always BPN
* fixes:
  lib32-dleyna-server-0.6.0+gitAUTOINC+eb895ae827: non -dev/-dbg/nativesdk- package lib32-dleyna-server contains symlink .so '/usr/lib/dleyna-server/libdleyna-server-1.0.so' [dev-so]
  lib32-dleyna-renderer-0.6.0: non -dev/-dbg/nativesdk- package lib32-dleyna-renderer contains symlink .so '/usr/lib/dleyna-renderer/libdleyna-renderer-1.0.so' [dev-so]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-10 20:13:28 -07:00
Markus Volk
07ca097d36 pipewire: update 0.3.67 -> 0.3.68
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

This release contains a huge number of changes, some of which might cause
regressions. Please report anything that seems to fail after the upgrade.
UCM devices in particular might have changed names, profiles and ports that
might require changes in custom scripts.

  - Symbolic links to the pipewire binary are now used instead of recompiling
    the same binary multiple times.
  - Changes to the graph scheduler related to quantum/rate updates and
    calculation of the node states. Things should start and switch between
    quantums and rates more smoothly now and especially virtual devices should
    now only run when required.
  - A new RTP session module was added. This uses the Apple MIDI protocol
    to configure low-latency bidirectional MIDI (and with a PipeWire specific
    extension, also audio) between machines. OPUS encoding was added to the
    RTP formats. The SAP module was separated from the rtp-sink/source module
    to make it more usable.
  - A new runtime debug property was added to all streams and nodes to trigger
    a save of the raw samples to a wav file. Support for this has also been
    added to the echo-canceler to debug potential issues.
  - Module pulse-tunnel has improved rate matching and synchronization
    support. It should also not drift anymore for capture devices.
  - The link-factory now ignores by default the link.passive property. This means
    that tools like pw-link or jack clients and wireplumber can't make passive
    links anymore. The reason is that there is now much more advanced logic in
    PipeWire itself to handle passive links based on node and port properties.
  - The RAOP sink was ported to new OpenSSL functions. Digest passwords are
    handled correctly now and support for more devices was added.
  - The ACP code was updated with new PulseAudio UCM code: "Create multiple
    profiles per verb for conflicting devices". This might change the names
    of devices, profiles and ports so scripts might need to be updated.
  - Upmixing is disabled again by default. We now ship config files that
    distros can install to enable upmixing again. The reason being that PipeWire
    should not apply fancy DSP processing to audio by default.
  - Many cleanups and bugfixes, including some crashes and memory corruption
    bugs.

  - Various FreeBSD compilation fixes.
  - Don't crash when calling _connect twice in stream/filter. (#3091)
  - Links are now installed instead of compiling the pipewire binary
    multiple times.
  - There is now a new core event bound_props that augments the bound_id event
    with the global properties. This can be used to get the global.serial among
    other global properties. It also makes it possible in the future to let the
    server allocate unique names or uuids.
  - Fix a bug where the server could go into an infinite reconfigure loop when
    the samplerate of a driver would change.
  - When a samplerate was forced, restore the previous best samplerate when the
    samplerate is no longer forced. (#2133)
  - Rework how the states of the nodes in the graph are calculated. A more
    refined algorithm is now used that only runs nodes that need to run.
  - Rework how the quantum change is applied to the graph. Drivers are now
    responsible for using the new updated rate/quantum before starting a new
    cycle. This avoids starting a cycle with an old quantum first.
  - pw-stream and pw-filter will now ensure that the Trigger event is called
    from the main thread.
  - node.force-rate=0 will now force the node.rate on the graph, forcefully
    switching the hardware into the new rate if possible. (#3026)
  - Additional checks were added to the thread-loop to check locking order.
  - Additional checks were added to pw-stream and pw-filter to check if methods
    are called from the right thread context.

  - A new RTP session module was added. This uses the Apple MIDI protocol
    to configure bidirectional MIDI (or audio) between machines.
  - SAP support was removed from module-rtp-source and module-rtp-sink and
    moved to a separate module. This makes it possible to use the RTP modules
    without SAP support as well.
  - The echo-cancel module now has support to save the signals to a wav
    file for debugging purposes.
  - The RTP modules now have support for the OPUS codec.
  - The RAOP module was ported to new openssl encryption functions and handles
    digest passwords correctly now.
  - module-raop-discover now has match rules to be able to select the streams
    and set properties.
  - Module pulse-tunnel has improved rate matching and synchronization
    support. (#3093)
  - Fix potential memory corruption and infinite loops because
    module-pulse-tunnel was unloaded from the wrong thread.
  - The link-factory now ignores by default the link.passive property. This means
    that tools like pw-link or jack clients and wireplumber can't make passive
    links anymore. The reason is that there is now much more advanced logic in
    PipeWire itself to handle passive links based on node and port properties.
  - module-echo-cancel will now clear its buffers after a suspend to avoid
    playing stray samples.
  - module-raop-sink will now handle 0 timing_port replies. (#3133)

  - The adapter module now has support for saving the raw audio to a wav
    file for debugging purposes.
  - The ACP code was updated with new PulseAudio UCM code: "Create multiple
    profiles per verb for conflicting devices". This might change the names
    of devices, profiles and ports so scripts might need to be updated.
  - Upmixing was disabled again by default. We now ship config files that
    distros can install to enable upmixing again. (#3081)
  - audioadapter and audioconvert have seen improvements in the experimental
    non-DSP/passthrough mode.
  - Fix a potential race where the dummy drivers could fail to stop a timer
    and cause endless warnings in the logs.
  - The ALSA plugin has experimental support for IRQ based scheduling. This
    should decrease latency for some (mostly USB) drivers. This should bring
    latency within JACK latency. More work on this will be done before the
    1.0 release later this year.
  - Audioconvert now has support for volume ramping. (#3046)
  - A new loop method was added the check if a thread is currently running the
    loop.
  - channelmix.disable and resample.disable now generate an error when true
    and channelmixing or resampling is required in the converter.

  - Fix a crash in some cases when a device was disconnected.
  - Support async transport state changes. This avoids some lockups when the
    bluetooth backend is having issues. (#3023)
  - Align BAP sinks. This improves synchronization between earpieces.

  - Improve properties in pw-top and pavucontrol.

  - Improve error handling from pulse-tunnel.
  - Generate silence correctly for unsigned formats as well.
  - Review buffer params. The streams should now just work with 1 or 2
    buffers.
  - module-rtp-send and module-rtp-recv now have support for the OPUS codec.

  - Make sure we don't call any callbacks anymore when deactivating. (#2781)

  - Sort the device by priority in deviceprovider. (#3072)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-09 23:38:06 -07:00
Khem Raj
9e42462d5a meta-multimedia: Fix missing upstream status in several patches
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-05 20:34:24 -07:00
Enrico Scholz
20d2eeb62a sox: remove ffmpeg dependency
ffmpeg format handler was removed from sox in 2013 ([1]).  Drop it
also from DEPENDS.

This makes sox generally available without the need to whitelist the
commercial ffmpeg license.

[1] 5ae4049727

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-05 15:56:47 -07:00
Markus Volk
17180ae0d2 libcamera: re-introduce fix for gcc-13
Signed-off-by: Markus Volk <f_L_K@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-01 08:55:06 -07:00
Markus Volk
55489e5d10 nv-codec-headers: add clean target to Makefile
next try to fix an error on rebuilds:
   | NOTE: make clean
   | ERROR: oe_runmake failed
   | WARNING: exit code 1 from a shell command.
   | make: *** No rule to make target 'clean'.  Stop.

Signed-off-by: Markus Volk <f_L_K@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-01 06:09:47 -07:00
Markus Volk
2b1ac94dd2 libcamera: update 0.0.1 -> 0.0.4
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-25 16:43:34 -07:00
Khem Raj
eafecde2ae packagegroup-meta-multimedia: Remove library only packages from rdeps
Because they get renamed, it is better to ignore them and let a
dependency build them

Fixes errors like
ERROR: packagegroup-meta-multimedia-1.0-r0 do_package_write_ipk: An allarch packagegroup shouldn't depend on packages which are dynamically renamed (gssdp to libgssdp-1.2-0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-22 09:10:39 -07:00
Markus Volk
98afa5696b wireplumber: update 0.4.13 -> 0.4.14
WirePlumber 0.4.14
~~~~~~~~~~~~~~~~~~

Additions:

  - Added support for managing Bluetooth-MIDI, complimenting the parts that
    were merged in PipeWire recently (!453)

  - Added a default volume configuration option for streams whose volume
    has never been saved before; that allows starting new streams at a lower
    volume than 100% by default, if desired (!480)

  - Added support for managing link errors and propagating them to the
    client(s) involved. This allows better error handling on the application
    side in case a format cannot be negotiated - useful in video streams
    (see !484, pipewire#2935)

  - snd_aloop devices are now described as being "Loopback" devices
    (pipewire#2214)

  - ALSA nodes in the pro audio profile now get increased graph priority, so
    that they are more likely to become the driver in the graph

  - Added support for disabling libcamera nodes & devices with ``node.disabled``
    and ``device.disabled``, like it works for ALSA and V4L2 (#418)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-14 07:42:47 -07:00
Markus Volk
263d4ab75c nv-codec-headers: update 11.1.5.2 -> 12.0.16.0
- use oe_runmake to avoid an error on rebuilds:
   | NOTE: make clean
   | ERROR: oe_runmake failed
   | WARNING: exit code 1 from a shell command.
   | make: *** No rule to make target 'clean'.  Stop.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-13 09:07:40 -07:00
Markus Volk
c4e081a116 pipewire: update 0.3.66 -> 0.3.67
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - The loopback module and other couples streams will now not randomly
    fail in some cases. (#3028)
  - The RTP module now has support for sending and receiving MIDI as
    well.
  - The compress offload sink has seen many improvements. It now uses
    ioctls directly to bypass limitations of tinycompress (to be able
    to detect the available codecs, for example).
  - Pulse server compatibility was improved for some apps by improving
    the format parsing and FIX_ stream flag handling.
  - The min quantum in the pulse server was changed from 256/48000 to
    128/48000 to fix some issues with games that expect 5ms or less of
    latency.
  - The Bluetooth plugin has seen many improvements in packet scheduling
    to attempt to reduce stuttering on some devices.
  - The ALSA plugin now handles some impossible cases better. This fixes
    recording in QEMU again. (#2971)

  - SPDX tags were added to the code for copyright information.
  - The random number functions were made more usable.
  - The port property code was moved from the adapter to the port
    implementation itself to make it more useful and unified for the
    cases where no adapter is used (midi and video).
  - Fix a potential overflow in mixer areas.
  - Improve runnable state calculations of nodes. This is part of
    ongoing work to avoid running nodes that should not need to run.
  - The stream will now always call the process function when using
    trigger, even if there are no buffers. This avoids stalls of the
    processing graph in some cases. (#3028)
  - Links are now marked as passive by PipeWire itself so that
    the right thing happens in all cases.
  - Implement the in/out/true values for the node.passive property.
    Place a passive state on ports to make passive links on a port
    by port basis.

  - pw-cat has seen improvements in the encoded file playback case.

  - The rtp module has support for MIDI now.
  - DSCP is now configurable in the RTP module.
  - The loopback module doesn't randomly fail to work anymore. (#3028)

  - The null-audio sink can now be given a format and it will return this
    instead of the default float ones. This makes it possible to make a
    null-sink that has a given format.
  - The compress offload sink has seen many improvements. It now no longer
    uses tinycompress to be able to detect the available codecs.
  - The ALSA plugin now handles some impossible cases better. (#2971)
  - Fix compilation on older compilers. (#3050)

  - The FIX_ flags are now implemented more correctly by fixating the
    stream to the format of the sink/source they ask to be connected to.
    There is now also an option to override the fixation based on rules.
  - Format parsing was improved and should now support all format strings
    supported by pulseaudio including upper and lower case variants
    and shortcuts.
  - Channelmap parsing was improved and should now reject invalid
    channelmaps as well as support the shortcuts supported by pulseaudio.
  - Escape codes in module arguments now work as it does in pulseaudio. (#3071)
  - The min quantum was changed from 256/48000 to 128/48000 to fix some
    issues with games that expect 5ms or less of latency.

  - jack.passive-links can now be used to have a JACK client make passive
    links and the node.passive property is no longer used for this because
    it has a different function.
  - The qsynth rule was updated to the new node.passive features. It is now
    only passive on the output side.

  - BAP delay and transport latency are handled now.
  - A2DP and SCO can now use bigger buffers to improve quality when the
    reception is jittery.
  - The AT+BCC command is now implemented.
  - Packet encoding now happens ahead of time when possible to avoid delays
    before sending it.
  - Source should now always produce complete (padded) buffers to avoid sync
    problems.
  - Don't set unnecessary socket options.

  - The pipewiresrc now has an autoconnect argument.
  - The metadata plane count is now handled correctly in more cases.
  - Stream errors are now handled correctly to stop the GStreamer elements.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-13 09:07:40 -07:00
Markus Volk
efc7e272c0 libavif: add recipe
libavif is a needed dependency to add av1 support for the upcoming webkitgtk release

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-07 15:00:10 -08:00
Markus Volk
48e9c23a3e dav1d: add recipe
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-07 15:00:10 -08:00
Khem Raj
eb0d072f9e packagegroup-meta-multimedia: mycroft needs pulseaudio
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-06 11:21:17 -08:00
Khem Raj
9a6d101195 vlc: Upgrade to 3.0.18
Drop 64-bit time_t patch, its already fixed in 3.0.18
Add patches to fix buld with clang16 and musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-05 14:34:38 -08:00
Markus Volk
68d6195061 pipewire: update 0.3.65 -> 0.3.66
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Fix a regression in the pulseaudio module-combine-stream because the new
    module-combine-stream was not installed.
  - PipeWire can now generate a limits.d config file with our recommended
    settings for priorities and memlock.

  - Avoid rate switches when the graph is idle.
  - The rate selection algorithm was improved. This ensures minimal performance
    and quality loss when resampling.
  - The default min.quantum was set to 32 again after it got erronously changed
    to (the too low) 16 in version 0.3.45.
  - Fix compilation issues with rust bindings because of macros in defines.
    Work around it for now. (#2952)
  - Invalid file mappings are now refused (#2617 #2914 #3007)
  - Modules, exec and objects can now be loaded depending on conditions. One
    example is the X11-bell module that can now be disabled with a custom
    property override.
  - Filter now also supports _trigger_process() to drive the graph.
  - TID is now added to the journald log.
  - PipeWire generates and installs */etc/security/limits.d/25-pw-rlimits.conf*
    that by default contains project's recommended settings. Creation of the
    pipewire group is left to the distro or user ( `groupadd -r pipewire` ).
    See the rlimits-* Meson options for controlling this behavior.
  - Additionally there is now by default disabled Meson option that will
    install */etc/security/limits.d/20-pw-defaults.conf* with the current Linux
    default memlock value. Distros with only kernels >=5.16 or always using
    systemd v251 or newer do not need this. But all other builds should set the
    `-Dpam-defaults-install=true` Meson option to ensure that the memlock value
    is always large enough. Thanks to Rickie Schroeder for pointing out that
    the default Linux memlock value has been somewhat recently increased.

  - Install module-combine-stream.
  - RTP source now has support for custom channel names.
  - RTP source will now stop when inactive.
  - There is now
  - Filter-chain has a new mysofa based spacializer plugin.
  - The RTP modules can now use direct clock timestamps to send and receive
    packets. This makes it possible to synchronize sender and receiver with
    a PTP clock, for example.
  - Filter-chain now has an invert plugin to invert the polarity of a
    signal. (#3008)

  - There is now an option to set the channels used for probing Pro Audio
    devices. This could unlock more samplerates for some devices when they are
    probed with fewer channels. (#2990)
  - Support was added for other clocks than the MONOTONIC clock in the
    driver nodes. This can be used to synchronize the graph to a PTP clock,
    for example.
  - The ALSA source has some more headroom when rate matching to avoid
    stuttering when following another driver.
  - libcamera controls are now mapped to standard PipeWire property values.
  - The channelmixer has seen some improvements. MONO and undefined channel
    layouts are now upmixed and downmixed more correctly. (#3010)

  - Many BAP support fixes.

  - The gstreamer elements now support buffer video metadata so that strides
    are correctly handled.
  - pipewiresrc will now error out correctly in more cases. (#2935)

  - The frame to/from time functions are improved to also work with negative
    time and frame offsets.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-02-19 11:03:18 -08:00
Markus Volk
7b357b6181 pipewire-media-session: update 0.4.1 -> 0.4.2
Media Session 0.4.2 (2023-01-20)

This is a small release to keep the dead corpse walking... Repeated attempts to
shoot it in the head seem to have failed (We don't think it is running with a lot
of brains left). It does not look pretty and we don't know yet when it will finally
stay down. What we do know is that some creatures (humans?) have been secretly
feeding it with their brain cells and as such, here we are...

Anyway, it contains some minor patches for some organ (memory?) leaks. It also adds
some fixes to make things stumble on (compile?) and make disturbing slurping sounds
again (work?) with the latest PipeWire versions.

Seriously.. back off.. don't become a victim... use Wireplumber.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-02-11 08:34:39 -08:00
Markus Volk
a83305a15d pipewire: update 0.3.64 -> 0.3.65
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Add back the deprecated symbols but make sure a deprecated warning is
    emitted for them. This fixes compilation issues in bindings.
  - Fix an error in the AVX code that could cause crackling in filter-chain
    when using the mixer.
  - The convolver in filter-chain can now select an IR from a list of IRs
    that best matches the current samplerate. Also resampling of the IR
    has been improved.
  - A new native module-combine-stream was added. You can use this to create
    a 5.1 device from 3 stereo soundcards, for example, or direct the output
    to multiple sinks at once.
  - Support for Bluetooth MIDI was added. This requires a wireplumber
    addition as well.
  - An ALSA plugin rule was added to tweak the buffer settings in Davinci
    Resolve so that it now runs with acceptable latency. (#1697)
  - Support for compress offload was added using tinycompress. This allows
    compressed formats to be decoded in hardware using ALSA on some devices.
  - Many more buffixes and improvements.

  - Add back the deprecated symbols but make sure a deprecated warning is
    emitted for them. (#2952)
  - Fix a regression when running older servers and newer clients (such as
    flatpaks on older server) where the server would run clients too soon,
    causing crashes. (#2964)
  - Ensure that environment variables override any config values.

  - pw-cli has received some improvements in the output.
  - pw-cat can now use ffmpeg to demux streams for compress offload.

  - The convolver IR volume is now preserved after resampling.
  - Adapter ports can now have a custom prefix.
  - module-rt now clamps the realtime priority to the user allowed one if
    it is within an acceptable range. Before it would fall back to RTKit
    immediately.
  - The module-echo-cancel can now have per stream channel layouts which
    makes it possible to link to specific audio ports on a device. (#2939)
  - Fix an error in the AVX code that could cause crackling in filter-chain
    when using the mixer. (#2965)
  - The convolver in filter-chain can now select an IR from a list of IRs
    that best matches the current sample-rate.
  - module-pipe-* now better matches the pulseaudio properties. (#2973)
  - A new combine-stream module was added to combine multiple sinks into
    one sink. It is also possible to merge multiple sources into one.
  - module-rtp-source now has match rules to select what SAP sessions
    to stream from. There were also improvements to the buffering and
    latency handling.
  - module-rtp-sink now handles multicast loopback correctly.
  - module-rtp-sink implements min-ptime and max-ptime to control the
    send packet latency.

  - A new modifier flag was added to the video format parser helper to
    allow 0 (linear) as a valid modifier. (#2943)
  - Params includes were reorganized to make it more scalable. Many compressed
    audio formats were added.
  - The alsa pcm plugin now handles invalid values from the driver
    gracefully. (#2953)
  - Fix some potential stuttering cause by wrong scaling and overflow
    of the output buffers in audioconvert. (#2680)
  - Debug output is now also sent to the log instead of stdout. (#2923)
  - A debug context was added to debug macros to implement custom debug
    handling. This is used to redirect the debug of pods to the debug log
    instead of using some custom duplicated code.
  - Fix some warnings for potentially undefined shifts in format
    conversion.
  - Support for compress offload was added using tinycompress. This is mostly
    used on some embedded hardware where decoding of audio formats can be
    done in hardware.

  - Some fixes for LE audio were added.
  - Support for Bluetooth MIDI was added. This requires a wireplumber
    addition as well.
  - Reply OK to empty commands.
  - Improve compatibility with some devices that send stray \n such as
    the Sennheiser HD 350BT. (#2991)

  - Devices with unsupported formats (by the pulseaudio API) are now also
    listed in the pulseaudio API (with invalid formats).
  - The native module-combine-stream is used for module-combine-sink.

  - Make jack.merge-monitor default to true to better match the jack1/2
    behaviour. Add an exception for mixxx, which is more usable with
    unmerged monitors. (#1760)

  - The property handling in the ALSA plugin was improved. alsa.properties
    and alsa.rules can now be added to the config file.
  - A rule was added to tweak the buffer settings in Davinci Resolve so that
    it can run with acceptable latency. (#1697)
  - ALSA volume will now also use cubic volumes, like pulseaudio.
  - The ALSA ctl plugin now also uses the client-rt.conf file.
  - A new alsa.volume-method was added to configure cubic or linear volume.
    This can be set per application using the rules.

  - pipewiresrc will now advertize DMABUF support if the pipeline suports
    this.
  - pipewiresrc will now always be a live source unless told otherwise.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-02-02 21:37:37 -08:00
Khem Raj
f8a25ccf54 pipewire: Do not split modules using PACKAGES_DYNAMIC for native case
One of the module has -native in its name which causes it to be provided
by both pipewire and pipewire-native and we need to set preferred
provider just for that. The fine tailored packages is not needed for
native case anyway so disable it

Fixes
NOTE: Multiple providers are available for runtime pipewire-modules-protocol-native (pipewire, pipewire-native)
Consider defining a PREFERRED_RPROVIDER entry to match pipewire-modules-protocol-native

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-02-02 10:25:33 -08:00
Khem Raj
e6119b2f34 pipewire: Split dymanic modules to target recipe alone
This avoid unnessary provider conflict with pipewire-native to
provide modules

NOTE: Multiple providers are available for runtime pipewire-modules-protocol-native (pipewire, pipewire-native)
Consider defining a PREFERRED_RPROVIDER entry to match pipewire-modules-protocol-native

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-28 01:58:44 -08:00
Martin Jansa
e99f187966 .patch: fix Upstream-Status formatting issues reported by patchreview tool from oe-core
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-27 17:06:52 -08:00
Khem Raj
ba5a86a51a mpd: Upgrade to 0.23.12 release
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-26 21:52:26 -08:00
Khem Raj
d41cfd1d9a crossguid: Fix build with gcc13
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-26 10:24:25 -08:00
Khem Raj
d8381620cd libcamera: Fix build with gcc-13
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-25 08:57:42 -08:00
Khem Raj
02831aa6e3 pipewire-media-session: Use PW_ENABLE_DEPRECATED
pipewire 0.64 has removed [1] NODE_TARGET which is still used by pipewire-media-session
so enable deprecated features for now to get the definition of PW_KEY_NODE_TARGET [2]

[1] https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.64#highlights
[2] https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2952

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-21 10:02:02 -08:00
Markus Volk
750394bb0f pipewire: update 0.3.63 -> 0.3.64
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Clear old buffer memory on ports to fix some SIGBUS errors.
  - It is now possible to assign custom port names to the ports from an
    adapter. This feature is helpful to those who use a multichannel
    interface with long-term connections. This way they can label each
    port with its designation, such as an instrument name or anything else
    to be displayed in a patchbay or DAW.
  - Fix some issues with node suspend and quantum and rate calculations.
  - Fix some regressions in pulse-tunnel and RTP-source adaptive resampling
    that could cause synchronization problems.
  - UCM devices now also have a Pro Audio profile.
  - NODE_TARGET (with the object.id) is now deprecated, use TARGET_OBJECT
    (with the object.serial, which is not reused and can avoid races).

  - Clear all peer input port buffers when suspending. This fixes some
    SIGBUS errors when some plugins were using old memory. (#2914)
  - Fix a case where nodes that were not supposed to be suspended, were
    kept suspended on a rate change. (#2929)
  - Fix an error in the quantum and rate calculations that could cause
    nodes to run with wrong quantum and rates when multiple rates were
    allowed. (#2925)

  - pw-dump will now sort dictionaries to make it easier to compare
    different outputs.
  - Improve output of pw-reserve.
  - pw-loopback uses TARGET_OBJECT so you will need to use the serial
    id (or better the name) as the target instead of the object id.

  - The filter-chain modules has seen some cleanups, refactoring and
    optimizations in the various DSP functions.
  - The ROC module now supports setting a custom samplerate.
  - ROC 0.2.X is now required.
  - The pulse tunnel and RTP source were not updating the rate field
    correctly which could cause synchronization problems. (#2891)
  - The filter-chain now supports an arbitrary number of control
    properties. (#2933)
  - It is now possible to assign custom port names to the ports from an
    adapter with the PW_KEY_NODE_CHANNELNAMES.
  - Support was added for capture and playback props in echo-cancel.
    (#2939)

  - The ACP code now has an option to set the probe samplerate. (#1599)
  - UCM devices now also have a Pro Audio profile.
  - Filtering of Step ranges is now implemented.

  - The channel-map is now set correctly on the echo-cancel module.
  - source_master and sink_master are now correctly handled in module
    echo-cancel.
  - Fix a regression in DRAIN where resuming after a DRAIN would fail.
    This caused problems for espeak. (#2928)
  - TARGET_OBJECT is now used to make it possible to use the indexes
    as a target.
  - ladspa-source and remap-source can now also link to monitors.

  - The ALSA plugin now handles the target.object correctly when set to
    -1. (#2893)

  - The v4l2 replacement library now also follows symlinks.
  - Support for getting and setting controls was added.
  - Support for G_PARM was added.
  - The environment variable PIPEWIRE_V4L2_TARGET can be used to force
    an application onto a specific camera.

  - Fix compilation without ldac_abr.
  - Fix a missing brace in CIND reply. This could cause some devices to
    fail.
  - Fix configuration of the initial latency.

  - The device provider now supports setting an fd so that it can connect
    to PipeWire sessions from the portal.
  - DMABuf support was re-enabled in gstpipewiresrc.

Build with support for gsettings and libcamera

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-17 01:05:52 -08:00
Khem Raj
9b6baed24d ncmpc: Upgrade to 0.47
Backport a patch to fix c++17 build with clang

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-16 21:23:07 -08:00
Markus Volk
9294503921 nv-codec-headers: add recipe
These headers are needed to build cuda/nvdec support for ffmpeg but it is
also a build dependency for gnome-remote-desktop where cuda support can't be disabled.

The Makefile has a hardcoded prefix. Instead of patching it and inherit autotools
just install the files manually. On the whole its what the Makefile does and it
looks easier this way.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-15 10:53:20 -08:00
Peter Bašista
babfc02176 Make tvheadend recipe compatible with the latest tvheadend version
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-12 09:02:10 -08:00
Khem Raj
0a069201a8 xdg-desktop-portal-wlr: Add wayland to REQUIRED_DISTRO_FEATURES
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-11 08:37:58 -08:00
Mingli Yu
e203500745 xdg-desktop-portal-wlr: add opengl to REQUIRED_DISTRO_FEATURES
Fixes:
  ERROR: Nothing PROVIDES 'virtual/libgbm' (but /build/layers/meta-openembedded/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.6.0.bb DEPENDS on or otherwise requires it).
  ERROR: Required build target 'meta-world-pkgdata' has no buildable providers.
  Missing or unbuildable dependency chain was: ['meta-world-pkgdata', 'xdg-desktop-portal-wlr', 'virtual/libgbm']

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-06 11:38:16 -08:00
Khem Raj
cff659d47e mycroft: Check for pulseaudio in distro features
It needs pulseaudio but its only available via distro features so check
it before enabling this recipe

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-06 11:38:16 -08:00
Martin Jansa
84ffd15cd1 layer.conf: update LAYERSERIES_COMPAT for mickledore
* oe-core switched to mickedore in:
  https://git.openembedded.org/openembedded-core/commit/?id=57239d66b933c4313cf331d35d13ec2d0661c38f

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-04 14:34:04 -08:00
Khem Raj
a92b6685b6 libcamera: Diable 64bit time_t on glibc targets
it overrides some of LFS64 functions in peculiar ways that it has to
undefine _FILE_OFFSET_BITS to silence the funtion definitions from glibc

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-01 21:09:02 -08:00
Preeti Sachan
534d04af48 fluidsynth: update SRC_URI to remove non-existing 2.2.x branch
Remove branch 2.2.x from SRC_URI as fluidsynth github removed the branch.
The SRCREV is on master branch.

Signed-off-by: Preeti Sachan <preeti.sachan@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-01 10:00:35 -08:00
Markus Volk
7fc8426c45 wireplumber: dont start systemd system service by default
If wireplumber gets started with user services and socket activation,
what I guess is the regular way, the system service fails to come up at boot

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-12-31 10:40:31 -08:00
Markus Volk
c6ff552cb7 wireplumber: build with dbus support by default
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-12-27 09:55:19 -08:00
Markus Volk
26b9c29fb8 wireplumber: update 0.4.12 -> 0.4.13
- add PACKAGECONFIG option to enable dbus support

Release 0.4.13

Additions:

    Added bluetooth SCO (HSP/HFP) hardware offload support, together with an example script that enables this functionality on the PinePhone
    Encoded audio (mp3, aac, etc...) can now be passed through, if this mode is supported by both the application and the device
    The v4l2 monitor now also respects the node.disabled and device.disabled properties inside rules
    Added "Firefox Developer Edition" to the list of apps that are allowed to trigger a bluetooth profile auto-switch (#381)
    Added support in the portal access script to allow newly plugged cameras to be immediately visible to the portal apps

Fixes:

    Worked around an issue that would prevent streams from properly linking when using effects software like EasyEffects and JamesDSP (!450)
    Fixed destroying pavucontrol-qt monitor streams after the node that was being monitored is destroyed (#388)
    Fixed a crash in the alsa.lua monitor that could happen when a disabled device was removed and re-added (#361)
    Fixed a rare crash in the metadata object (#382)
    Fixed a bug where a restored node target would override the node target set by the application on the node's properties (#335)

Packaging:

    Added build options to compile wireplumber's library, daemon and tools independently
    Added a build option to disable unit tests that require the dbus daemon
    Stopped using fakesink/fakesrc in the unit tests to be able to run them on default pipewire installations. Compiling the spa test plugin is no longer necessary
    Added pkg-config and header information in the gir file

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-12-27 09:55:18 -08:00
Markus Volk
858f760771 xdg-desktop-portal-wlr: add recipe
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-12-23 08:52:23 -08:00
Markus Volk
c4d52888a0 pipewire: update 0.3.62 -> 0.3.63
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-12-23 08:52:22 -08:00
Markus Volk
f3d14d41ad pipewire: update 0.3.61 -> 0.3.62
PipeWire 0.3.62 (2022-12-09)
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

Highlights

A regression in screensharing was fixed. It was caused by a race when
activating links and driver nodes.
Video transform metadata was added so that cameras and screen sharing
can report the video orientation and transformations.
Support for the PulseAudio module-gsettings was added to make paprefs
work.
Support for bluetooth offloading was added. This allows for the bluetooth
reception, decoding and playback to happen completely in hardware.
This also requires some support in WirePlumber.
Many bugfixes and improvements.

PipeWire

More work on stopping nodes in a more controlled way.
Fix a race in starting nodes and drivers. In some cases the driver
node would already be started while the link to the peer node was not
ready yet. This caused regressions in screen sharing. The driver is
now only started after all the followers and links completed.
Fix a case where a slow capture stream would not recycle buffers
anymore and stall. (#2874)
Fix a subtle bug in pw_loop_invoke that could cause callbacks to be
delayed and cause crashes in some cases.
Fix a case where IPC was done from the data-thread and could cause
crashes.

Tools

Silence some expected errors in the pw-top output.

modules

The filter-chain has seen some optimizations in the copy plugin and
the convolver.
The zeroconf plugin will now only unpublish services from the server
that was removed.
Fix a potential crash when stopping pw-loopback.
Some harmless errors were turned into info messages.
Fix some cases where pw_stream methods were called from the data-thread
that could cause segfaults. (#2633)

SPA

There is now a video transform metadata that indicates how a video
frame was transformed (rotated/flipped). libcamera and the GStreamer
elements now have support for this metadata.
The SPA volume plugin is now disabled from the default build.
Handle missing control info in libcamera.
Handle errors from loop better, don't call the callbacks on errors.
Somewhat improve performance in some audioconvert AVX2 code for format
conversion.
Fix PortConfig and EnumPortConfig params in audioconvert and
audioadapter to reflect what is actually going on instead of using
hardcoded values.
Pass ignore-dB property correctly in all cases.
Probing is now done in 48KHz again. (#2857)

Pulse-server

IPv4 addresses are now added first to the list and exposed first with
zeroconf discover.
module-gsettings was added to make paprefs work.
The pulse.idle.timeout option was disabled by default and only enabled
for selected apps (speech-dispatcher) because it caused some problems
for other apps. (#2880)

JACK

Only process valid ports. Could fix some crashes. (#2863)

Bluetooth

Support was added for offloading bluetooth handling. Some hardware can
receive, decode and play the bluetooth audio directly in hardware.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-12-09 10:39:27 -08:00
Khem Raj
23446db2fc flite: Add missing deps on alsa-lib and chrpath
Disable parallel build to avoid build race
Fixes

| make[1]: *** No rule to make target 'flite_voice_list.c', needed by 'all'.  Stop.
| make[1]: *** Waiting for unfinished jobs....
| make: *** [config/common_make_rules:133: build/arm-linux-gnueabi/obj//.make_build_dirs] Error 2
| ERROR: oe_runmake failed

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-11-30 09:46:47 -08:00
Markus Volk
8715a47240 pipewire: upgrade 0.3.60 -> 0.3.61
PipeWire 0.3.61 (2022-11-24)
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

Highlights

Fix a bug in audioadapter that could cause crashes when switching
bluetooth profiles.
Fix sound in QEMU, deadbeef and openal again.
libcamera plugin fixes, dynamic add and remove should now work with
the next wireplumber version.
Fix a regression in pw-midiplay where the first buffer would not
play and some events would be missing.
The network module now doesn't export other network sources
anymore.
pulse-server now detects clients that keep underrunning for a long time
and will pause them to save power.
Many more bugfixes and improvements.

PipeWire

Optimize away some useless graph recalculations.
Increase alternative sample rates from 16 to 32.
FreeBSD and musl build fixes.
Silence some module loading errors when the error can be ignored.
Fix initial buffer requested size for pw-stream when operating in
async mode. This also indirectly fixes the first buffer in
pw-midiplay. (#2843)

Modules

Set the network property on pulse-tunnel streams so that they are
not exported anymore. (#2384)
Filter-chain has optimized mix functions now.

SPA

Handle some errors in libcamera better.
Fix libcamera remove events. Fix the id allocation for devices.
Fix a bug in audioadapter where it would not renegotiate after
a port reconfiguration, leading to crashes, especially when
automatically switching profiles in bluetooth. (#2764)
Do ALSA probing in 44100Hz again. Some devices seem to fail
otherwise for some unknown reason. (#2718)
Force playback start when the ALSA buffer is full. This fixes sound
in QEMU. (#2830)
Support Digital 5.1 AC3 for Asus Xonar SE.
Improve format renegotiation in audioadapter. This makes the ALSA
plugin work again for deadbeef. (#2832)
Fix latency reporting on adapter DSP ports.

pulse-server

Fix a bug where openal based applications would hang. (#2821)
Improve zeroconf publish. Only publish on the address of the first
running server. This avoids duplicate entries for IPv4 and IPv6.
Add support for republish entries when new servers are started.
Add a pulse.idle.timeout option (default to 5 seconds) to pause
streams that have been underrunning for this amount of time. Badly
behaving clients will then not keep the graph and device busy so
that devices can be suspended to save battery. This should give
better default behaviour with speech-dispatcher. (#2839)

JACK

Add an option to configure the filter character.
Fix connect_callbacks. It was only called once for output ports.
(#2841)
Add option to set node.passive on jack clients. Make some quirks
for qsynth to make it suspend and fade out better.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-11-26 21:38:42 -08:00
Markus Volk
f399aebbe3 pipewire: upgrade 0.3.59 -> 0.3.60
- switch PIPEWIRE_SESSION_MANAGER to wireplumber by default

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-11-23 08:25:30 -08:00
Mingli Yu
491a703c41 gssdp: check opengl is enabled or not
The sniffer PACKAGECONFIG will make gssdp depend on gtk4 as below.
PACKAGECONFIG[sniffer] = "-Dsniffer=true,-Dsniffer=false,gtk4,"

But gtk4 needs the opengl DISTRO_FEATURES enabled, so also check
opengl in gssdp recipe to keep consistent.

Fixes:
  ERROR: Nothing PROVIDES 'gtk4' (but /build/layers/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb DEPENDS on or otherwise requires it)
  gtk4 was skipped: missing required distro feature 'opengl' (not in DISTRO_FEATURES)
  ERROR: Required build target 'meta-world-pkgdata' has no buildable providers.
  Missing or unbuildable dependency chain was: ['meta-world-pkgdata', 'gssdp', 'gtk4']

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-11-10 10:41:35 -08:00
Markus Volk
1032bce778 libcamera: upgrade -> 0.0.1
libcamera has recently received its first release.
Note: meta-raspberrypi needs to adjust the name of libcamera.bbappend

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-10-22 16:01:22 -07:00
Markus Volk
72273d28e2 wireplumber: upgrade 0.4.11 -> 0.4.12
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-10-15 18:24:49 -07:00
Markus Volk
2c71d7f098 pipewire: upgrade 0.3.57 -> 0.3.59
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-10-15 18:24:49 -07:00