Commit Graph

851 Commits

Author SHA1 Message Date
Markus Volk
4e02817972 libcamera: update 0.0.5 -> 0.1.0
libcamera v0.1.0

ABI Compliance:

abi-compliance-checker reports 99% binary compatibility and 81.4% source
compatibilty between version 0.0.5 and 0.1.

 - Binary compatibility: 99%
 - Source compatibility: 81.4%
 - Total binary compatibility problems: 4, warnings: 2
 - Total source compatibility problems: 165, warnings: 7

Now that we have funtional ABI validation, the soname has been updated from
libcamera.so.0.0.5 to libcamera.so.0.1.

Future releases will now maintain the same soname until an ABI breakage is
detected to reduce the repackaging and rebuilding of other components that may
use libcamera. The abi-compatibility report can now be generated with the new
utility './utils/abi-compat.sh'.

Key differences here are due to preventing the installation of internal and
private headers in the packaging process, and most of this API compatibility
should not be visible to applications with the exception of:

- Camera::generateConfiguration ( StreamRoles const& roles )

  The StreamRoles type definition has been removed. This is now handled as a
  Span<StreamRole> to prevent unnecessary allocations and copies.

- CameraManager::addCamera ( std::shared_ptr<struct Camera> camera, std::vector<unsigned long>const& devnums )
- CameraManager::get ( dev_t devnum )
- CameraManager::removeCamera ( std::shared_ptr<struct Camera> camera )

  These functions of the CameraManager were for use exclusively by the V4L2
  adaptation layer, and not intended for use by applications. This has now been
  reworked to use the new SystemDevices and the redundant functions removed.

The ABI/API breakages have been introduced by:

  5ca0c9276f28 ("libcamera: CameraManager: Remove ::get(dev_t)")
  26a4b83d1b94 ("libcamera: Remove `StreamRoles` alias")
  63966ae587d7 ("libcamera: base: Do not install private headers")

Core:
 - libcamera: v4l2_videodevice: Use O_CLOEXEC when exporting DMA buffers
 - libcamera: ipa_manager: Allow IPA loading in nested subdirs
 - meson: Fix usage of overwritten pipeline variable
 - subprojects: Drop leftovers of pybind11
 - camera_sensor: ipa: core: Add CFA pattern to IPACameraSensorInfo
 - libcamera: controls: Define a default lens position behaviour
 - libcamera: internal: request: convert to pragma once
 - libcamera: camera_manager: Move private implementation to internal
 - libcamera: camera_manager: Move {add,remove}Camera to internal
 - libcamera: properties: Provide a Devices camera property
 - libcamera: pipeline: Register device numbers with camera
 - libcamera: camera_sensor: Adjust properties::Rotation
 - libcamera: meson: Allow PH to change libcamera_deps
 - libcamera: base: Move thread_annotations to private
 - libcamera: base: Do not install private headers
 - utils: ABI Compatibility checker
 - meson: Use x.y soname versioning
 - libcamera: camera: Take span of StreamRole instead of vector
 - libcamera: Remove `StreamRoles` alias
 - utils: ipu3-capture.sh: Fix the script to work with recent media-ctl versions
 - Documentation: Add predefined macros from config.h to Doxyfile
 - utils: checkstyle: Add __repr__ method to CommitFile class
 - utils: checkstyle: Support running checkers selectively
 - utils: checkstyle: Don't include commit ID in commit title
 - utils: checkstyle: Add trailers checker
 - tests: gstreamer: Test cameras' enumeration from GstDeviceProvider
 - meson: Fix space around colon issues
 - libcamera: Add option to configure udev support
 - libcamera: CameraManager: Remove ::get(dev_t)
 - tests: gstreamer: Fix compiler error with gcc 8.4.0

ipa:
 - meson: ipa: Add mapping for pipeline handler to mojom interface file
 - libcamera: ipa: Remove character restriction on the IPA name
 - ipa: meson: Allow nested IPA directory structures
 - ipa: raspberrypi: Introduce IpaBase class
 - ipa: raspberrypi: agc: Move weights out of AGC
 - ipa: rkisp1: agc: drop hard-coded analogue gain range
 - libipa: camera_sensor_helper: Add IMX327 helper
 - pipeline: rpi: ipa_base: Parse config files after platformRegister()
 - libcamera: camera_sensor: Add Sony IMX327 sensor properties
 - ipa: rpi: imx296: Small refinements to the IMX296 mono sensor tuning
 - ipa: rpi: Handle controls for mono variant sensors
 - libcamera: controls: Drop reference to IPA in controls documentation
 - libipa: camera_sensor_helper: Restore alphabetical order
 - ipa: ipu3: agc: Drop hard-codec analogue gain max
 - ipa: rkisp1: agc: Restore minimum analogue gain limit
 - pipeline: ipa: rpi: Return lens controls from ipa->configure()
 - ipa: rpi: Set lens position to hyperfocal on startup
 - ipa: rpi: tunings: Add missing short and long exposure profiles
 - ipa: rpi: agc: Use std::string instead of char arrays
 - ipa: rpi: agc: Gracefully handle missing agc modes
 - ipa: rpi: agc: Do not switch to a default if a mode is unavailable
 - ipa: rpi: imx708: Fix mode switch drop frame count
 - ipa: rpi: imx296_mono: Disable all colour shading

pipeline:
 - libcamera: pipeline: simple: Add support for ST's DCMIPP
 - pipeline: meson: Allow nested pipeline handler directory structures
 - pipeline: ipa: raspberrypi: Refactor and move the Raspberry Pi code
 - pipeline: raspberrypi: rpi_stream: Set invalid buffer to id == 0
 - pipeline: ipa: raspberrypi: Restructure the IPA mojom interface
 - pipeline: raspberrypi: Make RPi::Stream::name() return const std::string &
 - pipeline: raspberrypi: Introduce PipelineHandlerBase class
 - pipeline: raspberrypi: Add stream flags to RPi::Stream
 - libcamera: rkisp1: Generate config using main path
 - libcamera: rkisp1: Crop on ISP before downscaling
 - libcamera: rkisp1: Assign sizes to roles
 - libcamera: rkisp1: Fix enumeration of RAW formats
 - pipeline: rpi: Do not return an error from pipeline config file handling
 - libcamera: pipeline: simple: Support TI CSI-RX
 - pipeline: rpi: Account for Bayer packing when validating format

apps:
 - apps: qcam: Remove redundant check
 - v4l2: Move the v4l2 compat layer to libexec/libcamera
 - android: mm: generic: use GRALLOC_HARDWARE_MODULE_ID
 - android: mm: Stub libhardware for build tests
 - py: Fix CameraManager.version property
 - py: Move ColorSpace and Transform classes to separate files
 - py: Use exceptions instead of returning error codes
 - py: unittests.py: Add weakref helpers and use del
 - py: Move to mainline pybind11 version
 - py: Fix code formatting
 - py: unittests.py: Fix type checker warnings
 - gstreamer: Add enable_auto_focus option to the GStreamer plugin
 - gstreamer: Drop libcamera_private dependency
 - apps: Add ipa-verify application
 - v4l2: v4l2_camera_proxy: Prevent ioctl sign-extensions
 - v4l2: Use SystemDevices properties to identify cameras

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-07-23 16:36:14 -07:00
Markus Volk
2595f4cba7 pipewire: update 0.3.73 -> 0.3.75
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Link permissions between nodes are now enforced. This avoids potential portal
    managed screencast nodes to link to the camera even though it was not assigned
    permissions to do so by the session manager.
  - Libcamera and v4l2 devices now have properties so that duplicates can be
    filtered out by the session manager.
  - A bug with draining was fixed where a buffer would be marked EMPTY and would not
    play when it contained drained samples. (#3365)
  - Many fixes and improvements.

  - Permissions for links between nodes are now enforced. The link will now check
    that the owner clients of the nodes can see eachother before allowing the link.
    This avoids screensharing clients to accidentally being linked to the camera
    nodes by the session manager. A side effect is that patchbay tools will no longer
    be able to link portal managed screencast nodes to the camera, for this we need
    a new permission for those patchbay clients. (wireplumber#218)
  - The stream.rules/filter.rules are now evaluated when connecting the stream/filter
    so that more properties can be matched. (#3355)
  - Move some internal events from the context to the nodes to better handle per-node
    threads in the future.
  - The thread-loop will now signal when the thread is started.

  - A timestamp workaround in module-raop was reverted because it does not work
    in all cases. Instead latency was increased to 1.5 seconds, which also makes
    the problematic device in question work. (#3247)
  - The profiler module was reworked a bit to use the new node realtime events. It
    should now also handle dynamically added and removed drivers.
  - The module-rt now does the rtkit calls from a separate thread so that it does
    not block the main thread. This could cause deadlocks during startup in some
    cases. (#3357)

  - Atomic operation macros were move from internal pipewire API to public API.
  - The video-info structure now has a new SPA_VIDEO_FLAG_MODIFIER_FIXATION_REQUIRED
    flag to instruct the application to fixate the modifiers. This simplifies some
    logic in applications a lot.
  - The libcamera and v4l2 nodes now have properties to enumerate the device id
    they are using. This can be used to match v4l2 devices and libcamera devices
    and filter out duplicates.
  - A bug with draining was fixed where a buffer would be marked EMPTY and would not
    play when it contained drained samples. (#3365)

This is a quick bugfix release that is API and ABI compatible with previous
  - Merge scope based cleanup macros.
  - Add ratelimit function.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-07-23 16:36:14 -07:00
Jan Vermaete
665f9ae34e openh264: version bump 2.1.1 -> 2.3.1
Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-07-20 19:08:56 -07:00
Markus Volk
c165db4f66 pipewire: upgrade 0.3.72 -> 0.3.73
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Fixes an ALSA resume after suspend error.
  - Handle and disable seemingly wrong hires timestamps from ALSA.
  - Filter-chain now has loadable plugin modules. The LV2 and sofa plugins are
    moved to a separate .so file to make things more modular.
  - Rate changes in the graph should now be handled more gracefully by loopback
    and filter-chain.
  - A regression in the rtp-sap module was fixed where it would in some cases
    fail to start.
  - A potential crash in the peaks resampler was fixed.
  - Many cleanups and other small bug fixes.

  - Fix a potential segfault when no fallback driver was set in the config.
  - Improve OPUS detection.
  - Add ASYNC flag to pw-filter and pw-stream when queue/dequeue is not called
    from the process function. This ensure we allocate an extra buffer.
  - Discard pending process callbacks when disconnecting. (#3314)
  - Cleanups and improvements to the debug environment variable parsing.
  - The graph rate was tweaked to better handle very low rates such as those
    requested by pavucontrol when it does the signal monitoring.

  - An example filter module was added.
  - Filter-chain and loopback now disable the resamplers if no rate is specified
    and will always follow the graph rate.
  - Improve setup of filter-chain. The graph is now created when starting
    because this ensure the target graph rate is known.
  - Filter-chain can now link notify ports to control ports in the graph.
  - Filter-chain now has loadable plugin modules. The LV2 and sofa plugins are
    moved to a separate .so file.
  - A regression in the rtp-sap module was fixed where it would in some cases
    fail to start.
  - Module-rt now has options to disable rlimits, portal and rtkit.
  - module-raop-discover now has an options to set the latency. (#3247)

  - pw-cat now supports overriding all stream properties.

  - Disable rate negotiation when the resampler is disabled. We will always
    follow the graph rate.
  - Set device.icon property for UCM ports as well.
  - Improve ALSA recover when using hires timestamps. This fixes some problems
    after resume from suspend. (#3315)
  - ALSA will now warn and disable hires timestamp when they seem wrong.
    They can also be disabled manually with a property.
  - V4l2 will now gracefully handle ENOTTY when enumerating frame sizes and
    frame rates. (#3325)
  - A potential crash in the peaks resampler was fixed. (#3320)

  - A client crash in pavucontrol is avoided by always setting a card name.
  - The graph rate is now taken correctly when using the FIX flags. (#3317)
  - An option was added to ignore the FIX flags of a stream. Also the
    documentation for those options was updated. (#3317)
  - module-raop-discover now support latency_msec. (#3247)

  - Remove an assert and issue a warning/recover instead when a buffer is too
    small.

  - The device provider does locking when destroying the registry.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-07-07 09:00:58 -07:00
Khem Raj
bb4461e6ae gupnp-av: Fix build with libxml2-2.11 and newer
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-30 03:37:10 -07:00
Martin Jansa
06a38187eb gupnp: backport a fix not to use deprecated xmlReadMemory
* deprecated since libxml2-2.11 upgraded in oe-core in:
  https://git.openembedded.org/openembedded-core/commit/?id=24860598ba8557ea3a145f249938ea411f1ef1d8

* fixes:
../gupnp-1.4.1/libgupnp/gupnp-service-info.c: In function 'got_scpd_url':
../gupnp-1.4.1/libgupnp/gupnp-service-info.c:595:17: error: 'xmlRecoverMemory' is deprecated [-Werror=deprecated-declarations]
  595 |                 scpd = xmlRecoverMemory (msg->response_body->data,
      |                 ^~~~
In file included from /OE/build/luneos-nanbield/webos-ports/tmp-glibc/work/cortexa8t2hf-neon-webos-linux-gnueabi/gupnp/1.4.1-r0/recipe-sysroot/usr/include/libxml2/libxml/globals.h:18,
                 from /OE/build/luneos-nanbield/webos-ports/tmp-glibc/work/cortexa8t2hf-neon-webos-linux-gnueabi/gupnp/1.4.1-r0/recipe-sysroot/usr/include/libxml2/libxml/threads.h:35,
                 from /OE/build/luneos-nanbield/webos-ports/tmp-glibc/work/cortexa8t2hf-neon-webos-linux-gnueabi/gupnp/1.4.1-r0/recipe-sysroot/usr/include/libxml2/libxml/xmlmemory.h:222,
                 from /OE/build/luneos-nanbield/webos-ports/tmp-glibc/work/cortexa8t2hf-neon-webos-linux-gnueabi/gupnp/1.4.1-r0/recipe-sysroot/usr/include/libxml2/libxml/tree.h:1310,
                 from ../gupnp-1.4.1/libgupnp/gupnp-service-introspection-private.h:12,
                 from ../gupnp-1.4.1/libgupnp/gupnp-service-info.c:26:
/OE/build/luneos-nanbield/webos-ports/tmp-glibc/work/cortexa8t2hf-neon-webos-linux-gnueabi/gupnp/1.4.1-r0/recipe-sysroot/usr/include/libxml2/libxml/parser.h:872:17: note: declared here
  872 |                 xmlRecoverMemory        (const char *buffer,
      |                 ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-28 13:53:12 -07:00
Markus Volk
7f87f2ae7f pipewire: upgrade 0.3.71 -> 0.3.72
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Fix a critical bug that would refuse to update the samplerate or
    buffersize in JACK clients. (#3226)
  - A new module-netjack2-driver and module-netjack2-manager were added
    that are compatible with NETJACK2. This allows PipeWire to become
    a NETJACK2 manager or a driver between JACK2 or PipeWire servers.
  - Support was added for firewire devices with FFADO. This is untested
    for now and MIDI is not implemented yet.
  - The node scheduling was optimized some more. External drivers are now
    as efficient as in-server ones. This should improve performance of
    various drivers such as bluetooth and JACK based drivers.
  - Many, many bug fixes and a ton of improvements.

  - pw-filter can now be used to write sinks and sources.
  - The node activation for drivers was changed. The driver now does not
    need to go to the server to start the processing cycle. This makes
    out-of-server drivers as efficient as in-server drivers.
  - Don't try to use drivers with 0 priority as fallback drivers. This
    avoids making the screencast driver a driver for audio. (#3219)
  - Improve xrun count reporting in pw-top and the profiler. Now each
    node has their own xrun counter updated when it fails to complete
    processing during the cycle.
  - pw-filter now also has support for TRIGGER.
  - A potential fd leak was found when fds were send to a zombie client.
    (#1840)
  - Fix a bug where monitor or capture streams were logged twice in the
    profiler. (#3278)
  - Remove stream hooks safely. (#3251)
  - A bug in serialization of container properties was fixed. This could
    result in truncated property values. (#3290)
  - The PIPEWIRE_AUTOCONNECT environment variable now always overrides the
    autoconnect settings of streams. (#3299)
  - Node, port and link destroy now avoids some useless work.
  - Port will now try to renegotiate a new format when idle. (#3266)

  - The module-sap now is more compatible with AES67.
  - A new FFADO driver module was added. This is completely untested because
    of lack of hardware. Please test and report issues.
  - A new NETJACK2 driver and a NETJACK2 manager module were added. These
    should be drop in replacements for the JACK2 parts.
  - The RAOP discover module now tries harder to only list devices once.
  - The zeroconf discover module now tries harder to only list devices once.
  - The RAOP sink module now handles latency better and is compatible with
    some more devices. (#3247, #3282)
  - The loopback and filter-chain modules now always dequeue the last input
    buffer to avoid stuttering in some cases. (#3276)
  - The SPA node factory module can now also export nodes. This is used to
    export the PTP clock from the AES67 config file.
  - A bug in module-jack-tunnel was fixed that would cause stuttering and
    corrupted output in some cases. (#3255)
  - The resampler is now disabled in module-loopback and filter-chain when
    the samplerate is set to follow the graph rate. (#2969)
  - The way the mixer peer is sent to clients was improved. It is now also
    possible to let a remote node know about mixer port removes, which
    can avoid memory leaks and some code simplifications.

  - Monitor ports now report latency correctly.
  - The ALSA plugin now uses htimestamp to get a more accurate ringbuffer
    position to estimate the clock skew.
  - The channelmixer now has min/max-volume settings to limit or fix the
    volume.
  - The ALSA plugin can now control the playback and capture rate of USB
    gadgets. This can avoid resampling and instead use the USB feedback
    to control the rate.
  - The ALSA output to multiple devices has been improved, some lockups
    are avoided when the device ringbuffer is full.
  - The compress-offload sink has improved negotiation.

  - Only try to use GSettings when the schema exists.
  - @DEFAULT_SOURCE@, @DEFAULT_SINK@ and @DEFAULT_MONITOR@ are now correctly
    handled as targets in playback and capture streams. (#3284)
  - 2 new quirks are added to disable volume updates on sinks/sources.
    (#1517)
  - The virtual-sink and virtual-source modules were added. These are really
    example modules but actually also work and are useful on PulseAudio so
    implement them as well.
  - Fix initial stream volumes. (#3306)

  - Only register A2DP or BAP when we have codecs.
  - Include codec into the media.name

  - Fix a critical bug that would refuse to update the samplerate or
    buffersize. (#3226)
  - Improve updates of samplerate/buffersize, delay the updates until the
    client is activated. (#3297)
  - Use the new mix-info updates to simplify the mixer setup and peer
    detection.

  - Fill default strides instead of 0 on pipewire video buffers. (#3236)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-27 13:44:47 -07:00
Carlos Rafael Giani
01989effad pipewire: Add dedicated aes67 package and fix rlimits.d package assignment
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-24 09:01:53 -07:00
Carlos Rafael Giani
3f1cbeb615 pipewire: Improve packageconfigs
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-24 09:01:53 -07:00
Carlos Rafael Giani
8431c01ae9 pipewire: Disable libmysofa since it is not available in OE
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-24 09:01:53 -07:00
Khem Raj
ceff4a5263 xdg-desktop-portal-wlr: Fix build with older mesa
Some ports e.g. visionfive2 does not yet supported 21.1+ mesa
where gbm_bo_create_with_modifiers2 API is available, therefore
use gbm_bo_create_with_modifiers API for compatibility

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-18 10:47:32 -07:00
Khem Raj
c1f86dac48 layers: Move READMEs to markdown format
The READMEs are often viewed from websites markdown format which is
much as readable as text and yet friendlier in browsers.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-17 08:30:01 -07:00
Khem Raj
202bd4f466 schroedinger: Fix building tests
lld finds out this error where _orc_code_orc_deinterleave2_s16 is needed
but is not linked into a testcase wavelet_max_gain

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-12 11:43:30 -07:00
Khem Raj
6ab0ca758a x265: Pass --debug-prefix-map to nasm
Ensures absolute source paths are not emitted into nasm assembled objects

Fixes
WARNING: x265-3.2.1-r0 do_package_qa: QA Issue: File /usr/lib/.debug/libx265.so.179 in package x265-dbg contains reference to TMPDIR [buildpaths]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-26 08:28:37 -07:00
Khem Raj
e30a2566ff vlc: Remove WORKDIR from CONFIGURE_LINE definition
This is emitted by configure into generated config.h which is used in
src/misc/messages.c and flows into binaries

Fixes
WARNING: vlc-3.0.18-r0 do_package_qa: QA Issue: File /usr/lib/libvlccore.so.9.0.1 in package libvlc contains reference to TMPDIR [buildpaths]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-25 08:56:32 -07:00
Martin Jansa
26397c2ea3 libsquish: remove unused 0001-makefile-Add-LIBDIR.patch
* it was added to meta-multimedia, but not to SRC_URI in:
  https://git.openembedded.org/meta-openembedded/commit/?id=1c23fd7f8b58636983fd0b233c2043e34d3bc3b3

* and later diferent patch was added to the layer as well as SRC_URI in:
  https://git.openembedded.org/meta-openembedded/commit/?id=8df60dc8d69ffa506fd923f8db91a2a8aa33343f

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-24 07:23:54 -07:00
Alexander Stein
d369384399 libcamera: Simplify pipeline configuration
Default to 'auto' which enables all target architecture pipelines (+UVC).
IPAs are also automatically enabled if the corresponding required pipeline
is enabled as well.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-24 07:23:54 -07:00
Markus Volk
6377780e8a fluidsynth: update 2.2.6 -> 2.3.2
-remove unneeded patch
-remove fluidsynth-native as it seems to be unneeded
-remove STAGING_LIBDIR from target files
-add more packageconfig options

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-23 15:04:38 -07:00
Khem Raj
790b4f56ff aom: Pass nasm flags via toochain.cmake
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-23 15:04:35 -07:00
Khem Raj
ef89ac9f21 aom: Upgrade to 3.6.1
Switch to using nasm instead of yasm on x86 builds for asm
optimizations. This is to enable reproducible builds even though yasm is
preferred but it encodes FILE directive in ELF to absolute path of asm
files and results in buildpath warnings, there is no way to remove it
without editing the final binaries. nasm provides --reproducible option
to handle it nicely

License-Update: Fixes a typo [1]

[1] https://aomedia.googlesource.com/aom/+/f97c63026174df67bc08c75fa72bf0ad01ca1a98

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-23 15:03:51 -07:00
Khem Raj
a914955270 tvheadend: Upgrade to latest master
Fix buildpath errors due to generate build.c file containing compiler
options

Fixes
WARNING: tvheadend-4.3+gitAUTOINC+cc60283368-r0 do_package_qa: QA Issue: File /usr/bin/tvheadend in package tvheadend contains reference to TMPDIR [buildpaths]
WARNING: tvheadend-4.3+gitAUTOINC+cc60283368-r0 do_package_qa: QA Issue: File /usr/src/debug/tvheadend/4.3+gitAUTOINC+cc60283368-r0/build.linux/build.c in package tvheadend-src contains reference to TMPDIR [buildpaths]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-23 08:48:18 -07:00
Khem Raj
cc5ba9b2e7 oscam: Fix buildpaths in generated sources
Fixes
QA Issue: File /usr/src/debug/oscam/1.10+11491-r0/config.c in package oscam-src contains reference to TMPDIR [buildpaths]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-23 08:48:18 -07:00
Khem Raj
efc7cb3101 oscam: Upgrade to 11718
The changelog is here [1]

[1] https://trac.streamboard.tv/oscam/log/trunk?action=follow_copy&mode=follow_copy&rev=11718&stop_rev=11491&limit=500#

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-23 08:48:18 -07:00
Markus Volk
c3cdaee57a dav1d: update 1.1.0 -> 1.2.0
Changes for 1.2.0 'Arctic Peregrine Falcon':
-------------------------------------------

1.2.0 is a small release of dav1d, adding more SIMD and fixes

- Improvements on attachments of props and T.35 entries on output pictures
- NEON z1/z3 high bit-depth optimizations and improvements for 8bpc
- SSSE3 z2/z3 8bpc and SSSE3 z1/z3 high bit-depth optimziations
- refmvs.save_tmvs optimizations in SSSE3/AVX2/AVX-512
- AVX-512 optimizations for high bit-depth itx (16x64, 32x64, 64x16, 64x32, 64x64)
- AVX2 optimizations for 12bpc for 16x32, 32x16, 32x32 itx

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-23 08:48:17 -07:00
Markus Volk
9b37ba538a pipewire: update 0.3.70 -> 0.3.71
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - A new zero-latency jackdbus bridge was added. This works similar to what
    PulseAudio has to offer and creates a sink/source when jackdbus is
    started. It is however much more efficient and runs the complete PipeWire
    graph as a synchronous JACK client with no added latency.
  - Many performance improvements. Activation of remote nodes is more
    efficient, fewer eventfds are required on the clients, less callback
    overhead in performence critical paths and an optimized poll function
    was added. This was mainly driven by the jackdbus module to get the lowest
    possible overhead when running the graph.
  - The JACK notify callback implementation was reworked to emulate better what
    JACK does, improving compatibility with ardour7 and the JACK stress test.
  - More work on BAP devices. Device latency is now passed on to
    applications also for multi-device headsets, and channel allocation
    is handled better.
  - Many more improvements and bugfixes.

  - Remove the hardcoded limit on io_areas. This is used to link nodes together
    and exchange buffers, it was limited to 2048 but now dynamically scales
    based on requirements.
  - Rate and quantum changes are now applied correctly in more cases. (#3159)
  - Updates to client-node to more efficiently process the driver.
  - The profiler information was improved to be more accurate. It should
    now work better for remote drivers.
  - Some potential memory map errors were fixed in the protocol because in some
    case with large messages, some fds were closed too soon.
  - pw-filter now implements the pw_filter_set_active() method.
  - A potential out-of-buffers case was fixed in capture pw-streams where buffers
    were not moved to the recycle queue when the node suspended.
  - Nodes are now always woken up with the eventfd. Previously there were
    some optimiztions in the server to directly call into the node process
    function but that optimization is not necessary. Without this optimization
    it is now possible to run nodes in different threads.
  - pw-stream trigger is now implemented correctly in all cases.
  - Remote nodes now use one eventfd less because they get triggered with the
    node eventfd directly.
  - Monitor ports are now ignored in latency updates.
  - A potential race when reporting an error to a client was fixed. (#3192)
  - Fix a bug where always_process nodes would sometimes IDLE. (#3189)
  - Optimize peer activation. Nodes are now activated more efficiently and
    independent of the number of links. It also reduces the number of eventfds
    and memory in remote clients.
  - A bug in property serialization was fixed. Values with spaces would only
    serialize the first part of the value.

  - Correctly handle the echo-canceler plugin init method fallback. The
    samplerate was not correctly configured. This is only a regression for people
    that have external echo-canceler plugins.
  - RAOP sink now only sets the volume on the remote end when the stream is
    recording. (#3175)
  - RAOP discover now tries to deduplicate entries from the same host.
  - A new zero-latency jackdbus bridge was added. This works similar to what
    pulseaudio has to offer and creates a sink/source when jackdbus is
    started. It is however much more efficient and runs the complete PipeWire
    graph as a synchronous JACK client.
  - The access module uses a more secure way to check the application
    executable.
  - module-combine-stream now has configurable delay and latency for each
    stream. This can be used to align sinks/sources with different latencies.
  - A potential crash in module-pulse-tunnel was fixed when shutting down.
    (#3199)
  - Module-rt will now clamp the nice value to the min allowed value to avoid
    errors from rtkit. (#3186)
  - Fix a bug with the session counters in module-rtp-sap. Also use the right
    format for L24. Improve the AES67 example config.
  - Improve some warning and info messages in module-rt. (#3194)
  - module-rtp-session should now do something when started without arguments.
  - A potential crash in module-rtp-session was fixed. (#3217)
  - module-filter-chain has better error reporting when a convolver fails to
    load. (#3223)

  - Move some things around to avoid compiler warnings. (#3171)
  - Increase mixer ports. Reorganize some things and bump mixer input ports
    from 128 to 512.
  - Fix a potential crash when a node is scheduled before it completes
    the setup.
  - The JACK sink and source SPA plugins have seen some improvements.
  - Allow the peaks resampler still if we disabled resampling.
  - Perform more cleanup in audioadapter when in error.
  - An optimized non-cancellable loop implementation was added.
  - Callbacks were optimized with a _fast() varsion that doesn't check the
    version and method. When this check is performed earlier, it can
    be skipped in performance critical places.
  - Some of the callbacks and system methods are now using the fast function
    calls in critical paths.
  - A potential division by zero was fixed in the ALSA plugins.
  - Improve rate and quantum when starting audioconvert.
  - Make it possible to override node.driver in the SPA null-audio-driver.
    (#3220)

  - The audio info parameter parsing was refactored and improved.
  - Fix some races with clients exiting when playing samples.
  - An option was added to change or disable the dbus name registration.
    (#2987)

  - Implement battery reporting using AT+XEVENT.
  - Disable hardware volume for 3M WorkTunes.
  - Implement BAP audio locations (channel positions) by using the new
    bluez properties.

  - Fix some errors reported by JACK test.cpp. (#2638)
  - Add jack.show-midi option to show/hide midi ports.
  - Add jack.max-client-ports option. JACK also has a port limit and so
    PipeWire needs it as well to make the tests happy.
  - Call the shutdown callback only when the server stopped, not when there
    is a random error. (#3070)
  - Avoid registering the same port name twice.
  - Call port registration callbacks in activate/deactivate.
  - Improve jack_port_connected().
  - Improve some error reporting.
  - The JACK headers were updated to a newer version.
  - JACK callbacks are now managed with an event queue to simulate
    more what JACK does. This avoids emiting callbacks when a method is blocking
    for a reply and causing deadlocks. (#3183)
  - Assign unique names to JACK clients. (#2833)
  - Fix a potential crash when the thread_utils was used after free.
  - Aliases are now not filled in by default to improve JACK compatibility.
    (#3154)

  - The ALSA plugin will now wait for negotiation to complete or an error
    before _prepare() completes. This makes more applications deal correctly
    with the potential errors.

  - A new document about how scheduling is implemented was added.
  - Update the pw-cli man page. (#2988)
  - Document the SPA Pod serialization.
  - Document the PipeWire native protocol.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-18 10:26:13 -07:00
Khem Raj
6b23d6fcef mpd: Fix build with clang-16
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-17 17:57:36 -07:00
Wang Mingyu
8fdc550f0a mpd: fix build error when fmt updated
backport upstream patch for build error when fmt updated:
ix-build-error-when-fmt-updated.patch
minor-fixup-for-libfmt10.patch

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-17 17:43:24 -07:00
Alexander Stein
a934982589 libcamera: Allow overwriting default pipelines and IPA
By default only uvcvideo, simple and vimc pipelines as well as vimc IPA
are built. Add new variables for enabling a custom set of enabled
pipelines and IPAs.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-17 17:43:13 -07:00
Khem Raj
51ea6b4bfa gerbera: Fix build with fmt 10+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-17 17:43:11 -07:00
Markus Volk
50601e60f7 libcamera: update 0.0.4 -> 0.0.5
libcamera v0.0.5

Bugfixes:
- meson: Ignore -Wredundant-move with gcc-13 and newer
- cam: file_sink: Workaround gcc-13 dangling-reference false positive
- libcamera: Open files with O_CLOEXEC
- meson: Fix git version parsing
- libcamera: camera_manager: Stop exponential explosive calls to createPipelineHandlers
- py: cam: Fix demosaic overflow issue
- libcamera: base: Make the registration of log categories atomic

Core:
- test: controls: control_info_map: Test default constructor
- controls: guard ControlInfoMap against nullptr idmap_
- device_enumerator_udev: Use std::string_view
- formats: Add 14-bits Bayer RAW formats
- device_enumerator_udev: Remove devnum from dependency map
- meson: libcamera: Report IPA signature method
- meson: Align handling of build metadata
- converter: Check converter validity
- Keep using syslog for isolated IPA modules
- utils: ipc: Update parser.py
- utils: checkstyle.py: Don't run commit title checker on staged commits
- framebuffer: Allow inheritance of FrameBuffer
- Remove transform from V4L2SubdeviceFormat
- libcamera: camera_sensor: Add tryFormat()
- camera_sensor: Fix typo in comment
- camera_sensor: Demote flip support message to Debug
- internal: tracepoints: Use correct include directive
- libcamera: camera: Ensure queued requests are invalid

ipa:
- doc: Clarify IPA acronym in its namespace description
- rkisp1: Add tuning files for PinephonePro sensors
- rkisp1: Add tuning files for Google DRU "Scarlet" sensors
- rkisp1: lsc: Fix integer division error
- libipa: Add OV2685 Camera Sensor Helper
- libipa: Add OV5647 Camera Sensor Helper
- raspberrypi: agc: Add "shadows" constraint mode
- raspberrypi: generalise algorithms
- raspberrypi: Fix default frame durations calculation
- raspberrypi: Ensure shutter speed and gain are clipped in the AGC
- raspberrypi: Use the new sensor limits fields in CameraMode
- raspberrypi: Add sensor mode limits to CameraMode
- raspberrypi: Fix crash under LTO
- raspberrypi: imx296: Minor tuning updates
- raspberrypi: agc: Fix overflow in Y value calculation
- raspberrypi: Better heuristics for calculating Unicam timeout
- raspberrypi: Generalise statistics
- raspberrypi: Change Unicam timeout handling

pipeline:
- simple: Validate transform
- imx8-isi: Remove mbusCode from formatsMap_
- imx8-isi: Automatically select media bus code
- imx8-isi: Split Bayer/YUV config generation
- imx8-isi: Break out RAW/YUV format selection
- raspberrypi: Iterate over all Unicam instances in match()
- raspberrypi: Add a Unicam timeout override config options
- raspberrypi: Always use ColorSpace::Raw for raw streams
- raspberrypi: Drop unused code
- ipu3: Drop unused code

apps:
 - cam: kms_sink: Drop unique_ptr<> from DRM::AtomicRequest
 - cam Return std::optional<> from StreamKeyValueParser::parseRole()
 - android: jpeg: Add JEA implementation

ABI Compliance:

 * abi-compliance-checker reports 98.6% ABI and 100% API compatibility with
   with v0.0.4

  Total binary compatibility problems: 1, warnings: 1
  Total source compatibility problems: 0, warnings: 0

 - First virtual method ~__dt ( ) has been added to this class.
   1) The layout of type structure has been shifted by 8 bytes by the added v-table pointer.
   2) Size of class has been increased by 8 bytes.

affected symbols: 6 (1.4%)
  FrameBuffer::releaseFence ( )
  FrameBuffer::setCookie ( uint64_t cookie )
  FrameBuffer::cookie ( )
  FrameBuffer::planes ( )
  FrameBuffer::request ( )
  FrameBuffer::metadata ( )

This ABI breakage was introduced by:
  4843bfa ("libcamera: framebuffer: Allow inheritance of FrameBuffer")

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-15 22:51:10 -07:00
Markus Volk
76291053d2 xdg-desktop-portal-wlr: update 0.6.0 -> 0.7.0
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-04 06:47:00 -07:00
Martin Jansa
383383f3b1 nv-codec-headers: fix installed-vs-shipped with multilib
* pass LIBDIR to install ffnvcodec.pc in right directory

* fixes:
  ERROR: QA Issue: nv-codec-headers: Files/directories were installed but not shipped in any package:
    /usr/lib
    /usr/lib/pkgconfig
    /usr/lib/pkgconfig/ffnvcodec.pc
  Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
  nv-codec-headers: 3 installed and not shipped files. [installed-vs-shipped]

  when libdir is /usr/lib64 with multilib

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-04 06:47:00 -07:00
Markus Volk
72af3a0acb pipewire: update 0.3.68 -> 0.3.70
This is a quick bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Fix a regression in the scheduler that could keep some nodes IDLE.
  - Fix a regression in the biquad filters in filter-chain.
  - Fix a regression and potential crash in the ALSA mixer probing.
  - Fix a regression in pipewiresrc with timestamps that could cause cheese
    to record video with wrong timestamps.
  - Beamforming support was enabled in the echo-canceler.
  - pulse-tunnel and raop-sink will now proxy local volume changes to the
    remote end.
  - More bugfixes and improvements.

  - Fix a bug in the graph scheduler where some nodes might stay IDLE in
    some cases (like when connecting the source of the echo-canceler to the
    sink).
  - pw-metadata can now be created from the factory with initial values for
    the metadata. (#3076)
  - Conditions were added to the pipewire config file to make it possible to
    configure the access module and the exec sections.
  - Support was added in pw-stream to intercept and override properties for
    the adapter. This can be used to implement custom volume control, for
    example.

  - pw-metadata can now list all available metadata objects with the -l
    option.
  - A new pw-config tool was added to debug configuration file loading and
    parsing.

  - The webrtc echo canceler now supports beamforming. You can provide the
    coordinates of the microphones and let webrtc perform beamforming on
    the captured samples to improve quality and remove noise.
  - Fix a regression in the filter-chain with biquad filters. (#3161) and
    improve error reporting.
  - The pulse-tunnel will now proxy the volume changes to the remote end.
  - The RAOP sink will now send volume parameters to control the volume
    remotely. (#2061)

  - One ALSA commit was not correctly reverted and might cause crashes.
  - The ALSA sink and source now calculate the ALSA ringbuffer memory
    location more correctly wich might improve compatibility with some
    hardware.
  - v4l2 now sets the values of the controls in the Props param.

  - The echo-canceler aec_args are now parsed like they would be under
    pulseaudio.

  - More work on synchronizing BAP devices.

  - The GStreamer source can now renegotiate the format when it changes.
  - The GStreamer source now uses the BaseSrc clocking code to implement
    the clock and timing code.

This is a quick bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Reverted the UCM changes, they seem to cause regressions causing audio
    to be muted in some cases.
  - Fix a regression in the scheduler where a driver node might not be marked
    runnable in some cases, like when echo-cancel is used. (#3145)
  - Handle links from the driver to itself. This makes the midi bridge work
    again. (#3153)
  - ALSA rate matching for sources was fixed. It would previously wait too
    long for rate matching and then cause drift. This should reduce
    crackling and stuttering whan capturing in low latency.
  - Fix the GStreamer clock to make cheese video recording work again. (#3149)
  - More fixes and improvements.

  - Fix a regression in the scheduler where a driver node might not be marked
    runnable in some cases, like when echo-cancel is used. (#3145)
  - Handle links from the driver to itself. This makes the midi bridge work
    again. (#3153)
  - Some man pages were improved.
  - Fix a potential crash when thread-loop is destroyed before the loop.
    (#3150)

  - A new raw biquad filter was added to filter-chain. You can manually set the
    6 parameters and you can use this to create custom filters per sample rate.
    (#3139)
  - The echo-canceler now supports different channels for the capture and playback
    streams.

  - A SB Audigy specific profile set was added to make better use of the
    controls. (#2934)
  - More ALSA IRQ based scheduling improvements.
  - ALSA rate matching for sources was fixed. It would previously wait too
    long for rate matching and then cause drift. This should reduce
    crackling and stuttering whan capturing in low latency.
  - The echo-cancel plugin API has a new method to make it possible to have
    different channels for capture, source and playback.
  - Reverted the UCM changes, they seem to cause regressions causing audio
    to be muted in some cases.

  - Many more BAP fixes and improvements. Devices are now created as a set
    and can be combined into one device by the session manager.

  - Fix the GStreamer clock to make cheese video recording work again. (#3149)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-28 10:29:06 -07:00
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