Skip to content

Instantly share code, notes, and snippets.

@nyanpasu64
Created January 27, 2022 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nyanpasu64/b85e083b6528e7625fffd8d9b71026bf to your computer and use it in GitHub Desktop.
Save nyanpasu64/b85e083b6528e7625fffd8d9b71026bf to your computer and use it in GitHub Desktop.
nyanpasu64@ryzen ~/code/exotracker-cpp (cleanup) [128]> git co -b pijul dev
Switched to a new branch 'pijul'
nyanpasu64@ryzen ~/code/exotracker-cpp (pijul)> pijul git
INFO Loading Git history…
INFO Importing commit 54671d713052a42017455d4d46aec7e0957df088: Squashed '3rdparty/portaudio/' content from commit c5d2c51b
git-subtree-dir: 3rdparty/portaudio
git-subtree-split: c5d2c51bd6fe354d0ee1119ba932bfebd3ebfacc
INFO Importing commit 37207d5647c079998a76ef518c47218769be36e8: Add Immer library
https://github.com/arximboldi/immer
2afecb70f31fff07217053d61bc1b5b6b0680912
INFO Importing commit 4ebabd60f20d983298f101cf13442b795504f3b0: Edit Immer library to fix compiler warnings
INFO Importing commit b564fe47ac26201870ae94d87c8c7cc6df7666b7: Merge immer master into subtree
INFO Importing commit a28a7423e144a163c582531204d7ee4586dea7f2: Silence more Immer array warnings
INFO Importing commit 75bbe923ea2316772d89e9ea690d7ef707d97447: Fix compilation error when default-initializing array_transient
Fixes #111.
INFO Importing commit 38e79349fbcdee68444fc34503963ac8df13a755: Initial Meson commit
INFO Importing commit b83f3107f8330f37730cc4e33b17adf8446f525b: Remove Qt Creator .pro file
INFO Importing commit 1ad16f1fb35425f1200c833869d59c3aae532297: Switch from tabs to spaces
INFO Importing commit 124ca2455bd0b87e519f8061c22455d796e11915: Attempt at layout stack
INFO Importing commit f9ce47532ca9b8faa361d749acc7c73bf01c3842: Add Qt Creator .pro file
INFO Importing commit ef59e32a77db5151622e35f05fbc658831c949bd: it builds
INFO Importing commit 99c547ed8965c7dd19fda1fc1912d344234796d3: Turns out Qt objects are owned and deleted by their parent *widgets*
INFO Importing commit 79fff334af70c62b12717ab3f516b3a55bf36046: Add unused Visitor class
INFO Importing commit 1eb9ce3c84c106674fa31b65a00a9e2b5b4d989f: Add append_widget()
INFO Importing commit 4535f9c448b364efa07a3c28b561377ed0e5fb09: it works
INFO Importing commit 3e896175f817134403e0b57be5ea3af9df560ad1: Add loop macros
INFO Importing commit d8e04af4d1e86953dfa499b874b9e92d6845f919: Rename to LayoutStack._push_existing_object()
INFO Importing commit 4a89a105277b870060721f1febcf7e011e1ba945: Layout-stack progress, nest StackFrame and StackRaii nested into LayoutStack
INFO Importing commit bdc81a518d258eda4c85fa127867f08993dad568: i tried
INFO Importing commit 2af554d47fc3c55a63adab8a2865a4d21b8a2e1a: moar
INFO Importing commit 3f7bac7a423e8e2459fa08911cc5aa968c146a2c: fixup! Add loop macros
INFO Importing commit 1800265e9211d30e2fa7182b988c34a6e0889b12: Switch to lightweight GUI macros
INFO Importing commit cb6d3307451af125b42685efe4a6c2858f92bdc0: Reorganize lightweight macros
INFO Importing commit f1357a1157af0f067c4399ce759fbfe8d2bd8d40: Add nested layouts to test program
INFO Importing commit 5c28cc68ab21df58bc38ac2f5e3734591e1fbb3b: Remove borders around main window
INFO Importing commit a99ca0ef79bc148cce145ab147979d0e4e21c23f: Dedent defer{}; definition to appease Qt Creator
INFO Importing commit 5bf593212203219c642ab7625124a8c649ab07fd: TODO set_layout()
INFO Importing commit 2d98d2c654a53dbffdfb399cf0c7b241d730d4e9: append_stretch()
INFO Importing commit 5d7689f7f78dcaf812962b617aa819338a129f4b: add_row() to QFormLayout
INFO Importing commit 906cdc7e09b99252a81cf133d73b0e8b38f9c5d5: Add label_row()
INFO mv "src/gui/lightweight.h" "src/gui/lib/lightweight.h"
INFO mv "src/mainwindow.cpp" "src/gui/mainwindow.cpp"
INFO mv "src/mainwindow.h" "src/gui/mainwindow.h"
INFO mv "src/macros.h" "src/util/macros.h"
INFO Importing commit 7a5343b18ddfc6d6a5638dd5e7a5c52299088098: Reorganize src/ into subfolders
INFO Importing commit 4ab874ed7031df1add1f828dc3fe27636c4603a6: Add audio (doesn't compile)
INFO Importing commit fdb8a6b4c2745c222f865346f01b171338347cf9: Make audio output build
INFO Importing commit 88db10c10783d4fe311fe6801097f93563771e27: Rename CDSound to AudioInterface, CDSoundChannel to AudioChannel
INFO Importing commit 1ff801db24c753e7b7da5b6ecf813929f121910c: namespace audio{}
INFO Importing commit 29c33782332d088cab4b6c63f5523eeec24c5f81: audio/output.h tweaks
INFO Importing commit 2025f4f62751a44865a1e55dbe38575f93e298ac: audio/synth.
INFO Importing commit d89b5c16d1bf9c907e9b1ad93ee5cff5350c92e8: Move MainWindow view into separate class, like Qt .ui
INFO Importing commit bbe6e6783662a65f9c889fae7a7637a2ec428fcd: Add lol_dialog.{cpp,h,ui}
INFO Importing commit 8f1d728ce5e1f09c4572c79c77e87384c5685ffb: Revert "Add lol_dialog.{cpp,h,ui}"
This reverts commit 227b523bfb6dcd94a183f04eafef666a4db4e162.
INFO Importing commit 931abbf8f7f52f597abf424b2b5bcc98cd395d85: Make MainWindowPrivate a subclass of MainWindow, not a pointer
INFO mv "src/gui/mainwindow.cpp" "src/gui/main_window.cpp"
INFO mv "src/gui/mainwindow.h" "src/gui/main_window.h"
INFO Importing commit af3c56d2a6f028b26b8749cc7f57e51b29af03c9: Rename to main_window.cpp/h
INFO Importing commit 09678e3a928756252edca6131abfd800d8b3d6cf: no sdl, no audio, just gui
INFO Importing commit 1e700fcf1aa06ceb5242848e0baa64535e3d8728: Remove defer{}, add widgets to layout immediately
INFO Importing commit e76813a9e7910f90322566cce73a47406305f797: switch font to segoe ui
INFO Importing commit e3ddb26628fd455f3872ad89c21a3b3dd78d4e57: Squash branch 'pattern-editor'
INFO Importing commit 152487eef0b07c7763e9918c646369aa360bcd33: Add boost::rational
INFO Importing commit c83b56f711a33daaba61668419ac158780c00c73: Add TimeInPattern struct using boost::rational
INFO Importing commit b2ce7f2fa1fa9980100a90901bed8d154c8929de: Improve struct TimeInPattern
INFO Importing commit a495560012a08fa36d19dd0685cccc8bafde5f5c: Add type ChannelData
INFO Importing commit 31815e0c100a96620c3306753e36b0a41c6901f5: rename Fraction to BeatFraction
INFO Importing commit 5402e5bf83a834d91ddc8abd9e1b2f3500e675cf: Write pattern editor in reverse order without forward declarations
INFO Importing commit 9a99e045040187d423ed64615280c5cdc7ca1185: Cleanup code a bit
INFO Importing commit b4c7a7b7fcdae29f7bb7f3f1ff0e149d20f1e470: Draw pattern markings based on fractional beats
INFO Importing commit e058c6425697fe1a042ead167344f58b35074637: Draw notes on screen. BUG: timestamps overwrite each other!
INFO Importing commit d8111eaecbe7f889e23d72767cf8d4d6f334a031: oops
INFO Importing commit e65e9dc8085cbc262e41bf480ec36fee4e3c580a: Build in CMake
INFO mv "boost/README.txt" "3rdparty/README_boost.txt"
INFO mv "boost/boost/aligned_storage.hpp" "3rdparty/boost/aligned_storage.hpp"
INFO mv "boost/boost/assert.hpp" "3rdparty/boost/assert.hpp"
INFO mv "boost/boost/bind.hpp" "3rdparty/boost/bind.hpp"
INFO mv "boost/boost/call_traits.hpp" "3rdparty/boost/call_traits.hpp"
INFO mv "boost/boost/cerrno.hpp" "3rdparty/boost/cerrno.hpp"
INFO mv "boost/boost/checked_delete.hpp" "3rdparty/boost/checked_delete.hpp"
INFO mv "boost/boost/config.hpp" "3rdparty/boost/config.hpp"
INFO mv "boost/boost/config/abi/borland_prefix.hpp" "3rdparty/boost/config/abi/borland_prefix.hpp"
INFO mv "boost/boost/config/abi/borland_suffix.hpp" "3rdparty/boost/config/abi/borland_suffix.hpp"
INFO mv "boost/boost/config/abi/msvc_prefix.hpp" "3rdparty/boost/config/abi/msvc_prefix.hpp"
INFO mv "boost/boost/config/abi/msvc_suffix.hpp" "3rdparty/boost/config/abi/msvc_suffix.hpp"
INFO mv "boost/boost/config/abi_prefix.hpp" "3rdparty/boost/config/abi_prefix.hpp"
INFO mv "boost/boost/config/abi_suffix.hpp" "3rdparty/boost/config/abi_suffix.hpp"
INFO mv "boost/boost/config/auto_link.hpp" "3rdparty/boost/config/auto_link.hpp"
INFO mv "boost/boost/config/compiler/borland.hpp" "3rdparty/boost/config/compiler/borland.hpp"
INFO mv "boost/boost/config/compiler/clang.hpp" "3rdparty/boost/config/compiler/clang.hpp"
INFO mv "boost/boost/config/compiler/codegear.hpp" "3rdparty/boost/config/compiler/codegear.hpp"
INFO mv "boost/boost/config/compiler/comeau.hpp" "3rdparty/boost/config/compiler/comeau.hpp"
INFO mv "boost/boost/config/compiler/common_edg.hpp" "3rdparty/boost/config/compiler/common_edg.hpp"
INFO mv "boost/boost/config/compiler/compaq_cxx.hpp" "3rdparty/boost/config/compiler/compaq_cxx.hpp"
INFO mv "boost/boost/config/compiler/cray.hpp" "3rdparty/boost/config/compiler/cray.hpp"
INFO mv "boost/boost/config/compiler/diab.hpp" "3rdparty/boost/config/compiler/diab.hpp"
INFO mv "boost/boost/config/compiler/digitalmars.hpp" "3rdparty/boost/config/compiler/digitalmars.hpp"
INFO mv "boost/boost/config/compiler/gcc.hpp" "3rdparty/boost/config/compiler/gcc.hpp"
INFO mv "boost/boost/config/compiler/gcc_xml.hpp" "3rdparty/boost/config/compiler/gcc_xml.hpp"
INFO mv "boost/boost/config/compiler/greenhills.hpp" "3rdparty/boost/config/compiler/greenhills.hpp"
INFO mv "boost/boost/config/compiler/hp_acc.hpp" "3rdparty/boost/config/compiler/hp_acc.hpp"
INFO mv "boost/boost/config/compiler/intel.hpp" "3rdparty/boost/config/compiler/intel.hpp"
INFO mv "boost/boost/config/compiler/kai.hpp" "3rdparty/boost/config/compiler/kai.hpp"
INFO mv "boost/boost/config/compiler/metrowerks.hpp" "3rdparty/boost/config/compiler/metrowerks.hpp"
INFO mv "boost/boost/config/compiler/mpw.hpp" "3rdparty/boost/config/compiler/mpw.hpp"
INFO mv "boost/boost/config/compiler/nvcc.hpp" "3rdparty/boost/config/compiler/nvcc.hpp"
INFO mv "boost/boost/config/compiler/pathscale.hpp" "3rdparty/boost/config/compiler/pathscale.hpp"
INFO mv "boost/boost/config/compiler/pgi.hpp" "3rdparty/boost/config/compiler/pgi.hpp"
INFO mv "boost/boost/config/compiler/sgi_mipspro.hpp" "3rdparty/boost/config/compiler/sgi_mipspro.hpp"
INFO mv "boost/boost/config/compiler/sunpro_cc.hpp" "3rdparty/boost/config/compiler/sunpro_cc.hpp"
INFO mv "boost/boost/config/compiler/vacpp.hpp" "3rdparty/boost/config/compiler/vacpp.hpp"
INFO mv "boost/boost/config/compiler/visualc.hpp" "3rdparty/boost/config/compiler/visualc.hpp"
INFO mv "boost/boost/config/compiler/xlcpp.hpp" "3rdparty/boost/config/compiler/xlcpp.hpp"
INFO mv "boost/boost/config/compiler/xlcpp_zos.hpp" "3rdparty/boost/config/compiler/xlcpp_zos.hpp"
INFO mv "boost/boost/config/detail/posix_features.hpp" "3rdparty/boost/config/detail/posix_features.hpp"
INFO mv "boost/boost/config/detail/select_compiler_config.hpp" "3rdparty/boost/config/detail/select_compiler_config.hpp"
INFO mv "boost/boost/config/detail/select_platform_config.hpp" "3rdparty/boost/config/detail/select_platform_config.hpp"
INFO mv "boost/boost/config/detail/select_stdlib_config.hpp" "3rdparty/boost/config/detail/select_stdlib_config.hpp"
INFO mv "boost/boost/config/detail/suffix.hpp" "3rdparty/boost/config/detail/suffix.hpp"
INFO mv "boost/boost/config/header_deprecated.hpp" "3rdparty/boost/config/header_deprecated.hpp"
INFO mv "boost/boost/config/helper_macros.hpp" "3rdparty/boost/config/helper_macros.hpp"
INFO mv "boost/boost/config/no_tr1/cmath.hpp" "3rdparty/boost/config/no_tr1/cmath.hpp"
INFO mv "boost/boost/config/no_tr1/complex.hpp" "3rdparty/boost/config/no_tr1/complex.hpp"
INFO mv "boost/boost/config/no_tr1/functional.hpp" "3rdparty/boost/config/no_tr1/functional.hpp"
INFO mv "boost/boost/config/no_tr1/memory.hpp" "3rdparty/boost/config/no_tr1/memory.hpp"
INFO mv "boost/boost/config/no_tr1/utility.hpp" "3rdparty/boost/config/no_tr1/utility.hpp"
INFO mv "boost/boost/config/platform/aix.hpp" "3rdparty/boost/config/platform/aix.hpp"
INFO mv "boost/boost/config/platform/amigaos.hpp" "3rdparty/boost/config/platform/amigaos.hpp"
INFO mv "boost/boost/config/platform/beos.hpp" "3rdparty/boost/config/platform/beos.hpp"
INFO mv "boost/boost/config/platform/bsd.hpp" "3rdparty/boost/config/platform/bsd.hpp"
INFO mv "boost/boost/config/platform/cloudabi.hpp" "3rdparty/boost/config/platform/cloudabi.hpp"
INFO mv "boost/boost/config/platform/cray.hpp" "3rdparty/boost/config/platform/cray.hpp"
INFO mv "boost/boost/config/platform/cygwin.hpp" "3rdparty/boost/config/platform/cygwin.hpp"
INFO mv "boost/boost/config/platform/haiku.hpp" "3rdparty/boost/config/platform/haiku.hpp"
INFO mv "boost/boost/config/platform/hpux.hpp" "3rdparty/boost/config/platform/hpux.hpp"
INFO mv "boost/boost/config/platform/irix.hpp" "3rdparty/boost/config/platform/irix.hpp"
INFO mv "boost/boost/config/platform/linux.hpp" "3rdparty/boost/config/platform/linux.hpp"
INFO mv "boost/boost/config/platform/macos.hpp" "3rdparty/boost/config/platform/macos.hpp"
INFO mv "boost/boost/config/platform/qnxnto.hpp" "3rdparty/boost/config/platform/qnxnto.hpp"
INFO mv "boost/boost/config/platform/solaris.hpp" "3rdparty/boost/config/platform/solaris.hpp"
INFO mv "boost/boost/config/platform/symbian.hpp" "3rdparty/boost/config/platform/symbian.hpp"
INFO mv "boost/boost/config/platform/vms.hpp" "3rdparty/boost/config/platform/vms.hpp"
INFO mv "boost/boost/config/platform/vxworks.hpp" "3rdparty/boost/config/platform/vxworks.hpp"
INFO mv "boost/boost/config/platform/win32.hpp" "3rdparty/boost/config/platform/win32.hpp"
INFO mv "boost/boost/config/platform/zos.hpp" "3rdparty/boost/config/platform/zos.hpp"
INFO mv "boost/boost/config/pragma_message.hpp" "3rdparty/boost/config/pragma_message.hpp"
INFO mv "boost/boost/config/requires_threads.hpp" "3rdparty/boost/config/requires_threads.hpp"
INFO mv "boost/boost/config/stdlib/dinkumware.hpp" "3rdparty/boost/config/stdlib/dinkumware.hpp"
INFO mv "boost/boost/config/stdlib/libcomo.hpp" "3rdparty/boost/config/stdlib/libcomo.hpp"
INFO mv "boost/boost/config/stdlib/libcpp.hpp" "3rdparty/boost/config/stdlib/libcpp.hpp"
INFO mv "boost/boost/config/stdlib/libstdcpp3.hpp" "3rdparty/boost/config/stdlib/libstdcpp3.hpp"
INFO mv "boost/boost/config/stdlib/modena.hpp" "3rdparty/boost/config/stdlib/modena.hpp"
INFO mv "boost/boost/config/stdlib/msl.hpp" "3rdparty/boost/config/stdlib/msl.hpp"
INFO mv "boost/boost/config/stdlib/roguewave.hpp" "3rdparty/boost/config/stdlib/roguewave.hpp"
INFO mv "boost/boost/config/stdlib/sgi.hpp" "3rdparty/boost/config/stdlib/sgi.hpp"
INFO mv "boost/boost/config/stdlib/stlport.hpp" "3rdparty/boost/config/stdlib/stlport.hpp"
INFO mv "boost/boost/config/stdlib/vacpp.hpp" "3rdparty/boost/config/stdlib/vacpp.hpp"
INFO mv "boost/boost/config/stdlib/xlcpp_zos.hpp" "3rdparty/boost/config/stdlib/xlcpp_zos.hpp"
INFO mv "boost/boost/config/user.hpp" "3rdparty/boost/config/user.hpp"
INFO mv "boost/boost/config/warning_disable.hpp" "3rdparty/boost/config/warning_disable.hpp"
INFO mv "boost/boost/config/workaround.hpp" "3rdparty/boost/config/workaround.hpp"
INFO mv "boost/boost/core/addressof.hpp" "3rdparty/boost/core/addressof.hpp"
INFO mv "boost/boost/core/alloc_construct.hpp" "3rdparty/boost/core/alloc_construct.hpp"
INFO mv "boost/boost/core/checked_delete.hpp" "3rdparty/boost/core/checked_delete.hpp"
INFO mv "boost/boost/core/default_allocator.hpp" "3rdparty/boost/core/default_allocator.hpp"
INFO mv "boost/boost/core/demangle.hpp" "3rdparty/boost/core/demangle.hpp"
INFO mv "boost/boost/core/enable_if.hpp" "3rdparty/boost/core/enable_if.hpp"
INFO mv "boost/boost/core/first_scalar.hpp" "3rdparty/boost/core/first_scalar.hpp"
INFO mv "boost/boost/core/ignore_unused.hpp" "3rdparty/boost/core/ignore_unused.hpp"
INFO mv "boost/boost/core/is_same.hpp" "3rdparty/boost/core/is_same.hpp"
INFO mv "boost/boost/core/no_exceptions_support.hpp" "3rdparty/boost/core/no_exceptions_support.hpp"
INFO mv "boost/boost/core/noinit_adaptor.hpp" "3rdparty/boost/core/noinit_adaptor.hpp"
INFO mv "boost/boost/core/ref.hpp" "3rdparty/boost/core/ref.hpp"
INFO mv "boost/boost/core/swap.hpp" "3rdparty/boost/core/swap.hpp"
INFO mv "boost/boost/core/typeinfo.hpp" "3rdparty/boost/core/typeinfo.hpp"
INFO mv "boost/boost/core/use_default.hpp" "3rdparty/boost/core/use_default.hpp"
INFO mv "boost/boost/cstdint.hpp" "3rdparty/boost/cstdint.hpp"
INFO mv "boost/boost/cstdlib.hpp" "3rdparty/boost/cstdlib.hpp"
INFO mv "boost/boost/current_function.hpp" "3rdparty/boost/current_function.hpp"
INFO mv "boost/boost/detail/call_traits.hpp" "3rdparty/boost/detail/call_traits.hpp"
INFO mv "boost/boost/detail/container_fwd.hpp" "3rdparty/boost/detail/container_fwd.hpp"
INFO mv "boost/boost/detail/fenv.hpp" "3rdparty/boost/detail/fenv.hpp"
INFO mv "boost/boost/detail/indirect_traits.hpp" "3rdparty/boost/detail/indirect_traits.hpp"
INFO mv "boost/boost/detail/select_type.hpp" "3rdparty/boost/detail/select_type.hpp"
INFO mv "boost/boost/detail/winapi/detail/deprecated_namespace.hpp" "3rdparty/boost/detail/winapi/detail/deprecated_namespace.hpp"
INFO mv "boost/boost/detail/winapi/get_current_process.hpp" "3rdparty/boost/detail/winapi/get_current_process.hpp"
INFO mv "boost/boost/detail/winapi/get_current_thread.hpp" "3rdparty/boost/detail/winapi/get_current_thread.hpp"
INFO mv "boost/boost/detail/winapi/get_last_error.hpp" "3rdparty/boost/detail/winapi/get_last_error.hpp"
INFO mv "boost/boost/detail/winapi/get_process_times.hpp" "3rdparty/boost/detail/winapi/get_process_times.hpp"
INFO mv "boost/boost/detail/winapi/get_thread_times.hpp" "3rdparty/boost/detail/winapi/get_thread_times.hpp"
INFO mv "boost/boost/detail/workaround.hpp" "3rdparty/boost/detail/workaround.hpp"
INFO mv "boost/boost/exception/current_exception_cast.hpp" "3rdparty/boost/exception/current_exception_cast.hpp"
INFO mv "boost/boost/exception/detail/error_info_impl.hpp" "3rdparty/boost/exception/detail/error_info_impl.hpp"
INFO mv "boost/boost/exception/detail/is_output_streamable.hpp" "3rdparty/boost/exception/detail/is_output_streamable.hpp"
INFO mv "boost/boost/exception/detail/object_hex_dump.hpp" "3rdparty/boost/exception/detail/object_hex_dump.hpp"
INFO mv "boost/boost/exception/detail/shared_ptr.hpp" "3rdparty/boost/exception/detail/shared_ptr.hpp"
INFO mv "boost/boost/exception/detail/type_info.hpp" "3rdparty/boost/exception/detail/type_info.hpp"
INFO mv "boost/boost/exception/diagnostic_information.hpp" "3rdparty/boost/exception/diagnostic_information.hpp"
INFO mv "boost/boost/exception/exception.hpp" "3rdparty/boost/exception/exception.hpp"
INFO mv "boost/boost/exception/get_error_info.hpp" "3rdparty/boost/exception/get_error_info.hpp"
INFO mv "boost/boost/exception/info.hpp" "3rdparty/boost/exception/info.hpp"
INFO mv "boost/boost/exception/to_string.hpp" "3rdparty/boost/exception/to_string.hpp"
INFO mv "boost/boost/exception/to_string_stub.hpp" "3rdparty/boost/exception/to_string_stub.hpp"
INFO mv "boost/boost/function.hpp" "3rdparty/boost/function.hpp"
INFO mv "boost/boost/function_equal.hpp" "3rdparty/boost/function_equal.hpp"
INFO mv "boost/boost/get_pointer.hpp" "3rdparty/boost/get_pointer.hpp"
INFO mv "boost/boost/integer.hpp" "3rdparty/boost/integer.hpp"
INFO mv "boost/boost/integer/common_factor_rt.hpp" "3rdparty/boost/integer/common_factor_rt.hpp"
INFO mv "boost/boost/integer/static_log2.hpp" "3rdparty/boost/integer/static_log2.hpp"
INFO mv "boost/boost/integer_fwd.hpp" "3rdparty/boost/integer_fwd.hpp"
INFO mv "boost/boost/integer_traits.hpp" "3rdparty/boost/integer_traits.hpp"
INFO mv "boost/boost/io_fwd.hpp" "3rdparty/boost/io_fwd.hpp"
INFO mv "boost/boost/is_placeholder.hpp" "3rdparty/boost/is_placeholder.hpp"
INFO mv "boost/boost/limits.hpp" "3rdparty/boost/limits.hpp"
INFO mv "boost/boost/make_shared.hpp" "3rdparty/boost/make_shared.hpp"
INFO mv "boost/boost/mem_fn.hpp" "3rdparty/boost/mem_fn.hpp"
INFO mv "boost/boost/operators.hpp" "3rdparty/boost/operators.hpp"
INFO mv "boost/boost/predef.h" "3rdparty/boost/predef.h"
INFO mv "boost/boost/rational.hpp" "3rdparty/boost/rational.hpp"
INFO mv "boost/boost/ref.hpp" "3rdparty/boost/ref.hpp"
INFO mv "boost/boost/scoped_array.hpp" "3rdparty/boost/scoped_array.hpp"
INFO mv "boost/boost/scoped_ptr.hpp" "3rdparty/boost/scoped_ptr.hpp"
INFO mv "boost/boost/shared_ptr.hpp" "3rdparty/boost/shared_ptr.hpp"
INFO mv "boost/boost/static_assert.hpp" "3rdparty/boost/static_assert.hpp"
INFO mv "boost/boost/swap.hpp" "3rdparty/boost/swap.hpp"
INFO mv "boost/boost/throw_exception.hpp" "3rdparty/boost/throw_exception.hpp"
INFO mv "boost/boost/type.hpp" "3rdparty/boost/type.hpp"
INFO mv "boost/boost/type_index.hpp" "3rdparty/boost/type_index.hpp"
INFO mv "boost/boost/type_traits/add_const.hpp" "3rdparty/boost/type_traits/add_const.hpp"
INFO mv "boost/boost/type_traits/add_cv.hpp" "3rdparty/boost/type_traits/add_cv.hpp"
INFO mv "boost/boost/type_traits/add_lvalue_reference.hpp" "3rdparty/boost/type_traits/add_lvalue_reference.hpp"
INFO mv "boost/boost/type_traits/add_pointer.hpp" "3rdparty/boost/type_traits/add_pointer.hpp"
INFO mv "boost/boost/type_traits/add_reference.hpp" "3rdparty/boost/type_traits/add_reference.hpp"
INFO mv "boost/boost/type_traits/add_rvalue_reference.hpp" "3rdparty/boost/type_traits/add_rvalue_reference.hpp"
INFO mv "boost/boost/type_traits/add_volatile.hpp" "3rdparty/boost/type_traits/add_volatile.hpp"
INFO mv "boost/boost/type_traits/aligned_storage.hpp" "3rdparty/boost/type_traits/aligned_storage.hpp"
INFO mv "boost/boost/type_traits/alignment_of.hpp" "3rdparty/boost/type_traits/alignment_of.hpp"
INFO mv "boost/boost/type_traits/common_type.hpp" "3rdparty/boost/type_traits/common_type.hpp"
INFO mv "boost/boost/type_traits/composite_traits.hpp" "3rdparty/boost/type_traits/composite_traits.hpp"
INFO mv "boost/boost/type_traits/conditional.hpp" "3rdparty/boost/type_traits/conditional.hpp"
INFO mv "boost/boost/type_traits/copy_cv.hpp" "3rdparty/boost/type_traits/copy_cv.hpp"
INFO mv "boost/boost/type_traits/cv_traits.hpp" "3rdparty/boost/type_traits/cv_traits.hpp"
INFO mv "boost/boost/type_traits/decay.hpp" "3rdparty/boost/type_traits/decay.hpp"
INFO mv "boost/boost/type_traits/declval.hpp" "3rdparty/boost/type_traits/declval.hpp"
INFO mv "boost/boost/type_traits/detail/common_arithmetic_type.hpp" "3rdparty/boost/type_traits/detail/common_arithmetic_type.hpp"
INFO mv "boost/boost/type_traits/detail/common_type_impl.hpp" "3rdparty/boost/type_traits/detail/common_type_impl.hpp"
INFO mv "boost/boost/type_traits/detail/composite_member_pointer_type.hpp" "3rdparty/boost/type_traits/detail/composite_member_pointer_type.hpp"
INFO mv "boost/boost/type_traits/detail/composite_pointer_type.hpp" "3rdparty/boost/type_traits/detail/composite_pointer_type.hpp"
INFO mv "boost/boost/type_traits/detail/config.hpp" "3rdparty/boost/type_traits/detail/config.hpp"
INFO mv "boost/boost/type_traits/detail/has_binary_operator.hpp" "3rdparty/boost/type_traits/detail/has_binary_operator.hpp"
INFO mv "boost/boost/type_traits/detail/is_function_cxx_03.hpp" "3rdparty/boost/type_traits/detail/is_function_cxx_03.hpp"
INFO mv "boost/boost/type_traits/detail/is_function_cxx_11.hpp" "3rdparty/boost/type_traits/detail/is_function_cxx_11.hpp"
INFO mv "boost/boost/type_traits/detail/is_function_msvc10_fix.hpp" "3rdparty/boost/type_traits/detail/is_function_msvc10_fix.hpp"
INFO mv "boost/boost/type_traits/detail/is_function_ptr_helper.hpp" "3rdparty/boost/type_traits/detail/is_function_ptr_helper.hpp"
INFO mv "boost/boost/type_traits/detail/is_function_ptr_tester.hpp" "3rdparty/boost/type_traits/detail/is_function_ptr_tester.hpp"
INFO mv "boost/boost/type_traits/detail/is_likely_lambda.hpp" "3rdparty/boost/type_traits/detail/is_likely_lambda.hpp"
INFO mv "boost/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" "3rdparty/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp"
INFO mv "boost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp" "3rdparty/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp"
INFO mv "boost/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp" "3rdparty/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp"
INFO mv "boost/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp" "3rdparty/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp"
INFO mv "boost/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp" "3rdparty/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp"
INFO mv "boost/boost/type_traits/detail/mp_defer.hpp" "3rdparty/boost/type_traits/detail/mp_defer.hpp"
INFO mv "boost/boost/type_traits/detail/yes_no_type.hpp" "3rdparty/boost/type_traits/detail/yes_no_type.hpp"
INFO mv "boost/boost/type_traits/enable_if.hpp" "3rdparty/boost/type_traits/enable_if.hpp"
INFO mv "boost/boost/type_traits/extent.hpp" "3rdparty/boost/type_traits/extent.hpp"
INFO mv "boost/boost/type_traits/has_left_shift.hpp" "3rdparty/boost/type_traits/has_left_shift.hpp"
INFO mv "boost/boost/type_traits/has_nothrow_copy.hpp" "3rdparty/boost/type_traits/has_nothrow_copy.hpp"
INFO mv "boost/boost/type_traits/has_trivial_copy.hpp" "3rdparty/boost/type_traits/has_trivial_copy.hpp"
INFO mv "boost/boost/type_traits/has_trivial_destructor.hpp" "3rdparty/boost/type_traits/has_trivial_destructor.hpp"
INFO mv "boost/boost/type_traits/has_trivial_move_constructor.hpp" "3rdparty/boost/type_traits/has_trivial_move_constructor.hpp"
INFO mv "boost/boost/type_traits/integral_constant.hpp" "3rdparty/boost/type_traits/integral_constant.hpp"
INFO mv "boost/boost/type_traits/intrinsics.hpp" "3rdparty/boost/type_traits/intrinsics.hpp"
INFO mv "boost/boost/type_traits/is_abstract.hpp" "3rdparty/boost/type_traits/is_abstract.hpp"
INFO mv "boost/boost/type_traits/is_arithmetic.hpp" "3rdparty/boost/type_traits/is_arithmetic.hpp"
INFO mv "boost/boost/type_traits/is_array.hpp" "3rdparty/boost/type_traits/is_array.hpp"
INFO mv "boost/boost/type_traits/is_base_and_derived.hpp" "3rdparty/boost/type_traits/is_base_and_derived.hpp"
INFO mv "boost/boost/type_traits/is_base_of.hpp" "3rdparty/boost/type_traits/is_base_of.hpp"
INFO mv "boost/boost/type_traits/is_bounded_array.hpp" "3rdparty/boost/type_traits/is_bounded_array.hpp"
INFO mv "boost/boost/type_traits/is_class.hpp" "3rdparty/boost/type_traits/is_class.hpp"
INFO mv "boost/boost/type_traits/is_complete.hpp" "3rdparty/boost/type_traits/is_complete.hpp"
INFO mv "boost/boost/type_traits/is_const.hpp" "3rdparty/boost/type_traits/is_const.hpp"
INFO mv "boost/boost/type_traits/is_constructible.hpp" "3rdparty/boost/type_traits/is_constructible.hpp"
INFO mv "boost/boost/type_traits/is_convertible.hpp" "3rdparty/boost/type_traits/is_convertible.hpp"
INFO mv "boost/boost/type_traits/is_copy_constructible.hpp" "3rdparty/boost/type_traits/is_copy_constructible.hpp"
INFO mv "boost/boost/type_traits/is_default_constructible.hpp" "3rdparty/boost/type_traits/is_default_constructible.hpp"
INFO mv "boost/boost/type_traits/is_destructible.hpp" "3rdparty/boost/type_traits/is_destructible.hpp"
INFO mv "boost/boost/type_traits/is_enum.hpp" "3rdparty/boost/type_traits/is_enum.hpp"
INFO mv "boost/boost/type_traits/is_floating_point.hpp" "3rdparty/boost/type_traits/is_floating_point.hpp"
INFO mv "boost/boost/type_traits/is_function.hpp" "3rdparty/boost/type_traits/is_function.hpp"
INFO mv "boost/boost/type_traits/is_fundamental.hpp" "3rdparty/boost/type_traits/is_fundamental.hpp"
INFO mv "boost/boost/type_traits/is_integral.hpp" "3rdparty/boost/type_traits/is_integral.hpp"
INFO mv "boost/boost/type_traits/is_member_function_pointer.hpp" "3rdparty/boost/type_traits/is_member_function_pointer.hpp"
INFO mv "boost/boost/type_traits/is_noncopyable.hpp" "3rdparty/boost/type_traits/is_noncopyable.hpp"
INFO mv "boost/boost/type_traits/is_reference.hpp" "3rdparty/boost/type_traits/is_reference.hpp"
INFO mv "boost/boost/type_traits/is_rvalue_reference.hpp" "3rdparty/boost/type_traits/is_rvalue_reference.hpp"
INFO mv "boost/boost/type_traits/is_lvalue_reference.hpp" "3rdparty/boost/type_traits/is_same.hpp"
INFO mv "boost/boost/type_traits/is_scalar.hpp" "3rdparty/boost/type_traits/is_scalar.hpp"
INFO mv "boost/boost/type_traits/is_signed.hpp" "3rdparty/boost/type_traits/is_signed.hpp"
INFO mv "boost/boost/type_traits/is_unbounded_array.hpp" "3rdparty/boost/type_traits/is_unbounded_array.hpp"
INFO mv "boost/boost/type_traits/is_unsigned.hpp" "3rdparty/boost/type_traits/is_unsigned.hpp"
INFO mv "boost/boost/type_traits/is_void.hpp" "3rdparty/boost/type_traits/is_void.hpp"
INFO mv "boost/boost/type_traits/remove_bounds.hpp" "3rdparty/boost/type_traits/remove_bounds.hpp"
INFO mv "boost/boost/type_traits/type_identity.hpp" "3rdparty/boost/type_traits/type_identity.hpp"
INFO mv "boost/boost/type_traits/type_with_alignment.hpp" "3rdparty/boost/type_traits/type_with_alignment.hpp"
INFO mv "boost/boost/utility/addressof.hpp" "3rdparty/boost/utility/addressof.hpp"
INFO mv "boost/boost/utility/declval.hpp" "3rdparty/boost/utility/declval.hpp"
INFO mv "boost/boost/utility/enable_if.hpp" "3rdparty/boost/utility/enable_if.hpp"
INFO Importing commit 52ca3bcda840c6c2da5b88f1348afa986401c2c4: Switch from moc to verdigris
INFO Importing commit c8b36f24326e42adb5f399348efbfa4c7c5f1647: Make cmake work with release builds
INFO Importing commit a474a1f99c51794d3f08f785090b6cf00f010f7b: Categorize CMake ifle list
INFO Importing commit e85613a30ff28e5068d78f9328a014e6019eb45f: CMake: split project into exotracker-test
INFO Importing commit 67dd5fd97098424c76c0f94a5beffdc91df36939: Move document.h into namespace, rename ChannelData to ChannelEvents
INFO Importing commit 2386d12e8144ed5da7340631e9ee7ccc8268dc26: Add failing unit test for map<TimeInPattern...> bug
INFO Importing commit c08d6560bc7a122ef791388013028bf3f8ece7af: Fix TimeInPattern < less-than comparison
INFO Importing commit 00fa44d563cb0af37ab5154ba69d3adf268d2c0f: aggregate lol
INFO Importing commit ef1533dc58cd6d0e40466edd1dd165efc27f958d: Not much changed
INFO Importing commit 0f1cb73c71e4a310fe7759f140ec7c2eddd72392: Add multi-channel support to pattern editor
INFO Importing commit 90f1656fe44f80dddcc75616401213527a21111f: Prevent drawing from overlapping with adjacent rows/channels
INFO Importing commit cbbf0fda0e8229c71345a90a8218473ef6390fff: Move all colors to palette, improve colors
INFO Importing commit f53a6c998fc2e5c850c9d5ccc24a908747c2df8b: sequencer or something
INFO Importing commit ea77f5874c23478ba15a727ae4523afe0c5ce582: Rename namespace document to doc
INFO Importing commit 909e547ba2949b1d3e2ad0ea9071dbff298027a5: cmake: Mark exotracker-lib as private dependency
INFO Importing commit 7d96b23f7ace1f4022829ac03dc87959ac22f48a: portaudio output wtf
INFO Importing commit 7c9450d2ccd473ea9f562529310191ebdd6e5761: ehh whatever, almost portaudio-ready
INFO Importing commit 9ea7aebe49e1fa248bb427be10e0fb7a0a3323f1: Import portaudio as Git subtree
Commit a1f61a9a2cb74d11cfe743d72763850aa246a092
(1 commit after pa_stable_v190600_20161030)
https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging
INFO Importing commit ecbd4232106b3ae40b25fdd65a3844effd3a5b72: [portaudio] Add CMakeLists.txt for cpp bindings
INFO Importing commit 5cee414a4b2f78e569087b1a2a16c018e9652aef: Add GSL
23066c829f227ca75cf44f7d727230fcdb7ccc8a
INFO Importing commit 4c76c435aeed5b6df2e4d889ffb1d94676769f7f: Integrate portaudio to generate noise
INFO Importing commit 4b63c6d28abf3b28a21c64a00dfa63ffb25c73b1: Add readerwriterqueue
https://github.com/cameron314/readerwriterqueue
2ae710de996a1d02bbc7696b2cdff2c6078e76f8
INFO Importing commit 52cf04454841f2c481d6fbb93f7386a5d2e87083: Move Segoe UI code to separate file
INFO Importing commit 920531370591b2bab34ffbe9b96d93780410476e: Add boost noncopyable header
INFO Importing commit cdc8eeb094f74f1300fb1486ce958c2513d0317a: Remove audio/synth.*
There is no longer a synth thread.
Maybe there's a separate synth object, but these files are unused so far.
INFO Importing commit 6e1a2c8a540d3247c99fe9217b68d0cf4716d7c6: Move MainWindow to namespace gui
INFO Importing commit 3f2c1b764eb4f47ea363f5f8256dbbfdb9bba721: meh static
INFO Importing commit 5c412d9cf062ffd0c434e2053ee6ea8f7e13e1d3: Add Immer library
https://github.com/arximboldi/immer
2afecb70f31fff07217053d61bc1b5b6b0680912
INFO Importing commit 3afc07655ccd948923769ea1fa2dd92c2d303b43: Make immer-based patterns work in unit tests (not GUI)
INFO Importing commit 2856f5cd3a7e69de35b968a168caa0b69feb7d01: Finish implementing immer
INFO Importing commit 297577a064131fca234a563901663c104d8be8e3: Add planning doc about lenses (editing nested immutables)
INFO Importing commit fa2c02107c038442ede5332201e1605125433e5b: Clean up formatting
INFO Importing commit 052b60c72f8778041ead013f75f205896fbb246a: do NOT #define ref
INFO Importing commit 0cb314a532659a052743d144a6bc201d329bb304: History progress
INFO Importing commit e7c00d1692384c68d2313c2aaa40c71786eecfab: History compiles
INFO Importing commit 188911781acf0891afb7e80721260911270c766f: Move History methods to history.cpp
INFO Importing commit e0774e2a7ac81f4209aad1870a7f69e568dea18e: Don't create two PatternEditorPanel instances and use one
INFO Importing commit dda57e6fa08194098fa36fdca626cb1cd72227e6: Use History to store GUI pattern
INFO Importing commit 8ce835d309c014f2b2ff3441ec5f4d9f1577cb8d: Update docs
INFO Importing commit 76da98ee853fae48e7b769dbfa88c50909b9805b: Update lenses.md, switch to returning Option for structural sharing
INFO Importing commit 0e33dfaa8ec4e9d46f8bc0d49cbe811dd1741881: Add credits in README.md
INFO Importing commit 030ef75dc1c69b7b42b13cfe784c6ddca6584a8d: mark .cpp variables as static
INFO Importing commit 10588446cb5461e0d3919bea229178244652cd60: Remove unused local variable in AudioThreadHandle()
INFO Importing commit 98b89069c42e80e81244bd3f7c2c027290ff6e77: Update README.md, add more credits
INFO Importing commit 47eec062af7f4a6a130ecdb0d53f660b504f56e4: Initialize AudioThreadHandle using make() method, not constructor
INFO Importing commit 46709b6db80448e235d55fe4c05402fe09160dee: Remove no-op #define mut
INFO mv "tests/test_runner.cpp" "tests/run_tests.cpp"
INFO Importing commit f40b768f4b81e22893afdd8f25ca34fbb4eec2fd: Rename test_runner.cpp to run_tests.cpp
INFO Importing commit 6dcd6200654d0ba3449fec5d8fab33e9657fd138: Remove util/macros.h (unused and confusing to newcomers)
INFO Importing commit b2b1ad128b583946fdf8ba5be5e066e9da3a09dc: Add class EventQueue<EventID>
# Conflicts:
# CMakeLists.txt
INFO Importing commit abcd499ba13c746409a2ce2422a4e9a9a2fe0495: Remove EventQueue.reset_now() and end_callback_in()
While writing code from scratch using EventQueue,
I forgot to call reset_now().
So redesign the class so that method is unnecessary.
INFO Importing commit 7bf20b1e0b0f9f8133262a2364a7bec7dbb66891: Add official blip_buffer 0.4.0
INFO Importing commit b6be707329e4860028450f25e36ca4390b3d4f0c: Switch to libgme-mpyne blip_buffer 0.4.1
Interestingly, blip_buffer 0.4.1 was never released independently on svn.
kode54's blip_buffer is completely reworked.
Both mpyne and kode54 support Multi_Buffer.
INFO Importing commit 18e41797e6e2e9f27ac1ad585a5d386e50fcd5ab: Add blip_buffer factory functions and test cases (crashes)
INFO Importing commit 7b5d7f91a488d1a59446603a2bd9c96b1a429874: Fix crashing Blip_Buffer move constructor
Blip_Buffer's previous default move constructor is broken,
and causes a double-free of buffer_
when the old and new Blip_Buffers are destroyed.
INFO Importing commit f50db5abd78deb5d4f1a4cf0d12f01c3f263c5de: Rework Blip_Synth constructors, remove unsound copy/move
INFO Importing commit 2afcc425111a069be9e3d0c0bec4112829454823: Add volume parameter to Blip_Synth constructor
# Conflicts:
# src/audio/synth/Nes2A03Synth.h
INFO Importing commit 665d297a33c5ff429773776f077948dcb67d7d79: Switch Blip_Buffer to blip_long (AKA int)
INFO Importing commit 41b22bd5f6c569cb6f3bed6d09fb6b9c1f857f54: Port Blip_Buffer to blip_{nclock, nsamp, amplitude}_t
# Conflicts:
# src/audio/synth.cpp
# src/audio/synth_common.h
INFO Importing commit 6b0ecc5ad680b2e290f0e1d3b7da25072eb75690: Move Blip_Synth<range> from template to volume() parameter
# Conflicts:
# src/audio/synth/Nes2A03Synth.h
INFO Importing commit 36b451c9c361c27c5935fdad0d9967696d142bf7: Remove make_blip_buffer(), move to Blip_Buffer constructor
INFO Importing commit 0b4d9728a8a18c46b2321d76beb812e8f1c0efed: Improve blip_buffer sample/cycle conversion test
- Test multiple initial sample values, including 0 and up
- Also test blip.count_samples(),
not just samples_avail() and read_samples()
INFO applying 3UYP6N4QUDVKLMHJ2PNN5TBGAYPBU57OJ4UBYRLHCZSTTDULAQ2AC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying N7MEIRSGDKHYNBIB7GFTVJBQS7MWTC5N4KTMHGQJZNQHQLWUTOVAC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying Y2MH7LTXYAZZGMWN7DRET3AYSKW7OWI6CF3QWVMYJECMNKLF7VOQC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying NVYYGY33NYT2R2HFG5MHBIPMBICVWV6ECCILNT5RJDVZU335DBPQC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying 63RQNTSDM6IJ7GFS2F5E5GKNY3IECPAY57M6AAXSWKIJBBFMUSJAC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying OATQ32QV3RHS5UQNKEL7KMPO4TPNFJPHJUB5AUDKILTLCYAQJXRQC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying VYR4J7SGD4AMXQLYEQPOUWRGQFOW5UHMJYEZANAYMCHDOHUKG5NQC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying DDDM5SQIB3JGCJESZKLQD7US3AIMKFE3E7UFNCA7VYIBGXUCQJXQC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying 6AOACXTS2VSII7WIQBSXV7XC4UC6AIYHXGNMGKSHKZWZVUEEV5EAC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying TVHP7FIEYQ6KTZ7CQ46THFSBXOLABDA4JCLHFZ2YCGWPVFCIBA4QC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO applying VYVBLX5Z5DE3ESREYTVEXGOFCZNNKE2XYIIQ6DL6QLLGQFOTULCQC to "f576df9391d6164f70f8e81df6af7343bcd7b951"
INFO Importing commit f576df9391d6164f70f8e81df6af7343bcd7b951: Merge branch 'blip_buffer'
INFO Importing commit 1f58ee915c8ffbb2bddaf0dc7e77163bbe4c4300: Document audio architecture
INFO Importing commit bfeca4c9e83286b01c12c62efb366dac225defb4: Document rules for avoiding circular header inclusion
INFO Importing commit 92f86a6396fc9e773ebaa4cce34d788327123133: Document how dependencies are added
INFO Importing commit da65146fb3936c717bec999e12d9e2e66aa9f3db: Add link to Google Drive folder of design notes
INFO applying SIFDLKP6I5IVD3ZLUTWRLGNWWJZS24XXV7WVK7AT7UNUXRMUTHTQC to "a2c064d39ccf39850442c6ec0ad34f4a7f44c366"
INFO applying 7NSZMCFBA54ZQM4LQROWNPC3SH2EE7TU323EF4FRKVPOKKBYAZPQC to "a2c064d39ccf39850442c6ec0ad34f4a7f44c366"
INFO applying HSZO3BB6G6FCXKD7XKP637W37A5LTRNNA7MAHUQYPSWJPXZZTTGQC to "a2c064d39ccf39850442c6ec0ad34f4a7f44c366"
INFO applying LBNTJIDZRC7VXFHGVIR476HF6NVNPAZW6ROC7X464MR3YKWNUR5QC to "a2c064d39ccf39850442c6ec0ad34f4a7f44c366"
INFO Importing commit a2c064d39ccf39850442c6ec0ad34f4a7f44c366: Edit DESIGN.md to add more documentation
INFO mv "src/audio/audio.h" "src/audio/audio_common.h"
INFO Importing commit 8d863bdd1831e15358e9083bb5c6668736d78242: Rewrite audio code
INFO Importing commit 508d69277a4b69d69e495f3a51f9bb942bf1bcd8: Rename cycle to clock in variables/types
The "clock cycle" unit can be abbreviated as "clock" or "cycle".
However, "cycle" can be confused with audio waveform cycles.
So call it "clock" instead.
Replace cycle with clock, cyc with clk.
INFO Importing commit efab082a89faa7509fa4bd43abc406d93d3222e1: Assert that AmplitudeFmt matches Amplitude (now int16_t)
INFO applying 3XDDUJF4NJGS2V7HW3J7UPQAWW4ACPM4EOC336LDJ3XSQOLSRCEQC to "a7c02d2ab92f87a57bd2f3128098597e62aa84fe"
INFO applying 4GGH7ZKQA7SFTR4DGIDUPKH4HDTVYKYCPWBD4T4FZBZCFNQODHIAC to "a7c02d2ab92f87a57bd2f3128098597e62aa84fe"
INFO applying HOD46OPLOFICYGWMIZVDMCAFDC3ZOTRUVSJS7ZQND4UQZ4LYARWAC to "a7c02d2ab92f87a57bd2f3128098597e62aa84fe"
INFO mv "src/audio/audio.h" "src/audio/audio_common.h"
INFO Importing commit a7c02d2ab92f87a57bd2f3128098597e62aa84fe: Merge branch (rewriting audio code)
ERROR While adding "src/audio/audio.cpp": Path not in repository: src/audio/audio.cpp
INFO Importing commit 38d6645be4b5739eb8a76bbce5d481d1bd2cfa32: Fix EventQueue<enum class> build on non-MSVC compilers
INFO Importing commit 3d7eed9ce2bf4e0768a4eb406470fecd0af92a71: Edit README (project does not build on non-MSVC compilers)
INFO Importing commit 18fcfcd27340d9157ce36a01ead4f41d3a6ae2e3: Reconfigure Blip_Buffer to maximize sound quality
INFO Importing commit f5349301ff274c80f0a26dbcb9b33451106f4e4f: Rearrange and document Blip_Synth constructor
INFO Importing commit ad5201daf78362943050bad0bd3a67e6e700995d: Convert Blip_Buffer from tabs to spaces, remove trailing whitespace
Every time I edit Blip_Buffer.h/cpp in Qt Creator,
it converts all modified lines from tabs to spaces
(the rest of my project uses spaces),
which I have to revert in Sublime Text.
INFO Importing commit bba46deb3acd9796aee08c3660fb991392dd3dad: Expand README.md
INFO Importing commit b5fd3574f99b0cea18dbe0c4076d389984aac956: Document that git subtree interferes with rebases
INFO Importing commit 50d870f5bfbaf65909b48288211e29e451846c1b: Squashed '3rdparty/nsfplay/' content from commit cb007dd
https://github.com/bbbradsmith/nsfplay/
INFO Importing commit 279e48d69bc41981ac7f8b0d8c3435bd8bb6dad2: nsfplay: Fix compilation with UNICODE enabled
INFO Importing commit 670748649523645f29bc712f3ca73e148a5b76b6: nsfplay: Prevent windows.h from #define-ing min and max
INFO Importing commit cd09f9b0fe600edbd3121d5c8042006834938870: nsfplay: Stub out NES_CPU (not used for sound driver)
INFO Importing commit 01ec87d14ee0abe7b0da30ea7c0f39c714043d83: Add nsfplay to Nes2A03Synth (APU1, APU2, and CPU)
INFO Importing commit 36af5805cdf13e220a23cf22d7191a425e4cd29a: Optimize Blip_Synth::update() to skip if amplitude unchanged
INFO Importing commit 5f4d4aa8bb6e1488aaa34a0fcc2f8199a81451a8: Make nsfplay compile on non-MSVC compilers
km6502m.h has macro expansion errors on GCC,
and is unnecessary since I don't emulate the 6502 CPU.
https://en.cppreference.com/w/cpp/language/integer_literal#Notes
>Due to maximal munch, hexadecimal integer literals ending in e and E, when followed by the operators + or -, must be separated from the operator with whitespace or parentheses in the source:
INFO Importing commit 4c6cf2872e132b23a6569dd023e27aef6afc54f8: Move Nes2A03Synth out of headers, only expose via unique_ptr<NesChipSynth>
INFO Importing commit 106d4c108ba570297cbff7760c4a996708ceff62: Rename NesChipSynth to BaseNesSynth
INFO Importing commit 160b2258bdf922c1bce2d70d74d892754de6d447: Split Nes2A03Synth into NesApu1Synth and NesApu2Synth
Eventually each of these can have an independent volume offset control.
INFO Importing commit 943ec57954f34e30d8adab49b657a2529ba0cb3b: Move enum ChipID to synth.h (not synth_common.h)
In practice, none of my BaseNesSynth subclasses actually use a ChipID.
So ChipID does not need to be visible to them.
This reduces the compilation penalty for adding or rearranging synths.
INFO Importing commit 3dd9254d61c139675aa26aff3fc1a8ca33c46762: Rename ChipID to NesChipID
INFO applying G6QBBZ4P7IF3X52U5L7LOEJKTV7ZWBIA3CNXU2LYJFEG6TSFBPSAC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying BKEUK3O7GFKLE7GJ454C2TRPAFP46IQB4GO2LYWJQ6BJTDSEARAAC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying CLBKFNPK63DKFEWN7L3CMHXOKFBVSIFQBZ6G5JFR6E34RAMP665QC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying 56BJ2AMWSGSOI7DOWSCXYLX2L2OKUCVDZ3OLO77HKODA2LOTPESQC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying QNIC7K4V35IX3KGYLSXFN5XX37FVY2GW2E7A7AVV3KXK2L2LYP2QC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying WSQAYQIJT2CLVRN5HUPB4XBKIPC7LWYEU4W5OA6VP7IV5D7SYMDAC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying WIOSCBWNMO6BHFGJLLWRXBJHP2XSMTTO3VFQZGIYSX5E6SJW2KGQC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying OAA2TGQD6HU4JWLCSE5ZL7XCY57V3OQLF2Y3TI5NTBCXN4K6DEAAC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying LFPFFGFTVCAG32TACNSNNVGLJRFYI4CSCU55VP5ZGTO3MEZOL4KQC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying OYOWUQKZKC6UNFIOE7XO5RN3JTIYXHIDGXSLOERLSK2LISGBNQDAC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying NXRDMQK6BHQXVS2S3HXHYOK43H5CERKCF4L2UDY446YHFP52QDEQC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO applying 5CWJOCU7EW7ID5VC3Z5CKTFLQ5RKESFM5RYJEAAXDJA3KCYOIKRAC to "231692620cd680df961bbb3290420fb2bfc5c305"
INFO Importing commit 231692620cd680df961bbb3290420fb2bfc5c305: Integrate nsfplay for audio generation (merge)
INFO Importing commit 1a6a332bd1aa312e1bf18bffeee8d2778f1c96f2: Add class EnumMap (extends std::array)
INFO Importing commit 548a2d414b52ce6e34b5e767bf76e3fc92d4e319: Convert EventQueue to use EnumMap
INFO Importing commit 476561f0ffde1e63153504337007bc4bce64f1fa: Port synth.cpp to enum class and EnumMap
INFO applying RQ23V7JRPXX75GF64GFTR6MRITM6SFGF3JGY4PB3NXCAICAJSH7AC to "a3fa09e011042d9a9097bd2728b45ebb42df4385"
INFO applying ZIA43YOZ5TDRNSOHGNKLJGQP56WQBLLVFSD3YSVGQJZCZ4WXT53AC to "a3fa09e011042d9a9097bd2728b45ebb42df4385"
INFO applying GWLTZJXQPCI7KFTMUTTUW3M3U4LGRXWIP5VRLB3EPHJUD2I2EOUQC to "a3fa09e011042d9a9097bd2728b45ebb42df4385"
INFO Importing commit a3fa09e011042d9a9097bd2728b45ebb42df4385: Switch from array[enum] to EnumMap<enum class>
INFO Importing commit d7c0f40734b407c88756955c26db788a1329e005: Fix typo in src/DESIGN.md
INFO Importing commit 04ac981747a2ddd456054e6cc51900d9f869d7b7: Move OverallSynth::OverallSynth() to .cpp
INFO Importing commit 39e9e5f57ccf9b8bb3bc2753e27143acfca89728: Rewrite OverallSynth::synthesize_overall() to use EventQueue
INFO Importing commit 301f2e4c4df126fcc24e9f86f0b5eb17a959b44e: Replace AudioThreadHandle.OutputCallback with unique_ptr to base class
- Move OutputCallback from output.h to cpp.
- Replace output.h AudioThreadHandle.OutputCallback with
std::unique_ptr<portaudio::CallbackInterface>,
which points to OutputCallback at runtime.
INFO Importing commit de2976673b486f7908c778c37db57f998d5d3ea2: src/audio/DESIGN.md
INFO Importing commit 21a00ae5b3f6f620a6703d3302477f1af9d2c752: Add map from ChannelID to NesChipID (names subject to change)
INFO Importing commit 306d8c0ebe749ab4a7cdc7f8746874276549e5e4: Move data shared between synth and sound_driver to src/audio/chips.h
INFO Importing commit 68bcb3c8357a8724428dc2d8ebd2a28bfbdfef00: Add audio.h exposing public interface of audio/ (FIXME de-namespace)
INFO Importing commit ba13e4236b5098e877a4edc42a4926e0fa1f6f45: Switch from if to continue
INFO Importing commit db91edde8c2a11fab43b6194042d7f2450900593: Add music engine
INFO Importing commit 596c72abfe5f5c88ca7a31702190ce9780a48f45: Overengineer and rewrite synth loop
INFO Importing commit 1ed2ab3127ae3e33e3fd12cfc5c9b33fa666f056: class NesSquareEngine : public SubMusicEngine
INFO Importing commit 29d353d778587ab1ac8e5c48c4bf4b7f8354d3ad: virtual ~BaseNesSynth() = default;
INFO Importing commit 63a3841401f7ff47958a8835592759c645c95e3a: Populate OverallMusicEngine with 2A03 channels, call OverallMusicEngine
INFO Importing commit 0ba763a2f621dd34fa1d1084f2cc42c92e6fa7a4: Add 3rdparty bitfield.h
INFO Importing commit bbda14b1b8fd9e282c2de8a3132b736fc0b8240a: Make Apu1PulseEngine produce sound
INFO Importing commit a021bffaa8626e45b4056880d1efb6345dc1f0f1: Play 1 note every 60 ticks
INFO Importing commit 87eea9429b811d991766d4feb1b35ec6ea03b2ec: Disable all channels except APU1 Pulse1/2
INFO Importing commit fb89aa69af3002d2560a09b858031975b2ae2934: ChannelSequencer sends [RowEvent] to SubMusicEngine
INFO Importing commit cdc6ab32a6014dcc43d545bcdea97ed0220cf38d: Remove .h headers from CMakeLists.txt
INFO Importing commit 0a4e12e4df19ac293c3b549c1018052bb2def741: Disable PortAudio MME to fix compiler warnings
INFO Importing commit cb1e2af06a2e0c15a77fcaf259ae02ed07f3e157: FIx nsfplay debugout.h compiler warnings
INFO Importing commit a4f2c3d6eb2c82dd19d4401a44b7a7df39144391: Change integer types in synth.cpp to fix compiler warnings
INFO Importing commit aa7b564490725ffdd25415ed6a255de926f601d4: Fix compiler warnings in test_document.cpp
INFO Importing commit 5acbe47c49f37f5b8712bc0814c938bc1aaacc7d: Edit Immer library to fix compiler warnings
INFO applying RHP4IQLO55YQWKK5V3DBMK5C5TTOY5D3LQG3I4CXEL4GOXBUFHNQC to "5eb87734ec0b74cf8b01924e9a4f68a1739b2cb4"
INFO applying 7CLQIHYIFI5W7GREWR4D2W6JEITYFJGVADH7BCSXJMXZOOWUUW4QC to "5eb87734ec0b74cf8b01924e9a4f68a1739b2cb4"
INFO applying DJGH4YH2DMPER4DLER3C6OXOLGNEUFBX6LJXBORGOUJZ4JF7FL3AC to "5eb87734ec0b74cf8b01924e9a4f68a1739b2cb4"
INFO applying FFOV4QQOZO4B52ZDAPGNSVK7RA67MOACP6QBX2PD7PFXHX4WINXQC to "5eb87734ec0b74cf8b01924e9a4f68a1739b2cb4"
INFO applying 2C5BJIG4DCPOGEL6VPHCZ7JHO3IH2E3NVLJG4Z6MHK7BVUBB6EKAC to "5eb87734ec0b74cf8b01924e9a4f68a1739b2cb4"
INFO Importing commit 5eb87734ec0b74cf8b01924e9a4f68a1739b2cb4: Fix all compiler warnings on MSVC2017
INFO mv "src/audio/synth/music_engine.cpp" "src/audio/synth/music_driver.cpp"
INFO mv "src/audio/synth/music_engine.h" "src/audio/synth/music_driver.h"
INFO mv "src/audio/synth/music_engine/nes_2a03.cpp" "src/audio/synth/music_driver/nes_2a03.cpp"
INFO mv "src/audio/synth/music_engine_common.h" "src/audio/synth/music_driver_common.h"
INFO Importing commit dc4d9e9a959b42441af527c19a56071a9c758ad3: Rename music engine to driver
INFO Importing commit a60bb8c8f22fdf384d42dba62cba218cb1b5446d: Move _temp_buffer to end of OverallSynth
INFO Importing commit 93dc3fd7de360a716273567a156de3e490333f0e: Add Rust-inspired rules to DESIGN.md
INFO Importing commit be9cb8e30e3fbc20ddcceb796294c57943c3b4fe: Edit DESIGN.md and add code style
INFO mv "src/sequencer/sequencer.cpp" "src/audio/synth/sequencer.cpp"
INFO mv "src/sequencer/sequencer.h" "src/audio/synth/sequencer.h"
INFO Importing commit af93cb022a2d71d0d8778d6691091d9d7668355a: Rearrange each chip's driver/synth into ChipInstance
Deleted:
- global ChannelID enum
- OverallMusicDriver
Added:
- OverallSynth holds vector<ChipIndex -> unique_ptr<ChipInstance subclass>>.
- ChipInstance subclasses hold ChipSequencer<ChannelID> and (Chip)Synth.
- Each chip's (Chip)Driver and (Chip)(Channel)Driver
no longer have superclasses and are not exposed outside .cpp.
Channel drivers can use custom APIs to tell their owning chip driver
how to handle chip-wide register writes.
This allows repeating the same chip multiple times.
The document format will be changed to 2D later.
INFO Importing commit 40e576f58371b81490c84a72ad79771dff0f9353: Move chip enum defintions to audio/synth/chip_kinds_common
This file can be referenced by both OverallSynth
and the pattern editor GUI and document creator.
INFO Importing commit 29bff2524551f597ff563f3668c3b07f506a69cf: Add EnumMap CHIP_TO_NCHAN
INFO applying P4AYN64QXG3CMXOPUNQAMIVCU4R7ULWJZNQBH6AHR4B54X3WGO2QC to "ef9784b7044e9bfdc42cd1c07d1ee52054675ae2"
INFO applying UVMGOTLIBH2NJLQBGKKMBPWNO5N4JBNPV46IZSWFGKXP5YZLFWWAC to "ef9784b7044e9bfdc42cd1c07d1ee52054675ae2"
INFO mv "algorithm.hpp" "3rdparty/immer/algorithm.hpp"
INFO mv "array.hpp" "3rdparty/immer/array.hpp"
INFO mv "array_transient.hpp" "3rdparty/immer/array_transient.hpp"
INFO mv "atom.hpp" "3rdparty/immer/atom.hpp"
INFO mv "box.hpp" "3rdparty/immer/box.hpp"
INFO mv "config.hpp" "3rdparty/immer/config.hpp"
INFO mv "detail/arrays/no_capacity.hpp" "3rdparty/immer/detail/arrays/no_capacity.hpp"
INFO mv "detail/arrays/node.hpp" "3rdparty/immer/detail/arrays/node.hpp"
INFO mv "detail/arrays/with_capacity.hpp" "3rdparty/immer/detail/arrays/with_capacity.hpp"
INFO mv "detail/combine_standard_layout.hpp" "3rdparty/immer/detail/combine_standard_layout.hpp"
INFO mv "detail/hamts/bits.hpp" "3rdparty/immer/detail/hamts/bits.hpp"
INFO mv "detail/hamts/champ.hpp" "3rdparty/immer/detail/hamts/champ.hpp"
INFO mv "detail/hamts/champ_iterator.hpp" "3rdparty/immer/detail/hamts/champ_iterator.hpp"
INFO mv "detail/hamts/node.hpp" "3rdparty/immer/detail/hamts/node.hpp"
INFO mv "detail/iterator_facade.hpp" "3rdparty/immer/detail/iterator_facade.hpp"
INFO mv "detail/rbts/bits.hpp" "3rdparty/immer/detail/rbts/bits.hpp"
INFO mv "detail/rbts/node.hpp" "3rdparty/immer/detail/rbts/node.hpp"
INFO mv "detail/rbts/operations.hpp" "3rdparty/immer/detail/rbts/operations.hpp"
INFO mv "detail/rbts/position.hpp" "3rdparty/immer/detail/rbts/position.hpp"
INFO mv "detail/rbts/rbtree.hpp" "3rdparty/immer/detail/rbts/rbtree.hpp"
INFO mv "detail/rbts/rbtree_iterator.hpp" "3rdparty/immer/detail/rbts/rbtree_iterator.hpp"
INFO mv "detail/rbts/rrbtree.hpp" "3rdparty/immer/detail/rbts/rrbtree.hpp"
INFO mv "detail/rbts/rrbtree_iterator.hpp" "3rdparty/immer/detail/rbts/rrbtree_iterator.hpp"
INFO mv "detail/rbts/visitor.hpp" "3rdparty/immer/detail/rbts/visitor.hpp"
INFO mv "detail/ref_count_base.hpp" "3rdparty/immer/detail/ref_count_base.hpp"
INFO mv "detail/type_traits.hpp" "3rdparty/immer/detail/type_traits.hpp"
INFO mv "detail/util.hpp" "3rdparty/immer/detail/util.hpp"
INFO mv "experimental/detail/dvektor_impl.hpp" "3rdparty/immer/experimental/detail/dvektor_impl.hpp"
INFO mv "experimental/dvektor.hpp" "3rdparty/immer/experimental/dvektor.hpp"
INFO mv "flex_vector.hpp" "3rdparty/immer/flex_vector.hpp"
INFO mv "flex_vector_transient.hpp" "3rdparty/immer/flex_vector_transient.hpp"
INFO mv "heap/cpp_heap.hpp" "3rdparty/immer/heap/cpp_heap.hpp"
INFO mv "heap/debug_size_heap.hpp" "3rdparty/immer/heap/debug_size_heap.hpp"
INFO mv "heap/free_list_heap.hpp" "3rdparty/immer/heap/free_list_heap.hpp"
INFO mv "heap/free_list_node.hpp" "3rdparty/immer/heap/free_list_node.hpp"
INFO mv "heap/gc_heap.hpp" "3rdparty/immer/heap/gc_heap.hpp"
INFO mv "heap/heap_policy.hpp" "3rdparty/immer/heap/heap_policy.hpp"
INFO mv "heap/identity_heap.hpp" "3rdparty/immer/heap/identity_heap.hpp"
INFO mv "heap/malloc_heap.hpp" "3rdparty/immer/heap/malloc_heap.hpp"
INFO mv "heap/split_heap.hpp" "3rdparty/immer/heap/split_heap.hpp"
INFO mv "heap/tags.hpp" "3rdparty/immer/heap/tags.hpp"
INFO mv "heap/thread_local_free_list_heap.hpp" "3rdparty/immer/heap/thread_local_free_list_heap.hpp"
INFO mv "heap/unsafe_free_list_heap.hpp" "3rdparty/immer/heap/unsafe_free_list_heap.hpp"
INFO mv "heap/with_data.hpp" "3rdparty/immer/heap/with_data.hpp"
INFO mv "map.hpp" "3rdparty/immer/map.hpp"
INFO mv "map_transient.hpp" "3rdparty/immer/map_transient.hpp"
INFO mv "memory_policy.hpp" "3rdparty/immer/memory_policy.hpp"
INFO mv "refcount/enable_intrusive_ptr.hpp" "3rdparty/immer/refcount/enable_intrusive_ptr.hpp"
INFO mv "refcount/no_refcount_policy.hpp" "3rdparty/immer/refcount/no_refcount_policy.hpp"
INFO mv "refcount/refcount_policy.hpp" "3rdparty/immer/refcount/refcount_policy.hpp"
INFO mv "refcount/unsafe_refcount_policy.hpp" "3rdparty/immer/refcount/unsafe_refcount_policy.hpp"
INFO mv "set.hpp" "3rdparty/immer/set.hpp"
INFO mv "set_transient.hpp" "3rdparty/immer/set_transient.hpp"
INFO mv "transience/gc_transience_policy.hpp" "3rdparty/immer/transience/gc_transience_policy.hpp"
INFO mv "transience/no_transience_policy.hpp" "3rdparty/immer/transience/no_transience_policy.hpp"
INFO mv "vector.hpp" "3rdparty/immer/vector.hpp"
INFO mv "vector_transient.hpp" "3rdparty/immer/vector_transient.hpp"
INFO Importing commit ef9784b7044e9bfdc42cd1c07d1ee52054675ae2: Split '3rdparty/immer/' into commit '4ebabd60f20d983298f101cf13442b795504f3b0'
git-subtree-dir: 3rdparty/immer
git-subtree-mainline: 29bff2524551f597ff563f3668c3b07f506a69cf
git-subtree-split: 4ebabd60f20d983298f101cf13442b795504f3b0
INFO applying ZIASOORY6RYQLHOK4AZDXWASMT5UDAXX4S4YVEXDKJNS5XD4YN2QC to "ceaf9a1e4961b658e125b53d5b8dc9c2793e364a"
INFO applying EBFBOUYWM4QRMKQ4Q7AD5DQPRN2WFJT2TXRPFKL5QZVI4H6W6JPAC to "ceaf9a1e4961b658e125b53d5b8dc9c2793e364a"
INFO applying OTNWZZB3ASW3IS4QLHDOE5M4HEAP4YNV6PULBLQ6S2I3M4UP6WCQC to "ceaf9a1e4961b658e125b53d5b8dc9c2793e364a"
INFO mv "algorithm.hpp" "3rdparty/immer/algorithm.hpp"
INFO mv "array.hpp" "3rdparty/immer/array.hpp"
INFO mv "array_transient.hpp" "3rdparty/immer/array_transient.hpp"
INFO mv "atom.hpp" "3rdparty/immer/atom.hpp"
INFO mv "box.hpp" "3rdparty/immer/box.hpp"
INFO mv "config.hpp" "3rdparty/immer/config.hpp"
INFO mv "detail/arrays/no_capacity.hpp" "3rdparty/immer/detail/arrays/no_capacity.hpp"
INFO mv "detail/arrays/node.hpp" "3rdparty/immer/detail/arrays/node.hpp"
INFO mv "detail/arrays/with_capacity.hpp" "3rdparty/immer/detail/arrays/with_capacity.hpp"
INFO mv "detail/combine_standard_layout.hpp" "3rdparty/immer/detail/combine_standard_layout.hpp"
INFO mv "detail/hamts/bits.hpp" "3rdparty/immer/detail/hamts/bits.hpp"
INFO mv "detail/hamts/champ.hpp" "3rdparty/immer/detail/hamts/champ.hpp"
INFO mv "detail/hamts/champ_iterator.hpp" "3rdparty/immer/detail/hamts/champ_iterator.hpp"
INFO mv "detail/hamts/node.hpp" "3rdparty/immer/detail/hamts/node.hpp"
INFO mv "detail/iterator_facade.hpp" "3rdparty/immer/detail/iterator_facade.hpp"
INFO mv "detail/rbts/bits.hpp" "3rdparty/immer/detail/rbts/bits.hpp"
INFO mv "detail/rbts/node.hpp" "3rdparty/immer/detail/rbts/node.hpp"
INFO mv "detail/rbts/operations.hpp" "3rdparty/immer/detail/rbts/operations.hpp"
INFO mv "detail/rbts/position.hpp" "3rdparty/immer/detail/rbts/position.hpp"
INFO mv "detail/rbts/rbtree.hpp" "3rdparty/immer/detail/rbts/rbtree.hpp"
INFO mv "detail/rbts/rbtree_iterator.hpp" "3rdparty/immer/detail/rbts/rbtree_iterator.hpp"
INFO mv "detail/rbts/rrbtree.hpp" "3rdparty/immer/detail/rbts/rrbtree.hpp"
INFO mv "detail/rbts/rrbtree_iterator.hpp" "3rdparty/immer/detail/rbts/rrbtree_iterator.hpp"
INFO mv "detail/rbts/visitor.hpp" "3rdparty/immer/detail/rbts/visitor.hpp"
INFO mv "detail/ref_count_base.hpp" "3rdparty/immer/detail/ref_count_base.hpp"
INFO mv "detail/type_traits.hpp" "3rdparty/immer/detail/type_traits.hpp"
INFO mv "detail/util.hpp" "3rdparty/immer/detail/util.hpp"
INFO mv "experimental/detail/dvektor_impl.hpp" "3rdparty/immer/experimental/detail/dvektor_impl.hpp"
INFO mv "experimental/dvektor.hpp" "3rdparty/immer/experimental/dvektor.hpp"
INFO mv "flex_vector.hpp" "3rdparty/immer/flex_vector.hpp"
INFO mv "flex_vector_transient.hpp" "3rdparty/immer/flex_vector_transient.hpp"
INFO mv "heap/cpp_heap.hpp" "3rdparty/immer/heap/cpp_heap.hpp"
INFO mv "heap/debug_size_heap.hpp" "3rdparty/immer/heap/debug_size_heap.hpp"
INFO mv "heap/free_list_heap.hpp" "3rdparty/immer/heap/free_list_heap.hpp"
INFO mv "heap/free_list_node.hpp" "3rdparty/immer/heap/free_list_node.hpp"
INFO mv "heap/gc_heap.hpp" "3rdparty/immer/heap/gc_heap.hpp"
INFO mv "heap/heap_policy.hpp" "3rdparty/immer/heap/heap_policy.hpp"
INFO mv "heap/identity_heap.hpp" "3rdparty/immer/heap/identity_heap.hpp"
INFO mv "heap/malloc_heap.hpp" "3rdparty/immer/heap/malloc_heap.hpp"
INFO mv "heap/split_heap.hpp" "3rdparty/immer/heap/split_heap.hpp"
INFO mv "heap/tags.hpp" "3rdparty/immer/heap/tags.hpp"
INFO mv "heap/thread_local_free_list_heap.hpp" "3rdparty/immer/heap/thread_local_free_list_heap.hpp"
INFO mv "heap/unsafe_free_list_heap.hpp" "3rdparty/immer/heap/unsafe_free_list_heap.hpp"
INFO mv "heap/with_data.hpp" "3rdparty/immer/heap/with_data.hpp"
INFO mv "map.hpp" "3rdparty/immer/map.hpp"
INFO mv "map_transient.hpp" "3rdparty/immer/map_transient.hpp"
INFO mv "memory_policy.hpp" "3rdparty/immer/memory_policy.hpp"
INFO mv "refcount/enable_intrusive_ptr.hpp" "3rdparty/immer/refcount/enable_intrusive_ptr.hpp"
INFO mv "refcount/no_refcount_policy.hpp" "3rdparty/immer/refcount/no_refcount_policy.hpp"
INFO mv "refcount/refcount_policy.hpp" "3rdparty/immer/refcount/refcount_policy.hpp"
INFO mv "refcount/unsafe_refcount_policy.hpp" "3rdparty/immer/refcount/unsafe_refcount_policy.hpp"
INFO mv "set.hpp" "3rdparty/immer/set.hpp"
INFO mv "set_transient.hpp" "3rdparty/immer/set_transient.hpp"
INFO mv "transience/gc_transience_policy.hpp" "3rdparty/immer/transience/gc_transience_policy.hpp"
INFO mv "transience/no_transience_policy.hpp" "3rdparty/immer/transience/no_transience_policy.hpp"
INFO mv "vector.hpp" "3rdparty/immer/vector.hpp"
INFO mv "vector_transient.hpp" "3rdparty/immer/vector_transient.hpp"
INFO Importing commit ceaf9a1e4961b658e125b53d5b8dc9c2793e364a: Update immer subtree
INFO Importing commit 8a71e4e3d55b31796bedbfa16f00a25df56e8e4b: Switch from spaceship operator to separate comparison operators
Fixes GCC (possibly Clang) compatibility.
ERROR While adding "src/document.h": Path not in repository: src/document.h
INFO Importing commit d80cd864534f83e92f4772ee90506b8d96d0dd6e: Remove 3rdparty/portaudio
ERROR While adding "3rdparty/portaudio/.gitattributes": Path not in repository: 3rdparty/portaudio/.gitattributes
INFO applying TW37YKTWKEHYMQ7LNWKSZYOBWOIB7FVKXAG2IYXFJYPXGGJEX35QC to "88a90a7b0d7b6f34aea5185620c54581b3da3e7d"
INFO mv "bindings/cpp/AUTHORS" "3rdparty/nsfplay/libemuwa2/winamp2/WINAMP_SDK_IS_REQUIRED.TXT"
INFO mv "bindings/cpp/NEWS" "3rdparty/nsfplay/nsfplug_ui/NSFDialogModel.cpp"
INFO mv "bindings/cpp/README" "3rdparty/nsfplay/nsfplug_ui/NSFDialogModel.h"
INFO mv "bindings/cpp/build/gnu/OUT_OF_DATE" "3rdparty/nsfplay/xgm/Makefile"
INFO mv ".gitattributes" "3rdparty/portaudio/.gitattributes"
INFO mv "Doxyfile" "3rdparty/portaudio/Doxyfile"
INFO mv "Doxyfile.developer" "3rdparty/portaudio/Doxyfile.developer"
INFO mv "LICENSE.txt" "3rdparty/portaudio/LICENSE.txt"
INFO mv "Makefile.in" "3rdparty/portaudio/Makefile.in"
INFO mv "README.configure.txt" "3rdparty/portaudio/README.configure.txt"
INFO mv "README.txt" "3rdparty/portaudio/README.txt"
INFO mv "SConstruct" "3rdparty/portaudio/SConstruct"
INFO mv "aclocal.m4" "3rdparty/portaudio/aclocal.m4"
INFO mv "bindings/cpp/build/vc7/OUT_OF_DATE" "3rdparty/portaudio/bindings/cpp/AUTHORS"
INFO mv "bindings/cpp/COPYING" "3rdparty/portaudio/bindings/cpp/COPYING"
INFO mv "bindings/cpp/ChangeLog" "3rdparty/portaudio/bindings/cpp/ChangeLog"
INFO mv "bindings/cpp/INSTALL" "3rdparty/portaudio/bindings/cpp/INSTALL"
INFO mv "bindings/cpp/Makefile.am" "3rdparty/portaudio/bindings/cpp/Makefile.am"
INFO mv "bindings/cpp/Makefile.in" "3rdparty/portaudio/bindings/cpp/Makefile.in"
INFO mv "bindings/cpp/SConscript" "3rdparty/portaudio/bindings/cpp/SConscript"
INFO mv "bindings/cpp/aclocal.m4" "3rdparty/portaudio/bindings/cpp/aclocal.m4"
INFO mv "bindings/cpp/bin/Makefile.am" "3rdparty/portaudio/bindings/cpp/bin/Makefile.am"
INFO mv "bindings/cpp/bin/Makefile.in" "3rdparty/portaudio/bindings/cpp/bin/Makefile.in"
INFO mv "bindings/cpp/build/gnu/Makefile.in" "3rdparty/portaudio/bindings/cpp/build/gnu/Makefile.in"
INFO mv "bindings/cpp/build/gnu/aclocal.m4" "3rdparty/portaudio/bindings/cpp/build/gnu/aclocal.m4"
INFO mv "bindings/cpp/build/gnu/config.guess" "3rdparty/portaudio/bindings/cpp/build/gnu/config.guess"
INFO mv "bindings/cpp/build/gnu/config.sub" "3rdparty/portaudio/bindings/cpp/build/gnu/config.sub"
INFO mv "bindings/cpp/build/gnu/configure" "3rdparty/portaudio/bindings/cpp/build/gnu/configure"
INFO mv "bindings/cpp/build/gnu/configure.ac" "3rdparty/portaudio/bindings/cpp/build/gnu/configure.ac"
INFO mv "bindings/cpp/build/gnu/install-sh" "3rdparty/portaudio/bindings/cpp/build/gnu/install-sh"
INFO mv "bindings/cpp/build/vc6/devs_example.dsp" "3rdparty/portaudio/bindings/cpp/build/vc6/devs_example.dsp"
INFO mv "bindings/cpp/build/vc6/devs_example.dsw" "3rdparty/portaudio/bindings/cpp/build/vc6/devs_example.dsw"
INFO mv "bindings/cpp/build/vc6/sine_example.dsp" "3rdparty/portaudio/bindings/cpp/build/vc6/sine_example.dsp"
INFO mv "bindings/cpp/build/vc6/sine_example.dsw" "3rdparty/portaudio/bindings/cpp/build/vc6/sine_example.dsw"
INFO mv "bindings/cpp/build/vc6/static_library.dsp" "3rdparty/portaudio/bindings/cpp/build/vc6/static_library.dsp"
INFO mv "bindings/cpp/build/vc6/static_library.dsw" "3rdparty/portaudio/bindings/cpp/build/vc6/static_library.dsw"
INFO mv "bindings/cpp/build/vc7_1/devs_example.sln" "3rdparty/portaudio/bindings/cpp/build/vc7_1/devs_example.sln"
INFO mv "bindings/cpp/build/vc7_1/devs_example.vcproj" "3rdparty/portaudio/bindings/cpp/build/vc7_1/devs_example.vcproj"
INFO mv "bindings/cpp/build/vc7_1/sine_example.sln" "3rdparty/portaudio/bindings/cpp/build/vc7_1/sine_example.sln"
INFO mv "bindings/cpp/build/vc7_1/sine_example.vcproj" "3rdparty/portaudio/bindings/cpp/build/vc7_1/sine_example.vcproj"
INFO mv "bindings/cpp/build/vc7_1/static_library.sln" "3rdparty/portaudio/bindings/cpp/build/vc7_1/static_library.sln"
INFO mv "bindings/cpp/build/vc7_1/static_library.vcproj" "3rdparty/portaudio/bindings/cpp/build/vc7_1/static_library.vcproj"
INFO mv "bindings/cpp/configure" "3rdparty/portaudio/bindings/cpp/configure"
INFO mv "bindings/cpp/configure.ac" "3rdparty/portaudio/bindings/cpp/configure.ac"
INFO mv "bindings/cpp/doc/Makefile.am" "3rdparty/portaudio/bindings/cpp/doc/Makefile.am"
INFO mv "bindings/cpp/doc/Makefile.in" "3rdparty/portaudio/bindings/cpp/doc/Makefile.in"
INFO mv "bindings/cpp/doc/README" "3rdparty/portaudio/bindings/cpp/doc/README"
INFO mv "bindings/cpp/doc/config.doxy" "3rdparty/portaudio/bindings/cpp/doc/config.doxy"
INFO mv "bindings/cpp/doc/config.doxy.linux" "3rdparty/portaudio/bindings/cpp/doc/config.doxy.linux"
INFO mv "bindings/cpp/example/devs.cxx" "3rdparty/portaudio/bindings/cpp/example/devs.cxx"
INFO mv "bindings/cpp/example/sine.cxx" "3rdparty/portaudio/bindings/cpp/example/sine.cxx"
INFO mv "bindings/cpp/include/Makefile.am" "3rdparty/portaudio/bindings/cpp/include/Makefile.am"
INFO mv "bindings/cpp/include/Makefile.in" "3rdparty/portaudio/bindings/cpp/include/Makefile.in"
INFO mv "bindings/cpp/include/portaudiocpp/AsioDeviceAdapter.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/AsioDeviceAdapter.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/AutoSystem.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/AutoSystem.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/BlockingStream.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/BlockingStream.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/CFunCallbackStream.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/CFunCallbackStream.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/CallbackInterface.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/CallbackInterface.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/CallbackStream.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/CallbackStream.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/CppFunCallbackStream.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/CppFunCallbackStream.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/Device.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/Device.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/DirectionSpecificStreamParameters.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/DirectionSpecificStreamParameters.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/Exception.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/Exception.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/HostApi.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/HostApi.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/InterfaceCallbackStream.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/InterfaceCallbackStream.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/MemFunCallbackStream.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/MemFunCallbackStream.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/PortAudioCpp.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/PortAudioCpp.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/SampleDataFormat.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/SampleDataFormat.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/Stream.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/Stream.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/StreamParameters.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/StreamParameters.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/System.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/System.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/SystemDeviceIterator.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/SystemDeviceIterator.hxx"
INFO mv "bindings/cpp/include/portaudiocpp/SystemHostApiIterator.hxx" "3rdparty/portaudio/bindings/cpp/include/portaudiocpp/SystemHostApiIterator.hxx"
INFO mv "bindings/cpp/lib/Makefile.am" "3rdparty/portaudio/bindings/cpp/lib/Makefile.am"
INFO mv "bindings/cpp/lib/Makefile.in" "3rdparty/portaudio/bindings/cpp/lib/Makefile.in"
INFO mv "bindings/cpp/portaudiocpp.pc.in" "3rdparty/portaudio/bindings/cpp/portaudiocpp.pc.in"
INFO mv "bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/BlockingStream.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/BlockingStream.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/CFunCallbackStream.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/CFunCallbackStream.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/CallbackInterface.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/CallbackInterface.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/CallbackStream.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/CallbackStream.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/CppFunCallbackStream.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/CppFunCallbackStream.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/Device.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/Device.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/DirectionSpecificStreamParameters.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/DirectionSpecificStreamParameters.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/Exception.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/Exception.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/HostApi.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/HostApi.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/MemFunCallbackStream.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/MemFunCallbackStream.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/Stream.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/Stream.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/StreamParameters.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/StreamParameters.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/System.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/System.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/SystemDeviceIterator.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/SystemDeviceIterator.cxx"
INFO mv "bindings/cpp/source/portaudiocpp/SystemHostApiIterator.cxx" "3rdparty/portaudio/bindings/cpp/source/portaudiocpp/SystemHostApiIterator.cxx"
INFO mv "bindings/java/c/build/vs2010/PortAudioJNI/PortAudioJNI.sln" "3rdparty/portaudio/bindings/java/c/build/vs2010/PortAudioJNI/PortAudioJNI.sln"
INFO mv "bindings/java/c/build/vs2010/PortAudioJNI/PortAudioJNI.vcproj" "3rdparty/portaudio/bindings/java/c/build/vs2010/PortAudioJNI/PortAudioJNI.vcproj"
INFO mv "bindings/java/c/build/vs2010/PortAudioJNI/PortAudioJNI.vcxproj" "3rdparty/portaudio/bindings/java/c/build/vs2010/PortAudioJNI/PortAudioJNI.vcxproj"
INFO mv "bindings/java/c/src/com_portaudio_BlockingStream.c" "3rdparty/portaudio/bindings/java/c/src/com_portaudio_BlockingStream.c"
INFO mv "bindings/java/c/src/com_portaudio_BlockingStream.h" "3rdparty/portaudio/bindings/java/c/src/com_portaudio_BlockingStream.h"
INFO mv "bindings/java/c/src/com_portaudio_PortAudio.c" "3rdparty/portaudio/bindings/java/c/src/com_portaudio_PortAudio.c"
INFO mv "bindings/java/c/src/com_portaudio_PortAudio.h" "3rdparty/portaudio/bindings/java/c/src/com_portaudio_PortAudio.h"
INFO mv "bindings/java/c/src/jpa_tools.c" "3rdparty/portaudio/bindings/java/c/src/jpa_tools.c"
INFO mv "bindings/java/c/src/jpa_tools.h" "3rdparty/portaudio/bindings/java/c/src/jpa_tools.h"
INFO mv "bindings/java/jportaudio.dox" "3rdparty/portaudio/bindings/java/jportaudio.dox"
INFO mv "bindings/java/jportaudio/.classpath" "3rdparty/portaudio/bindings/java/jportaudio/.classpath"
INFO mv "bindings/java/jportaudio/.project" "3rdparty/portaudio/bindings/java/jportaudio/.project"
INFO mv "bindings/java/jportaudio/jtests/com/portaudio/PlaySine.java" "3rdparty/portaudio/bindings/java/jportaudio/jtests/com/portaudio/PlaySine.java"
INFO mv "bindings/java/jportaudio/jtests/com/portaudio/TestBasic.java" "3rdparty/portaudio/bindings/java/jportaudio/jtests/com/portaudio/TestBasic.java"
INFO mv "bindings/java/jportaudio/src/com/portaudio/BlockingStream.java" "3rdparty/portaudio/bindings/java/jportaudio/src/com/portaudio/BlockingStream.java"
INFO mv "bindings/java/jportaudio/src/com/portaudio/DeviceInfo.java" "3rdparty/portaudio/bindings/java/jportaudio/src/com/portaudio/DeviceInfo.java"
INFO mv "bindings/java/jportaudio/src/com/portaudio/HostApiInfo.java" "3rdparty/portaudio/bindings/java/jportaudio/src/com/portaudio/HostApiInfo.java"
INFO mv "bindings/java/jportaudio/src/com/portaudio/PortAudio.java" "3rdparty/portaudio/bindings/java/jportaudio/src/com/portaudio/PortAudio.java"
INFO mv "bindings/java/jportaudio/src/com/portaudio/StreamInfo.java" "3rdparty/portaudio/bindings/java/jportaudio/src/com/portaudio/StreamInfo.java"
INFO mv "bindings/java/jportaudio/src/com/portaudio/StreamParameters.java" "3rdparty/portaudio/bindings/java/jportaudio/src/com/portaudio/StreamParameters.java"
INFO mv "bindings/java/scripts/make_header.bat" "3rdparty/portaudio/bindings/java/scripts/make_header.bat"
INFO mv "build/msvc/portaudio.def" "3rdparty/portaudio/build/msvc/portaudio.def"
INFO mv "build/msvc/portaudio.dsp" "3rdparty/portaudio/build/msvc/portaudio.dsp"
INFO mv "build/msvc/portaudio.dsw" "3rdparty/portaudio/build/msvc/portaudio.dsw"
INFO mv "build/msvc/portaudio.sln" "3rdparty/portaudio/build/msvc/portaudio.sln"
INFO mv "build/msvc/portaudio.vcproj" "3rdparty/portaudio/build/msvc/portaudio.vcproj"
INFO mv "build/msvc/readme.txt" "3rdparty/portaudio/build/msvc/readme.txt"
INFO mv "build/scons/SConscript_common" "3rdparty/portaudio/build/scons/SConscript_common"
INFO mv "build/scons/SConscript_opts" "3rdparty/portaudio/build/scons/SConscript_opts"
INFO mv "clear_gitrevision.sh" "3rdparty/portaudio/clear_gitrevision.sh"
INFO mv "cmake_support/FindASIOSDK.cmake" "3rdparty/portaudio/cmake_support/FindASIOSDK.cmake"
INFO mv "cmake_support/FindJack.cmake" "3rdparty/portaudio/cmake_support/FindJack.cmake"
INFO mv "cmake_support/cmake_uninstall.cmake.in" "3rdparty/portaudio/cmake_support/cmake_uninstall.cmake.in"
INFO mv "cmake_support/options_cmake.h.in" "3rdparty/portaudio/cmake_support/options_cmake.h.in"
INFO mv "cmake_support/portaudio-2.0.pc.in" "3rdparty/portaudio/cmake_support/portaudio-2.0.pc.in"
INFO mv "cmake_support/portaudioConfig.cmake.in" "3rdparty/portaudio/cmake_support/portaudioConfig.cmake.in"
INFO mv "cmake_support/template_portaudio.def" "3rdparty/portaudio/cmake_support/template_portaudio.def"
INFO mv "config.guess" "3rdparty/portaudio/config.guess"
INFO mv "config.sub" "3rdparty/portaudio/config.sub"
INFO mv "configure" "3rdparty/portaudio/configure"
INFO mv "configure.in" "3rdparty/portaudio/configure.in"
INFO mv "depcomp" "3rdparty/portaudio/depcomp"
INFO mv "doc/src/api_overview.dox" "3rdparty/portaudio/doc/src/api_overview.dox"
INFO mv "doc/src/images/portaudio-external-architecture-diagram.png" "3rdparty/portaudio/doc/src/images/portaudio-external-architecture-diagram.png"
INFO mv "doc/src/license.dox" "3rdparty/portaudio/doc/src/license.dox"
INFO mv "doc/src/mainpage.dox" "3rdparty/portaudio/doc/src/mainpage.dox"
INFO mv "doc/src/srcguide.dox" "3rdparty/portaudio/doc/src/srcguide.dox"
INFO mv "doc/src/tutorial/blocking_read_write.dox" "3rdparty/portaudio/doc/src/tutorial/blocking_read_write.dox"
INFO mv "doc/src/tutorial/compile_cmake.dox" "3rdparty/portaudio/doc/src/tutorial/compile_cmake.dox"
INFO mv "doc/src/tutorial/compile_linux.dox" "3rdparty/portaudio/doc/src/tutorial/compile_linux.dox"
INFO mv "doc/src/tutorial/compile_mac_coreaudio.dox" "3rdparty/portaudio/doc/src/tutorial/compile_mac_coreaudio.dox"
INFO mv "doc/src/tutorial/compile_windows.dox" "3rdparty/portaudio/doc/src/tutorial/compile_windows.dox"
INFO mv "doc/src/tutorial/compile_windows_asio_msvc.dox" "3rdparty/portaudio/doc/src/tutorial/compile_windows_asio_msvc.dox"
INFO mv "doc/src/tutorial/compile_windows_mingw.dox" "3rdparty/portaudio/doc/src/tutorial/compile_windows_mingw.dox"
INFO mv "doc/src/tutorial/exploring.dox" "3rdparty/portaudio/doc/src/tutorial/exploring.dox"
INFO mv "doc/src/tutorial/initializing_portaudio.dox" "3rdparty/portaudio/doc/src/tutorial/initializing_portaudio.dox"
INFO mv "doc/src/tutorial/open_default_stream.dox" "3rdparty/portaudio/doc/src/tutorial/open_default_stream.dox"
INFO mv "doc/src/tutorial/querying_devices.dox" "3rdparty/portaudio/doc/src/tutorial/querying_devices.dox"
INFO mv "doc/src/tutorial/start_stop_abort.dox" "3rdparty/portaudio/doc/src/tutorial/start_stop_abort.dox"
INFO mv "doc/src/tutorial/terminating_portaudio.dox" "3rdparty/portaudio/doc/src/tutorial/terminating_portaudio.dox"
INFO mv "doc/src/tutorial/tutorial_start.dox" "3rdparty/portaudio/doc/src/tutorial/tutorial_start.dox"
INFO mv "doc/src/tutorial/utility_functions.dox" "3rdparty/portaudio/doc/src/tutorial/utility_functions.dox"
INFO mv "doc/src/tutorial/writing_a_callback.dox" "3rdparty/portaudio/doc/src/tutorial/writing_a_callback.dox"
INFO mv "doc/utils/checkfiledocs.py" "3rdparty/portaudio/doc/utils/checkfiledocs.py"
INFO mv "examples/CMakeLists.txt" "3rdparty/portaudio/examples/CMakeLists.txt"
INFO mv "examples/pa_devs.c" "3rdparty/portaudio/examples/pa_devs.c"
INFO mv "examples/pa_fuzz.c" "3rdparty/portaudio/examples/pa_fuzz.c"
INFO mv "examples/paex_mono_asio_channel_select.c" "3rdparty/portaudio/examples/paex_mono_asio_channel_select.c"
INFO mv "examples/paex_ocean_shore.c" "3rdparty/portaudio/examples/paex_ocean_shore.c"
INFO mv "examples/paex_pink.c" "3rdparty/portaudio/examples/paex_pink.c"
INFO mv "examples/paex_read_write_wire.c" "3rdparty/portaudio/examples/paex_read_write_wire.c"
INFO mv "examples/paex_record.c" "3rdparty/portaudio/examples/paex_record.c"
INFO mv "examples/paex_record_file.c" "3rdparty/portaudio/examples/paex_record_file.c"
INFO mv "examples/paex_saw.c" "3rdparty/portaudio/examples/paex_saw.c"
INFO mv "examples/paex_sine.c" "3rdparty/portaudio/examples/paex_sine.c"
INFO mv "examples/paex_sine_c++.cpp" "3rdparty/portaudio/examples/paex_sine_c++.cpp"
INFO mv "examples/paex_wmme_ac3.c" "3rdparty/portaudio/examples/paex_wmme_ac3.c"
INFO mv "examples/paex_wmme_surround.c" "3rdparty/portaudio/examples/paex_wmme_surround.c"
INFO mv "examples/paex_write_sine.c" "3rdparty/portaudio/examples/paex_write_sine.c"
INFO mv "examples/paex_write_sine_nonint.c" "3rdparty/portaudio/examples/paex_write_sine_nonint.c"
INFO mv "fixdir.bat" "3rdparty/portaudio/fixdir.bat"
INFO mv "fixfile.bat" "3rdparty/portaudio/fixfile.bat"
INFO mv "include/pa_asio.h" "3rdparty/portaudio/include/pa_asio.h"
INFO mv "include/pa_jack.h" "3rdparty/portaudio/include/pa_jack.h"
INFO mv "include/pa_linux_alsa.h" "3rdparty/portaudio/include/pa_linux_alsa.h"
INFO mv "include/pa_mac_core.h" "3rdparty/portaudio/include/pa_mac_core.h"
INFO mv "include/pa_win_ds.h" "3rdparty/portaudio/include/pa_win_ds.h"
INFO mv "include/pa_win_wasapi.h" "3rdparty/portaudio/include/pa_win_wasapi.h"
INFO mv "include/pa_win_waveformat.h" "3rdparty/portaudio/include/pa_win_waveformat.h"
INFO mv "include/pa_win_wdmks.h" "3rdparty/portaudio/include/pa_win_wdmks.h"
INFO mv "include/pa_win_wmme.h" "3rdparty/portaudio/include/pa_win_wmme.h"
INFO mv "include/portaudio.h" "3rdparty/portaudio/include/portaudio.h"
INFO mv "index.html" "3rdparty/portaudio/index.html"
INFO mv "install-sh" "3rdparty/portaudio/install-sh"
INFO mv "ltmain.sh" "3rdparty/portaudio/ltmain.sh"
INFO mv "missing" "3rdparty/portaudio/missing"
INFO mv "pablio/README.txt" "3rdparty/portaudio/pablio/README.txt"
INFO mv "pablio/pablio.c" "3rdparty/portaudio/pablio/pablio.c"
INFO mv "pablio/pablio.def" "3rdparty/portaudio/pablio/pablio.def"
INFO mv "pablio/pablio.h" "3rdparty/portaudio/pablio/pablio.h"
INFO mv "pablio/test_rw.c" "3rdparty/portaudio/pablio/test_rw.c"
INFO mv "pablio/test_rw_echo.c" "3rdparty/portaudio/pablio/test_rw_echo.c"
INFO mv "pablio/test_w_saw.c" "3rdparty/portaudio/pablio/test_w_saw.c"
INFO mv "pablio/test_w_saw8.c" "3rdparty/portaudio/pablio/test_w_saw8.c"
INFO mv "portaudio-2.0.pc.in" "3rdparty/portaudio/portaudio-2.0.pc.in"
INFO mv "qa/loopback/README.txt" "3rdparty/portaudio/qa/loopback/README.txt"
INFO mv "qa/loopback/src/audio_analyzer.c" "3rdparty/portaudio/qa/loopback/src/audio_analyzer.c"
INFO mv "qa/loopback/src/audio_analyzer.h" "3rdparty/portaudio/qa/loopback/src/audio_analyzer.h"
INFO mv "qa/loopback/src/biquad_filter.c" "3rdparty/portaudio/qa/loopback/src/biquad_filter.c"
INFO mv "qa/loopback/src/biquad_filter.h" "3rdparty/portaudio/qa/loopback/src/biquad_filter.h"
INFO mv "qa/loopback/src/paqa.c" "3rdparty/portaudio/qa/loopback/src/paqa.c"
INFO mv "qa/loopback/src/paqa_tools.c" "3rdparty/portaudio/qa/loopback/src/paqa_tools.c"
INFO mv "qa/loopback/src/paqa_tools.h" "3rdparty/portaudio/qa/loopback/src/paqa_tools.h"
INFO mv "qa/loopback/src/qa_tools.h" "3rdparty/portaudio/qa/loopback/src/qa_tools.h"
INFO mv "qa/loopback/src/test_audio_analyzer.c" "3rdparty/portaudio/qa/loopback/src/test_audio_analyzer.c"
INFO mv "qa/loopback/src/test_audio_analyzer.h" "3rdparty/portaudio/qa/loopback/src/test_audio_analyzer.h"
INFO mv "qa/loopback/src/write_wav.c" "3rdparty/portaudio/qa/loopback/src/write_wav.c"
INFO mv "qa/loopback/src/write_wav.h" "3rdparty/portaudio/qa/loopback/src/write_wav.h"
INFO mv "qa/paqa_devs.c" "3rdparty/portaudio/qa/paqa_devs.c"
INFO mv "qa/paqa_errs.c" "3rdparty/portaudio/qa/paqa_errs.c"
INFO mv "qa/paqa_latency.c" "3rdparty/portaudio/qa/paqa_latency.c"
INFO mv "src/SConscript" "3rdparty/portaudio/src/SConscript"
INFO mv "src/common/pa_allocation.c" "3rdparty/portaudio/src/common/pa_allocation.c"
INFO mv "src/common/pa_allocation.h" "3rdparty/portaudio/src/common/pa_allocation.h"
INFO mv "src/common/pa_converters.c" "3rdparty/portaudio/src/common/pa_converters.c"
INFO mv "src/common/pa_converters.h" "3rdparty/portaudio/src/common/pa_converters.h"
INFO mv "src/common/pa_cpuload.c" "3rdparty/portaudio/src/common/pa_cpuload.c"
INFO mv "src/common/pa_cpuload.h" "3rdparty/portaudio/src/common/pa_cpuload.h"
INFO mv "src/common/pa_debugprint.c" "3rdparty/portaudio/src/common/pa_debugprint.c"
INFO mv "src/common/pa_debugprint.h" "3rdparty/portaudio/src/common/pa_debugprint.h"
INFO mv "src/common/pa_dither.c" "3rdparty/portaudio/src/common/pa_dither.c"
INFO mv "src/common/pa_dither.h" "3rdparty/portaudio/src/common/pa_dither.h"
INFO mv "src/common/pa_endianness.h" "3rdparty/portaudio/src/common/pa_endianness.h"
INFO mv "src/common/pa_front.c" "3rdparty/portaudio/src/common/pa_front.c"
INFO mv "src/common/pa_hostapi.h" "3rdparty/portaudio/src/common/pa_hostapi.h"
INFO mv "src/common/pa_process.c" "3rdparty/portaudio/src/common/pa_process.c"
INFO mv "src/common/pa_process.h" "3rdparty/portaudio/src/common/pa_process.h"
INFO mv "src/common/pa_ringbuffer.c" "3rdparty/portaudio/src/common/pa_ringbuffer.c"
INFO mv "src/common/pa_ringbuffer.h" "3rdparty/portaudio/src/common/pa_ringbuffer.h"
INFO mv "src/hostapi/alsa/pa_linux_alsa.c" "3rdparty/portaudio/src/hostapi/alsa/pa_linux_alsa.c"
INFO mv "src/hostapi/asihpi/pa_linux_asihpi.c" "3rdparty/portaudio/src/hostapi/asihpi/pa_linux_asihpi.c"
INFO mv "src/hostapi/asio/Callback_adaptation_.pdf" "3rdparty/portaudio/src/hostapi/asio/Callback_adaptation_.pdf"
INFO mv "src/hostapi/asio/Pa_ASIO.pdf" "3rdparty/portaudio/src/hostapi/asio/Pa_ASIO.pdf"
INFO mv "src/hostapi/asio/iasiothiscallresolver.cpp" "3rdparty/portaudio/src/hostapi/asio/iasiothiscallresolver.cpp"
INFO mv "src/hostapi/asio/pa_asio.cpp" "3rdparty/portaudio/src/hostapi/asio/pa_asio.cpp"
INFO mv "src/hostapi/coreaudio/pa_mac_core.c" "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core.c"
INFO mv "src/hostapi/coreaudio/pa_mac_core_blocking.c" "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c"
INFO mv "src/hostapi/coreaudio/pa_mac_core_old.c" "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_old.c"
INFO mv "src/hostapi/coreaudio/pa_mac_core_utilities.c" "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c"
INFO mv "src/hostapi/dsound/pa_win_ds.c" "3rdparty/portaudio/src/hostapi/dsound/pa_win_ds.c"
INFO mv "src/hostapi/jack/pa_jack.c" "3rdparty/portaudio/src/hostapi/jack/pa_jack.c"
INFO mv "src/hostapi/oss/pa_unix_oss.c" "3rdparty/portaudio/src/hostapi/oss/pa_unix_oss.c"
INFO mv "src/hostapi/skeleton/README.txt" "3rdparty/portaudio/src/hostapi/skeleton/README.txt"
INFO mv "src/hostapi/skeleton/pa_hostapi_skeleton.c" "3rdparty/portaudio/src/hostapi/skeleton/pa_hostapi_skeleton.c"
INFO mv "src/hostapi/wasapi/mingw-include/audioclient.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/audioclient.h"
INFO mv "src/hostapi/wasapi/mingw-include/devicetopology.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/devicetopology.h"
INFO mv "src/hostapi/wasapi/mingw-include/endpointvolume.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/endpointvolume.h"
INFO mv "src/hostapi/wasapi/mingw-include/functiondiscoverykeys.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/functiondiscoverykeys.h"
INFO mv "src/hostapi/wasapi/mingw-include/ks.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/ks.h"
INFO mv "src/hostapi/wasapi/mingw-include/ksguid.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/ksguid.h"
INFO mv "src/hostapi/wasapi/mingw-include/ksmedia.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/ksmedia.h"
INFO mv "src/hostapi/wasapi/mingw-include/ksproxy.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/ksproxy.h"
INFO mv "src/hostapi/wasapi/mingw-include/mmdeviceapi.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/mmdeviceapi.h"
INFO mv "src/hostapi/wasapi/mingw-include/propkeydef.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/propkeydef.h"
INFO mv "src/hostapi/wasapi/mingw-include/propsys.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/propsys.h"
INFO mv "src/hostapi/wasapi/mingw-include/structuredquery.h" "3rdparty/portaudio/src/hostapi/wasapi/mingw-include/structuredquery.h"
INFO mv "src/hostapi/wasapi/pa_win_wasapi.c" "3rdparty/portaudio/src/hostapi/wasapi/pa_win_wasapi.c"
INFO mv "src/hostapi/wasapi/readme.txt" "3rdparty/portaudio/src/hostapi/wasapi/readme.txt"
INFO mv "src/hostapi/wdmks/pa_win_wdmks.c" "3rdparty/portaudio/src/hostapi/wdmks/pa_win_wdmks.c"
INFO mv "src/hostapi/wmme/pa_win_wmme.c" "3rdparty/portaudio/src/hostapi/wmme/pa_win_wmme.c"
INFO mv "src/os/unix/pa_unix_util.c" "3rdparty/portaudio/src/os/unix/pa_unix_util.c"
INFO mv "src/os/win/pa_x86_plain_converters.c" "3rdparty/portaudio/src/os/win/pa_x86_plain_converters.c"
INFO mv "src/common/pa_trace.h" "3rdparty/portaudio/src/os/win/pa_x86_plain_converters.h"
INFO mv "test/CMakeLists.txt" "3rdparty/portaudio/test/CMakeLists.txt"
INFO mv "testcvs/changeme.txt" "3rdparty/portaudio/testcvs/changeme.txt"
INFO mv "update_gitrevision.sh" "3rdparty/portaudio/update_gitrevision.sh"
INFO Importing commit 88a90a7b0d7b6f34aea5185620c54581b3da3e7d: Merge commit '54671d713052a42017455d4d46aec7e0957df088' as '3rdparty/portaudio'
ERROR While adding "src/common/pa_gitrevision.h": Path not in repository: src/common/pa_gitrevision.h
ERROR While adding "src/common/pa_memorybarrier.h": Path not in repository: src/common/pa_memorybarrier.h
ERROR While adding "src/common/pa_stream.c": Path not in repository: src/common/pa_stream.c
ERROR While adding "src/common/pa_stream.h": Path not in repository: src/common/pa_stream.h
ERROR While adding "src/common/pa_trace.c": Path not in repository: src/common/pa_trace.c
ERROR While adding "src/common/pa_types.h": Path not in repository: src/common/pa_types.h
ERROR While adding "src/common/pa_util.h": Path not in repository: src/common/pa_util.h
ERROR While adding "src/hostapi/asio/ASIO-README.txt": Path not in repository: src/hostapi/asio/ASIO-README.txt
ERROR While adding "src/hostapi/asio/iasiothiscallresolver.h": Path not in repository: src/hostapi/asio/iasiothiscallresolver.h
ERROR While adding "src/hostapi/coreaudio/notes.txt": Path not in repository: src/hostapi/coreaudio/notes.txt
ERROR While adding "src/hostapi/coreaudio/pa_mac_core_blocking.h": Path not in repository: src/hostapi/coreaudio/pa_mac_core_blocking.h
ERROR While adding "src/hostapi/coreaudio/pa_mac_core_internal.h": Path not in repository: src/hostapi/coreaudio/pa_mac_core_internal.h
ERROR While adding "src/hostapi/coreaudio/pa_mac_core_utilities.h": Path not in repository: src/hostapi/coreaudio/pa_mac_core_utilities.h
ERROR While adding "src/hostapi/dsound/pa_win_ds_dynlink.c": Path not in repository: src/hostapi/dsound/pa_win_ds_dynlink.c
ERROR While adding "src/hostapi/dsound/pa_win_ds_dynlink.h": Path not in repository: src/hostapi/dsound/pa_win_ds_dynlink.h
ERROR While adding "src/hostapi/oss/low_latency_tip.txt": Path not in repository: src/hostapi/oss/low_latency_tip.txt
ERROR While adding "src/hostapi/oss/recplay.c": Path not in repository: src/hostapi/oss/recplay.c
ERROR While adding "src/hostapi/wasapi/mingw-include/ksuuids.h": Path not in repository: src/hostapi/wasapi/mingw-include/ksuuids.h
ERROR While adding "src/hostapi/wasapi/mingw-include/rpcsal.h": Path not in repository: src/hostapi/wasapi/mingw-include/rpcsal.h
ERROR While adding "src/hostapi/wasapi/mingw-include/sal.h": Path not in repository: src/hostapi/wasapi/mingw-include/sal.h
ERROR While adding "src/hostapi/wdmks/readme.txt": Path not in repository: src/hostapi/wdmks/readme.txt
ERROR While adding "src/os/unix/pa_unix_hostapis.c": Path not in repository: src/os/unix/pa_unix_hostapis.c
ERROR While adding "src/os/unix/pa_unix_util.h": Path not in repository: src/os/unix/pa_unix_util.h
ERROR While adding "src/os/win/pa_win_coinitialize.c": Path not in repository: src/os/win/pa_win_coinitialize.c
ERROR While adding "src/os/win/pa_win_coinitialize.h": Path not in repository: src/os/win/pa_win_coinitialize.h
ERROR While adding "src/os/win/pa_win_hostapis.c": Path not in repository: src/os/win/pa_win_hostapis.c
ERROR While adding "src/os/win/pa_win_util.c": Path not in repository: src/os/win/pa_win_util.c
ERROR While adding "src/os/win/pa_win_waveformat.c": Path not in repository: src/os/win/pa_win_waveformat.c
ERROR While adding "src/os/win/pa_win_wdmks_utils.c": Path not in repository: src/os/win/pa_win_wdmks_utils.c
ERROR While adding "src/os/win/pa_win_wdmks_utils.h": Path not in repository: src/os/win/pa_win_wdmks_utils.h
ERROR While adding "src/os/win/pa_x86_plain_converters.h": Path not in repository: src/os/win/pa_x86_plain_converters.h
ERROR While adding "test/README.txt": Path not in repository: test/README.txt
ERROR While adding "test/pa_minlat.c": Path not in repository: test/pa_minlat.c
ERROR While adding "test/patest1.c": Path not in repository: test/patest1.c
ERROR While adding "test/patest_buffer.c": Path not in repository: test/patest_buffer.c
ERROR While adding "test/patest_callbackstop.c": Path not in repository: test/patest_callbackstop.c
ERROR While adding "test/patest_clip.c": Path not in repository: test/patest_clip.c
ERROR While adding "test/patest_converters.c": Path not in repository: test/patest_converters.c
ERROR While adding "test/patest_dither.c": Path not in repository: test/patest_dither.c
ERROR While adding "test/patest_dsound_find_best_latency_params.c": Path not in repository: test/patest_dsound_find_best_latency_params.c
ERROR While adding "test/patest_dsound_low_level_latency_params.c": Path not in repository: test/patest_dsound_low_level_latency_params.c
ERROR While adding "test/patest_dsound_surround.c": Path not in repository: test/patest_dsound_surround.c
ERROR While adding "test/patest_hang.c": Path not in repository: test/patest_hang.c
ERROR While adding "test/patest_in_overflow.c": Path not in repository: test/patest_in_overflow.c
ERROR While adding "test/patest_jack_wasapi.c": Path not in repository: test/patest_jack_wasapi.c
ERROR While adding "test/patest_latency.c": Path not in repository: test/patest_latency.c
ERROR While adding "test/patest_leftright.c": Path not in repository: test/patest_leftright.c
ERROR While adding "test/patest_longsine.c": Path not in repository: test/patest_longsine.c
ERROR While adding "test/patest_many.c": Path not in repository: test/patest_many.c
ERROR While adding "test/patest_maxsines.c": Path not in repository: test/patest_maxsines.c
ERROR While adding "test/patest_mono.c": Path not in repository: test/patest_mono.c
ERROR While adding "test/patest_multi_sine.c": Path not in repository: test/patest_multi_sine.c
ERROR While adding "test/patest_out_underflow.c": Path not in repository: test/patest_out_underflow.c
ERROR While adding "test/patest_prime.c": Path not in repository: test/patest_prime.c
ERROR While adding "test/patest_read_record.c": Path not in repository: test/patest_read_record.c
ERROR While adding "test/patest_ringmix.c": Path not in repository: test/patest_ringmix.c
ERROR While adding "test/patest_sine8.c": Path not in repository: test/patest_sine8.c
ERROR While adding "test/patest_sine_channelmaps.c": Path not in repository: test/patest_sine_channelmaps.c
ERROR While adding "test/patest_sine_formats.c": Path not in repository: test/patest_sine_formats.c
ERROR While adding "test/patest_sine_srate.c": Path not in repository: test/patest_sine_srate.c
ERROR While adding "test/patest_sine_time.c": Path not in repository: test/patest_sine_time.c
ERROR While adding "test/patest_start_stop.c": Path not in repository: test/patest_start_stop.c
ERROR While adding "test/patest_stop.c": Path not in repository: test/patest_stop.c
ERROR While adding "test/patest_stop_playout.c": Path not in repository: test/patest_stop_playout.c
ERROR While adding "test/patest_suggested_vs_streaminfo_latency.c": Path not in repository: test/patest_suggested_vs_streaminfo_latency.c
ERROR While adding "test/patest_suggested_vs_streaminfo_latency.py": Path not in repository: test/patest_suggested_vs_streaminfo_latency.py
ERROR While adding "test/patest_sync.c": Path not in repository: test/patest_sync.c
ERROR While adding "test/patest_timing.c": Path not in repository: test/patest_timing.c
ERROR While adding "test/patest_toomanysines.c": Path not in repository: test/patest_toomanysines.c
ERROR While adding "test/patest_two_rates.c": Path not in repository: test/patest_two_rates.c
ERROR While adding "test/patest_underflow.c": Path not in repository: test/patest_underflow.c
ERROR While adding "test/patest_unplug.c": Path not in repository: test/patest_unplug.c
ERROR While adding "test/patest_wire.c": Path not in repository: test/patest_wire.c
ERROR While adding "test/patest_wmme_find_best_latency_params.c": Path not in repository: test/patest_wmme_find_best_latency_params.c
ERROR While adding "test/patest_wmme_low_level_latency_params.c": Path not in repository: test/patest_wmme_low_level_latency_params.c
ERROR While adding "test/patest_write_stop.c": Path not in repository: test/patest_write_stop.c
ERROR While adding "test/patest_write_stop_hang_illegal.c": Path not in repository: test/patest_write_stop_hang_illegal.c
ERROR While adding "testcvs/file1.txt": Path not in repository: testcvs/file1.txt
ERROR While adding "testcvs/file2.txt": Path not in repository: testcvs/file2.txt
INFO Importing commit db33ec482d3450db435fe8f2422e9345cbcbec19: [portaudio] Add CMakeLists.txt for cpp bindings
ERROR While adding "3rdparty/portaudio/bindings/cpp/CMakeLists.txt": Path not in repository: 3rdparty/portaudio/bindings/cpp/CMakeLists.txt
INFO applying QW5R42KMFO34ZQ7N4EKI6UDTRJWBLS4FLUF46KH2W2NLXEHFCPLAC to "e16248d8879e19dfe6aef3f2585094adfa16df25"
INFO applying TW37YKTWKEHYMQ7LNWKSZYOBWOIB7FVKXAG2IYXFJYPXGGJEX35QC to "e16248d8879e19dfe6aef3f2585094adfa16df25"
INFO applying GR5WCN5BTNQJSLPVIMBW7DPA4R7UKMNFCPAGQVE2J7T2XR4ID6KQC to "e16248d8879e19dfe6aef3f2585094adfa16df25"
INFO Importing commit e16248d8879e19dfe6aef3f2585094adfa16df25: Update portaudio to master, to fix audio on Windows GCC MinGW
On MinGW, portaudio's DirectSound backend was disabled
since DirectX could not be found,
and WASAPI was disabled due to compile errors.
Updating portaudio fixes both audio backends.
ERROR While adding "3rdparty/portaudio/CMakeLists.txt": Path not in repository: 3rdparty/portaudio/CMakeLists.txt
ERROR While adding "3rdparty/portaudio/cmake_support/FindDXSDK.cmake": Path not in repository: 3rdparty/portaudio/cmake_support/FindDXSDK.cmake
INFO Importing commit 7353f353666863ba65630001d346a84c867174f6: [portaudio] Fix warning when aggregate-initializing struct
ERROR While adding "3rdparty/portaudio/src/hostapi/wasapi/pa_win_wasapi.c": Path not in repository: 3rdparty/portaudio/src/hostapi/wasapi/pa_win_wasapi.c
INFO Importing commit 900093b343eb381d47e7ac9cfeddfbbd7d4abfb9: Enumerate PortAudio APIs on startup
ERROR While adding "src/main.cpp": Path not in repository: src/main.cpp
INFO Importing commit 3db4c363e9554d9160af8d3c24e497a37cf16195: Fix include grouping
ERROR While adding "src/document.h": Path not in repository: src/document.h
INFO Importing commit dc68789615b31b3a145677b96407c7073ea63a1a: Reformat code
ERROR While adding "src/audio/synth.h": Path not in repository: src/audio/synth.h
INFO Importing commit b8e7ab7edeb227b7a39aca72d8e3ecb0bc30adde: 2A03 driver: don't play sound upon startup
ERROR While adding "src/audio/synth/music_driver/nes_2a03.h": Path not in repository: src/audio/synth/music_driver/nes_2a03.h
INFO Importing commit 41e4d6334e55e8d04b120d8619cc7d5d50b8a274: Rewrite document using synth ChipKind/ChannelID, hook up to sequencer
ERROR While adding "src/audio/output.cpp": Path not in repository: src/audio/output.cpp
INFO Importing commit 1b958c021f1e56f13e6e889365ec440663c93b93: Pass Document& from OverallSynth to ChannelSequencer
ERROR While adding "src/audio/synth/music_driver/nes_2a03.h": Path not in repository: src/audio/synth/music_driver/nes_2a03.h
INFO Importing commit 300aed66a5524221e7153d3120dd5302b123dfd7: Add constant MAX_NCHIP
ERROR While adding "src/audio/synth/chip_kinds_common.h": Path not in repository: src/audio/synth/chip_kinds_common.h
INFO Importing commit 8ef35aab468719b3e945243d24f1458bfaa21c32: Teach ChannelSequencer to send real document data to drivers
ChannelSequencer now flattens timestamped event data into tick timestamps,
then converts into delay-in-ticks format.
INFO Importing commit 877fd89c49234d1294980a0def0d5bc2293b4dee: Fix TimeInPattern::begin_of_beat()
ERROR While adding "src/document.h": Path not in repository: src/document.h
INFO mv "src/audio/synth/music_driver/nes_2a03.h" "src/audio/synth/music_driver/driver_2a03.h"
INFO Importing commit d90f7c777b1b0699911252429bbe2f7ef02fc979: Rename music_driver/nes_2a03 to driver_2a03
INFO Importing commit ec618489611fb7e554ba0a81831f43ead71d8af9: Simplify document.h comparison macros
ERROR While adding "src/document.h": Path not in repository: src/document.h
INFO Importing commit 64383daddc721252acb836c6e9af34f8b7bdb83a: Fix warnings when compiling under GCC
ERROR While adding "src/audio/synth/sequencer.h": Path not in repository: src/audio/synth/sequencer.h
INFO Importing commit d43d07869a5a682c37f5938d3d674cda83d97e6e: Replace #include <gsl/gsl> with <gsl/span>
ERROR While adding "src/audio/output.cpp": Path not in repository: src/audio/output.cpp
INFO Importing commit 3a5b22a2066df16f9b64b5877f2b57d198ab3c1d: Add document note cuts (not handled by driver yet)
ERROR While adding "src/document.h": Path not in repository: src/document.h
INFO Importing commit a4619a411700cb812349854d13709e4b7db842db: Add frequency table to document, tuning table to driver
INFO Importing commit 0ef4e7f1fef7b5e5dc2ffb4d09604a90513e939d: Add support for multiple pitches to 2a03 driver
ERROR While adding "src/audio/synth/music_driver/driver_2a03.h": Path not in repository: src/audio/synth/music_driver/driver_2a03.h
INFO Importing commit c8bbbfa5519ebe628ac7194db1c853a7e167fdb9: Fix driver bug where state was not written on first tick
If playing high notes, silence would result instead.
ERROR While adding "src/audio/synth/music_driver/driver_2a03.h": Path not in repository: src/audio/synth/music_driver/driver_2a03.h
INFO Importing commit 8def24d74b5e030973cf06731c9c31496c2684e8: Switch document to testing bass notes
ERROR While adding "src/document.cpp": Path not in repository: src/document.cpp
INFO Importing commit af7de3fce3431bbeb2277632d3d844404f9478e1: Fix driver bug where low notes would not produce sound
ERROR While adding "src/audio/synth/music_driver/driver_2a03.h": Path not in repository: src/audio/synth/music_driver/driver_2a03.h
INFO Importing commit c612a32a3209c99ed86301ca0575e47845e77bb7: Add <cassert> to macros.h, remove from other files
ERROR While adding "src/audio/synth/sequencer.cpp": Path not in repository: src/audio/synth/sequencer.cpp
INFO Importing commit 1b984b8cfe2acbaff930d61795a106e8929f925c: Add immutable gsl::span aliases, rename mutable
ERROR While adding "src/audio/synth/music_driver/driver_2a03.h": Path not in repository: src/audio/synth/music_driver/driver_2a03.h
INFO Importing commit a7dd2dd2778a4a035356663c32e7149dc65c199b: Improve release_assert error message
ERROR While adding "src/util/macros.h": Path not in repository: src/util/macros.h
INFO Importing commit d711326045b812cbeb6961ca3ec20ad7e145b9d1: Fix build on Linux (case-sensitive filesystems)
ERROR While adding "3rdparty/nsfplay/xgm/devices/Sound/nes_dmc.h": Path not in repository: 3rdparty/nsfplay/xgm/devices/Sound/nes_dmc.h
INFO Importing commit 9b9e314425201629c934746e70db629172f7eed0: Ignore .cmake folder created by Qt Creator on Linux
INFO Importing commit df8514a3552d37ccef528c931cfc618437ed28fe: Add .gitattributes to prevent carriage returns from being committed
INFO Importing commit 850c3784c1b6cc99e71016edc7feaa2c42877695: Add test that high notes produce sound
INFO Importing commit 8d59246c312498410fbe2e48b12109411bbe2b5e: Stop OverallSynth from running chip instance for 0 ticks
ERROR While adding "src/audio/synth.cpp": Path not in repository: src/audio/synth.cpp
INFO Importing commit 53a2a0fbb2fe6f2acc6fb6a18e56d4fc29c898e4: Rename CPU_CLK_PER_S to CLOCKS_PER_S
ERROR While adding "src/audio/synth.cpp": Path not in repository: src/audio/synth.cpp
INFO Importing commit 960641db63eac6b24d1fe2fd3758fcffa67031d3: Add fmt 6.1.0 to 3rdparty
ERROR While adding "3rdparty/fmt_/.clang-format": Path not in repository: 3rdparty/fmt_/.clang-format
^C⏎ nyanpasu64@ryzen ~/code/exotracker-cpp (pijul) [SIGINT]>
...
Handle NULL time as now when specifying an interval.
INFO Importing commit 7b8bb8da6b12868c05fe2c7e1a5d5a750d2e7f9f: implement alsa capture with timers
Add timer based alsa capture support
Improve format negotiation in alsa
Better track buffer owner in the links
INFO Importing commit 29fbf2e8415a161fb08453f5610983fc9c473d00: props: improve prop flags
Only keep the READONLY prop flag.
Work on test-mixer
INFO Importing commit 01c13adab54e094f4f5f37e6623ee5eda7be24f8: improve node io
Unify input and output io areas.
Add support for ranges in the io area.
Automatically recycle buffers in the output areas in process_output
Improve the mixer, add use_buffer support, use a queue of input buffers,
fix mixing, add support for ranges.
Fix mixer and v4l2 tests
INFO Importing commit 5c32690cc8b2f3f77fb4a3e838710eaf2f1bb4af: Add sync and async support in *testsrc
Make minumum alsa latency configurable.
INFO Importing commit 32368d741d48088e6044c77247798c69e258d3b5: audiotestsrc: implement sine wave
Fix audiomixer some more
INFO Importing commit b05d82d5142e921567ce3515008e68482d051deb: plugins: use macros for input checks
That way we can compile them out if we want
INFO Importing commit 032cc69f2f013b2ee811d9dc3e602d4159ad2a9b: plugins: small cleanups
INFO Importing commit 70255b5ecd9c042576408b88bb96f532b86fb62d: context: wait for proxy info
Only become connected after we have received all proxy bind replies.
INFO Importing commit 8071b76e419d7bbef61b604917235825dc96eaf5: alsa: improve default buffer size
Fix sample size
INFO Importing commit 39c3650b5f5cf2c616f3be599283f90c58f89556: fix media.class
INFO Importing commit 4337a99bb07ab67dec542ef09c6b8a842b4e1f69: alsa: add more formats
INFO Importing commit 698bddfbb68d5d7f2187384973c0d59d05902af6: pinossink: fix bufferpool
INFO Importing commit 4bdbb5827614c1ef94178abc2a228c177c2afda3: alsa: implement enum_format
INFO Importing commit 22070ecbf8c1c6c08717816a696fd1d3e1813f5a: improve format filters
INFO Importing commit 8594d28f59db78af937c7827cd25d959a755315e: alsa: rework monitor
Enumerate all playback and capture devices
INFO Importing commit 3adbaacec22483190f3da0c21b98b6683e33b7e4: alsa: filter formats
INFO Importing commit 4808f8f10e6f145b2a13cb746951cbc5e401c1a3: link: fix negotiation
Fix renegotiation of idle but not yet suspended nodes.
INFO Importing commit 28389e05f372ba4d7b5e5034ed2ec6d88bea423d: alsa: fix device enumeration
INFO Importing commit d3682067fabfd13972c83429ed07fb1091f3d8d5: node: remove node state
Remove the node state. The state of the node is based on the state
of the ports, which can be derived directly from calling the port
methods. Track this state in the Port instead.
Add a mixer module that puts a mixer in from of audio sinks. This allows
multiple clients to play on one sink (still has some bugs). do some
fixes in the mixer and the scheduler to make this work.
INFO Importing commit 9bd92b781c3df4387faeaf2cccc6ca7730633692: small fixes
INFO Importing commit 4c7b56020a28b60c9c2f6bcc2675cb5615b6a041: audiomixer: improve mixing
Remove PortIO flags, we can use the status
Move PortIO to ports
Move transport to client-node
Improve scheduling
INFO Importing commit d9bb116d279b155d1ce034853cf1fa047d9d979c: node: schedule upstream first
In pull mode, schedule all upstream nodes first, if any of them
produce output, push it into the current node.
Underrun streams without input on audiomixer, avoids glitch when
starting a new stream.
INFO Importing commit 4cf59e3953e12a2e8b3a64aabe370b2107b99ba2: access: add access checks
Rework the access checks.
Add owner field to more objects to do access control checks
Make sure the object global is set in the object before signaling the
new global.
INFO Importing commit a5b39019d19c0b63c08dfeb05bf25c09938db87d: core: add async create_client_node access check
INFO Importing commit be528ba7c2a8ede730d927398f9b4a6d3535ff3c: flatpak: add flatpak module
Pass LoopUtils to callbacks to make it easier to reschedule timeouts.
INFO Importing commit c7333c46cc8fc3913cc2777ed7f58bd3469092cf: types: remap ids
Remap ids between client and server
INFO Importing commit db16de85bba459a2139683467e846fb2c1091531: examples: add video upload example
Add an example of a node that makes a video available.
Improve buffer reuse in stream.
Add more video formats
INFO Importing commit 50a7240a52ac34b405b5adae98183aee3c6805c7: stream: improve states
INFO Importing commit 7ef4fea2f28972b8811c2058b15650832d117b3e: video-src: make size dynamic
INFO Importing commit e864836300b85371b42cf6e760d8482768ded34b: fix formats
INFO Importing commit 90ea120d3cadfc3461f7db1bc1115bc104dfb56e: audiomixer: don't mix when no input
Give the app a chance to provide some input when there is nothing to mix
anymore in process_output.
alsa: fix buffer size
INFO Importing commit 0b508db9fc0f0bf5d1a08635a490de4ba692540a: ringbuffer: simplify the API
Use absolute indexes that we let wrap around. We can then easily detect
how much we under of overflowed by using serial number arithmetic.
Remove the Areas, we can trivially compute this ourselves, move the
logic in read/write_data.
INFO Importing commit f0aafb5b51a4b2d0fad05be3273d4946109895ad: alsa: work on ringbuffer data transport
Add ringbuffer test
INFO Importing commit 7d1d3bd666f98f22ec446964920c19afc73b6b0f: stream: use 2 eventfds for client <-> server signaling
INFO Importing commit c29fed1ac81982e845aae43f06ff23f3b5c08008: video-play: add example video capture + playback
INFO Importing commit 02d4dc0efdeccf9d7efe3e43394a1789d64e9127: context: add option to disable registry
INFO Importing commit baada0a33042d0b16ced11ee12b3a12758a19e3e: ringbuffer: use gcc atomic operations
Remove barrier, use GCC atomic operations for ringbuffer
INFO Importing commit 8804980c8f3751bbe7a6748392d1c93c84a0fc56: work on state changes
Make things work better after errors
INFO Importing commit 82d5ca1edc9e3eef75b5e341c4bc83409ee573e6: link: only idle when not already suspended
INFO Importing commit 63d060a63e1d5aa4cbe2dfd6d8672df81ba79b67: ringbuffer: add stress test
INFO Importing commit edb21a0ff869a5984e39d097ff714f5d6aed4373: ringbuffer: small optimization
INFO Importing commit ed273ec465ea8ee51a4a044c12b15a0f0b56f4a6: mem: add support for ringbuffers
Add an option to map the memory twice in contigious memory to
make it easier to deal with ringbuffers.
INFO Importing commit b51d3e486218e8f74d4fefed3f0bf7cea459e081: buffer: make data and meta types dynamic
Use dynamic types for the data and meta types.
Move the meta into a separate header.
Remove port state, we can keep track of that ourselves.
Add size to MetaDataEnable params
INFO Importing commit 214a0e27d82d73c9cfe037cfd43124f8cee2f2f8: Add support for trace logging in lockfree ringbuffer
Fix some crashes when the connection is dead.
Small cleanups in the audio mixer
Only propose alloc_buffer when we are using export_buf in v4l2
INFO Importing commit 430b749d53d1f1b8ec5ef2f1c7223b6494ee45a7: fix trace logging
INFO Importing commit cc8a5da9c76b3035a2da667e2ee0418b1b346997: Rename buffer status to make it more symetrical
Only try to pull once in a timeout.
We can reuse the last returned state as our internal state in
audiomixer.
INFO Importing commit 308acaf0ad8d63d10e9e2a2f83a04dfb0ddf8385: alsa: fix offset
INFO Importing commit e734d239b93eb2ad9ea0a1b177daa5daae4039d0: core: also work without security module
INFO Importing commit fe68ca1be34c7bea0b717defff1f94d1150e49f7: audiomixer: small improvements
Improve the audiomixer state handling
Improve PortIO status handling.
INFO Importing commit 3d54d31fac037b6c4c0e4c860f1d216a3939e6cc: tests: fix for port status changes
We now need to tell the node we consumed a buffer by setting the status
back to NEED_BUFFER.
INFO Importing commit fb0919b8b78d58669779b966dbc352a24f9a6364: link: improve state changes
INFO Importing commit 3b33e3d362ec906edecf68bff10274dc5e37f5bb: node: improve callbacks
Make separate callbacks for events and RT notifications.
INFO Importing commit 1d8504565a383c5b25a6c0cc12b0caeb8fef40c5: build: Fix API version usage
It was sometimes assumed to be 0.1, sometimes 1.0, and sometimes not to
be used at all. This commit makes things consistent and so that it is
possible to link externally.
INFO Importing commit 01246f399e9ce34b665f426c136701f9c71db559: test: pass device in args
INFO Importing commit d26eb2da23d2cf1a67d4af34f66b7d6f7f959df3: meson.build: Add missing header files
INFO Importing commit 5cb35d8bc17ed9f0925e18a49769cc44677c6df5: examples/video-play: Use correct SDL enum values
INFO Importing commit 361d2b6a8761762e29e43b9547fe6a91f6745ccd: pinos: Use correct spa/ include paths
Don't include spa/include/spa/... but just spa/..., as otherwise it is
not possible to include these (installed) header files externally.
INFO Importing commit 6cbf398ad414f137c1d16cd5ce73a42b8c31e1b4: node: the callbacks determine async operation
INFO Importing commit bf0942124086a610884b3ab9c3a5652f3a5cde16: pinossink: improve sink
INFO Importing commit 05adcb31e566ec035bba9aaf1f362a9719bb4e78: v4l2: no range for fixed framerates
Print fixed values correctly
INFO Importing commit 1079d433ef6ac5d352bd47e0ab373d018593e94d: meson.build: No need for PLUGINDIR
INFO Importing commit b80fc0b08e798436f6324e0aae8627d71727177c: defs: remove invalid direction
Anything not in the enum is invalid
INFO Importing commit 2011023da760305653c080067dcfee1284d5fc51: meson.build: Include API version in module directory
INFO Importing commit 04ffc679fced64ed99943abb2468a0e88c586c1c: spa: Include version in libspa-lib.so
INFO Importing commit 740125a12e7a6fb5da36b2bfeb591c3fdf8a5e17: meson.build: Install conf file under ${sysconfdir}
Base conf file path on sysconfdir. sysconfdir can be specified with an
absolute or relative path. To ensure PINOS_CONFIG_DIR is set correctly,
use join_paths() to prepend prefix when sysconfdir is relative.
Meson added support for sysconfdir in version 0.34.0 and join_paths() in
version 0.36.0.
INFO Importing commit cba22d0e39db8abc68ac21d021c386ecc31ca217: spa/plugins/videotestsrc: Draw correctly for all resolutions
Use an incremented variable to support all resolutions. If the width of
the pludge part of the test image was not dividable by three, a
rounding error made the resulting pattern containing noise.
INFO Importing commit 49d635ae68adf5fa69c299deb9395d51b209b28e: Follow installed include path for spa headers
INFO Importing commit a5c9ba1e5b9a962692bbb8224bd743e48aa2cba4: Install all header files
INFO Importing commit 7b7c6df83613d001cc050ef40c048cb366d13a7a: spa: Add pc file
INFO Importing commit 4d3c19449191761835abed3986766435e2566d97: pinos/client/log.h: Fix compiler error
INFO Importing commit 663a3df9af3bda5c0dcd757ea9977335675135c1: connection: handle refill_buffer() error in get_next()
INFO Importing commit bc2f53a31c48679c667a73f0566d80d1493750d4: context: stop reading messages when disconnecting
INFO Importing commit e27ec1a2031e159afc11840331384360ade70268: Only use string literals as format
Fixes -Wformat-security error.
INFO Importing commit c6f7197f00932f2f60ec624159ea3999604a1abe: format: convert max-framerate
INFO Importing commit eca852cdd3a5526263c667474ce53e6753fc2e03: link: only pause when no links
INFO Importing commit 3c7f1e09fbd8d694479c9ad217a1dbd50f23825c: pinossrc: add always-copy property
INFO Importing commit 361059ed3cfd9fd8f839b5d73fe0e6f611ff3521: gstpinossrc: Don't crash when format is changed to NULL
INFO Importing commit 845ff79f9facb651bd9e734511d42914f14b2804: pinossrc: also finish format when clearing the format
INFO Importing commit 0855ca0050e1ae4e470995ceeb1a9703f69865fb: spa: Include type-map.h where necesarry
These include files need type declarations in type-map.h. Don't require
includers to know that; just include dependencies directly.
INFO Importing commit 53dd63eb3acb3c610974aa71b7bb398ed84cdc83: type: improve type check
INFO Importing commit 6691eb784590918bf8145febc617843d2840e489: graph: add graph datastructure and scheduler
Improve event and command init so that it can be used more easily
as compound literals.
Improve volume
Make it possible to use graph scheduler in test-mixer
INFO Importing commit 12effccb06d7e1734ece3e03960264c00d9fb0e5: Add fakesrc ! fakesink test
Add fakesrc and fakesink and some performance test
Small cleanups
INFO mv "spa/include/spa/alloc-param.h" "spa/include/spa/param-alloc.h"
INFO Importing commit d1a6d6e03f7bcafc53a2dde252897c51dfe1cce7: param: add more generic port params
Remove port properties and replace them with port params. Move the
params from the PortInfo to enum_params.
Use the Param ranges to specify possible sizes etc.
INFO Importing commit f12a5ffc80bd655c6aa9f5385b49ae725cac2567: Remove redundant fields from PortInfo
INFO mv "man/pinos-monitor.1.xml.in" "man/pipewire-monitor.1.xml.in"
INFO mv "man/pinos.1.xml.in" "man/pipewire.1.xml.in"
INFO mv "pinos.spec" "pipewire.spec"
INFO mv "pinos/client/.gitignore" "pipewire/client/.gitignore"
INFO mv "pinos/client/array.h" "pipewire/client/array.h"
INFO mv "pinos/client/connection.c" "pipewire/client/connection.c"
INFO mv "pinos/client/context.c" "pipewire/client/context.c"
INFO mv "pinos/client/introspect.c" "pipewire/client/introspect.c"
INFO mv "pinos/client/log.c" "pipewire/client/log.c"
INFO mv "pinos/client/log.h" "pipewire/client/log.h"
INFO mv "pinos/client/loop.c" "pipewire/client/loop.c"
INFO mv "pinos/client/map.h" "pipewire/client/map.h"
INFO mv "pinos/client/mapper.c" "pipewire/client/mapper.c"
INFO mv "pinos/client/mem.c" "pipewire/client/mem.c"
INFO mv "pinos/client/mem.h" "pipewire/client/mem.h"
INFO mv "pinos/client/memfd-wrappers.h" "pipewire/client/memfd-wrappers.h"
INFO mv "pinos/client/meson.build" "pipewire/client/meson.build"
INFO mv "pinos/client/pinos.c" "pipewire/client/pipewire.c"
INFO mv "pinos/client/pinos.h" "pipewire/client/pipewire.h"
INFO mv "pinos/client/properties.h" "pipewire/client/properties.h"
INFO mv "pinos/client/protocol-native.c" "pipewire/client/protocol-native.c"
INFO mv "pinos/client/protocol-native.h" "pipewire/client/protocol-native.h"
INFO mv "pinos/client/proxy.c" "pipewire/client/proxy.c"
INFO mv "pinos/client/proxy.h" "pipewire/client/proxy.h"
INFO mv "pinos/client/rtkit.c" "pipewire/client/rtkit.c"
INFO mv "pinos/client/rtkit.h" "pipewire/client/rtkit.h"
INFO mv "pinos/client/sig.h" "pipewire/client/sig.h"
INFO mv "pinos/client/stream.c" "pipewire/client/stream.c"
INFO mv "pinos/client/subscribe.h" "pipewire/client/subscribe.h"
INFO mv "pinos/client/thread-mainloop.c" "pipewire/client/thread-mainloop.c"
INFO mv "pinos/client/transport.c" "pipewire/client/transport.c"
INFO mv "pinos/client/type.c" "pipewire/client/type.c"
INFO mv "pinos/client/type.h" "pipewire/client/type.h"
INFO mv "pinos/client/utils.c" "pipewire/client/utils.c"
INFO mv "pinos/client/utils.h" "pipewire/client/utils.h"
INFO mv "pinos/daemon/daemon-config.c" "pipewire/daemon/daemon-config.c"
INFO mv "pinos/daemon/daemon-config.h" "pipewire/daemon/daemon-config.h"
INFO mv "pinos/daemon/main.c" "pipewire/daemon/main.c"
INFO mv "pinos/daemon/meson.build" "pipewire/daemon/meson.build"
INFO mv "pinos/daemon/pinos-system.conf" "pipewire/daemon/pipewire-system.conf"
INFO mv "pinos/daemon/pinos.desktop.in" "pipewire/daemon/pipewire.desktop.in"
INFO mv "pinos/examples/meson.build" "pipewire/examples/meson.build"
INFO mv "pinos/examples/video-play.c" "pipewire/examples/video-play.c"
INFO mv "pinos/examples/video-src.c" "pipewire/examples/video-src.c"
INFO mv "pinos/gst/gstburstcache.c" "pipewire/gst/gstburstcache.c"
INFO mv "pinos/gst/gstburstcache.h" "pipewire/gst/gstburstcache.h"
INFO mv "pinos/gst/gstpinos.c" "pipewire/gst/gstpipewire.c"
INFO mv "pinos/gst/gstpinosclock.c" "pipewire/gst/gstpipewireclock.c"
INFO mv "pinos/gst/gstpinosclock.h" "pipewire/gst/gstpipewireclock.h"
INFO mv "pinos/gst/gstpinosdeviceprovider.c" "pipewire/gst/gstpipewiredeviceprovider.c"
INFO mv "pinos/gst/gstpinosformat.c" "pipewire/gst/gstpipewireformat.c"
INFO mv "pinos/gst/gstpinosformat.h" "pipewire/gst/gstpipewireformat.h"
INFO mv "pinos/gst/gstpinospool.c" "pipewire/gst/gstpipewirepool.c"
INFO mv "pinos/gst/gstpinossink.c" "pipewire/gst/gstpipewiresink.c"
INFO mv "pinos/gst/gstpinossink.h" "pipewire/gst/gstpipewiresink.h"
INFO mv "pinos/gst/gstpinossrc.c" "pipewire/gst/gstpipewiresrc.c"
INFO mv "pinos/gst/gstpinossrc.h" "pipewire/gst/gstpipewiresrc.h"
INFO mv "pinos/meson.build" "pipewire/meson.build"
INFO mv "pinos/modules/meson.build" "pipewire/modules/meson.build"
INFO mv "pinos/modules/module-flatpak.c" "pipewire/modules/module-flatpak.c"
INFO mv "pinos/modules/module-mixer.c" "pipewire/modules/module-mixer.c"
INFO mv "pinos/modules/module-protocol-dbus.c" "pipewire/modules/module-protocol-dbus.c"
INFO mv "pinos/modules/module-protocol-native.c" "pipewire/modules/module-protocol-native.c"
INFO mv "pinos/modules/module-suspend-on-idle.c" "pipewire/modules/module-suspend-on-idle.c"
INFO mv "pinos/modules/spa/meson.build" "pipewire/modules/spa/meson.build"
INFO mv "pinos/modules/spa/module.c" "pipewire/modules/spa/module.c"
INFO mv "pinos/modules/spa/spa-monitor.c" "pipewire/modules/spa/spa-monitor.c"
INFO mv "pinos/modules/spa/spa-monitor.h" "pipewire/modules/spa/spa-monitor.h"
INFO mv "pinos/modules/spa/spa-node.c" "pipewire/modules/spa/spa-node.c"
INFO mv "pinos/modules/spa/spa-node.h" "pipewire/modules/spa/spa-node.h"
INFO mv "pinos/server/access.c" "pipewire/server/access.c"
INFO mv "pinos/server/client-node.c" "pipewire/server/client-node.c"
INFO mv "pinos/server/client-node.h" "pipewire/server/client-node.h"
INFO mv "pinos/server/client.c" "pipewire/server/client.c"
INFO mv "pinos/server/command.c" "pipewire/server/command.c"
INFO mv "pinos/server/command.h" "pipewire/server/command.h"
INFO mv "pinos/server/core.c" "pipewire/server/core.c"
INFO mv "pinos/server/data-loop.c" "pipewire/server/data-loop.c"
INFO mv "pinos/server/data-loop.h" "pipewire/server/data-loop.h"
INFO mv "pinos/server/link.c" "pipewire/server/link.c"
INFO mv "pinos/server/main-loop.c" "pipewire/server/main-loop.c"
INFO mv "pinos/server/main-loop.h" "pipewire/server/main-loop.h"
INFO mv "pinos/server/meson.build" "pipewire/server/meson.build"
INFO mv "pinos/server/module.c" "pipewire/server/module.c"
INFO mv "pinos/server/module.h" "pipewire/server/module.h"
INFO mv "pinos/server/node-factory.c" "pipewire/server/node-factory.c"
INFO mv "pinos/server/node-factory.h" "pipewire/server/node-factory.h"
INFO mv "pinos/server/node.c" "pipewire/server/node.c"
INFO mv "pinos/server/port.c" "pipewire/server/port.c"
INFO mv "pinos/server/protocol-native.c" "pipewire/server/protocol-native.c"
INFO mv "pinos/server/protocol-native.h" "pipewire/server/protocol-native.h"
INFO mv "pinos/server/resource.c" "pipewire/server/resource.c"
INFO mv "pinos/server/resource.h" "pipewire/server/resource.h"
INFO mv "pinos/server/work-queue.c" "pipewire/server/work-queue.c"
INFO mv "pinos/server/work-queue.h" "pipewire/server/work-queue.h"
INFO mv "pinos/tools/pinos-monitor.c" "pipewire/tools/pipewire-monitor.c"
INFO mv "pkgconfig/libpinos.pc.in" "pkgconfig/libpipewire.pc.in"
INFO Importing commit 83964cec871db13d6c65803e0cced20ce40874f7: pinos -> pipewire
INFO Importing commit 11f23a3ffa7cc98f1a0a096424c209a3079c9117: spa: don't use typedef for struct and enum
INFO Importing commit d1a06ae247273e5dd0858ae8d9650115db7941de: indent -kr -i8 -l100
INFO Importing commit 5b037661d9cea4789e867e36a967b41766c3481f: indent
INFO Importing commit 0f6b3a7cab2b9094c1f4cd7859e272420621b583: indent
INFO Importing commit 6b2d77e64d39a589a7328d124a8d11ff20ceb5e0: small cleanups
INFO Importing commit b899d43401b94ff914abbd138fd134c0d726ffd6: pipewiresink: take lock for stream methods
INFO Importing commit 08522a162ecc9a4e81fb5f0dd2b1530b065e07a0: indent
INFO Importing commit f7de744ec9dba62662d2148320fddc0db22a0782: pipewiresink: fix buffer reuse
Only unref the buffer back into the pool after we get the signal
from the stream that we can reuse the buffer.
INFO Importing commit ded1ea69a1041b4232dfe248ca64032b8ff31919: indent
INFO Importing commit cf941172444d8ed163cbd27551aa853ecae4b3fc: improve props test
INFO Importing commit f6ca32cdcf6da5446d61afcb9cf831f1dfcacb27: Improve debug
Add proxy destroy function and use it to free proxy user_data.
Destroy sources from the poll thread.
Fix format init
INFO Importing commit e7327d131680e715846e2ff9149a0206c74b85a7: Add doxygen docs
INFO Importing commit 783bbe6c64e7ffb262b45ed6c4ba77bb9cdfc2e3: Small cleanups
INFO Importing commit ebaaedef75018dc2fad484fd3ff7092a1e55971d: Fix change mask names
INFO mv "pipewire/client/thread-mainloop.c" "pipewire/client/thread-loop.c"
INFO Importing commit 6a3b5b1bf7beb66cd1c88856ff624b878d3a074c: documentation
thread_main_loop -> thread_loop
INFO Importing commit e48c361a665af1900c8b8867f526f1c551dbdb0c: Add create_link message
Add create_link for completeness
Add some more docs
INFO Importing commit dbe20c993461726a43839a5c605027c40f25907c: Improve introspection
Move introspectable info to the node and link.
Only enumerate the device formats once.
Change some field names.
Pass link format in introspection
INFO Importing commit c3aa0f24d2dfc33b2feaf2b9ac5012387e7ee968: node: remove redundant info
INFO Importing commit d50847ef6d1b121cb72f268f35cae0336c686e49: Make client-node with a factory
Register a new factory to make client nodes.
Create client nodes with the more generic node_factory. We can then
remove the messages and interfaces.
INFO Importing commit c30d684b2d9c935ee6b403b850c69c7339e41182: core: fix some leaks
INFO Importing commit 2b5e5f29f7066dfffe5063df8f3b91e633757b70: Add client-node module
INFO Importing commit 1feec309ecb47be4fc2952457a54754c18c18a96: logger: add loadable logger
INFO Importing commit 4433203d5fb9146ec635de0963690d3082aee595: Small fixes
Init ptr in mem
Use a default memory size when no params
Improve debug
Always push after we have a buffer from pull
INFO Importing commit b4fdcbd322252cde6f419b1d65c18e440d24839d: Debug: remove logger
Make a default logger and mapper in a .h file to be used by examples
Remove logger and mapper from libs
Make method to set the default mapper for the debug methods
INFO Importing commit 0af8377d10c3bcfe1114d6da8b6d1529a71fb312: log: dynamically load the logger API
INFO Importing commit 34450ed7edbfc4e0e2476805316ac65753aa36a8: Make done event on node
Replace the AsyncDone event with an explicit done callback in the node
to signal completion of an async operation.
Pass read and write fd together with the transport
INFO Importing commit b5e60ad02a2ffc9b852e2575fc37c718f3bcbe5c: access: cleanups
Rename some callbacks
Pass result in complete callback
INFO Importing commit 2c1245f8ef34e02ee3d66945fb4de64b17e594ed: client: add busy state
When the client is busy, no methods are allowed on it until it
becomes not busy again. We can use this to wait until an async operation
completes (access checks) and to serialize the requests from the client.
INFO Importing commit 611ce2151edf599e74a6d3f06a225fd1f62aa490: access: rework access checks
Remove the access struct. Allow for the access module to override any
method of a resource to do additional checks.
INFO Importing commit 1e71b24952e1de07abda837d742b41dd6d95948b: core: handle NULL props and cleanups
INFO Importing commit 9257e3b8f3bc43904528ef0a50f2c1a064686f74: make support plugin
INFO Importing commit b9c719ac7e28ff89808ba00fcbd7472691f5327b: log: don't crash when failed to load
Improve docs for node
INFO mv "spa/plugins/logger/logger.c" "spa/plugins/support/logger.c"
INFO Importing commit f55f1739e18a1dfa626ff9665efdec9f8871f62b: Rework support
Load the mapper from the support plugin
Move the support setup in pw_init
INFO Importing commit 4a219e81dd2f29147f1a395ede812cca422499d4: loop: move to plugin
Move the loop implementation to a plugin.
Organize the hooks in a list so that we can add many.
INFO Importing commit c3b73ba47dbcd95d15afc63a65b08950a316d4ef: Add versions to structures
Use versions instead of size
Remove user_data from callbacks, we can simply pass the callback struct.
INFO Importing commit ae708c14e7b1610b86e185ef0ef90b86127a5757: Improve version handling
Add version numbers to protocol interfaces and implementation.
Allow allocating user_data in proxy and resource
Use separate methods to set implementation.
Add protocol object to keep track of available protocols and
interfaces. Add possibility to dynamically register interfaces.
INFO Importing commit dbb57fc58eb6b2115a50bb3f071e90a95609392a: Use client protocol to configure resources
INFO Importing commit e44a5818aee4660169b2683c77bb46b441d44b5b: Cleanups
INFO Importing commit 1231b033e635e4ba0173757cee7ef2e8ead973b7: pipewiresrc: remove useless fixate function
INFO Importing commit ec0fd20ca5066121b8ba6484bccc50055acaa36d: stream: cleanups
INFO mv "doxygen/Doxyfile.in" "doc/Doxyfile.in"
INFO mv "doxygen/meson.build" "doc/meson.build"
INFO Importing commit ab9b3ba85a700cef794c4bddcf6dde6ba83c77f9: docs: update
INFO Importing commit 573e032cc1f9314790f9e970d6d73b96e0019bd7: man: update man build
INFO Importing commit 6df165315ce43c69f43d3fcae0a087cb03f143a2: man: fixes
INFO Importing commit 59ec32c039b451bb9df69c4d509572995cf75250: spec: updates
INFO Importing commit 763bd1100e904acda2a24ace0665f747f9657d72: Add user_data to callbacks
Add user data to callbacks, it's more flexible and natural
INFO Importing commit 4a6b1b42bcd905df4bdad1f9bb83cf8a0fd37a12: Don't hardcode plugin path
Use SPA_PLUGIN_DIR to get the plugin path.
Install plugins in subdirectory to make it match the build tree.
INFO mv "pipewire/modules/spa/module.c" "pipewire/modules/spa/module-node.c"
INFO Importing commit bc22c584355576de57920ce2ca20bf4260919b12: module-spa: make separate monitor and node module
Make it possible to load monitors and nodes separately by specifying
the plugin and factory of the node/monitor to load.
Add argument parsing for properties and configure them in the node
when possible.
INFO Importing commit 910318d71fa96f777093e0f3e443bd35e704f978: link: only debug when asked to
INFO Importing commit 3b5a308645ff012a3e838ffe46be38b953e4ff74: link: improve renegotiation
Only suspend an idle node when we need to configure a different format.
INFO Importing commit 423d40f494fc968f1867a8fcc8762872dc13cb9e: back to development
INFO Importing commit b608599220d91a20be6543df183248f6b263ec86: doc updates
INFO mv "pipewire/server/client-node.c" "pipewire/modules/module-client-node/client-node.c"
INFO mv "pipewire/server/client-node.h" "pipewire/modules/module-client-node/client-node.h"
INFO Importing commit fb361706d4be4dc64b4fac42158065afa341e32e: Add owner resource to global and node
Use the resource as the owner for various objects.
Work on makeing the client-node an extension
INFO Importing commit 8a4c816d2f96a233f53ba872c55d1c2bab180d45: libpipewire.pc.in: Fix library name
The libpipwire .so file is called libpipewire-@PIPEWIRE_API_VERSION@.so,
not libpipewire.so, so tell build systems to link against the correct
library.
INFO mv "pipewire/server/protocol-native.c" "pipewire/modules/module-client-node/protocol-native.c"
INFO mv "pipewire/client/protocol-native.c" "pipewire/modules/module-protocol-native/protocol-native.c"
INFO Importing commit 849e0599b67bad19ae24ce520901acb96b5c9f38: Make extensions
Make the protocol-native and client-node extensions
INFO Importing commit d1e26fea30f310f23908c0e42784e92f095df7ca: install extensions and server headers
INFO Importing commit 8d5a3cdceb707936a05904009a0d6092cb3a037f: design: fix typo
INFO applying XGMMGZET7NOQ2TOQR6R735DFL6AAMCKTDKEBGWAK4YSE5JEDWHJQC to "c1de5ba6243ccc2579ab915c3f844f8132cfea24"
INFO Importing commit c1de5ba6243ccc2579ab915c3f844f8132cfea24: Merge pull request #3 from AsciiWolf/patch-2
design: fix typo
INFO Importing commit 68413d472fd4073b02f4bde6f3b761e07bae3685: Update docs a little
INFO Importing commit 5298ee8fae31aa9561612ed22221e45929d41f89: readme: fix typo (#1)
INFO Importing commit bc56c72b62c30dfb7d5931f298e5b491f4616795: transport: cleanup
INFO Importing commit 879057c565ebc2218bb1a8cb9a26e52f6fec0272: pipewirecore: Add pc file
This is useful for building out-of-tree PipeWire modules.
Change-Id: I47507349201067f01164d8ba8b95bc4ee422d082
INFO Importing commit bef8d91d7221ae36ed039e9d7880ca756ea195e8: stream: close rtwritefd
rtreadfd is added as IO in the context loop, and closed when that loop
is torn down. But rtwritefd is only used by the stream, and needs to
be closed when the stream is destroyed.
Change-Id: I7cdd623290933b2aff861003fdf1f390ff566a49
INFO Importing commit 984c536a93b7e6e19358579281954179cbf79768: stream: remember mmap address
For munmap in clear_memid(), we need to remember the address in
mid->ptr.
Change-Id: I72195bfb61a1d63aa72ffb21619d888dec85bc13
INFO Importing commit 412249b6ed1e52458f0a98b4016a1bb0c86ecb48: Fix SPA include paths
Change-Id: If21f43ed7b374b82c9a89a371760eaa93d870e8a
INFO Importing commit cd9a71d7e6264adb34118543e1049b83e6002007: client: clear types map in destroy
Change-Id: Ic16063bdf127c3387b027a19f3406b4687372aa5
INFO Importing commit 834da99c7c84ba597ac60cc9d2b50f9092e26da1: pipewiresrc: plug leaks
Change-Id: If476d21c7a26abd2e905035af4969efb23b6ec4e
INFO Importing commit 937a1567dd1d070911668fc0a96d04ef56c09c6c: stream: constify format array because we copy
INFO Importing commit 2b8aea7e9b27958a41b32d37c4ef0db8e7e7a7d5: pipewiresrc: don't clear buf_ids in close
buf_ids have to be kept so on_remove_buffer can remove them
if it happens after close.
Change-Id: I4b85918f17b8bee8c6cb4462d21b38906941e724
INFO Importing commit 0fc6b1c0be74496b081a38a81b3369d954783c57: fix some valgrind issues
INFO Importing commit 5c82a03ae58032954cf37ff546321e56268dc402: video-src: don't set timestamps
Don't set timestamps on the source, because we don't provide a clock,
the consumer part doesn't know how to sync to the timestamps.
INFO Importing commit c391e5088a4d0e9da1f0197c48635d6fc77d8517: ringbuffer: simplify
INFO Importing commit e776425846becbd0354c5a63555875345fcbf5cb: flatpak: remove hardcoded check
INFO Importing commit bc56c595977ea5c8152170fd99a8fa92f33c1cd3: loop: add block flag to invoke
Remove async shutdown and block instead.
INFO Importing commit 2c6b2f0b74333dec6ddf88be7e75f8b487f04d53: Add beginnings of jack module
Update spec and makefile a bit
INFO Importing commit 5b2745498edf0f1080414d264bc9829ee2f5ee2f: Release 0.1.1
spec: updates
INFO Importing commit 58b97c87081053c21a3c726a6a232b28df115905: back to development
INFO Importing commit 5f5ef3de2cdc816dab82cb7eb5d7171bee0ad2c5: stream: add node_id in stream
Trigger initialized after we created the node global so that we
can get its id.
Add the server side node_id for the stream in the stream struct.
Change the transport function to pass the node_id to the client.
Small cleanups
INFO Importing commit c14d727ae558e52638006a864baa236d7069dfa2: interfaces: cleanups
INFO Importing commit 7fbe811a033b49a9b4ed06316ea6e97505e7532a: audiomixer: separate mixer functions
INFO Importing commit fade5396c522c735548bb4bacdaa59ba744228fc: Fix build for jack
INFO Importing commit 407ee01437b6fdbcd5340ed07dbf67bd6383e2fc: fix build
INFO Importing commit 387dee32375b65b68d328213b26fe5a979692258: update
INFO Importing commit d8cac792f4efa78d28cc96eb14689040b0ebde23: spa: small performance fixes
INFO Importing commit 9ee0cd7d8d2c7f4c15325f6f0287c6f28fb1f0b4: fix last_port
INFO Importing commit 83e65c31ab7b6f62d5be2cb153a0071fdaa20b37: graph: improve API a little
Node allow linking to multiple inputs when there is a mixer.
INFO Importing commit a1fdfdc8184daddd6278ebcb276ab2ab9a8a636f: link: streamline state changes a little
port: add methods for things that can change the port state.
INFO Importing commit 7297c188397c5868747ef01fd3fe7c4249938f78: Cleanups
INFO Importing commit d2f877912aabda296ea16fb12953ad39209b36ab: Use graph to schedule things
Make real spa_graph nodes and ports and schedule those. This makes
it possible to add explicit tee and mixers in the real graph.
Rework the way we add and remove ports and nodes from the graph.
Remove confusing pw_port_link and merge core with pw_link_new()
Move scheduling in separate files, add some more graph-schedulers.
INFO Importing commit 9fa1df6f2cf28aca392da1831f9f39bf56199d06: link: work on activate/deactivate
Recursively activate links when activating nodes
INFO Importing commit 791137e9e552b738fed3939fb517451e70e58110: loop: fix ringbuffer handling
INFO Importing commit 7cccede185557845c9260ef380ba9e9e3b076770: fix some segfaults and lockups
INFO Importing commit 4558073da6bb98ca5c15d11e706accf7bfd49af9: introspect: improve node introspection
INFO Importing commit 8886f5d373a184b25a4a3c88d6f8ed6ffdae67b2: build fixes
INFO Importing commit 85628926bbd83aaa38df8f3981c21ca712fd6086: build fixes
INFO Importing commit 40675fec9fd5d980aebd4a937a914a65aabf09a8: spec: add more buildrequires
INFO Importing commit 65d17ab6fe2ba92a1c455ab5136da6d0b7d15623: node: set port state when suspending
INFO Importing commit da94f654930211762a73883e90a70a4182a5ff61: fix some compiler warnings
INFO Importing commit 18c702be069edc0540791607f82862d136de6eb6: spec: add graphviz for dot graphs
INFO Importing commit a3523047c7380fd033868351163b0d04a1336a7f: Release 0.1.2
INFO Importing commit b0f5d34cf70f35cdfc0c303da8b9fa7dfffd5474: back to development
INFO Importing commit 0738f7fcf59609022ecef4f37f33c178c57a0c01: Rework node and ports
Rework the node and port API so that other implementations can be used
than the spa_node. The plan is to morph this into the stream and
context API.
Rework the graph API a little so that init + add is separated.
INFO Importing commit 2ece95ea4889235cee65c826889dfbc7bb25531b: node: max_ports 0 already means no ports
INFO mv "pipewire/client/connection.c" "pipewire/modules/module-protocol-native/connection.c"
INFO mv "pipewire/client/connection.h" "pipewire/modules/module-protocol-native/connection.h"
INFO mv "pipewire/modules/extension-client-node.c" "pipewire/modules/spa/module-node-factory.c"
INFO Importing commit 847cef83b665fcdeb7d50fe02ea51df460c857c4: Work on unifying client and server
Remove context and extensions, make client API also use the core.
Make a new pw_remote object that keeps connections with remote
instances.
Remove introspection API, it's just as easy to connect to the registry
and get updates like that.
Expand the protocol a little to make it useful for making listeners
and connections.
Move protocol specific connection to the module. Make some new
convenience methods.
Make a factory to create nodes from spa objects
Add an example of a local pipeline displaying a v4l2 source.
INFO mv "pipewire/.gitignore" "src/.gitignore"
INFO mv "pipewire/daemon/.gitignore" "src/daemon/.gitignore"
INFO mv "pipewire/daemon/daemon-config.c" "src/daemon/daemon-config.c"
INFO mv "pipewire/daemon/daemon-config.h" "src/daemon/daemon-config.h"
INFO mv "pipewire/daemon/main.c" "src/daemon/main.c"
INFO mv "pipewire/daemon/meson.build" "src/daemon/meson.build"
INFO mv "pipewire/daemon/pipewire-system.conf" "src/daemon/pipewire-system.conf"
INFO mv "pipewire/daemon/pipewire.conf.in" "src/daemon/pipewire.conf.in"
INFO mv "pipewire/daemon/pipewire.desktop.in" "src/daemon/pipewire.desktop.in"
INFO mv "pipewire/examples/local-v4l2.c" "src/examples/local-v4l2.c"
INFO mv "pipewire/examples/meson.build" "src/examples/meson.build"
INFO mv "pipewire/examples/video-play.c" "src/examples/video-play.c"
INFO mv "pipewire/examples/video-src.c" "src/examples/video-src.c"
INFO mv "pipewire/extensions/client-node.h" "src/extensions/client-node.h"
INFO mv "pipewire/extensions/meson.build" "src/extensions/meson.build"
INFO mv "pipewire/gst/gstpipewire.c" "src/gst/gstpipewire.c"
INFO mv "pipewire/gst/gstpipewireclock.c" "src/gst/gstpipewireclock.c"
INFO mv "pipewire/gst/gstpipewireclock.h" "src/gst/gstpipewireclock.h"
INFO mv "pipewire/gst/gstpipewiredeviceprovider.c" "src/gst/gstpipewiredeviceprovider.c"
INFO mv "pipewire/gst/gstpipewiredeviceprovider.h" "src/gst/gstpipewiredeviceprovider.h"
INFO mv "pipewire/gst/gstpipewireformat.c" "src/gst/gstpipewireformat.c"
INFO mv "pipewire/gst/gstpipewireformat.h" "src/gst/gstpipewireformat.h"
INFO mv "pipewire/gst/gstpipewirepool.c" "src/gst/gstpipewirepool.c"
INFO mv "pipewire/gst/gstpipewirepool.h" "src/gst/gstpipewirepool.h"
INFO mv "pipewire/gst/gstpipewiresink.c" "src/gst/gstpipewiresink.c"
INFO mv "pipewire/gst/gstpipewiresink.h" "src/gst/gstpipewiresink.h"
INFO mv "pipewire/gst/gstpipewiresrc.c" "src/gst/gstpipewiresrc.c"
INFO mv "pipewire/gst/gstpipewiresrc.h" "src/gst/gstpipewiresrc.h"
INFO mv "pipewire/gst/meson.build" "src/gst/meson.build"
INFO mv "pipewire/meson.build" "src/meson.build"
INFO mv "pipewire/modules/meson.build" "src/modules/meson.build"
INFO mv "pipewire/modules/module-autolink.c" "src/modules/module-autolink.c"
INFO mv "pipewire/modules/module-client-node.c" "src/modules/module-client-node.c"
INFO mv "pipewire/modules/module-client-node/client-node.c" "src/modules/module-client-node/client-node.c"
INFO mv "pipewire/modules/module-client-node/client-node.h" "src/modules/module-client-node/client-node.h"
INFO mv "pipewire/modules/module-client-node/protocol-native.c" "src/modules/module-client-node/protocol-native.c"
INFO mv "pipewire/modules/module-flatpak.c" "src/modules/module-flatpak.c"
INFO mv "pipewire/modules/module-jack.c" "src/modules/module-jack.c"
INFO mv "pipewire/modules/module-jack/defs.h" "src/modules/module-jack/defs.h"
INFO mv "pipewire/modules/module-jack/server.h" "src/modules/module-jack/server.h"
INFO mv "pipewire/modules/module-jack/shared.h" "src/modules/module-jack/shared.h"
INFO mv "pipewire/modules/module-jack/shm.c" "src/modules/module-jack/shm.c"
INFO mv "pipewire/modules/module-jack/shm.h" "src/modules/module-jack/shm.h"
INFO mv "pipewire/modules/module-jack/synchro.h" "src/modules/module-jack/synchro.h"
INFO mv "pipewire/modules/module-mixer.c" "src/modules/module-mixer.c"
INFO mv "pipewire/modules/module-protocol-dbus.c" "src/modules/module-protocol-dbus.c"
INFO mv "pipewire/modules/module-protocol-native.c" "src/modules/module-protocol-native.c"
INFO mv "pipewire/modules/module-protocol-native/connection.c" "src/modules/module-protocol-native/connection.c"
INFO mv "pipewire/modules/module-protocol-native/connection.h" "src/modules/module-protocol-native/connection.h"
INFO mv "pipewire/modules/module-protocol-native/protocol-native.c" "src/modules/module-protocol-native/protocol-native.c"
INFO mv "pipewire/modules/module-suspend-on-idle.c" "src/modules/module-suspend-on-idle.c"
INFO mv "pipewire/modules/spa/meson.build" "src/modules/spa/meson.build"
INFO mv "pipewire/modules/spa/module-monitor.c" "src/modules/spa/module-monitor.c"
INFO mv "pipewire/modules/spa/module-node-factory.c" "src/modules/spa/module-node-factory.c"
INFO mv "pipewire/modules/spa/module-node.c" "src/modules/spa/module-node.c"
INFO mv "pipewire/modules/spa/spa-monitor.c" "src/modules/spa/spa-monitor.c"
INFO mv "pipewire/modules/spa/spa-monitor.h" "src/modules/spa/spa-monitor.h"
INFO mv "pipewire/modules/spa/spa-node.c" "src/modules/spa/spa-node.c"
INFO mv "pipewire/modules/spa/spa-node.h" "src/modules/spa/spa-node.h"
INFO mv "pipewire/client/.gitignore" "src/pipewire/.gitignore"
INFO mv "pipewire/client/array.h" "src/pipewire/array.h"
INFO mv "pipewire/server/client.c" "src/pipewire/client.c"
INFO mv "pipewire/server/client.h" "src/pipewire/client.h"
INFO mv "pipewire/server/command.c" "src/pipewire/command.c"
INFO mv "pipewire/server/command.h" "src/pipewire/command.h"
INFO mv "pipewire/server/core.c" "src/pipewire/core.c"
INFO mv "pipewire/server/core.h" "src/pipewire/core.h"
INFO mv "pipewire/server/data-loop.c" "src/pipewire/data-loop.c"
INFO mv "pipewire/server/data-loop.h" "src/pipewire/data-loop.h"
INFO mv "pipewire/client/interfaces.h" "src/pipewire/interfaces.h"
INFO mv "pipewire/client/introspect.c" "src/pipewire/introspect.c"
INFO mv "pipewire/client/introspect.h" "src/pipewire/introspect.h"
INFO mv "pipewire/server/link.c" "src/pipewire/link.c"
INFO mv "pipewire/server/link.h" "src/pipewire/link.h"
INFO mv "pipewire/client/log.c" "src/pipewire/log.c"
INFO mv "pipewire/client/log.h" "src/pipewire/log.h"
INFO mv "pipewire/client/loop.c" "src/pipewire/loop.c"
INFO mv "pipewire/client/loop.h" "src/pipewire/loop.h"
INFO mv "pipewire/server/main-loop.c" "src/pipewire/main-loop.c"
INFO mv "pipewire/server/main-loop.h" "src/pipewire/main-loop.h"
INFO mv "pipewire/client/map.h" "src/pipewire/map.h"
INFO mv "pipewire/client/mem.c" "src/pipewire/mem.c"
INFO mv "pipewire/client/mem.h" "src/pipewire/mem.h"
INFO mv "pipewire/client/memfd-wrappers.h" "src/pipewire/memfd-wrappers.h"
INFO mv "pipewire/client/meson.build" "src/pipewire/meson.build"
INFO mv "pipewire/server/module.c" "src/pipewire/module.c"
INFO mv "pipewire/server/module.h" "src/pipewire/module.h"
INFO mv "pipewire/server/node-factory.c" "src/pipewire/node-factory.c"
INFO mv "pipewire/server/node-factory.h" "src/pipewire/node-factory.h"
INFO mv "pipewire/server/node.c" "src/pipewire/node.c"
INFO mv "pipewire/server/node.h" "src/pipewire/node.h"
INFO mv "pipewire/client/pipewire.c" "src/pipewire/pipewire.c"
INFO mv "pipewire/client/pipewire.h" "src/pipewire/pipewire.h"
INFO mv "pipewire/server/port.c" "src/pipewire/port.c"
INFO mv "pipewire/server/port.h" "src/pipewire/port.h"
INFO mv "pipewire/client/properties.c" "src/pipewire/properties.c"
INFO mv "pipewire/client/properties.h" "src/pipewire/properties.h"
INFO mv "pipewire/client/protocol.c" "src/pipewire/protocol.c"
INFO mv "pipewire/client/protocol.h" "src/pipewire/protocol.h"
INFO mv "pipewire/client/proxy.c" "src/pipewire/proxy.c"
INFO mv "pipewire/client/proxy.h" "src/pipewire/proxy.h"
INFO mv "pipewire/server/remote.c" "src/pipewire/remote.c"
INFO mv "pipewire/server/remote.h" "src/pipewire/remote.h"
INFO mv "pipewire/server/resource.c" "src/pipewire/resource.c"
INFO mv "pipewire/server/resource.h" "src/pipewire/resource.h"
INFO mv "pipewire/client/rtkit.c" "src/pipewire/rtkit.c"
INFO mv "pipewire/client/rtkit.h" "src/pipewire/rtkit.h"
INFO mv "pipewire/client/sig.h" "src/pipewire/sig.h"
INFO mv "pipewire/client/stream.c" "src/pipewire/stream.c"
INFO mv "pipewire/client/stream.h" "src/pipewire/stream.h"
INFO mv "pipewire/client/thread-loop.c" "src/pipewire/thread-loop.c"
INFO mv "pipewire/client/thread-loop.h" "src/pipewire/thread-loop.h"
INFO mv "pipewire/client/transport.c" "src/pipewire/transport.c"
INFO mv "pipewire/client/transport.h" "src/pipewire/transport.h"
INFO mv "pipewire/client/type.c" "src/pipewire/type.c"
INFO mv "pipewire/client/type.h" "src/pipewire/type.h"
INFO mv "pipewire/client/utils.c" "src/pipewire/utils.c"
INFO mv "pipewire/client/utils.h" "src/pipewire/utils.h"
INFO mv "pipewire/server/work-queue.c" "src/pipewire/work-queue.c"
INFO mv "pipewire/server/work-queue.h" "src/pipewire/work-queue.h"
INFO mv "pipewire/server/meson.build" "src/server/meson.build"
INFO mv "pipewire/tools/meson.build" "src/tools/meson.build"
INFO mv "pipewire/tools/pipewire-monitor.c" "src/tools/pipewire-monitor.c"
INFO Importing commit d1655196c3a54de9dad08cde7ecde17d9c0acf8b: move things around
INFO Importing commit f7e9e0c33aa52a9b14b0fccb6e40f256661ecb15: pass the global type as an id instead of string
INFO Importing commit 4f9d631910248adba8d86825dd0903ba5262fc0a: Add version to more methods
INFO Importing commit 83b4eaca536162c8d1c12617f2973551d1e0719b: Pass some more properties around
Only start listener when core is a daemon.
INFO Importing commit 267547c884b82851680167033377a8866b085647: memory leak fixes
INFO Importing commit 465f12241ec4cc33338197be6d16670dd0adf0b7: Implement protocol extensions
Add hooks that contain protocol specific interfaces that can be used
to extend the protocol. This makes it possible to add new interfaces
to the protocol and implement the protocol specific data transport.
Move these protocol specific extension to the extensions directory.
INFO Importing commit 1acba78234e427054692d4e65653593036d8b744: API cleanups
Fix docs
Add some more versions to interfaces
Make types for the various proxy object + inline methods that does type
checking and create proxys etc.
Set owner client of client-nodes in the properties
Pass type to bind to in create-node
Don't place global id in the info structs
Improve registration of marshal functions
Pass more types around as ids
INFO Importing commit a003d1a39f3b639693cb65389fb44f60cd4fc459: Add parent_id
Add parent_id to globals to make hierarchy of interfaces. We can use
this to group interfaces or to describe the owner.
INFO Importing commit 629f824b91fb2c6024423efdd583576e96c35bd6: pipewiresrc: improve remote connection errors
INFO Importing commit aff9564518514c541e08fb513cf2de482e6d892a: remote: make protocol configurable
INFO Importing commit 91d54364fc05fc4a4a301d864e4bc4acee58603d: loop: add signal count to callback
Don't try to signal too many times
INFO Importing commit 589e3d977cc0deac1c513f903300965e92cbacb7: module: fix registration of modules
Don't fail when protocol-native is already registered.
INFO Importing commit 3d9f28c67668bc58d9dc3807f564c34df95544c8: Use remote to join nodes on remote graphs
Make a new method that can take a local node and run it in a remote
pipeline. This basically replaces all functionality of the streams
and more.
Add 2 examples for exporting a sink and a v4l2 node
Make some more things const
Cleanups
Make it possible to do things when the node needs scheduling. The
default node will schedule the local pipeline but the remote node might
also schedule the remote pipeline.
INFO Importing commit 9831786eb7a37fad39041bf1f3e74723f85823a8: Work on improved scheduling or remote nodes
INFO Importing commit c59bc457d43af61a709e988f4ea7776f6b39c13d: Improve pull on client-node
When we pull from the client-node, use any previously queued buffers.
INFO Importing commit 4f08dbcd2477b5f04307568fd07cf90ef423445e: Use more fine grained access control
Make it possible to add more permissions to an object than just visible
or not. Pass these permissions to the client. This way we can make a
difference between being able to see and read, modify or query an
object. More permissions can be added later when needed. Because the
permissions is set on the resource by the access control module, the
implementations can check if the right permission is set before doing
anything.
INFO Importing commit e24c934a1b10d70d6bbecfd9317d0f5e03ca10c2: protocol-native: improve demarshal
Add flags to demarshal functions and check remap and write access
in just one place.
INFO Importing commit b898eb46cd5dadd62c0f4e0be538ebf8ceb3bd9f: Make structure private
Make structs private. Expose methods for things we need.
Signals only work on exposed structures so make a new callback helper to
signal events.
INFO mv "src/pipewire/callback.h" "src/pipewire/listener.h"
INFO Importing commit 1b79419554cefdd38961a7d750a2af7bf0f01b61: cleanups
Remove signals.
Rename callbacks -> events, use listeners to listen for events.
Callbacks are still used in spa for things you can listen to only
once.
INFO Importing commit 0602d76b9e8a265efb2080073b3f5a6a09e5edc9: Cleanups
Only pass data to callbacks.
Rename some structs
Provide methods to access structs
INFO mv "src/pipewire/transport.c" "src/modules/module-client-node/transport.c"
INFO Importing commit 97de0de0b76667d4d64a1fad7926ab311f3f9620: Move transport to client-node extension
INFO Importing commit b90dac765626de633a4f148399f9f0307c3b477d: don't use generic events for real-time messages
Use static event enumerations for real-time messages.
INFO Importing commit 791fb5350304ac5f01764fc1028357bb4be7c8ac: Remove some macros, we can use the paste operator before __VA_ARGS__
INFO Importing commit 77e326bf6d75127855247b85303a5a9b5c819c3d: deviceprovider: pass right data to callback
INFO Importing commit 6b6b827a3b9f81b8830ceb1af6aa60427ca4aaba: Add resource override method
Add an easy way to override a resource implementation and use this in
the flatpak module.
Add more methods
INFO mv "src/pipewire/listener.h" "spa/include/spa/hook.h"
INFO Importing commit 600055bd684a3d7315a69e523df4af2d4ee67bfc: Move listeners to spa and rename to hooks
The listeners are generally useful in spa, move it there and rename
to hooks. Implement loop hooks with it.
Fix some cleanup issues in stream and remote
INFO Importing commit eeda53dbefce5f3b077d8603644034ec9ee63fe0: Fix leaks
Add some docs
Add properties to loop objects for future use
INFO Importing commit 8a200aa3619a2dc8b4d7cc1596a30be7e9f32c79: move global to separate file
INFO Importing commit db15225b51a5197ea449038a1e3bf90409c2bafb: Fix includes
INFO Importing commit ac8458dd52d8c5bfda0f64ad89201be67665f507: Add missing file
INFO Importing commit 674ab5f9165499c61afebaa269bc90a8c3d96c51: update spec
INFO Importing commit 35929dd4d88b8dfab09ed8363f98f90c98172c11: Release 0.1.3
INFO Importing commit cfd9967637fe08f4ec880986028ede82f9df3053: Back to development
INFO Importing commit 9ad1f911b2fd87d3d45314e0007aeef206bf26da: Improve loop callbacks
Pass just one data item to the callbacks.
Add properties to port.
Add user data to link
Handle autolink with multiple ports
More work on jack support
INFO Importing commit 288d944579bc0bdfb35d747e87db302f5c07747a: autolink: fix crash
INFO Importing commit 4731a0b4b8c4773a8673bb807d1a429925319ade: More work on jack support
INFO Importing commit 2cb1590859fa1798bebb5eae1280f011d0602b26: cleanups
INFO Importing commit 5e593563afa57e2e5a6e255cc38342a8994c894a: port: add events for add/remove of link
INFO Importing commit 27f811d726c8b7fdf698bb9eb2ef3a1a3d464794: jack: move more stuff to nodes and ports
Improve cleanup and registration of jack clients
INFO Importing commit 8f7a19f2e34a2668c500792f93ee594b29d99192: examples: fix some leaks
INFO Importing commit b7647e80d32a6043b48402088f49be3168489627: jack: work on cleanup
INFO Importing commit 560e02ef11bb952c9c7fb09d894c08332a85815d: jack: handle port disconnect
INFO Importing commit 61424a4343ecf0040fdb6d26a42e0411fca722e4: stream: Add pw_stream_get_node_id()
Adds API to get the node ID of the stream.
INFO Importing commit 29eb58f7a26be3a864bf760ce8220a217c2f93fa: Add systemd socket activation files
Notify of jack graph changes
INFO Importing commit 593df62ccc718af87966302118fe22aada0c5c53: update spec
INFO Importing commit 60866fc7cde4756de617ed34a4ccfe9a5b2f2a5a: jack: notify graph changes from main thread
INFO Importing commit c3d63983e116d26fcfe846d0ce7c8a4690d76295: alsa: don't read timerfd when stopped
We only start the timerfd when we are started
INFO Importing commit eba2b82c8eea24a3fcb314059a9ec3ad244c098b: graph: fix the API a little
Add test for atomic graph updates
INFO Importing commit bece3a013bee300e570dab96c3b489d57e6b6dbe: Make scheduler more generic
Add some callbacks to trigger push and pull in a graph
Remove the scheduler, make some implementations of graph push/pull
functions.
Add some properties to jack clients and nodes
Fix the parent of the clients.
Notify link format changes
INFO Importing commit fca6808419b4c325426563ecbb1df2f61a312510: jack: improve activate/deactivate
Add the nodes from the RT thread.
Handle non-realtime clients, we don't need to signal them
do some sort of latency callbacks
Don't do callbacks for clients without a handler.
INFO Importing commit 1fc7c6de59c3d49aa9963cb6a017e9bff2947636: jack: only remove node when we added it before
INFO Importing commit 12e2fae8abe24104fd08aa32dde7330b94a34f11: jack: add midi format
Add midi format
Handle ore requests
Clean semaphore and socket names
INFO Importing commit c25834a692ac6d5ccadbd9bce55d6272a38cbd80: Work on cleanup
Add signal handlers for daemon to shut down
Add destroy listeners for modules and do cleanup
Fix some leaks
Simplify port registration in new nodes
Hide some more data structures
Let the node implementation take care of the reuse_buffer signal because
then we can get to the graph nodes to find the destination port.
Destroy modules in core cleanup. Modules should undo everything they
have done.
Activate the link after we negotiated format and buffers.
INFO Importing commit 80cf20a255d17bfb69ddc5d7d9306477fed539ac: monitor: fix some leaks
INFO Importing commit cc95f975ce16207680cb5fb00016e9d93d2e44ac: link: fix memleak
Don't leak the buffers, handle ownership of them just like we do with
the buffer memory.
INFO Importing commit 61e721800614d8ca8e694cd53a05d48be06c3883: protocol: destroy clients
Destroy clients before destroying the protocol
INFO Importing commit 5cc4c5c37814bb877f8d315aa46c860d62dfb9ee: core: fix leak
INFO Importing commit b7e334e55ddbdd9afe811c043e782ae31596899e: Release 0.1.4
Remove spec file
Fix systemd service file
Send error on link errors
Init socket to -1 so that we don't close anything on error
Wait for all proxy objects in device monitor
INFO Importing commit 68f5c05b9f6767789096f37a0af3965cfa1d0cc5: back to development
INFO Importing commit b7b80683bc820c710df221de5cbfc2de045ec683: jack: work on mixing
INFO Importing commit 28ae844de92d7cbae769caee10482349e9072014: node: always use a spa_node as the implementation
Avoid duplicating API, remove implementations from port and node and
always use an spa_node as the implementation, it's just as easy to
implement a spa node. With the implementation always being a spa_node
we will be able to better implement the negotiation of the mixers.
INFO Importing commit 6953642ed5c36fcc48d795fb8865cef1d936f2eb: small cleanups
INFO Importing commit 577f86be0dee2c6744101dd07db3525b88bce947: graph: use spa_node as implementation
Always use a spa_node as the graph implementation, implementing the
methods is just as easy.
Plug some mem leaks in remote
INFO Importing commit 174d34ada6478dffd693fb5195bc87385ba1a2cd: fix a socket leak
Let the loop source free the sockets.
Free the write fd in the stream.
INFO Importing commit 6afcb4981f2d6d23c2298be5b065f0267db223b9: link: improve introspection
INFO Importing commit b0c393647713866d33bef5bc2cdf18bfe51a1ba6: Fix clang warnings about comparing uint32 < 0 (#10)
* Fix clang warnings about comparing uint32 < 0
clangs complains about an uint32 compared to < 0:
warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
So remove these comparisos and an uint32 never will be less than 0.
Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
* module-jack.c: Differentiate error msg from protocol-native
Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
INFO Importing commit ff363cc7bf1db8da7ffe3423de0fb85fd1531bc2: spa/include/meson: Install hook.h (#11)
When compiling some application and include spa/loop.h, it needs hook.h,
so install it.
Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
INFO Importing commit f6d480fdfd1193e44cb7de0d91e4aed2819f43c1: Fix memory issues reported by clang static analyzer (#7)
* Fix use after free in error path
Memory pointed by 'handle' is used in error path but it is freed before jumping to interface_failed. Remove the wrong free. Memory pointed by 'handle' gets freed in the error handling path.
* Free 'bus' when dbus_bus_get_private fails
If dbus_bus_get_private fails memory pointed by 'bus' is never freed. Free it.
* Free 'impl' if dbus_bus_get_private fails
When dbus_bus_get_private fails the memory pointed by 'impl' is not freed. Free it.
INFO Importing commit be7a06f9b05c01b93209022fd88479bb8480504e: stream: Stream is closing the same fd several times
Several memid's are connected to the same fd and when clearing the
memid shall the fd only be closed once.
INFO Importing commit 914fe5c2b7b27871dafae1aedfc660d486fb4329: jack: filter formats
filter jack formats in enum_formats
Fix some crashes and cleanups
INFO Importing commit 3334ed73ae1d7ac6d43c18c5802da0be25774097: Set theme jekyll-theme-slate
INFO Importing commit ebea63ad0a292b75aa7b793e23024d1de967ffac: client: set ucred properties
INFO Importing commit 7ef1a1d107b5fab4cd03a0ed4df958b93159e987: Add target to publish API docs
INFO Importing commit 36ac8a6545825fc0f2969cbc130a1eea286b32b7: update docs
INFO Importing commit 21cd5a2918b920ae77f12e84558925bb210daac7: Add example to play sine wave
Various build fixes and cleanups
Move port_add to private and make node ports based on implementation.
Improve pull based scheduling on remote nodes
INFO mv "src/examples/export-v4l2.c" "src/examples/export-spa.c"
INFO Importing commit dc85a79786068fe096f90cec78f2c9852b4fea79: Add more generic export-spa example
Replace the v4l2 example with a more generic version that can add
any spa node to a remote graph
Make the dictionary items const
Add some info to nodes and factories. Add the node info to the node
properties. We can then set the media.class directly on the node,
instead of letting the monitor set it.
Debug node info in spa-inspect.
Do async operation on the audiotestsrc and videotestsrc differently.
INFO Importing commit f03d229467e4b96966becead6e6bfc14c3f2a81c: node: be more clever when updating ports
When updating the node ports, handle the case where ports are already
added as well as removed ports.
INFO Importing commit c72d797ddef0a7892709f6b9060e0be09673584c: Fix crash on shutdown
Sometimes we insert NULL into the client object map to mark the object
freed. Now that the map also returns those NULL's, don't try to free
them.
Small cleanups
Make some port methods private.
INFO Importing commit 78ebe2b76ea7a30b618ae9a4d84eadc9b776e14f: Small cleanups
Use client properties to get the remote name to connect to.
Allow NULL values in properties and make sure they are copied
correctly.
INFO Importing commit 83b5765bbd5209f71e98155bc10569dec1c9681e: list: fix spa_list_last
INFO Importing commit e641914c2f5b162ca78b6b3794431774ebac0bfc: volume: improve negotiation and params
INFO Importing commit 26e9daf6b7976ee03c548fc55b43135a1c1975f8: graph: provide in and out counters
Make it possible to have input and output counters to see when a
node can be scheduled.
INFO Importing commit 2ca25e5bf4069676d2a5cad3735435bd9d77d40a: Small cleanups
Improve debug
Fix core info event, pass the copied info around in remote.
INFO Importing commit 8a45fd4f3197d03e0867ab0a51b3bac618071e41: remote: add user data
INFO Importing commit d26d7a8040770365a29469c79b9a87411e1e5ab6: flatpak: fix resource override
Make sure we chain up to the same resource that we override, for this
keep a per resource info that we pass around.
INFO Importing commit 4bef583b752f7a8719bcf5b8857049aa67b1d845: command: clean up a little
INFO Importing commit d9bae8f38bf86c0e3449e7e59bce646f6824ed67: introspect: add id to info again
The global is created first, with the global id in the info, it's
possible to easily link a new object to a global.
INFO Importing commit 2f9c57ec013b2cf8934e5336ca8776127567a35d: core: do a bind to a new node
If a create-node creates a new node, do a bind to the global of
the node to make sure the client gets the node-info.
INFO Importing commit 389781e3d59c20b87bc2bb8b4320e7a3bc9c876a: core: implement create-link
INFO Importing commit 63723cd15e08d55ff48821e4fcec8e3668e566fc: core: only keep the first core resource
The resource with id 0 is always the core resource. If the client
later binds to the core again, don't override the core resource.
INFO Importing commit f744b7fb1bae7fe882d6213cb54c864de3c9399c: pipewire-cli: add new tool
Add new tool to interactively interface with PipeWire instances.
INFO Importing commit 4d0322414148a409c524b99cd0492297b34c0698: scheduler: fix push
INFO Importing commit 3c1957fd9dce66d031a233b47764352c9ec02ab6: remote: make extra nodes for scheduler
Add an extra input and output node for remote nodes. We link this
node to all remote inputs and outputs to make it easier to use
the scheduler.
Improve scheduler debug
INFO mv "src/pipewire/node-factory.c" "src/pipewire/factory.c"
INFO mv "src/pipewire/node-factory.h" "src/pipewire/factory.h"
INFO Importing commit 7f20e04803c9fdb9538fae9eea59736b9530e558: node_factory -> factory
Rename the node-factory to a more generic object factory.
Add type and version to create objects from a factory
Start on factory introspection
INFO Importing commit 67d4dd86563ba4957bee3ecd59be98b5091f06ba: factory: add introspection
INFO Importing commit f64c28c0910ee4c8445287e1730a5b131370d599: Cleanups
Make separate _register function so that we can first configure the
object before making it publicly visible.
INFO Importing commit 82129a65b9dfd859e9e6f73f675ffed2fdc74db9: flatpak: use new way to check for flatpak
INFO Importing commit 304a6d17963c98df4f3e3b2cdcaeb7378873abc7: alsa-source: fix class
INFO Importing commit 93a52f4837dddc30950ab50416f9c7db280aeb27: Simplify node activation
Don't directly expose the state change methods. Only expose an activate
method for nodes that indicates if the node should be scheduled or not.
Let the link automatically negotiate two active nodes.
Make some defines for properties.
Use link property to make passive links. Passive links don't activate
the nodes.
Make sure the mainloop quits when quit is called before run.
INFO Importing commit 2f6c4544fe5dc03bc6b4aff37024a68d417a7078: Small cleanups and additions
INFO Importing commit 3b0eec4bf8dc0b34141bc9f377959ec747dc4eb6: Use PIPEWIRE_DAEMON env var to start a server
Check the PIPEWIRE_DAEMON environment variable and start a server
if it is set.
INFO Importing commit 6af4f08c6e3682fa5877ac5b04fd35e979b08ce1: cli: small cleanups
Add make cli to start the cli
Only print changes once
Notify of changed objects
INFO Importing commit 807af5b983bf21206041fc30a4d81e40bbc58296: man: update man pages
Add man page for pipewire-cli
INFO Importing commit 0d44a34b4cce3a12c5bfb2a2b5fb655acf6f16d6: Release 0.1.5
INFO Importing commit 2e379d5f8fa66a3be410e9d8ff038289cdf5d534: back to development
INFO Importing commit 8f67aa2c3887fa72ccf6bbcd2d10b4e5b1a6da54: deviceprovide: only signal when there is a loop
INFO Importing commit 14dbc9c6873366ed930f55e0651c44a1e97c2a4d: Makefile.in: use right build command
Use ninja instead of ninja-build, which does not seem to exist on
debian.
INFO Importing commit aa2a189ac94f399b8abe7c93e5be1c51041e7ca2: Update POTFILES.in
INFO Importing commit 8432039ee513c38003dbcf162246c7dbf1d14472: meson: require jack2 to build
INFO Importing commit ac382c052aac8f9a5225196c8c845c7bbd5bd468: Work on JSON based format descriptions
INFO Importing commit 86c8955c3a40a94e94c1391126eb502da52e9e83: more json tests
INFO Importing commit b93ecb70fc3744d32e23780bf84b7df6d7e1e044: more experiments: add json pattern matcher
INFO Importing commit 3e49aec61bc1566032f37b4af354693a0568ab98: json tests: add properties and
INFO Importing commit 24d80e5c001f01b7cc2caad170c45fb3ca63d4a9: Add new pod parser and builder
Add a new pod builder and parser that is less verbose and
a little more powerful.
INFO Importing commit 81e5708442858a052b88ddb796bb5d09439f38b9: move type remap to native protocol
INFO Importing commit d65012ff21dadf653917f81526012c9d73b57abe: remove json stuff
using JSON for formats or properties is not a good idea because we can't
add more types like pointers, fd, rectangles without weird hacks. Our
PODs are more easy to parse and extend and now there is an easy way
to parse and create them as well.
INFO Importing commit 93bd18ccc5c9403c2c9c476fd139b4057827332b: fix build of test
INFO Importing commit 4fb97f78f7f2325fe26f74a9ed59470e1671bb84: Fix compilation with older SDL2
INFO Importing commit acfdc63f26b7b2b7a465d3cc758b9c70403834df: don't include stdio
INFO Importing commit d96d40e30aa6b5f7c630aeed9e82f11eba27b38e: Add set_active method on node
Require that nodes need to be activated before they are scheduled.
Make method to activate remote node.
Add method to pause/resume stream.
INFO Importing commit ed9851ab0f885795d73e70dbeb459886a5dce3ca: port: schedule reuse-buffer
Handle reuse-buffer in output-port tee nodes and input-port mix
nodes. In both cases, reuse-buffer is forwarded to the input ports of
the tee/mix node.
Change-Id: Ifbe8bcf07f0adc6400accc64a9bfb63a5c70e215
INFO Importing commit caca6dffd0319293b20d72a19497f4e49d3846cc: port: optimize tee reuse_buffer a bit
INFO Importing commit 46b738282c4c8ff62ffafd4a440093613abac678: pipewiresrc: recycle each buffer
Change-Id: Id0d415d830c6e7a27245102db6eb1068aa3c5f41
INFO Importing commit de8e0c8f8c59aa44ba56f0eacd12afbad0351ae2: stream: let recycle_buffer() have effect for input streams
For PW_DIRECTION_INPUT streams, set the used flag for buffers before
emitting new_buffer. This makes recycle_buffer() effective.
Change-Id: I869c2bd303e19974de79e8ada334a485c58f6592
INFO Importing commit 28bf6137d3c4765e992fcc87c5bc9fefa50a4090: Support for "client-reuse" streams
Add a PW property "pipewire.client.reuse". If set, the client-node
doesn't immediately reuse a buffer after sending
PW_CLIENT_NODE_MESSAGE_PROCESS_INPUT to the client. Instead, it waits
for reuse-buffer from the client. The SPA_GRAPH_NODE_FLAG_ASYNC is
used for this, together with adapted logic in process_input().
In stream.c, if the property is set, the handling of incoming buffers
for PW_DIRECTION_INPUT streams is changed. Each buffer has to be
recycled, so we make sure new_buffer is emitted for each intermediate
buffer, if buffer_id in the IO area has moved past some buffers.
Change-Id: I137a12b702b857cc73369930d7029ecbd69d63ff
INFO Importing commit 9706c191b9f0858f54aa999f9c9252cbad54a10f: client-node: don't misuse ASYNC flag
When the client is explicitly going to send reuse_buffer messages,
set the consumed buffer to INVALID so it doesn't automatically get
reused.
ASYNC is for when the node emits events to signal input and output it
has nothing to do with reuse_buffer
Remove weird PROCESS_INPUT code.
INFO Importing commit 574c6d4b90ee04bfff588965810fce3eff0cd6be: v4l2: only produce data when needed
We should only produce data when the io area status is NEED_BUFFER.
INFO Importing commit ce6b75cf63b36f89b49219affd15c3f98901f125: Small cleanups
INFO Importing commit 630dbd2c9040bc886f3fba4124d1c8662dc625e1: jack: Use latency of sink as buffer size
INFO Importing commit c386eda653d1620d304e8b0fda1ab7bcecda46d7: volume: mark input busy while processing output
INFO Importing commit 957a03e3f811ac0d87430cc4162b6e45f9e189b7: export-source: implement reuse_buffer
INFO Importing commit f817aabe24a25acadeb777e884255c5102205d55: Work on better scheduling
Also use double buffering for the client-node input, we process the
output of the previous cycle.
Only process the reuse_buffer if the client is explicitly going to
send them otherwise, recycle right after sending.
Let the tee and mix pass the io status upstream.
Initialize io area with NEED_BUFFER for inputs.
Implement reuse_buffer for the remote.
INFO Importing commit 323c6440843d806c55f2a6942087bdb1a108b0c5: fix crashes and leaks on shutdown
INFO Importing commit b589b7062d1feb5ade581d5a8bd5f161eba9a00e: Add support for NULL strings
INFO Importing commit c5385805bd5ac32a67af87e2e8d4707db6e32b21: alsa: reuse_buffer is without buffer_id in port_io
INFO Importing commit c818ab78cfaebb1e7779a706eff2d8a28ccc9f27: alsa: safely remove the source
INFO Importing commit 5a9c4981d89089f38e087f5cd9695b1783d0a947: mixer: remove nodes we created
INFO Importing commit 5e21edd8d5b5c0ac85276e9ab7c63a8fba558d39: spa-node: parse bool properties
Add some more helpers to parse property values
INFO Importing commit 65a8bc8b345bb011cc97421203575ea680061240: graph: improve debug
INFO Importing commit 530caf35dbab95ccd881e065b4dfe3d6d8325e48: *testsrc: async == live for now
INFO Importing commit f19edc16ab9988de7f1b6072c631171fa4b000b7: link: activate before start
Activate the link before we start the nodes to make sure we are
linked when the nodes start to push things.
INFO Importing commit d3d557c1660128ff65a9ac7ebbf0ef55a70b3889: cli: don't try to destroy NULL
INFO Importing commit 177ffd766c327b529347c29b518d2c28346fb813: jack: fix buffer reuse
INFO Importing commit 127d69e4a07c567abf9cb7da372bb6bed0fe38b1: jack: remove nodes we created
INFO Importing commit fa5c2000f9f10198eefab3e8270221a1c778bb1d: cli: use a signed type for return value
read() returns ssize_t where a negative number is used for errors.
The value was read into a size_t and then checked for <0.
Change to ssize_t to handle the negative number.
INFO Importing commit 6a0ee7a2987cc9a334bf737b17887cc3607db755: meson.build: remove automagic docs and manpages
INFO Importing commit ac37d0f180221057a1b34779b8ae96f9bd873e06: readme: add section on building with make or meson
Add a short paragraph to indicate that there are two methods
to build pipewire.
Signed-off-by: Harry van Haaren <harryhaaren@gmail.com>
INFO Importing commit ffd7b5a743f0a4acb4eab51e2b702cd452c7b45f: core: remove redundant return
INFO Importing commit 3315de187c59fac483c3092eb768f0e4e3a5f16f: connection: don't error when not enough data
When there is not enough data available yet, don't fail but try again
next time.
INFO Importing commit df59183a66c7cd844cbeb7e629a647e5e09fd2c0: scheduler: add new scheduler
Make port status SPA_RESULT_OK until events changes it and data
processing can start
Only start pulling on ports in the OK state
Change we way we handle client-nodes, handle them async and continue
processing after they signaled completion
Add a new scheduler that decouples push and pull. It pushes to peer
elements when all inputs are provided and pulls from nodes when all
peer outputs are processed.
INFO Importing commit 827f0763ef8da31b793b535297e74cea9af44dc3: scheduler: we can schedule ready elements directly
INFO Importing commit 0f4142f8796cb5c4b479b4269aca421917e8b970: v4l2: always emit have_output, recycle what was not collected
INFO Importing commit a3b614fff6e52b010f00d1f3a2f65d3ff6248363: Implement explicit buffer-reuse in stream API
INFO Importing commit 4aaa2cbc6b3f62d13dbb79b1800ce8b8c9674029: alsa: we can always signal that there is a buffer
INFO Importing commit a691d07531d1f8e7efd9d447cf25491c0cc35e1a: use spa_list_append when we can
INFO Importing commit e969e8854b79da36c338d7ecc88079b9f3ff27c8: alsa-utils: calculate size correctly
INFO Importing commit eef6f380c1f93a9a3fdc3290cc7007a1ee7a68a0: remote: handle per port buffers and memory
INFO Importing commit 7f5c6ddd4688d4e1fb76cd2d29b3c1754ee97a13: volume: only queue output buffers
Fix volume function, we try to write as many bytes as we can to the
output buffer and set the offset and size in the chunk;
Add some logging
INFO Importing commit 5b4a4922dbd6b835a39c0ecd820e296c1934a03b: client-node: only pull once
When we pull, don't pull again until we get the reply or else we
might overwrite the result in progress.
INFO Importing commit 4f33a37ac60c5b2641f3abe9f79f5986b41df9d6: alsa: report underrun better
INFO Importing commit b25985a2b275aff304a6ffaddd8f745c5f3ac57f: client-node: split setup of transport and fds
We can initialize the transport as soon as we get async notify
from the client when setup completes. Node initialization happens
after that and then finaly the node is initialized and we can send
the transport and fds.
Small cleanups
INFO Importing commit 08aa175a203f5c090150299294480a40dee5761d: client-node: use graph structures for scheduling
Use the graph structures in the RT thread to iterate ports etc.
INFO Importing commit 0662f3a3ead76ebdc203289396f61de211c57d14: Small fixes for error handling
INFO Importing commit ff242550c8e96374a58895c72976a1832c833782: stream: update port_io before sending need_input
Update the port_io area to NEED_BUFFER right before starting
INFO Importing commit 82eaf7e8dd503592a235e6626976d5a617e8c36b: stream: emit new_buffer only if HAVE_BUFFER
Emit the new_buffer event only if the IO area status is HAVE_BUFFER.
In client-reuse mode, also clear the buffer ID - we need an explicit
recycle call before recycling.
Change-Id: I139663068ef12669adc13b7e351666c8469dee72
INFO Importing commit 84d422bc46d2a76393b9b91ab195a02a51e223de: stream: light-weight buffer recycling while in new_buffer
When recycle_buffer() is called while in the new_buffer event handler,
don't send the reuse_buffer event. Instead, mark the buffer for
recycling by putting the buffer ID in the IO area, which is more
light-weight. When need_input reaches the server, it will recycle the
buffer.
Also introduce a helper function for sending the reuse_buffer event.
Change-Id: I900e75694efce2fa7e12840eaf53a7f6b7ae7e8a
INFO Importing commit 91ba492712263adb81d5674d1c17ed718fe4ee9c: alsa: improve ringbuffer params
Always reuse the ringbuffer after we consumed some of it. This is
the trigger for upstream to write some more in the buffer.
INFO Importing commit 3138e20cb6740ac4bb60621b1062ca7f845b2367: v4l2: rename variable from state -> port
INFO Importing commit d594444059e05089ea31de23e377ae5ce79a1f6c: export-sink: add sanity checks
INFO Importing commit 61555ab3b5bd38163f903716d960d5c2cdc56d4c: client-node: Rework scheduling
Only send data to a client when it has sent a NEED_INPUT otherwise
recycle the buffers immediately.
Explicitly recycle buffers when the client is not going to do this.
INFO Importing commit f04b292d08919a9a1625098e1343aa26ad4c7eb2: remote: ask for input in start
INFO Importing commit af99c196c92b6eef8b13ceb50d981ddf3182c7b8: alsa: improve ringbuffer handling
Add max-latency property to configure the maximum amount we write
to the device.
Only try to pull after we consumed our current buffers.
INFO Importing commit 307239767c60bd9afa2c5afb1d57b334c1b2aa30: audiomixer: add ringbuffer handling
INFO Importing commit e11e19f3e7c5c65c1ae466fafb9ec6238f647133: audiomixer: fix buffer reuse
Only reuse the buffer after we consumed all data
INFO Importing commit 8c77332f2521dc174a2b4afe0c188b9d9621bfff: Improve ringbuffer support
Fix ringbuffer mixing in audiomixer
Add ringbuffer support in audiotestsrc params
Don't recycle buffers before signaling have_output, the app is supposed
to recycle explicitly or with a process_output call.
Add some trace to graph functions in tests
Add ringbuffer support in export-source
INFO Importing commit e303485757cb9cfaf67721911b5e85fdb1008b38: alsa: suggest ringbuffer of max-latency size
With a ringbuffer of max-latency size we never receive more data than
the max-latency, which is exactly what we want.
INFO Importing commit 3f020cd3507837c76b929076b2b94bcf27d98a0c: audiomixer: simplify code
Pretend there are ringbuffers on input and output buffers and simulate
them otherwise to make some code paths simpler.
INFO Importing commit f58a567af859c24d963a8004e2db030c25ebe370: export-source: set buffer output size
INFO Importing commit 25212235b939b07f40b762c896aede50f06fcd6d: audiomixer: add log
INFO Importing commit 5fec60078d25ca3465f30b5d4fbe5d7ea6fabd65: Release 0.1.6
INFO Importing commit 63fe53535216c158d24e571d16eedefab1f05085: Back to development
INFO Importing commit b6ee67905db2124a1105da7da6969200aa305957: spa: install pop-parser.h
INFO Importing commit f3bca483980639c73e3e21acf90f35160c95e53e: Unify props, params and formats
Make enum_params and set_param to configure properties, format
and other parameters. This allows us to remove some duplicate
code and make the properties and parameters much more extensible.
Use the object id to mark the id of the parameter.
Remove the spa_format and spa_props.
We can now make the client-node easier by merging the various
format methods into the params.
Make the stream API more powerful now that we can pass params
around.
INFO Importing commit 4d890a2d985ef46897caa34223f65b2267099cfb: small cleanups
Remove the temp storage for formats and props now that we get a builder
from the host to write into.
INFO Importing commit 30a4651c514177906bfb8671804a0b77f453c70a: Various fixes and improvements to enum_params
INFO Importing commit cc47fb7e3addeef7c0bc9dee5ed8a37c5dc0d1b0: clean up pod_builder
Remove the frame argument from the builder, we can use the builder
allocated frames.
Add deref function to builder to make it more flexible later.
Add some more recursion depth checks in the parser.
Improve props filter, also filter other types.
INFO mv "spa/lib/props.c" "spa/lib/pod.c"
INFO mv "spa/lib/format.h" "spa/lib/pod.h"
INFO Importing commit 58451d626ca9824c753009b77c61a31c37c97aea: Implement param filtering
Make a new pod filter function and use it in the plugins to filter
in enum_params.
Small tweaks to the pod_builder
INFO mv "spa/include/spa/buffer.h" "spa/include/spa/buffer/buffer.h"
INFO mv "spa/include/spa/meta.h" "spa/include/spa/buffer/meta.h"
INFO mv "spa/include/spa/clock.h" "spa/include/spa/clock/clock.h"
INFO mv "spa/include/spa/graph-scheduler1.h" "spa/include/spa/graph/graph-scheduler1.h"
INFO mv "spa/include/spa/graph-scheduler2.h" "spa/include/spa/graph/graph-scheduler2.h"
INFO mv "spa/include/spa/graph-scheduler3.h" "spa/include/spa/graph/graph-scheduler3.h"
INFO mv "spa/include/spa/graph-scheduler6.h" "spa/include/spa/graph/graph-scheduler6.h"
INFO mv "spa/include/spa/graph.h" "spa/include/spa/graph/graph.h"
INFO mv "spa/include/spa/monitor.h" "spa/include/spa/monitor/monitor.h"
INFO mv "spa/include/spa/command-node.h" "spa/include/spa/node/command.h"
INFO mv "spa/include/spa/event-node.h" "spa/include/spa/node/event.h"
INFO mv "spa/include/spa/node.h" "spa/include/spa/node/node.h"
INFO mv "spa/include/spa/audio/format-utils.h" "spa/include/spa/param/audio/format-utils.h"
INFO mv "spa/include/spa/audio/format.h" "spa/include/spa/param/audio/format.h"
INFO mv "spa/include/spa/audio/raw-utils.h" "spa/include/spa/param/audio/raw-utils.h"
INFO mv "spa/include/spa/audio/raw.h" "spa/include/spa/param/audio/raw.h"
INFO mv "spa/include/spa/pod-iter.h" "spa/include/spa/param/buffers.h"
INFO mv "spa/include/spa/format-utils.h" "spa/include/spa/param/format-utils.h"
INFO mv "spa/include/spa/format.h" "spa/include/spa/param/format.h"
INFO mv "spa/include/spa/param.h" "spa/include/spa/param/param.h"
INFO mv "spa/include/spa/props.h" "spa/include/spa/param/props.h"
INFO mv "spa/include/spa/video/chroma.h" "spa/include/spa/param/video/chroma.h"
INFO mv "spa/include/spa/video/color.h" "spa/include/spa/param/video/color.h"
INFO mv "spa/include/spa/video/encoded.h" "spa/include/spa/param/video/encoded.h"
INFO mv "spa/include/spa/video/format-utils.h" "spa/include/spa/param/video/format-utils.h"
INFO mv "spa/include/spa/video/format.h" "spa/include/spa/param/video/format.h"
INFO mv "spa/include/spa/video/multiview.h" "spa/include/spa/param/video/multiview.h"
INFO mv "spa/include/spa/video/raw-utils.h" "spa/include/spa/param/video/raw-utils.h"
INFO mv "spa/include/spa/video/raw.h" "spa/include/spa/param/video/raw.h"
INFO mv "spa/include/spa/pod-builder.h" "spa/include/spa/pod/builder.h"
INFO mv "spa/include/spa/command.h" "spa/include/spa/pod/command.h"
INFO mv "spa/include/spa/event.h" "spa/include/spa/pod/event.h"
INFO mv "spa/include/spa/pod-utils.h" "spa/include/spa/pod/iter.h"
INFO mv "spa/include/spa/pod-parser.h" "spa/include/spa/pod/parser.h"
INFO mv "spa/include/spa/pod.h" "spa/include/spa/pod/pod.h"
INFO mv "spa/include/spa/log-impl.h" "spa/include/spa/support/log-impl.h"
INFO mv "spa/include/spa/log.h" "spa/include/spa/support/log.h"
INFO mv "spa/include/spa/loop.h" "spa/include/spa/support/loop.h"
INFO mv "spa/include/spa/plugin.h" "spa/include/spa/support/plugin.h"
INFO mv "spa/include/spa/type-map-impl.h" "spa/include/spa/support/type-map-impl.h"
INFO mv "spa/include/spa/type-map.h" "spa/include/spa/support/type-map.h"
INFO mv "spa/include/spa/defs.h" "spa/include/spa/utils/defs.h"
INFO mv "spa/include/spa/dict.h" "spa/include/spa/utils/dict.h"
INFO mv "spa/include/spa/hook.h" "spa/include/spa/utils/hook.h"
INFO mv "spa/include/spa/list.h" "spa/include/spa/utils/list.h"
INFO mv "spa/include/spa/ringbuffer.h" "spa/include/spa/utils/ringbuffer.h"
INFO mv "spa/include/spa/type.h" "spa/include/spa/utils/type.h"
INFO Importing commit caaeaff223b6ad61bab3c495d0cfa61e9611e827: Reorganise SPA tree
Reorganise the SPA includes to make it more extensible later
Simplify the naming of the buffer and meta params
INFO Importing commit dda28b158966ab3daf029b6006074a604551e4bf: cleaup up the result codes
INFO Importing commit 6fb0f580ea3f8e502350ec7cffe81129318a448d: Use errno for result errors
Make new enumeration for data transport status and use errno
style error numbers for errors.
INFO Importing commit 101d2af1be6816ce82cdd748bfb650ac9049c232: connection: signal errors
INFO Importing commit 737b4280772a00d532f27d03cf369b70c53365a1: builder: make deref safer
Don't try to deref objects that did not fit into the memory.
Deref now returns the object
INFO Importing commit cd5e697e9f68d0756a4db6790a3ba781d340e246: builder: make methods to save and restore state
INFO Importing commit 440f681f4b68c314202ca581d16377449d08d345: Improve enum_param
Add an argument to pass the result param to the caller instead of
having the caller have to pick it up from the builder.
Improve docs for node, clock and monitor
Pass spa_pod everywhere instead of spa_pod_object.
Pass result argument to spa_pod_filter to make things a little
nicer.
INFO Importing commit 7204f3e04707f06b1fc31076c19a354649a4e390: update docs
INFO Importing commit 7a7c011b009f99e2337aeaac38cc9649be73517b: make gstreamer elements optional
INFO Importing commit 52e1dad93edc2d3d50510fe621fed40c32fad839: Improve pod filter
Reset the builder when the filter failed.
Make the plugins create their params in a temporary buffer, we
don't want to do in-place filtering because that is not always
possible. Because the filter now resets on error, we can remove
the reset from the plugins.
INFO Importing commit 157a8b6ddf51d2293b0a21b4d0a06ca27e054e0a: factory: add events
Add events to the factory and use the destroy event to clean up.
INFO Importing commit c78fe6a3537b0c160413035d357ab6e186977fb4: port: work on port commands
INFO Importing commit 0534571f7dcf7610806d8b294cc74250e5ef35d5: add some more debug
INFO Importing commit 49d8f6792e133df08ee32c76d69a89a1d170c0b2: pod: first compare, then advance to next item
INFO Importing commit 2923b623b3156beb06eac9ebe33a8d24861faab2: Meta: rework ringbuffer meta
ringbuffer: remove size and mask from the ringbuffer, we have that
elsewhere in the user of the ringbuffer.
Remove the buffer data offset and size fields and replace with a
ringbuffer. We then have a ringbuffer in all buffer data, which
simplifies things.
We can now remove the ringbuffer metadata.
INFO Importing commit 1f1dbe26e19b06138f0ca1ab07a8dc68fbfa32f7: volume: fix volume node
INFO Importing commit 0966e703fefbbd12e05f90be5142c440f197eaaa: link: reset builder before getting current format
INFO Importing commit d040747d4b39a75c2169b1f65e75041f6013442a: Small cleanups
Make macros without side effects
Use SPA_MIN to calculate ringbuffer areas.
INFO Importing commit e774339ffe91cf2af74a9385e0c5b69466abd639: v4l2: handle expbuf case
INFO Importing commit 4d0bab799cfbb567a3f96cc04f8b8826c00581ff: link: don't allocate shared meta in shared mem
We can't allocate the shared meta in shared mem because then clients can
damage it for other clients. Place it instead right after the buffer
metadata array. Filter out the shared metadata for a client, we send it
as part of the client_buffer structure.
Remove pointer metadata, it's not so useful.
Document the layout of the allocated buffers and the shared memory.
Work on metadata to define control parameters
INFO Importing commit 2fd5bcb623c0f73cc881385c2d34ef23103ad378: gst: fix gstreamer elements
Handle new ringbuffer area on buffers
Set the id correctly for format enumerations.
INFO Importing commit 7f931464e81897cef901bb4186de7fdbe07b6516: spa: fix header instal paths
INFO Importing commit 5bebfe022bfd4f12bd6f44dee61a4492289435a5: cleanups
Follow the data/size argument order convention to make the api
more consistent.
INFO Importing commit 2ad722b579bd2fc9c0515e095eb6e5f1cbb1311d: handle allocation failures some more
INFO Importing commit 4288a634f4ff71bbdd946b5424e1e11787b39bf3: buffer: don't use ringbuffer in chunk
We can't use a ringbuffer on the chunk because it implies the
consumer would write to it to update the read position, which we
can't do because the chunk is read-only and might even be shared.
Go back to offset/size pairs, which can sortof do the same thing
if we want later when we keep a non-shared read pointer in the
consumer.
Keep alsa timestamp around and filled state for future.
mmap the input port meta/data/chunk as read-only.
Only do clock update requests when asked.
INFO Importing commit 8efea3e1ea91d110d82aac6e524fb677f40d555e: node: Add id to set_io
Make it possible to configure multiple io areas on a port by giving
an id to set_io.
Add some types to enumerate the supported ids
Make an area to exchange buffers and one to specify pull ranges.
The idea is to make more area types for controlable properties.
Implement enumeration of IO areas in volume.
INFO Importing commit a092b9312aa5e0174a562b2a7b273380228e61a8: Add control properties to audiotestsrc
Add control properties to audiotestsrc for frequency and volume
and add a test program.
Add size parameter to set_io for additional checks and to make it
easy to know how much control data we can write.
INFO Importing commit 2f66e17180af2e03d6d5a4e9f9bdfd67bc926591: Improve init functions
spa_pod_id has uint32_t value
INFO Importing commit 4b84e34744fae7d9aebd90c39e363ad5398a3076: use spa_pod for control values
Pass a spa_pod as the control io area. The pod is not supposed to
change in structure, only the values do so we can achieve the same
kind of performance as passing a single value but still allow for
more complex io area layouts to be passed later.
INFO mv "spa/plugins/audiomixer/conv.c" "spa/plugins/audiomixer/mix-ops.c"
INFO mv "spa/plugins/audiomixer/conv.h" "spa/plugins/audiomixer/mix-ops.h"
INFO Importing commit cb3198c4587275c30b34bcc510c315e3f00ff730: Add volume and mute control support in audiomixer
INFO Importing commit 7f4363d3678f1b79c58f4ab8b4d9f0b56ebada58: test-mixer: animate volume controls
Fix volume in audiomixer.
INFO Importing commit 47086cd9ee7f2062651723870e50c8c1970fb180: gstpipewiresrc: Fix id in param for buffer and meta
INFO Importing commit f5f9acf84efd93ab5d994c666fc95b776b21bd58: pod: add sequence
A sequence is a list of timed events.
INFO Importing commit 263a017c4bc685eafc966692d931ddd53d5de6ab: spa: close devices after enum
Fix error reporting and close the devices after enumerating
formats.
INFO Importing commit e2c49199f65123da29d120eb27bd1731e3b508aa: link: fix param enumeration
When the input port param enumeration has no result, use the NULL
filter to still enumerate the output port parameters instead of
returning nothing.
Fix the offset in the gst element.
INFO Importing commit f623556d9bcf8639a52c589e4d9c01aeab9917af: spa-node: cleanup when the module unloads
INFO Importing commit 58f086b1653ccc0c1eb1d6cf988acff103daaede: Release 0.1.7
INFO Importing commit bde1012c5c73d13a7b822ce4d9ee6681b1f062ba: Back to development
INFO Importing commit 2a86814bb8c45f6cb65092a44c0327460772c34d: Only define memfd_create when not already defined
INFO Importing commit 4516fcecc4645e8a9897ebd88c3ccf21af775c96: remove stray commit
INFO Importing commit f902a34290391c6ac90bebd0001541f8e563965d: build: make sure memfd_create is found
INFO Importing commit d7c26c4b59c77c75d904fc20e273987adcd348f0: link: emit info_changed event
Small cleanups
INFO Importing commit 77838fd73452d0573a775dec8de61f62c7b295de: mem: fix for memfd_create check
INFO Importing commit f019d984e95925b91e08a833c984f22522728f1e: type: add param_io mappings
INFO Importing commit 75cdd20207be8d9cbc3978fe262bff284b5cc6b8: client-node: cleanup names, remove useless proxy_prefix
INFO Importing commit 140c3959ab19cdcba19204cd1d1f75388af8fbb2: meta: remove shared meta data
Make a method to find the memory block for the given ptr. We can
use this to find the memfd of the memory if there is any. We can
then remove the Shared metadata on buffers.
INFO Importing commit ada3698355a3d6a8e37c8c42e45b570e4f1f4244: pod-iter: remove broken _FOREACH_SAFE
INFO Importing commit 425073afd8ed262c007269d354c3a8b3ceedf5c3: param-io: work on IO parameters
Reorganize the io parameter ids and objects. Make separate enumerations
for buffer, control, input and output properties.
Add a volume output property to export-source. This is still unused
but will eventually be routed to a PropsIn io area where it can
control the volume of a mixer, for example.
INFO Importing commit 91a3670610a8a7eab7436a7fec8539cedc9091c0: node: make port for_each more powerful
Make an int return from pw_node_for_each_port() so that we can return
errors or early exit.
Add pw_port_for_each_param() to iterate params. And use this to collect
the formats.
INFO Importing commit 541553be1c99b80dfee2be8621d6551e53ea25a0: control: add control objects
Add control objects for all controllable properties on ports.
Try to link compatible control properties in autolink.
Allocate shared memory for the output property memory and configure
the io area on the ports when the controls are linked.
Send the shared memfd to clients when the io area is configured.
Add port_set_io support in remote.c, mmap the control io area and
set on the port.
Add some param helpers
Add volume control to export-source update the volume before
sending each buffer.
INFO Importing commit 08814bd8085bcf571e989efba251d9dd05fca6fd: data: clean up fd and data management
Do not send the offset and size in the add_mem call, just send the
fd and the flags. The area that we need to map from this to find the
meta, chunk and data are sent in a separate call. This should make
it possible to truncate the memory to a larger size to dynamically
allocate more shared memory for a client.
Remove the Id data type, it's not needed.
Don't automatically map memory in remote.c
Pass the original memory type from server to client.
Handle DmaBuf mem in video-play now that the server passed it on.
INFO Importing commit d2516398eddee663a156b44f1a3d89a9c6518b2a: audiomixer: reset input in use_buffer
When we get new buffers, reset the info that could potentially contain
info about old buffers.
INFO Importing commit 3a9070ee10a2bab5e5be87993c2f4f7727ab0f5b: don't check contents of control values
The control values do not have to contain valid values when they
are set so don't try to parse them. Instead just do a simple sanity
check on the size.
Handle the case where we clear the io area, go back to the default
node properties.
INFO Importing commit ccd19f1e49639186e6199c27c94ca7878785231a: mem: add mmap helper
Add function and structure to help with mmap and mlock
INFO Importing commit a8cbffac7f74868ab0650625e90e7ec886d4a4a1: core: get page size
INFO Importing commit 4019da39c107002ffc55d2947169e1855cf8294f: remote: use mmap helpers
Use the mmap helpers to only map the data that is needed.
INFO Importing commit c1aa3b4625ca47266e2a6771cb80d937b3f365bb: client-node: move to per node memory
Remove the per-port memory and only use per-node memory. This will
make it possible to share memory between ports in the future.
Keep refs to memory on the buffers and free (close) the memory
when no longer used.
INFO Importing commit 6503351a0de7d00d08cf4a0d21bb31ce15236884: graph: don't let required number of ports become negative
Add a check against letting the required number of ports become
negative for a node. With certain timing between the main and data
thread, this can otherwise happen.
For nodes where links are unlinked and relinked, a negative number may
mean that the scheduler skips the node and doesn't call
process_output().
INFO Importing commit e747fb22243ca1be1db0bef94af90f661256f7b0: port: fix mixer status
When the mixer has no input ports, return OK
Don't increment required inputs for optional ports.
INFO Importing commit 8aa12e6b6293169d5e923ada9d58d6a56519f7c3: examples: use main_loop
INFO Importing commit 52d193b3e39fbcba8f214c2b96f407d1d140a8b7: builder: fix format parsing
We completely parse the format for props, make sure we read the next
format string in the next iteration.
INFO Importing commit 1ace2a5daf1d25020182fb17459443ff882df015: make systemd dependency optional
Don't recurse into the directory of systemd when it was not found.
There are still some issues because libudev is actually provided
by systemd these days and we still need that for building the v4l2 and
alsa monitors.
INFO Importing commit ee0c77994ee70a69ed0a20d5946abeaa8c709428: monitor: fix return values
INFO Importing commit 3743c88a6e718310292342b8bbb5687672e68344: inspect: Improve introspection
List the factory interfaces that are provided.
The interface id of the typemap is always 0 to avoid the chicken and
the egg problem.
Check debug env variable
INFO Importing commit 1f4d1d071cebeba7e3e2acf20748b0390a2d57ae: modules: make events structure static
They are only used locally and otherwise we might get symbol clashes.
INFO Importing commit ef800581f0160f4b8649a0fda19bdfd91e8fe77a: core: make pw_core_for_each_global more powerful
Make the for_each function more powerful by allowing more than just
a bool return value.
INFO Importing commit d5643e84725e928b43e64e6f83e83290229628b3: core: add permissions call
Add a permissions call that can be used to update the permissions
of global objects. This can be used to set specific permissions
on certain objects, hide objects and define the permissions on new
objects. The system is quite generic so that we can extend it later
with more complicated match rules or so.
INFO Importing commit e42fd9301b3e4a13768b5de2ad98e398aaef6f67: client: warn for invalid global ids
INFO Importing commit a9ece1df9137d66797c72f601fe91298168c1f32: export-sink: add an example permission call
INFO Importing commit 1c19342487174edbc180114bff52c352e1350848: pod: add info property flag
Add an info property flag that should not be taken into account
when intersecting. We use this for docs and labels.
Improve builder, make it possible to make struct properties with
flags.
Add some docs to the property flags and ranges.
INFO Importing commit e5e360d5df0e4ac029d058ec6f80120fdd368d9e: props: improve property introspection
Make a new PropInfo parameter that allows us to iterate all
properties. Make some new fields to set labels and names for
properties. We will be able to add more things to describe the
properties this way.
Use the Props param to simply query or set properties.
We can now make int enum properties and describe all possible
values with labels, we don't need to register types anymore.
This then makes it possible to enumerate the v4l2 controls and make
them available as control params.
INFO Importing commit 4d6ac373986c670501fa7632462d955a96457e1e: Use int instead of bool as result
Prefer to use an int return from a function instead of bool because
it can contain more info about failures.
INFO Importing commit f7b6fea43d0398d2fbff03f19d45cc0555bb128f: Add dbus support interface
Add an interface that can manager a dbus connection.
Make a dbus interface in the core that can create connections running
in the core main loop. Keep this as support for spa plugins.
INFO Importing commit 0b7c3e74074807ad06a19a84b2a930615ad1bdfd: fix spa_support_find
INFO Importing commit 82ea32bcdf803c174d811d243ae6040260c2dcba: flatpak: use support dbus connection
INFO Importing commit 690f6ca372846f13f6ad0122d79e356a80a9219e: module: improve error reporting
INFO Importing commit f24ee7fd027acc5a0a6e143e605916992fb0eb99: debug: print to stderr
INFO Importing commit 79129f81a7b5a0e27502bf078bb9ccfda7fa8c01: export-source: allow more formats and channels
INFO Importing commit 4a57f88345d50430b8dfc32b82641cce261bc15a: link: fix param enumeration
When we have no input parameter we always need to use NULL as the
filter for the output parameter.
INFO Importing commit 7d5f302f9328e94df15cf7f6c8182fd041a50438: Add bluez5 plugins
INFO Importing commit 21aad20f94ba7ba70141e4554b8ea4d5b076b464: node-factory: activate elements
INFO Importing commit f1345f91a8f324145a6dfc11dcdcf0668cadd485: spa-node: pass properties to plugin init func
INFO Importing commit 67b06d4ad2bf0bd5c4e33f33bede65cac5dd6cf5: core: remove create-link
Make a link factory and use create-object to make links. That way
we can have different kinds of links based on the factory and we
can also hide the factory when link creation should be blocked.
INFO Importing commit 155243a27cc3afb40355c77f8988b389c24414f7: spa: simplify start/pause
Use the sync option in invoke to implement stop.
INFO Importing commit d50037c2f72decc282ae5dee0825628b20f99c44: global: separate create and register
That way we can place the global in the wrapped object before we
emit the new_global object and have things work better.
INFO Importing commit a8fa4383a1e4da470156f85ad280d6df0f1942b4: mixer: also install mixer on new nodes
INFO Importing commit 0eb44b340aece98beef072d7c097a1c2f77306f2: link: use DISABLED flag on port of inactive links
Don't unlink the ports of an inactive link because then it might be
possible that the scheduler can't recycle a buffer, instead use
a port flag to mark the ports disabled and change to scheduler to
skip those ports.
INFO Importing commit 865f6711953b99dcebc5d92bbfb19c4425ad8a69: audiomixer: fix EnumFormat
When a format is set on one of the ports, only return that format
from EnumFormat.
INFO Importing commit 0b523e4334b63310f46f049028dc87e975cfc636: SDL examples: all SDL operations in one thread
Fix video in SDL examples by invoking rendering in the same thread
(pw_loop) that created the window, renderer and texture.
At least on some systems, no video is shown without this patch. In
those error cases, SDL_RenderPresent triggers an SDL error "The
specified window has not been made current". That, in turn, has to do
with how SDL uses the current thread for determing the current window.
In general, the page linked to below states that the SDL API is not
designed to be used from multiple threads.
Reference: https://wiki.libsdl.org/CategoryRender
INFO Importing commit 47dd97049c417f95d8ade15c20ee51e8777a4feb: examples: also handle SDL events in main-thread
INFO Importing commit c593d868fbff4d206f2815bb0f9cbab1f6f41822: global: add properties
Add properties to global objects to make it easier to select what
nodes and objects to bind too. They can also be used to implement
permissions on the globals based on properties.
Add more error handling in _register.
Make more functions return a result code.
Make a separate pw_module_register, like all other objects.
INFO Importing commit 04f77d2565a3108dac0fd36015d20c85961962d0: global: only unregister when it was registered
INFO Importing commit a79e8923b5933306507a5ef4815e40b4d65efcab: link: remove obsolete cleanup code
Whe the port is destroyed, we destroy the link and perform the
cleanup aleady in the destroy.
INFO Importing commit bc35d3040707164eb949cd2e1a80df3834828403: remote: add _get_fd method
Add a method to get the fd of the connection.
INFO Importing commit 438409722785dda80b5c2d42e1456e8a0bc6143b: factory: set fixed properties as global properties
INFO Importing commit 8da8dbe025eb650fae5f79183a8e4abd6661bf5d: core: add some core properties to the global
INFO Importing commit 527f4683ba6f7780dfa6ca75ace097799c7ed27c: pipewiresink: add fd property
Add fd property to connect with a given fd
INFO Importing commit 1c44629cf9c0a5a63f8f5c9db1744e1cf541ccad: rework initial connection
Make a steal_fd method on the remote.
Add a hello method that sends the initial core info and types to
the client.
With an explicit method we can do this multiple times when we steal
the fd from a remote and use it to make a new remote.
INFO Importing commit 4851a827f4cdca7819e37029ac0fcf053d3f2077: video-play: add example of steal_fd
INFO Importing commit 3c9eb135001b565f5d6f577866f5c7c4d6c4df19: video-src: set buffer size
INFO Importing commit f2aafffb2c68a023fd20b08451de20d1e2808fb3: gstpipewiresrc: Add fd parameter
Will be passed to a pw_remote_connect_fd() instead of plain a
pw_remote_connect() call.
INFO Importing commit 1ed63e7ba02389706963aa43fe44ba427d205524: add commented line for bluez5 monitor
INFO Importing commit 5df5afd0a9c0612644aa2fcfb8c1d142589b37f6: module: load and register in one go
Load and register the module in one go because we need to have the
global set when calling the init function so that factories and nodes
can use this as the parent global.
Set the name in the global properties.
INFO Importing commit 54a6086e457b6d21398493bdcc7fe66de99e4000: command: add more commands
INFO Importing commit cf036a15f097be213ca5a5e853c45f4e53479bd2: Release 0.1.8
INFO Importing commit afae27b4cc3c5f00e6812c3ae959a3738ebe870d: don't build bluez when sbc is missing
INFO Importing commit 1804e47a9167e38ce340d10db2ecad3b363f97ac: a2dp-codecs: also define functions for big endian
INFO Importing commit ab099d09dd394aa250ef21833f0bf2441e28ad19: permissions: check permissions more
Pass client to some core functions to make it possible to check
permissions when iterating globals.
Check permissions of factory before using it.
Check permissions in link factory, only allow linking of nodes we can
see.
Check permissions in the autolink module, only try to link to nodes
we can see.
Make client permissions update behave like an atomic update of an
unordered set of permissions, which is perhaps a bit more intuitive.
INFO Importing commit ff17fb68b50f971b72fdf325259107d0acaa475d: permissions: use current_client for security checks
Don't pass around the client object but keep track of the current
client in the core object. This way we don't need to add a client
argument to functions and can check security when needed.
INFO Importing commit f115646bcda7417033c306618f45484b60c317f2: core: remove permission callback
Remove the core permission check callback. We can now use the per
client permission configuration.
Rework the flatpak module to use the permissions. When a client
connects, do the portal call and iterate all globals, updating the
permissions. Also update the permissions of newly added globals.
The client is owner of itself.
INFO Importing commit a52ba92378cb457e69490b7e934a184aa890ab8e: build: Use mathlib for the libm dependency object
The libm variable is defined in `spa`, but the top-level meson.build
defines mathlib.
INFO Importing commit f9ed9178149fb79bcdc20e454962b27a44044f79: build: Do not redefine dependency objects
Use the top-level ones.
INFO Importing commit d99f5defa3460f1df92008d45eae8238cd0998db: build: Fix dependency objects for system libraries
The dependency checks for system libraries is not really portable.
Not all C standard libraries have separate rt and math libraries, so the
requirement should be set to false.
Additionally, finding threading libraries should be left to Meson
itself, using the `dependency('threads')` object, which will do the
right thing depending on platform and compiler.
INFO Importing commit ea283387364f5dd7a14e97cae36915c7c8908e5c: build: Optional tools should not be mandatory
Since we're using the `found()` method on tools found via the
`find_program()` function, we are expecting them to be optional,
but we are not passing `required:false` to ensure that Meson does
not bail out when the tool is not found.
INFO Importing commit 214babe7b9c19338a0713a65a5e1e46df8876e61: param/meta.h: add missing fcntl.h include for off_t
INFO Importing commit 1e411bfe098b75d73abffaaab2fb5092323f6158: pipewire/private.h: add missing sys/types.h for pthread_t
INFO Importing commit b5f9983c4e1e5a789df4d6334e2ded993d2fde2b: properties: add method to parse key=value list
INFO Importing commit 5fbf79a4b2aa790389973c4be715527af23772c8: jack: fix param enum
INFO Importing commit 1361a1209418c4cb921125a16ac3642b46cca57b: spa-node: use new function to parse arguments
INFO Importing commit cb0811860f6dc2465a9246d8017b896965f43eb5: jack: add property to select node to link to
INFO Importing commit 0a8e6b5dbac8b86daa5d75179c1e6d5b14b7fa37: config.h: add version numbers
INFO Importing commit 8882b2316e3d3eabd680b3d35d0639bdb19c6ad3: remote: add get_properties method
INFO Importing commit 01d8fdc1bf93324bb902b524db1a9721383da07c: graph: reset counters before checking peers
INFO Importing commit 95b3cba3c326dcda19bcb9df5320d346c9b9c5a3: audiomixer: only overwrite OK status
When the mixer has no bytes queued, only ask for more bytes when
we were in the OK status otherwise we might override the HAVE_BUFFER
status and discard the queued buffer.
INFO Importing commit bd1fea49c25da5bd0a6e1279ca6975290c2ac822: node: add enabled state
Add method to enable/disable a node. Disabled nodes will SUSPEND and not
be available for automatic connections, it is intented for handling
the monitor node state.
INFO Importing commit ad1e5fdc1030da02adc008dc88593106fec73bb5: monitor: set node enabled state
Let the monitor update the node enabled states when creating
and on change events.
INFO Importing commit d14c7abe11044f52ff112d7fcb0f011447f944c2: protocol: make connect async
Make the protocol client connect call async with a callback when it
completes.
Move the connect methods into separate files, add an empty connect
method that will use the screencast portal to get a pipewire fd.
Use the remote intention to get the connect method.
Add some better error reporting.
INFO Importing commit c524fae5234447a3041e4db036dedf05e9731d2d: list: add more helpers
INFO Importing commit 935efffe0eacb6109226f62797e11777540283e3: deviceprovider: only create devices once
We can get many info updates from a device. Only create the device
once and ignore the other updates.
INFO Importing commit 4c1dc20eac0ca1c3ea3bdf5266bd2c6b7494a0fa: io: remove unused field
INFO Importing commit 8e89474c7ec0fbafb910a287396ac2da41db3447: v4l2: generate prop id for controls
Generate a propid so that they are added as controls
INFO Importing commit f9237eb0dbcf0a45f212446a12d8033d1c154d0e: control: keep track of linked controls
Keep track of what controls are linked together.
Clean up links on destroy.
Implement unlink, reset io area.
Add events for control link/unlink
INFO Importing commit 9225ec29f24a11a6330ef99b0cc98c7522957469: control: emit linked/unlinked event on both controls
INFO Importing commit 053f251be87a1fb0907106e44498d4567f78ec18: client-node: handle io reset
INFO Importing commit 2fe6a8245da77ace59c5120e30b7ad034b9553cc: control: keep track of prop_id
Keep track of the property id which describes the property
functionality.
Link controls based on the property instead of the param_id.
INFO Importing commit 3289e3fb7e5b1a5dbee9d8ffb1dba09d1e68f891: v4l2: handle control properties
Add the right propId to properties so they can get controls.
Keep track of properties and handle the io area for them
Check if properties changed and update the v4l2 controls
INFO Importing commit c5df05d3f36c67d7b2d635780c537d6a6b15a4dd: v4l2: respect MAX_CONTROLS limit
INFO Importing commit 06ba8c9a7e7323d33fc1cccdcaace45d0119974d: export-sink: change contrast property
INFO mv "src/pipewire/rtkit.c" "src/modules/module-rtkit.c"
INFO Importing commit 9d4b0d83587bd2bbd5430a20e94d0bab4e6d27c0: dbus: move rtkit to module
Move the rtkit code to a module.
Make sure we don't need to include the dbus headers in the spa dbus
interface. This removes the dependency on dbus.
INFO Importing commit 72e98dc74a8a56eae741b81ce660850e075306df: load rtkit module by default
INFO Importing commit f049d3dc7f8cdc26c73b7f8bb56e5cc9c4f3eb9e: Fix compiler issues with c++
INFO Importing commit 21e3b4cec75cdc9e5b4225d2fc3f52b9120b8c6a: c++ compiler fixes
INFO Importing commit d841e0f778ca514b1411a90726b1910d7712badd: pipewiresrc: use the right allocator for dmabuf
Use the dmabuf allocator when we get dmabuf memory.
https://github.com/PipeWire/pipewire/issues/31
INFO Importing commit 5f89cf4fa221760924dc4e7881510edd91f7d6f0: type-map: fix char array definition
INFO Importing commit 2198cbe00f1d48a2cc7ef7ba71fecd66d7d963c0: node: only remove from graph when added
INFO Importing commit c0f8f811e809d51f21736ec37e507a3df1b3ff28: node: fix adding ports
INFO Importing commit 60177646e90ab2ab5ce9f4aa102f6b13c8045ddd: examples: remove some unused types
INFO Importing commit 342f0d59d0abc698349d0c6e76c4618ef388149f: node: add some more port flags
Add port flags to mark physical and terminal ports
INFO Importing commit 70687e466dedcbfd8ea74a2559c0500cf32c9020: client-node: update port properties
Handle port properties
Set the client name
INFO Importing commit 001e693e5c29565ad64c56e2e9eeda8d5f8d08e8: global: fix parent global
Only use the global of the owner as the parent if we don't already
have a parent.
INFO Importing commit dfa39ab2ff03434fe161b4b047b63d9f842ef030: node: set node name in global
INFO Importing commit 9b9a7411f58d55fb1b67170540f570a08f9f1b11: port: set some more properties
INFO Importing commit 29dbffea529f3929011a60f7fbcf53f78063fc89: v4l2: map memfd when not already mapped
INFO Importing commit f37f8ce70d0e163ac7675962233848606cca42f4: v4l2: keep separate field for mapped fd
When mapping an input memfd, don't write the mapped pointer into the
buffer but keep a separate field for it.
INFO Importing commit df57656615b19d980b32513e1f721581d0525adc: remote: improve map/unmap of io area
Make sure we map and unmap the io area for controls.
Handle reset of io area
INFO Importing commit fdfce79edbf6edf55ab0dad00287819f6b429aee: connection: return false on read error
Return false to indicate that there is no more data to read or else
we add the -1 to buffer_size and things go wrong..
INFO Importing commit f2f94c4f72aff3c0a1308341cefc90566e7152ce: examples: handle NULL io areas
INFO Importing commit 8a4f3c546d8b6b83dd0288a0e2b9212c96dc577e: port: remove port_pause
port_pause is not needed, spa elements should pause themselves when
setting NULL format or buffers.
Handle use_buffer or alloc_buffer error cases.
Clear buffers in the port before cleaning up the memory.
INFO Importing commit cc53023fb9d06c899d6e572e8180f3d519a26c98: remote: fix clear_memid
Use a separate variable to iterate the mem_ids.
Clear some more fields.
INFO Importing commit 96fdfc86f7045699b14f204bba49376d610ee917: link: avoid getting params
We don't need to iterate the port params again when we already
can reuse buffers from the ports.
INFO Importing commit 7ffaaf66a747fff1c861728cc996e775583f1760: v4l2: remove source on errors
INFO Importing commit 95e27c27ca963333a8232bdabbebcc98831b2d9a: protocol: signal when connection was closed
INFO Importing commit b86f1412732ee2fcd8a3c5af226bc55d4a1c484b: add more debug info
INFO Importing commit 6c000229f05f5ea578b72e5d2fc0c26622fc1971: port: add port globals
Expose all ports as globals, linking is then done by specifying
the global id of the ports.
Add method to destroy objects. not much security on this one but
yet but it should allow priviledged clients to kill connections
and other clients etc.
Make events on the global object. Implement the bind with the event,
handle destroy of the globals.
Add link properties
Use append to preserve the order.
INFO Importing commit 0173180e7800e7f979ae733a03a9bb0a39381025: module-audio-dsp: add dsp module
Add an audio dsp module that adds an interleaver for each audio sink
and only allows 1 buffer size and format on the ports. The idea is that
dsp (pro-audio) nodes can be inserted in this part of the pipeline.
INFO Importing commit 8c4bb3a1049cc8b516c2836331f13bc93fc96901: factory: improve registration
INFO Importing commit 3db9a446794cf08aec38dea58e9c99f6c86582e9: dsp: make separate nodes for sinks and sources
Make separate nodes for sinks and sources
Add aliases for ports
INFO Importing commit 5034770eae1f632e9b6c4ac9e2192890fe071574: node: unlink ports before destroy
First unlink the ports, then destroy them. This is a more natural
way of cleaning up.
Make sure we destroy the node after destroying the ports.
Destroy the port after destroying its controls
Destroy resources after destroying the global
INFO Importing commit 922099c67e051d55a393a92fc738011e104b2343: link: always make ouput owner of buffers
Make the output pad owner of the buffers, if we have multiple outgoing
connections from the outpad we don't want that buffers to disappear.
INFO Importing commit cafb22a6b941ce970893b339bd43f1f38efded0f: alsa: only try to pull when out of buffers
INFO Importing commit 0a57c86c251e5b87ef4781063ebe5a0227c6e786: link: clear port buffers when not in use and not owner
When we are the owner of the buffers, we want to keep them until
we suspend.
INFO Importing commit c613ae4b40342214eb2af75f26f5e52957adc13a: v4l2: unset format, then close
v4l2 does not want to close unless the format is cleared
INFO Importing commit 9cb2891741f0acd4e1be430daf03593da3b60250: cli: implement destroy
INFO Importing commit f039238288ac92cb84ebc89684501ce82d29075f: audio-dsp: implement buffer size param
INFO Importing commit 0e5a1b6327af262e18f9d890f3188ca22c65d72e: props: use macro for property alternatives
INFO Importing commit 528d0a1c7d302637171004324a8d01b00351f918: alsa: put device name in separate property
INFO Importing commit a9a95a4205bea66eee1a33219430b9b4fded94e6: audio-dsp: start counting from 1, to match jack ports
INFO Importing commit 58667d6ced8a745aa94d9210a38b6cdf62509057: params: make method on node and port to enum params
Do not pass the params of the node in the node_info, instead,
make a method to enumerate the params. This makes it possible for
clients to only enumerate what they need and when they need it.
Improve introspection of a port, add the name and properties.
Add an enum_param method on the port that can be used to enumerate
port formats.
Change -monitor and -cli and add support for enum_params on the node
and port.
INFO Importing commit 43a384c51e5045e965e15714da70d60540d09636: thread-loop: add timed wait
INFO Importing commit b1492aa13005c9148a5b64baff5a3957bb591c65: thread-loop: ensure the right clock is used
Use the right clock for the cond variable.
INFO Importing commit 920d098ea7b4d0584e562d15a765e6de6a5e5860: video-src: pause timeout when not streaming
INFO Importing commit 2fe719793012e33578a8131a3c9a28fcffd22499: node: add option to pause-on-idle
v4l2 is slower to start when we pause in idle. Disable this
behaviour with an option on the node.
INFO Importing commit 8ff7a5fa293e575dbab74c39c6308688c6c96bfa: node: set state before calling into methods
INFO Importing commit d3cc45c611c5407747423e79bcc6d409b79b4551: alsa: make some log as debug
INFO Importing commit 20e0d8b4eac26c00b8dcef18e5cdd8ec5c47b1b2: dsp: use format in the port.dsp property
INFO Importing commit 5f92c152e3039cb02555e6db08321f720b67a0a8: remove module-jack
It's better to make a replacement client library
INFO Importing commit 6f61ac93578592418a49ca9a5dc30f6a59b39c29: fix some signed vs unsigned comparisons
INFO Importing commit e2f01c5838f743a254628aaadcaefb35206630b3: protocol-native: disconnect remote
Disconnect the node and all the streams instead of just changing the
state.
INFO Importing commit 944d205e8e94ee35e8554979ad53883d9c32b1cb: protocol-native: print connection info after remap
Print the connection messages after mapping the ids or else we
can't really make sense of the ids.
INFO Importing commit 50db8b61261bd9c41ca72066ea736dea88bc6b21: stream: improve memory handling
Implement set_io
INFO Importing commit bc669f5def55580e7f2246df66905ee520a8c66f: audio-dsp: small cleanups
Fix some compilation errors
implement port cleanup
INFO Importing commit 760e046dcf753f6fb9f2cd8ec34eb5016b065f85: client-node: handle port set_io
INFO Importing commit b8eccc3648bd5a44ca7e4c309346b52e518d4a85: port: free resources
INFO Importing commit 13fcaf74e6c923609eb5f14586ae4562de616c79: link: improve allocation
Make a structure to track allocation of buffers on ports.
Handle more allocation failures.
Update port status immediately when clearing format
INFO Importing commit 28779b8e2533732ad6136dcc70a2c938b8c6afc4: port: move mix_node to private.h
This will make it easier to override the implementation later
INFO Importing commit b91a2a4207661bee7b1e3f37136b2869acb8cc7a: link-factory: don't leak properties
INFO Importing commit 241a7bc7d921261003d9276e3c770453ea6b922a: mem: add some debug
INFO Importing commit 1ecf98250406443ac1a1e543471cc27746aecfc3: link: improve allocation
Always move the allocated buffers to the output port and reuse them
from there if possible.
INFO Importing commit ebac77f4e4621363633946551783f23135b65462: conf: add some commented out modules
The link-factory allows the client to create links between ports.
The audio-dsp module creates dsp ports (float32, mono) for each
audio sink and source.
INFO Importing commit 62f113dbba7c706fad18c715cfad57ca7e102cb3: Release 0.1.9
INFO Importing commit b445d1b12e8ffdfc9e94da5f064276a03e7f6696: Add some NEWS
INFO Importing commit 8e2ceb773e643434e9158b7db22fe76a0e066119: Improve some debug
INFO Importing commit 53ee07c9013609c33775d17d6d5a560bb758bc4c: link: generate unique mix ids
Generate a per link id for the mixer input of the ports.
INFO Importing commit a48761503c362f1165a3fb5324500e62e70b8aa5: remote: ignore duplicate mem
Ignore if we receive the same memid multiple times
INFO Importing commit 7bc9230a798e774649c05f797a0ea46a203f2b37: client-node: proxy -> node
INFO Importing commit e9685c794f80f0723f2e555b1d7c28b720ecb5ac: remote: handle buffer errors
INFO Importing commit 059571cec066116798a5d338bd2c577f11714beb: remote: clear mem id
Clear the memid so that find_mem can't find old memory anymore.
INFO Importing commit 135a0a18d8bccd0d6449b587492568a49a7b1050: client-node: track memory for client
Keep track of the memory we sent to the client to only send memory
once and choose better memid values.
INFO Importing commit 6365ea18d921265229a6bfe661317f00b1f8ff64: module-node-factory: remove destroyed node from node list
INFO Importing commit ea182ba194c710181642e51f87a89d312dbe6dff: client-node: reference memory with id
Reference the memory with id because it could be relocated.
INFO Importing commit 992f20f805b9219a14e9843d185381673f3276a4: protocol-native: debug connection after remap
INFO Importing commit 638916e065eecccb74ddf48af3d88f1a816e31be: loop: remove the destroy_list
Don't use a destroy_list anymore, it's not safe anyway. Instead require
that sources be removed with (a blocking) invoke. Make sure we don't
dispatch sources that were removed from the loop.
INFO Importing commit 153bf51ef181d33771977b60d45b7dd53bee5bbe: client-node: safely remove source
Remove the source from the data_loop with invoke to make sure it
really is removed before we destroy the node.
Based on patch by David Svensson Fors <davidsf at axis.com>
INFO Importing commit d655d9e0bf31202e3b1c69d0faafed9761de4c2a: export-sink: don't block for render
Pass the buffer to the render function in the main thread but don't
block the data thread
INFO Importing commit 6cb35bf23e18ca638aa701cd188e9a613609652c: link: remove unused field
INFO Importing commit 2ed627f3b1c251cce77f4a35cf334a398710edba: list: remove stray ;
INFO Importing commit 2660b5c4f509df95022fbe7ece9069254858baeb: export-source: add float format
INFO Importing commit 1b2e73de0cab591474fb2b1d37c397980942b5f3: node: export method to update ports
INFO Importing commit 6d569b132f435755b55afd4c06ee19ea1a99a783: control: safely iterate the list, unlink modifies the list
INFO Importing commit fb7a51c6e7ea9450d5ee27e4c001cb88169f9483: client-node: fix mem_offset of io areas
INFO Importing commit 8cadcd7f5656e7461dbe45d1ad2ee5386497f275: hook: return number of hooks called
Do finish_format ourselved when nobody was listening for the
format change.
INFO Importing commit 187b6d4bf9c2dc661e82a3493d23dabdc8250007: alsa: update the offset after each copy
INFO Importing commit e38cba4e13b7d404c0723a498be6fde652988711: v4l2: check device caps
If V4L2_CAP_DEVICE_CAPS is set, device_caps must be checked for the
V4L2_CAP_VIDEO_CAPTURE flag instead of capabilities.
INFO Importing commit 871dd2743bbbf179feb802ca3239ddd1839773f3: __STDC_VERSION__ may be undefined
Clang++ (and g++) don't define __STDC_VERSION__ which results in
include/spa/support/log.h:101:5: error: '__STDC_VERSION__' is not defined, evaluates to 0 [-Werror,-Wundef]
#if __STDC_VERSION__ >= 199901L
include/pipewire/log.h:64:5: error: '__STDC_VERSION__' is not defined, evaluates to 0 [-Werror,-Wundef]
#if __STDC_VERSION__ >= 199901L
so check if __STDC_VERSION__ is defined before comparing.
Also, include/feature.h additionally defines __USE_ISOC99 (and
__USE_ISOC11 for C11 extension), so check these as well.
INFO Importing commit 07f12c97133d2d9ad3f695f37501b002cd97a7d0: v4l2: fix enumerating frame interval for continuous/step-wise devices
A device that supports continuous/step-wise frame interval will
report the correct frame intervals for index 0 and EINVAL for
every other index.
(https://linuxtv.org/downloads/v4l-dvb-apis/uapi/v4l/vidioc-enum-frameintervals.html)
Previously, the code would exit from the loop after successfully
reading index 0, without marking that the iteration of frame
interval completed. Therefore, the next time the function was
called the same frame intervals would be read, instead of advancing
to the next frame size or format type.
Instead, mark that we need to try and read the next format size.
Fixes #56
INFO Importing commit d1e2f69324d174be0d1caf42a65de627df57bd9c: connection: reset number of fds
INFO Importing commit c208511f533276acfe3c81442cb9754ee0a865f7: proxy: reuse id when server removed it
When we destroy the proxy, just clear the id. We then remove the id
completely when the server sends a remove_id request. This avoid
reusing the proxy id before the server has finished with it.
INFO Importing commit d619b774253ad8aa32f379847e42357878fc0d3a: monitor: safely remove pending requests
INFO Importing commit c42d495771369e8463a7b04dd387c2146652d44d: loop: blocking wait
Release the locks before waiting.
INFO Importing commit 70bdb7285717101b725210ba86b5c84bd13419c0: loop: add back the destroy loop
We need to keep the sources around until all sources are dispatched. If
not: source A and B are active after poll, A is dispatched first and
removes B, when B is then dispatched, the memory is gone. We don't
free the source but simply mark the fd invalid and move it do a
destroy list. After all sources are dispatched we destroy.
This is safe because removing a source is either done from the poll
context (with invoke) or when holding the right locks.
INFO Importing commit 85f81ab4e2178db9aab31887835faab65c4adbb8: config: fail when something fails
INFO Importing commit 1e54d9e00bd29369abd6b96536304d370a777960: hook: make safer
Also protect against removal of the next hook by using a cursor.
INFO Importing commit 4574adcd2ef2b7d9463b1ddf64e9dcb25277cd73: clean up listeners
INFO Importing commit 67e567b9c7c4c96fe55996062a83b5b907282035: stream: API break
Add pw_buffer
Add queue/dequeue methods, remove old methods
Add get and set for properties
Update gst elements and examples
Update the API to work branch which is more future proof
INFO Importing commit bcddac6e2b08338170fc51c26676e95e2c29e19e: stream: schedule process from main thread when asked
Use 2 lockfree queues so that we can queue and dequeue from different
threads.
Call the process function from the main thread when requested
Rework the data push and pull logic to go through the queues
Update the examples for this new feature, video-play does not need
to schedule the process in the main thread anymore and block for it
to complete, this avoid a deadlock between the data and mainloop when
shutting down.
INFO Importing commit b9171b5e57aaa5fe048f915823bfffac0428ec55: node: add Media/Category/Role properties
INFO Importing commit d6f40cefa638661e1271a61609646ac60cee09e2: examples: improve examples
INFO Importing commit a2d2d75a2574831d41d1f8fc54e2274efcf897bb: remote: call disconnect to make sure we free all memory
INFO Importing commit c362b1ccc50b52dbe4359820293befc8cdc3f641: stream: implement MAP_BUFFERS
video-play let the stream map our buffers
INFO Importing commit 18bfa9ae6efac59afb05c1091c7b2189944d6731: stream: add empty new_simple
INFO Importing commit 8b919e89bd35b60a49065d7d6e8a6515dcd73ec4: video-src: let stream map buffers
INFO Importing commit 36d883b8c87310913e8149b15e3aa8df0274d53a: version: add version file
INFO Importing commit 061f2c82b53b2f6632b7b7d583058f683d9cfb86: bump version
INFO Importing commit 9e0bce4cb7363dc7faaa5b0af6cb8f5359e364c9: stream: update to latest API
INFO Importing commit de766324b99d548822afeb5fbdc0d35438387670: hook: add private data for future expansion
INFO Importing commit aa838eab94292eccc2d13c68ae342fe8bd7897cd: Release 0.2.1
INFO Importing commit 07411e09cb6f38e2ff59807e307a61d96bfc082d: Bump apiversion and soversion for PW 0.2.x
INFO Importing commit 76ab7eb9fb67b6df51f6255d46136dff4b8bb8be: Drop api version suffix from library name
INFO Importing commit a223a35a5bf6131caa0e677ba7416fbf1cbd1135: Revert "Drop api version suffix from library name"
This reverts commit 76ab7eb9fb67b6df51f6255d46136dff4b8bb8be.
INFO Importing commit 887b9550ce5cfc2f8bd2d46af683fda3286de71d: Release 0.2.2
INFO Importing commit c5380162acb22390c6e7f16c4f1939979e82741f: build: fix module install directory
INFO Importing commit 327ae5db6ef93724640c4c74664d693d7a530dbe: add apiversion to pkgconfig as well
INFO Importing commit 393917ac765a04982d44bea8c3c9b60ee6895681: gstdeviceprovider: fix caps introspection
Enum the node port params to get the caps of the devices.
INFO Importing commit e6b7dd1d0f5e25a7a527f0f3cd1e2cdffd33db23: pipewiresrc: fix refcounting of buffers
INFO Importing commit 5a3883509b77a528a2ad96a449a55baae73af0cf: stream: return error when no timing info yet
INFO Importing commit a2cfb0882bf5f0b649c4ccb11c5825256b278db0: gst: keep track of clock time
Invalidate the clock when the stream is destroyed and let the new
clock take the time of previous clock when no timing info is
available.
INFO Importing commit d51fb8687b925895c064a9e1de5e0d0c00975125: deviceprovider: fix memory leaks
Fix leaking of the node info and caps by tracking the proxy object
and freeing our stuff when it is destroyed.
INFO Importing commit 6ba0ef7f2da61676471e150a132a9fc9a9c52707: stream: don't include stream.h twice
Fixes #67
INFO Importing commit 336fd190b4eb4642525991c2117418e64eb3f6b5: pipewire: debug version in init
INFO Importing commit d768a2d6dacbfab829e1369ace05d474a0a7d29e: make spa-lib versioned
Fixes #60
INFO Importing commit 872a1131fa4855938cceb062d73a4f8983782a1f: pod: move compare and filter functions out of the library
INFO Importing commit d3b9a52ec4eeab62daec515471471bc785b60ad2: don't link with spalib when we don't have to
INFO mv "spa/lib/pod.h" "spa/include/spa/debug/dict.h"
INFO mv "spa/lib/debug.h" "spa/include/spa/debug/format.h"
INFO Importing commit 9d36b85dd67d930477d6e09caf81812b55c8154b: remove spalib
INFO Importing commit 4eae1f0c6fb7ceb90159f3cd93565404b9bc7021: debug: add specific format debug
INFO Importing commit d93afe7f9b41c6d9d9c17319224a56af47e138e2: core: set version
INFO Importing commit 813506a614f07f32bea25d41e86b2e7f88e0886c: map: use invalid value for empty list
INFO Importing commit 2de7f9cc0362319eb78ff8f13137503e6eb26c7d: list: add iteration with a cursor
Iterating a list with a cursor is heavier but is safe against removal
of any element in the list. Move the hook cursor iterator to list.
INFO Importing commit 150e30dfb959b0905f7a3532f8999795747ef905: map: make for_each use a return value
Make it possible to stop pw_map_for_each by adding a return value
to the callback.
INFO Importing commit d8525e3732c17bb7e6de116ad91391109824a4c0: hooks: enforce version on hook emission
Pass the minimum required version to the hook emission and only call
events when the handler is recent enough.
Add some macros to make event emission easier to read.
INFO Importing commit cc1062933b6b968cfac7650149d5b16edee1798e: example: improve debug
INFO Importing commit c6f701588f56d2b67232b200c8b6d8a496c20951: link: improve debug
INFO Importing commit 98f54c4135bd84f2933b1bec0c8c9f537cbde358: pipewiresink: improve driver mode
INFO Importing commit fb76b65dfb3f3b69e419c5d85c74f9c0c6419ae9: gst: fix clock handling again
Request periodic clock updates.
Interpollate clock times in the gstreamer clock
Make sure we don't read the clock after shutdown.
INFO Importing commit 5eac8f76750a9ba5cd6e0f42a42d41247ffbabc1: remove last debug includes
Fixes #82
INFO Importing commit d70e027a99fdb921a78d8b323c9029d5bfdf033e: daemon: add some options
INFO Importing commit eab60c14c25928e5f2769e370dbee826bfa81868: man: update man page
INFO Importing commit aea505425bc5570b5e5ac9538b7f881f20094494: man: add man page for config file
INFO Importing commit 90400b17d624369512007366eddb9996a3558d22: build: respect 'includedir' meson param
INFO Importing commit 165c441cedd38e738d8a2a68d68e1e4fc1fda13e: meson: add systemd option
This is handy for source distributions, which want to avoid
automagic dependencies
INFO Importing commit 3bf53f5e22f29578989e9a078e4ff9c041eb56d0: meson: rename options as per meson's style guide
see https://mesonbuild.com/Style-guide.html
INFO Importing commit c6c7c4577e6709087d677d9bc15b0112a19918f0: meson: remove jack dependency
INFO Importing commit 9ea266f78989eb9649316f868375ebcca979a82a: protocol: don't log error on disconnect
Just log an info message on disconnect. Fixes #33
INFO Importing commit 8ae757768904865c9b1a40a1d3bbbca109890cfe: remove unused functions
INFO Importing commit 8d53d3018f2d3bccd72bffb901ec36095d430382: Release 0.2.3
INFO Importing commit 021d6cf25a068e255b3a6244e2ed8b0507fbd1b5: man: install manpages in the right directory
INFO Importing commit 692d96b9a48a34f8c1888eeb2e7ca13054814565: Fix memory leak in pw_properties_set
removing a property leaked the key
INFO Importing commit bbba49aae1e593cf5e1c00fdfcb39dc3f0d91ec5: meson: Use pkgconfig.generate
Also fixes the moduledir having a duplicated prefix.
INFO Importing commit f58f63ae64b98bb5c0d6cd6d0729ce57c54fdf3e: Fix build with clang
By using __typeof__ instead of typeof:
/usr/include/pipewire/array.h:85:11: error: use of undeclared identifier 'typeof'; did you mean 'typeid'?
alloc = SPA_MAX(alloc, arr->extend);
INFO Importing commit 9e60fd0b57f0607237ffd972f88d421eb56e7b5f: stream: improve cleanup
Destroy proxies before disconnect, they might still need the connection.
Destroy the stream related objects when the stream node is destroyed.
Don't try to remove the mainloop sources from the data loop.
Don't try to create properties in _connect, we already created them
in _new.
In disconnect, make the server destroy the node and destroy our local
proxy.
INFO Importing commit 8d2a9fcf62744116c8dd6c9a0c8c19b71bdb90e3: pipewire: fix leak of dbus interface
Track loaded interfaces.
Add a method to release the dbus interface when the core is
destroyed.
Free SDL resources in video-play example
INFO Importing commit 58efa8c2f439caae6b7885dd4c4018da9adfb5bc: man: fix man page install path
Fixes #85
INFO Importing commit 9fdb8a0e5f4da704338d5ab38df4682f8b48f5d4: meson: Add an uninstalled target and script
This makes it easier to run PipeWire from the build environment
INFO Importing commit e5dcacdefbdf50f23b51d3cb172a398aa5e9309f: add systemd socket activation
INFO Importing commit 6266cd0f485a7426abdb32c3aef7107f587c2cb5: protocol-native: -1 is for invalid fd, not 1
INFO Importing commit e29229b6e0009f3b704e9501b13cb3714737d6c9: protocol-native: return errno when server failed
this gives a better error code
INFO Importing commit 68c2866f7d5a6965339eaf287c54616d2270c2b2: Fix build when systemd is found but not libsystemd
Getting the following otherwise:
```
[13/28] Compiling C object 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o'.
FAILED: src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o
ccache cc -Isrc/modules/src@modules@@pipewire-module-protocol-native@sha -Isrc/modules -I../src/modules -I. -I../ -Ispa/include -I../spa/include -Isrc -I../src -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O2 -g -fPIC -pthread -DHAVE_CONFIG_H -D_GNU_SOURCE -MD -MQ 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o' -MF 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o.d' -o 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o' -c ../src/modules/module-protocol-native.c
../src/modules/module-protocol-native.c:36:10: fatal error: systemd/sd-daemon.h: No such file or directory
#include <systemd/sd-daemon.h>
^~~~~~~~~~~~~~~~~~~~~
```
INFO Importing commit 8693e416bc8208af8132391800b4ae023f0b0740: examples: document how to run
INFO Importing commit 795b352cbaf68ce6f05ab9e9d46d4eff39ffee14: meson: Use feature for GStreamer and make it auto
Bumping version dependency of meson
Fix minor new warning in meson
INFO Importing commit 0b2eec9f166ec93001972e4d92dd86a9ad3d07a2: Set GStreamer plugins path in uninstalled env
INFO Importing commit 4af917e9539aaf6e7811e69e0bccf436b31f9311: gitignore: Add build dir and cscope files
INFO Importing commit 10ce1a02cf752bbe86b41c111300face95112945: gitignore: Add vim files
INFO Importing commit d5c894cfd8ec3d972cc9130123676aee99f583b0: properties: don't add NULL values
NULL values should remove the key.
INFO Importing commit 1f5fec59838bc85ef9d7cb53450f55e66c101fb7: improve update_properties
Make _update_properties return the number of changed properties and
only emit info when something changed.
INFO Importing commit 6f918561c905baa4fd3d0afd3d271bc60b2b35ea: flatpak: also check for client property changes
If a client changes the "pipewire.access" property to "flatpak",
start handling the client as a flatpak client and do portal
checks. This is useful when the portal makes a connection for the
client and needs to for portal checks.
INFO Importing commit 1ea84b2869d5506851ee4f52c98e16d14333b46d: spa: explicitly cast the offset to signed int
As reported by Marcello Blancasio, convert the offset to a signed int
to avoid conversion without sign extension. Fixes unmap of stream
memory.
Fixes #103
INFO Importing commit 16b6a51b789b9d714418087f0797d29fb7b86c60: examples: add video crop example
Add support for video crop metadata in video-play and draw only the
cropped areas.
Add support for video crop in video-src and make it generate cropping
regions that grow and shrink dynamically.
INFO Importing commit 49afacd66fef5eb7824745d0d8a5dafeda62feec: v4l2: fix crash when unplugging
Only remove the v4l2 fd once on disconnect
Make sure we don't use the clock anymore when a link is destroyed.
INFO Importing commit 14ebb85e7482c5b7963d2e647608464f5cd148bb: Release 0.2.4
INFO Importing commit 57ba8108f12a1acd894ab5664c7230b85015356b: meson: Fix configure when systemd option is set to false
Otherwise it fails with systemd variable not found.
INFO Importing commit 5dcaa450fff24c36102ed20b791403da012a25fb: meson: don't add systemd_dep to dependencies if systemd option is false.
INFO Importing commit 67a0b33dc89075da9834abcb73bd57c59330a965: module-rtkit: define RLIMIT_RTTIME in case it isn't defined.
musl libc doesn't define RLIMIT_RTTIME
INFO Importing commit cd53eca92ba4ba0a763ad3ee555faf0345ff59b0: meta: add cursor metadata and examples
Add a moving and flashing circle cursor to video-src
Render the cursor in video-play
INFO Importing commit 218fd081dfee14f2d168cc62ccf46b925141aff4: meta: define invalid cursor metadata
INFO Importing commit 8205486554f949c509519eccc90126ed921ea991: video-play: handle arbitrary cursor sizes
video-play: only allocate the texture when we know the size and
format of the cursor bitmap.
video-src: make cursor size defined with constants.
INFO Importing commit 39078f2abcec18a8906e31b1caa969b15d2ddb74: meta: use spa_point and spa_rectangle
Change Cursor and Bitmap to what the work branch uses
INFO Importing commit 73aac68908c2c9f1dda2aab20bc4044fb0367782: flatpak: only update permissions on sandboxed clients
INFO Importing commit 053e01177d4d728f5c346839a6dd1c566d790712: loop: use simple hook emission
Add new simple hook emision without a cursor. The one with the cursor
is not thread safe and is not needed for the loop.
Fixes #110
INFO Importing commit 7f52246cafffe278307a3a056d5c1407177cab3c: Add some more error checking
Fixes #116
INFO Importing commit 5390079b4a2bfb5cbf565e654424ee372ad630fd: video-src: set valid cursor id
INFO Importing commit 5c6bd8e5c7ebe39e6068456465877753f532cc38: free() can handle NULL just fine so skip the check
Fixes #117
INFO Importing commit bcec14decbdd61eb200abfc396f779cc89c0dade: Release 0.2.5
INFO Importing commit c511b530ed0184e5a90c8e5947975b1e621d9889: thread-loop: improve error checking
INFO Importing commit f8b156ac14be086f15608029e3c22ca99a82b3b1: thread-loop: fix leak of event
Destroy the event when the loop is destroyed
INFO Importing commit 371da358d1580dc06218d18a12a99611cac39e4e: Avoid invalid conversion error with C++ compilators
INFO Importing commit dd3eb55aee38d1a27e2eabd611a378220577c854: utils: add SPA_EXPORT
INFO Importing commit 317f3b6be734a54544a3ccdd64d3054075896f44: type: add function to map types
Add a helper function to map the types. This should be used instead
of calling directly into the type mapper when CFI is used.
INFO Importing commit e4cac644d20e75e8c1b706e42172613d112d8b73: fix some compiler warnings with clang
INFO Importing commit 703309f6cd0787494c9b8acf038a0b3746122c1e: spa: don't use constructor attribute to register factories
INFO Importing commit 3424c05298579c06c6bf5a0c7f74143c84c90fcb: example: use core methods to register types
INFO Importing commit f6391be2144d8c7cb5b92c46842abfca6577b5a8: add SPA_EXPORT where needed
INFO Importing commit 737851df6c09c7b583a298876cfcf867745abb8d: Quote "$@" in autogen.sh
An unquoted $@ will break for arguments with spaces in their names. Unquoted $@ will work until it doesn't, and then it can be tricky to track down exactly what went wrong. Using "$@" will save someone some headache in the future.
INFO Importing commit 181a6a2cead2d260cddb309bcdb02b14f913a745: v4l2: do not keep non-capture devices open
If VIDIOC_QUERYCAP fails, or V4L2_CAP_VIDEO_CAPTURE is not set,
spa_v4l2_open should close the port file descriptor again.
INFO Importing commit bdc81f6dc03c583c64fc6fa81f49fef8cc1e59fb: daemon: use correct type for getopt_long() return value
Depending on the compiler configuration 'char' may be an unsigned type
which will not work as expected.
Signed-off-by: Matthias Fend <matthias.fend@wolfvision.net>
INFO Importing commit 6e7db20bf5d0fbbee54232cdfa925a345f471966: rtkit: Allow disabling with DISABLE_RTKIT
Allow disabling real time thread, this is useful to run inside
valgrind without being killed.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
INFO Importing commit 9f2cfe1cd6fe9d986fe548306ea7a25a86602675: rtkit: improve DISABLE_RTKIT
DISABLE_RTKIT should not even try to get the dbus connection or
anything.
INFO Importing commit 9f7c9022cf3a43707b44025e2d11456883787dbf: format: map all mjpeg formats to video/mjpeg
Fixes #139
INFO Importing commit e4be9837c4ff2de0e4a2818fc672c61e9cdae9f0: v4l2: add Camera media.role
INFO Importing commit 3f5b3b7cb1d84e6ded4b02dafb79ea0e245440e8: pipewiresrc: actually use the fd when set
INFO Importing commit fa0b4f9321a3952af96ae8b63a882e9a9133cd35: client: properties with "pipewire." prefix are read-only
Properties that start with "pipewire." can only be set once. This
prevents a client from overwriting the ucred or any of the other
protected properties once they are set by the core or a module.
INFO Importing commit 2b5c6fd6769edc70253bc40ce1a627afe1dce500: list: add _consume method
Add safer way to destroy a list of objects.
INFO Importing commit 7670ee7eec2305b697c41b921628eb9c6463596e: core: destroy all resources on hello
Destroy all resources (except the core) for a client when it
does a hello. This typically needs to be done after passing the
connection fd from one client to another.
INFO Importing commit 5d2f0f5182cd59e83629e9727f915d7aebb61bb9: remote: only remove the proxy id when it existed
INFO Importing commit e0eeedc369d03c3531d052a8cc95e361ff7d16ab: core: don't send remove_id in hello
The hello method should also destroy the resources for a client but not
send a remove_id for them.
INFO Importing commit 3854f8557a8d47ebaa5173e44669a9e58e148128: protocol: add security label to a client
Don't pass the ucred to the client construct, just set the properties
in the protocol.
Use the client properties to get ucred.
Add the security label to the client properties (from SO_PEERSEC)
INFO Importing commit d7acbb222e6e163a3e461c083fd2d346ca380a2f: link: check permissions
When creating a link between two nodes, check if the owner of a
node (when it is a client) can see the other node.
INFO Importing commit 83bc033837f7525d898f1de91119f669f9bf97f5: global: combine all permissions of the object tree
To get the permissions of an object, combine the permissions
of the object and all the parent nodes up to the root.
This is necessary to enforce that a client can never see and
object id (in this case the parent id) it is not allowed to see.
INFO Importing commit 98da5a2e9e5524751aaa96e2043d475135a2bb9b: global: emit permissions_changed event
Add a permissions_changed event when the permissions change for a
global for a client.
Recheck if a link is still allowed when node permissions changed
and destroy the link if not.
INFO Importing commit 5f507c804f37aef129c857266904ec551e1eee4f: remove libv4l2 dependency
It's not used anywhere right now.
INFO Importing commit 3ce0c4b81a77fe392eb808a7ea9c2b3eb5e74dc9: pipewire/node: Pass along 'media.role' node property too
INFO mv "src/modules/module-flatpak.c" "src/modules/module-portal.c"
INFO Importing commit 31145b58dc2c6487820775ffea80bb52e1b482cf: Rename module-flatpak module-portal
It'll use the portal and permission store explicitly, and nothing
particularly flatpak specific.
INFO Importing commit 777b97b7d858532fdada858e5eca32c931155565: module-portal: Use permission store for portal initiated clients
Detect what clients were started by the portal, and use the permission
store to determine permissions of existing and future nodes.
Clients are detected whether they are from the portal or not by
comparing the PID of the client with the PID of the owner of the
portal D-Bus name.
It is assumed that the portal will set an appropriate app_id, and a
comma seperated list of media roles (e.g. "Camera"), that should be
queried. If app_id is an empty string, it's assumed to be a
non-sandboxed client, and permissions are assumed to be allowing.
INFO Importing commit 1c8daa4a507e1580dd0a931febd64895e7aa4376: core: fix pw_core_find_format() for active ports
pw_core_find_format() is currently broken when one of the ports is already
active: The format of the active port is used and the other port is
completely ignored.
As a result, the autolink module may try to link a new port to the first
already active port even if the formats do not match.
To fix this, use the format of the active port as a filter and enumerate
the formats of the other port.
INFO Importing commit abaf40ba8b064a475a92ffac35b18fd18d4cc6d7: core: small cleanup in _find_format()
INFO Importing commit 55eadd6c4c7d1d1973d0e0253b5e69cb3f706f92: module-portal: Ignore if pipewire.access.portal.is_portal is "yes"
This is for the remotes that the portal itself owns, such as ones that
track the number of cameras.
INFO Importing commit 323917ab4ba80c6e91185ac214aba6aa51cc1c48: module-portal: Handle no app_id being set
Avoid crashing if the portal would for whatever reason fail to set this.
INFO Importing commit 6b269cce35beea7b8ac04be5a84aafcab2af0903: node: use spa_list_for_each_safe() for pw_node_events_*
Introduce spa_hook_list_call_simple_safe() as a new helper that uses
spa_list_for_each_safe() and use it for pw_node_events_* This way multiple
threads can iterate at the same time and, if only one thread is active, the
current list entry can be safely removed (e.g. in
pw_node_events_destroy()).
Without this the node listener_list may be corrupted when the main and data
loop iterate over the list at the same time (See #143).
INFO Importing commit b700d76ff45225a3a2058ad96cd8479a5f71b015: list: use spa_list_consume some more
If we know the item is removed in each iteration, _consume can handle
deletion of any item while being iterated.
INFO Importing commit 92808809ec4369b03e619ff791be13dcb81dedf2: client-node: don't destroy the resource from its event
Do no destroy the resource from within the event handler
INFO Importing commit c67f903c612acb12a1dd92ae52a2ff831665cb5a: Return -EEXIST when registering an object twice
INFO Importing commit 0951a97a364e32edbb1197b8e2b915383b2e4459: destroy resources first, then the global
INFO Importing commit 473fb330cf1237d5e7cc586b9b39c1be6b764b06: autogen.sh: Reuse existing build directory
Removing the build directory might delete important development files
as well.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 352b04ba2161e55dec6581a7208843eef2b125ed: autogen.sh: Replace symbolic link to Makefile
The autogen.sh script creates a symbolic link to the build/Makfile. If
the link already exists, a warning is printed and the old link persists.
Now replace it with the correct target.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 62afada593fec9c37ef10d09c2ebbfeb6b38bcee: autogen.sh: Put meson arguments right after command name
According to the meson man page, arguments go directly after the command's
name. Rearrange the call accordingly.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 768b082834c2954683e271e905293d10c3e748e1: autogen.sh: Check for meson
If meson is not installed, at least an error message should be printed.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 59fa57f2a3909d9f88561c54cbc7eef60d932721: autogen.sh: Immediately fail on command errors
If a command fails, there's no point in continuing with configuring
the project. Exit immediately.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit cc5a155c9bfcad3532720e959559ad6200cd4279: meson.build: Test for ptrdiff_t in <stddef.h>
The build scripts assumed ptrdiff_t to just be around by default. But POSIX
specifies ptrdiff_t to be defined in <stddef.h>, which is now included from
the test.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 85e2eba941d20d84eba24e95916c081ada733ec7: gstpipewiresrc: clear timestamps when processing a buffer
This is necessary for 'do-timestamp' to work if the source provides no
timestamps. Without this, the timestamp from the first use will remain,
because the basesrc only overwrites timestamps that are
GST_CLOCK_TIME_NONE.
INFO Importing commit 4aff470a8fa1e06448b2316781b4e7a91fbda341: Release 0.2.6
INFO Importing commit 37613b67ba52b5ad4e81d7ea38adc04027d9f9e5: alsa: handle alsa-lib 1.1.9
alsa-lib 1.1.9 removed /usr/include/alsa from the include path, we
must include <alsa/asoundlib.h>
INFO Importing commit 151b2b266e1dae3679584f38b954e4357cf1e5cc: connection: add do_close flag to connect_fd
Make pw_remote_connect_fd() not automatically close the provided
fd but let the caller take care of that. This allows us to reuse
the fd in pipewiresrc.
Fixes #155
INFO Importing commit 0a6fe99a63bce08cf0a1cb8736194fbce807bd4c: protocol: improve error handling
INFO Importing commit 37e66c9e55f556558088d9f6b2200d4341a37f04: deviceprovider: fix probing without starting
self->type is needed in registry_event_global() so it must be set in
gst_pipewire_device_provider_probe() as well.
self->devices is initialized as NULL when probing is started. So it should
be just a simple GList* pointer.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
INFO Importing commit 0720e375a11244e62539d2ae9de742b77090ca09: avoid error(), it's not defined on musl
INFO Importing commit 4350bd624f165de81de10293a8ec5a59e8b7ce64: Revert "global: combine all permissions of the object tree"
This reverts commit 83bc033837f7525d898f1de91119f669f9bf97f5.
This needs some more work.
INFO Importing commit 39c01ba2fedc59a62393c1d1198552bab666f701: builder: fix calls to builder_add that are not terminated by NULL
spa_pod_builder_add() is a va_args function that is terminated by a NULL
argument. The last argument must be a pointer type, because otherwise
checking for a NULL pointer can fail.
The __attribute__((__sentinel__)) prints a compiler warning, if the last
argument of a call to spa_pod_builder_add() is not a pointer type.
Fix all sentinel warnings by replacing all integer type 0 with pointer
type NULL in calls to spa_pod_builder_add().
INFO Importing commit 9b4b915f25df7c62e801594f8ebc5a43448e1a6c: add SPA_SENTINEL
INFO Importing commit 633c27824faf146f4330d0cb046e58c9e87c30bd: add sentinel to parser as well
INFO Importing commit 9a202272f2473737c6d0f941693633cf82c000bb: remote: always close the fd in connect_fd
Not closing the fd causes leaks in existing apps. It's probably better
to always close it and let apps deal with that by using dup or similar.
Make gst sink and source dup the fd before connect_fd().
Fixes #181
INFO Importing commit 312864d9e90cc3e15eb26eed31d14bfb6fdc5200: protocol-native: attempt to remove socket
After we grab the lockfile we should remove the socket when it
exists so that we can bind again. This should solve startup
problems after a crash, which left the socket around and caused
bind failures.
INFO Importing commit 14c11c0fe4d366bad4cfecdee97b6652ff9ed63d: Release 0.2.7
INFO Importing commit 4f680c224b756cca0727079b6ea8fb8058c642fe: make per mix port io and buffers
Move the io areas to a separate memory block.
Make per link io areas for the ports
Send per mix port io area and buffers
INFO Importing commit 28a094a65b191dcbe9b00d65013de71bbffa6f19: client-node: free io_area
INFO Importing commit 319098b4c859785838b0947c385b9df20d54dcf2: client-node: implement set_io on mixer and regular node
INFO Importing commit 2ea9addcf2f5897b4cc8885c88fd962a5020e72e: port: delegate initialization of mix ports to port
INFO Importing commit c0865581b9783e34a23db3d3c3bf4e3655d8d19a: port: don't schedule disabled ports
INFO Importing commit 3bb988820e252cfed817d33ba3bc03f69835db73: remote: work directly with the port mixers
Add port_mixer on the ports
Work directly with the port mixers
simplify scheduling
INFO Importing commit 1704c6756b564027172c1031162919b35341e797: remote: cleanups
INFO Importing commit b9880dbd5fe95ac0e90b11e0a27c996e3266fa38: Add some more debug
INFO Importing commit 1aa960ad54e7cc8f28f53743a7f6aaffb9ddf3f6: link: fall back to local io
INFO Importing commit 5bff143eaf217429e141276e5c09cf37ed8d2a07: audiomixer: update io states more correctly
INFO Importing commit e7bff4293d935bc679141cc818f70b5a028d8db9: alsa: small cleanups
Use flags for buffers
INFO Importing commit 1f077c7e0acaaa8fabe45388d2fbc994e04cc47e: client-node: fix mem_offset of io areas
INFO Importing commit b6239fb1aba6ece82ec11a418ff105995ccac07b: node: improve scheduling
Don't use the graph scheduler anymore, instead use a more simple
method using the nodes directly. The idea is that when a node
pulls, we walk the graph backwards and collect nodes to process.
Searching stops on a node with output. Then we process the nodes,
each one in turn calling process on the next one when all dependend
nodes are processed. This is quite similar to jack2 and with some
modifications seems to work well for more complicated input/output
patterns.
Set per mix input/output buffers.
Implement mixing in the audio-dsp node.
remote: handle mix ports a little better
INFO Importing commit 1fec67086d5ef5ef7b8ebd6f6c9622d231fd9332: audiomixer: debug port id
INFO Importing commit 9758e372796ca1e4d4c316b197bcfa3581445b8a: mixer: add properties
Use the propeties from the sink we are mixing and set Audio/Mixer
as the media.class.
INFO Importing commit a3033ee2b75f6b4ec90468bb22c4d79f3c6c0a9b: client-node: improve debug
INFO Importing commit c018d27078506a6b61fb9a80d41cff028fecd49a: alsa-sink: cleanup
INFO Importing commit ad6ecf6be867d7d3e2cc0993ea131be270d1b667: audio-dsp: use flag to check if buffer is filled
Only produce a filled buffer otherwise produce an empty buffer.
Handle different buffer sizes.
Also link to a mixer
INFO Importing commit e85f7501b565671b00c9860604a05184cdfa4d17: node: improve scheduling
Do a pull in links that need a buffer.
When pulling, stop when we find a node that has buffers.
INFO Importing commit 533c29924413c6fbc7b2502d0d39d79aeb48853a: link: try to improve passive links
INFO Importing commit 6f095f4cc508ace962a994236974c3777656aacc: link: improve clear_buffers
Clear the right mix port
Don't clear ouput ports when busy
INFO Importing commit 0bf03abafbdd577f640211a5ee36432d4f011003: stream: add option to map buffers
Add an option to automatically map the buffers
Cleanups to the memory mapping
INFO Importing commit 40d2451718de85b5ea5f6c58f8ff01af9f66ba9d: examples: add example audio source
INFO Importing commit 2a159c04ff0182cadc13eb5d0b4b2a2c30e77f17: video-play: let stream map for us
INFO Importing commit c547baf9523c4ae5af4ebdafa9c2a9803dc609aa: client-node: remove the area
Remove the share node area, we don't need it
INFO Importing commit 6eea9247eaaa122e594710126521a51dfde7b385: graph: add new scheduler
Move the activation state to the graph
Replace an old scheduler with a new one that works with the new
activation states.
Remove the DISABLED port flags, we explicitly add and remove to
make ports enabled/disabled.
Find first compatible port for link
Remove the node based scheduler and use the spa one.
INFO Importing commit 52efeb51814e60fe3ce2322c9c83ff1c4f2692e3: alsa: only pull once
INFO Importing commit a50ea4c9292a84cf922b675cabe9d93141e3789e: client-node: we need io on the mixer nodes
INFO Importing commit f599120433118633705149923c6f89b1063ada16: mix: keep track of mix id
INFO Importing commit 05b3c666d9b16c39e64b289fbb4c95e0445aec1c: improve debug
INFO Importing commit f2edfacf092eaa8f2ecd74679379026a113e2ea1: link: update graph on activate/deactivate
Add the mixer ports to the graph when activating and remove in
deactivate.
INFO Importing commit dc091c7c000b2ee89d828f68e57a0a60658008c4: node: remove old code
INFO Importing commit 60150d67f183c1150832269645dd5e182b06ce57: remote: there is no need to init the io area
INFO Importing commit 2d77c4dc34f06ff33563a188046a3e52504815b2: stream: keep track of io area and release mem
INFO Importing commit 933635f63f6484c7ecec0e483d56c245e4353f2f: WIP: work on per driver graphs
Make a graph per driver node and let nodes that link to this join this
graph
Work on an idea for an even simpler scheduling mechanism.
INFO Importing commit 3a9df8096b4c33d3f817e4a244642ee79847d5d2: WIP add subgraph
INFO Importing commit e8d0281982604741d5d7d39af3ef586356e28089: control: undo done work in case of error
INFO Importing commit 9b0a880afb76ceb032b1ea4e7640839aafa01462: simplify things with just 1 process function
Make just one process function in spa node. With the io area states
we can do more complicated io patterns.
INFO Importing commit 33a322b96e61ca5c42967f906ba361084a3f6646: graph: new scheduling model
Make explicit links between elements that are used to activate the
next element in the graph.
Make subgraphs a special regular node. Make a link from the
subgraph children to the parent so that the subgraph completes when
all the children completed.
Implement a single process function in plugins
Remove many messages in the client node
INFO Importing commit 99d94044d13ca1c91c7ad621ffc4c844d0f5ec39: small cleanups
INFO Importing commit 76ed4e946817d5a35678647b25c8a53b92439a0d: node: add finish hook
Add a finish hook to signal when the graph of a driver node
finished.
INFO Importing commit 811ea2b1c93aab1f910d06280a0ad8f85ff99bbe: client-node: manage io areas
Manage the memory of io areas
INFO Importing commit 97952e9312b262a6f9f2abb4d529a33a26c2c0ce: video-src: mark as driver node
INFO Importing commit c725f1f7b613c1a0a0eb4832525088a18a536390: stream: rewrite using remote node
INFO Importing commit a7341ce58311bf578e3690ba9d70bfef1af604f1: node: fix support for remote driver nodes
INFO Importing commit a10d7a4e907e50a24c6bff67c5ca9d9a5707ff9d: remote: improve memory handling
Better tracking of buffer memory and io areas
Activate/deactivate areas
INFO Importing commit 97547d726f12f21b292a6a3c70055d96ca25b1c0: client-node: track io areas per mixer
INFO Importing commit f9ceedb714c4d5d4fa50fa608926df736f2e701b: stream: improve stream API
Simplify the stream API. make just 2 methods to queue and dequeue
buffers. Make just one callback when new buffers can be dequeued.
Add support for driver nodes such as the video-src.
Pass a pw_buffer structure to add/remove_buffer and make it possible
to attach metadata to it. This makes it a lot easier to implement
the gstreamer pipewire pool.
Call the stream process function from the main loop and use a lockfree
ringbuffer to pass buffers between the threads. Make it possible to
also call process from the RT thread.
unmap the buffer data when needed.
INFO Importing commit 41a3a924efc2e66a2271c34b8a43fa014294e1b7: stream: add pw_stream_new_simple
Make a new method that also makes a remote and connects to it
transparently. This saves some lines of code.
INFO Importing commit 95d45e4206144a0b72bad99b03d784f2cad64219: proxy: reuse id when server removed it
reset number of fds before we begin reading.
When we destroy the proxy, just clear the id. We then remove the id
completely when the server sends a remove_id request. This avoid
reusing the proxy id before the server has finished with it.
Add some debug
INFO Importing commit 8481356f4ba061e2b5086b32f6970fd3d2fe58ec: stream: add const to format event
INFO Importing commit 36f7578aa891c7f0151c30f8461a3a2469acbcdc: export-sink: small cleanup
INFO Importing commit 7db732e2e2bd1b181ff47076ee2ba1f1908f7e52: spa: some more defines
INFO Importing commit 2cfb206d7c392678205eb58afadddbdc29894515: add audioconvert beginnings
INFO Importing commit 0b4cef586fb36a418254b5167a002932e34cef6f: audioconvert: improvements
INFO Importing commit aada47252db2a100a5dd9452eeb1d9f1097e3cd0: pipewire: add helper to load spa plugin
INFO Importing commit ba518c0d9b9cdb7987d3ddf9c9ecc6a5517172d2: small fixes
INFO Importing commit b171361204d4a62209d33083420eb58e7a55cd9c: stream: for format conversion
INFO Importing commit 19067dde17a7cf3ce504e655960fb15da36c876c: buffer-alloc: add helpers for buffer allocation
Add some helpers to calculate buffers memory sizes and
construct buffer structures in memory.
INFO Importing commit 142ef38df96d1d64a0f62d6d3a75fbfbd3757b2d: stream: more work on converter
INFO Importing commit 53e03019dae3c2e53f3a0a95c6e908f4f37d005f: buffer: more work on buffer allocation
Separate buffer sizes in the info. Make it possible to not set
data pointers for when we use memfd for the memory.
Improve format conversion.
Work on in-place conversion in test-convert2
INFO Importing commit 11f42d6262ae879a010041dcfac285474c05ac42: port: add filter to pw_port_for_each_filtered_param
INFO Importing commit de363309175e9a5658f2c7578e399a5cd4a82933: handle: make method to get size
INFO Importing commit b3b47d3fe92ecfc1ad7ba593939ea4e028bf8648: more work on audioconvert
Implement audioconvert as a complex element of fmtconver,
channelmix and resample.
Make copying resample just to test.
Plug the converter into pw_stream.
INFO Importing commit d88b88444d854d64ddbc16234c95988034e6b234: resample: use speex resampler for now
INFO Importing commit 008df86c8fbd28270131c1e134967a3fce16b153: small cleanups
INFO Importing commit c9fb320987f5aad077dfa7eb07e0cf31d91acf36: remote: improve mapped memory tracking
INFO Importing commit 8b74a3c0d2c6328f92abe5c6b833703bfca64f38: small cleanups
INFO Importing commit b07c4932cdabac5fa2496e592c3b763b6aec48a7: stream: remove client_reuse
We can't have client-reuse with the client-node interface.
INFO Importing commit 96c87c3f7f8ec32fdd16143b6f8fe9a909c257b2: stream: only install converter io once
INFO Importing commit e33c76f7285ec3ba7b10768cd8473d46b800dd6c: stream: map buffers when using converter
INFO Importing commit bd27b32c3947f8608e7b9386f2f8f13af27d13fb: stream: install converter based on format
INFO Importing commit 10fff4b2f811bf490117fe189168c01fcd757ac4: node: add better node autolink
Add node media, category and role properties and use those to select
the target node.
Tag the DSP node with the right media.class
INFO Importing commit 03b914405d0ba9a3564d5f12166e90f00592144e: client-node: remove transport area
We don't need the area anymore
INFO Importing commit f4f2e4bf68c97767990d532fb955393b7affcf1f: small cleanups
INFO Importing commit eea05cc139c1cf2b6ca4fe3b87ef74e2cec324c5: improve format
INFO Importing commit e869d5bcb00cf483b990d6462a5c1a09d4428ccc: splitter: add channel splitter
Splits a buffer with multiple non-interleaved channels to multiple
buffers, each with 1 channel.
INFO Importing commit 04f3044f1c20a9da0862bbd2d30d0741fe7999ba: client-node: implement add/remove port
INFO Importing commit adf8bc780452be147f8ec4c5c23ecbd786607d24: client-node: fix buffer data offset
INFO Importing commit fa07400c2e42b33c7fca9d391c8d8431362442fd: port_mix: place io area in separate field
We would like to remove it from the spa_graph_port...
INFO Importing commit efa35c2911d081c440c5060b22084758cdc9619a: node: add option to not register a node
INFO Importing commit 63ce244c798ac314904c87b73955a11692487aa5: add client-stream
A client stream is a more specialized way to send 1 stream to pipewire.
On the client side and receiver side it can do conversion and the
buffer size of the client can be choosen arbitrarily.
INFO Importing commit ae905530badb1c4a607177731a47ee520c1944ea: monitor: safely remove pending requests
INFO Importing commit 1f73143d5537502abc1e96a3aff20fd628489b0f: connection: improve some return values
INFO Importing commit 30d8df7d25248bd429c4859e581fa0b4d410d134: add layout to format
INFO Importing commit e125f9a9a706dd300a3203c0c21888fa81df5dad: alsa: add format layout
INFO Importing commit 3b8ffdfb4e8b7437f59aaf5f8e047bf46617fae7: io: make status as flags
This way we can return status of both input and output
INFO Importing commit 06dd7095fc2b01b7e5bb438b1c86a7e3099b9e6a: audioconvert: various fixes
INFO Importing commit 550b544aa01959157c69102f6fcd4f06a5174021: test: also test resampler
INFO Importing commit 57cbc5e503e4a91b19b84e2cf272b5036870ea28: various cleanups
INFO Importing commit 64d1307684bd0e62b2e200c0abd1c8ded8e0b9b3: alsa: do the wakeup differently
Directly write from the process thread, reduces potential latency.
INFO Importing commit ebd13a2a74742599ed96ee4e4edd8731196c4854: loop: blocking wait
Release the locks before waiting.
INFO Importing commit 0dc036ac8432c9ded023b25a94c625470c42a84d: client-stream: improvements
INFO Importing commit d165b3b842fac389856b7f53f7879d9e1b9257e4: pipewire: improve memory cleanup
Add method to unload a spa interface.
Various other memory cleanups
INFO Importing commit 0eb73f0f06a2e40362990080007db295141f6f1f: loop: add back the destroy loop
We need to keep the sources around until all sources are dispatched. If
not: source A and B are active after poll, A is dispatched first and
removes B, when B is then dispatched, the memory is gone. We don't
free the source but simply mark the fd invalid and move it do a
destroy list. After all sources are dispatched we destroy.
This is safe because removing a source is either done from the poll
context (with invoke) or when holding the right locks.
INFO Importing commit 4c9c93952714e582a2a25a1665129776c5589afc: alsa-monitor: keep track of cards and devices
Keep better track of cards and devices so that we can remove them
without having to open (the removed device).
INFO Importing commit 08484b92f5135a382a71a8036ae70929d9cfdda3: bluez5: handle remove of devices
Fix a2dp-sink for new scheduling
INFO Importing commit d2c545be8d5c9aefceaa97c054708f038630b49b: audio-dsp: handle node remove
Handle dynamic samplerate and channels
Improve node names
Keep track of removed nodes
INFO Importing commit f8222c765eedb0d1ecd402164ee4589841f8837d: autolink: prefer latest plugged device
INFO Importing commit d7f1be0376d75142521c3241e8468560c6cfcfb0: monitor: add time when device was plugged
INFO Importing commit 23dbf76e853b842f44d8fce1a05b8a8662df9b13: spa-node: first activate, then register
INFO Importing commit 592cdfe90d02d6ebd6682ebcc2d7f59fffe09be4: global: add registering signal
Add a new signal that can be used to register child objects
INFO Importing commit c24044108a12fa0dc21f7f497198f2759a442a96: link: always pause ports on deactivate
INFO Importing commit 5e89e9421cc08f637182f5834cdacaa4c2ab156c: link: only assume ports registered when registering the link
INFO Importing commit c4414bc9bc4ac477f9a4fb0cc6173c2c467c4e30: node: register ports in the registering event
That way we send registry events in order but only signal global_add
when the node is completely registered.
INFO Importing commit b122f86e11342635a39a1d8fbc9a7be943ca192c: stream: always listen to the remote events
So that we can give a stream error on disconnect.
INFO Importing commit f9bda23e5628f69c31558512da74683ecf5c9331: a2dp-sink: remove sources only once
INFO Importing commit ced868c208ad8ec3e15b60fd37ef9640868e6461: graph: improve debug
INFO Importing commit bad8dac56eed5171d245bea6b1e8e80603205d12: autolink: fix else branch
INFO Importing commit e9839bade6cbbc66a463f1e9243ab537021e29cb: autolink: link to specified node unconditionally
INFO Importing commit 20692cf173df7592823914309752186a5d5763ba: link: cleanups
INFO Importing commit 013b606a89c22449befe3841ab1137165dd7f835: node: add driver graph field and schedule it for drivers
INFO Importing commit 9376ba6098674ce82a290da0e5edc2be6ff5fd21: client-stream: improve case without adapter
Handle the case where we don't have/need an adapter.
Add the adapter and client-node to the graph
INFO Importing commit b3c842a7eca7b6cbe85f42afb27e7e384d206ada: stream: handle driver sources and sinks
INFO Importing commit e74c41bdf62eed4ebf9302f30e912b3c44ffe921: splitter: fix bpf
Number of channels does not influence bytes-per-frame for
non-interleaved audio.
Add layout to get_format
INFO Importing commit 8961e6d1c7b4984c62c272e73dd597bb62c3ba56: logger: add colors
Add colors and option to enable them
INFO Importing commit f784da5505a5e4dcc13cc8912431887503793810: pipewire: add info to interface load
Make it possible to pass info to interface load
Enable color logs
INFO Importing commit a6cb6b740c620017806967e16530e580386f2b3b: client-node: make it possible to skip signal
Add an option to not signal the remote implementation when we still
have enough data.
INFO Importing commit 7f6ac1162d0bee35066bc77d4c5f0ee479e4572a: stream: improve node.name
INFO Importing commit 60d74d442f9ba15b5dc5586513ea286836600b07: alsa: fix capture
INFO Importing commit 09cec04380d80768e69be7fb4ebec25a5a0f64e2: audio-dsp: implement capture
INFO Importing commit db77de925817bcd4a830692a16040c1096b13c9a: fmtconvert: only produce output when need_buffer
INFO Importing commit 3e68dee7ff08b33f2ee96becfe4f0052fc86f63b: alsa-source: don't use htimestamp, it's not accurate
INFO Importing commit c2cd56d903a2f70c98bb9652a83e3eb4637a4819: loop: inline frequently used function
INFO Importing commit d5e658e8f971688122f29c2e9fc53ddd4fa8cc13: audio-dsp: add support for s32 format as well
INFO Importing commit b8a37381daec19482d4aa38192f63418ecdb5947: alsa: adjust latency based on buffer size
INFO Importing commit 7c4baf88ea0d80236604f14ee359fb9d92cc7467: link: move all graph nodes
INFO Importing commit b160d81d2f3177fe05cf51b073b5d2de6f8fbfe9: stream: fix driver mode
INFO Importing commit 7bb0e4da858418e965e814abab1b75a986922925: small cleanups
INFO mv "src/modules/module-audio-dsp.c" "src/modules/module-audio-session/audio-dsp.c"
INFO Importing commit eb96ed45d71084372fcdc5bb5250ded63e650ccf: move audio-dsp to audio-session
Make a new module audio-session that manages clients and what audio
sessions they use.
Move the audio-dsp to the audio-session
INFO Importing commit 27c53a31bc38208805b2d8a41e009bac1788a6e2: stream: add exclusive flag
With the exclusive flag we don't go through the audio-dsp.
INFO Importing commit cf6794203d3ac5d2cbf47066004e6883cf431ddf: node: initialize before registering
First perform the initialize signal so that we can finalize
initialization before registering the object.
INFO Importing commit 249110eb792f8d9f832187771ecc32421eb59f4a: graph: trigger does not need to be a callback
INFO Importing commit d93dd5ec9345042514378e30cbf95904fac3b7eb: graph: remove io from graph port, it's not needed
INFO Importing commit 1ede97577bd94eb01111a6b31e35976312a1c819: small cleanups
INFO Importing commit 6d79ce25891e2df7958f2546e1952db3a039343b: small cleanups
INFO Importing commit 22b8a6f01a0c1d2ec68ae1d67afabe891a2c977b: logger: make info lines green
INFO Importing commit 97473c8e8b475aa87791cdba9a5cbd2a1f7ea6bb: audioconvert: fix scheduling
INFO Importing commit bd3b7e8ee4fe4642c9781f36bea319d4f82965a3: alsa: cleanups
Use a periodic timer to catch underruns
Small cleanups
INFO Importing commit 2c6ff2dad2e3dac2d5b9b91cb2db635bb5e73f69: audio-session: detect sample rate
INFO Importing commit bed26040efd3481842104f0a643bbc96170599b9: node: add driver position struct
Pass driver info to client
use current buffersize and samplerate in client
update the buffer size dynamically based on session
INFO mv "src/modules/module-audio-session.c" "src/modules/module-media-session.c"
INFO mv "src/modules/module-audio-session/audio-dsp.c" "src/modules/module-media-session/audio-dsp.c"
INFO mv "src/modules/module-audio-session/audio-dsp.h" "src/modules/module-media-session/audio-dsp.h"
INFO Importing commit e02b3181daf03de85aff7cf57688da27024a7ee0: audio-session - >media-session
Also implement video in the media session
Small cleanups
Improve exclusive mode
INFO Importing commit 8fcf27848fd746da2ffa3bceb011c109bd34c083: config: fail when something fails
INFO Importing commit bdeedad1d61ef7cec2ca23bb16538f16fc1ee654: auto-link: remove obsolete module
INFO Importing commit 65e00631da552e006c197e90dd0e569241894b14: hook: make safer
Also protect against removal of the next hook by using a cursor.
INFO Importing commit c61d579d99c866989e67e95a4ed14ac204c61f9c: small cleanups
INFO Importing commit 69d414493277f89177adf30fe838896e8ce9f8e4: audioconvert: handle cleanup and renegotiation
INFO Importing commit 6450c64542d3f24fc837263ab7d4cfd20b54e743: clean up listeners
INFO Importing commit bb632859eaa78d467b6129b384d8176ee0dad8ae: remote: clear buffers when format changes
INFO Importing commit 1bff5afe05914525e2392acc17e8d97e5c56841e: client-stream: reset format on adapter
INFO Importing commit ef9fcd10937bbaa553044bee10b308652a7cecfd: node: keep better track of driver node
When a session disappears, try to move nodes to another session.
INFO Importing commit 2d34a405e84bb6cdc393d46f90c1a130731d4492: audioconvert: improve negotiation
INFO Importing commit f5f1a435ccf39a42a0ccf4ca4ba0ba6d84721b95: client-node: improve time and position reporting
INFO Importing commit 2e0e68e46e05608d785a3331afcc5cc95e5c3145: prefer 48KHz and 32 bit samples when we can
INFO Importing commit 5a1bd77fb54bcd3aed03403d55e8758d21f4e063: buffer: add dummy field for better alignment
INFO Importing commit 3fdeb64ddbf09ce96dc69e83565f0a86b50d345c: stream: only try to send again when needed
We should only try to send data when the process call prepared new
data for us and we didn't already have data.
INFO Importing commit b6500bcb802b37cf189abd9bbd808344dcd0723e: audioconvert: fix max number of links
INFO Importing commit 6f5a2701f383568720997ebbb505074432b96a95: utils: add some more helpers
INFO Importing commit 1bfb1d9228680bf57e3006e7efbce019cd2bcdf7: loop: return number of dispatched fds and update docs
INFO Importing commit 220d9348421c1d462ae0aaf2c01ee02fe7f425eb: stream: improve async connect
INFO Importing commit bf2a6bb1d77486eee18adf45539131d5de1bbccb: client-node: small cleanups
INFO Importing commit c0a322022845d49a7f636194718b7bb684bbfeeb: pipewire: improve application.name
INFO Importing commit 46ad3155b51ef0535e98482628105a5058c45ed1: module: implement properties
INFO Importing commit 4005cf03e67a825329b1cbf6470928462935f997: meson: add puleaudio library
INFO Importing commit eb8b1fd4211e645289687e3fe453877fa0892ada: properties: add setva function
INFO Importing commit b029000610d122ac12939d02ade2264605ff43de: thread-loop: set thread name
INFO Importing commit 3d25e254ef067233cf34a071e83fcdebc70ffda7: client-node: implement node property update
Make it possible to update the node properties
Make it possible to update the remote properties
INFO Importing commit e5629b23f3d04e223d8e5c96b09713643c179bff: client-node: pass position around
Pass the position from server to clients
Implement current time in stream.c using the position info
INFO Importing commit 1b37db8add5cefb9cfa6bde9003bfaefe7af8ac3: resample: fix resample length
Don't use output sizes as input size for the next channel.
INFO Importing commit 057da435da3a3f3e67493b80c29a612fe5958813: stream; use const params in finish_format
INFO Importing commit b53f96eae95f38e90482ef75230439445519d86f: alloc: fix buffer data mem
We also need to skip over the metadata and chunk memory
INFO Importing commit 0c359a6819bf96af152063f2af65e027fa08d12f: spa: make a #define for default rate and channels
INFO Importing commit ba0a68aab398f3e555c9ea02f0127095d009bc97: client-stream: improve debug
INFO Importing commit acfd07c504ceccbb1a1fd6460802d5c922cfa08f: client-stream: allocate the right number of buffers
INFO Importing commit 4ac21aea53ebf72fdaf37d23055a5fea70a1a617: stream: remove conversion
Improve audioconvert to also split the output.
Remove the format conversion from the stream and move into the
server client-stream.
INFO Importing commit 18f01940087141c1680bcbe703dae43b24503627: audioconvert: apply ouput range to resampler as well
INFO Importing commit dbc3b4c1a4a8e97d424621a43016f519e79e1725: media-session: improve plugged time
Use the node plugged time for the session or else use the time when the
session was created.
INFO Importing commit 43e3ecdb3b5535e22a2c0c69fa2d75ffefc80ca2: video-src: improve properties
Mark ourselves as a video source so that a session is created for
us.
INFO Importing commit 91a10d7c9e3f3a03872c953f5b497ee96af21f1b: v4l2: Check device node
Check the device node on init.
Only remove the source once
INFO Importing commit a198943b1a92437bb3e6869264aeefd09e082310: client-stream: fix capture case
Setup the processing order differently for capture, we first want
to schedule the converters and then the client-node.
INFO Importing commit ca61fd1405b96040e7e057940a18edac806ea3b8: media-session: prefer non-busy session for exclusive access
When we look for a good session for exclusive, prefer the non-busy
session.
INFO Importing commit bbd5c941d24e5eaf578ad29feb46cce7225c8983: client-stream: send node_id to client
Send the node_id of the client-stream node to the client.
INFO Importing commit 4afda5405f7457f764ed87464f00b0c59b83e722: alsa: fill silence when nothing written
INFO Importing commit 725e41d71550eade58ca1975f2d8fd16fcfe1346: audioconvert: improve scheduling
INFO Importing commit f8c2038663f9b97187ba91af59378ba063c78864: port: Improve scheduling status return values
INFO Importing commit 6025b30a46c573822100f270604d46e77a97f870: audio-src: add volume
INFO Importing commit ecc287edcfebdb583fc0de1cc7691cfb94aad5c5: link: improve debug
INFO Importing commit 73602ad98aefd3dc58f2a9b60ab96545dae4d928: media-session: improve category
INFO Importing commit 1eae3f1a2c0b5788b740c76db793af6a8890b91b: media-session: round buffer-size down to power of 2
use rate of the session to calculate the buffer size and round down
to power of 2
INFO Importing commit ce2e605255fd5af40d2203c1b4f11846f0e450f4: client-stream: fix format and buffers for capture
INFO Importing commit 757e2ccc79e969148eaacc20c336a2a7cf5bfaac: client-stream: trigger client-node manually
Don't let the graph scheduler trigger the client-node, instead do it
ourselves when the need a buffer for the next quantum.
INFO Importing commit c01112d6c2b316909bbcfe983dcfe43611f0f000: node: move position calculation to the node
INFO Importing commit bb7be076bbadc085dfa57c5c6fc1386c893eb5b2: client-stream: swap local and remote io area
INFO Importing commit 35e0399d97474f9a72ac45376d08ffd0a72e2167: media-session: use session sample_rate and buffer_size as defaults
INFO Importing commit 75a18d5c7f0658d5a7f464dfaf6f05a76d8f9509: audioconvert: fix s24 samples
Various cleanups
INFO Importing commit 8f41031933663526eb74d2c0e09601a731c42bad: alsa: clamp threshold to configured max
INFO Importing commit e9885a8ebb13f5fde08dad0894a15e384613078f: fmt-ops: fix f32 to u8 conversion
INFO Importing commit 9773e2245f923e0fe7b953f4c3de826c082269fa: fmtconvert: implement merge and convert
INFO Importing commit 1a786e04f96d1f8df84f24a5e030b94c80967853: resample: improve output buffer size
If we don't have an output size configued, produce output as soon as we
can.
INFO Importing commit a738b735675e846c43721c63c2eeb589f12f19f9: port: we can accept a new input after mixing it
INFO Importing commit 2d75d96d675eb0631dbfc53b365e46ef027e3478: meson: fix pulseaudio check
INFO Importing commit 414378283c1e7886b9bb4494dcb84f551a3e8541: media-session: allow enabled sessions
Only enable sessions when they can be configured fully
INFO Importing commit a13b5cfdc316e2716c18e18fd52ad94b78440550: increase number of buffers
INFO Importing commit b46a0bc0475c46e1857459b4d0ca1dcb5b030a86: client-stream: prefer client buffer params
INFO Importing commit d9e3eb49cc7f02f3a2bb209e786e9e64abcd4582: audio-dsp: cleanups to format conversion
INFO Importing commit 2fe392dd30c26272c9dc552f2352b5d0a386270a: alsa: limit silence to threshold and available size
INFO Importing commit 6e92dbbe235d7dc4d91a250b1b7546a1db871b3e: media-session: always check if session is busy
Also check if the session is busy if we explicitly provided the
target session id to join.
INFO Importing commit a7ec4e4688978b2d1fa67dfbf5455a7153aad52c: stream: add MIN_QUEUED constant
INFO Importing commit 710f0f59cf9b43cdfe126eca57bc73d36f8e6a49: limit buffers to 16 until we can send more fds in one message
INFO Importing commit e68624fe7b65bf57d4f16c8fe325f9629c1bbd00: client-stream: improve scheduling
INFO Importing commit f5cf90ccd1db613c2057bb26d2d0ca6ae46712cc: media-session: improve debug
INFO Importing commit 6b10b0784ffe2168645b052864727d3107775e27: node: improve states
Only change state when different
INFO Importing commit 0122e15611e1826a6b2e00049bd856f72841fc08: node: improve scheduling
INFO Importing commit c315c95e5593bdb9787e7f5769345e78bf213e90: link: improve negotiation
Separate negotiation and activation steps of the link.
Keep track of the pending amount of links to negotiate before activating
a node.
INFO Importing commit 6494a5aac0ba8b6deaa5a86b2f0b28066c4a6e81: link: improve state change
Don't assume running state when we already have a format
INFO Importing commit e5c2896fca95f3d8b096d0e39730142685bb9dfa: pod: add padding to float pod
INFO Importing commit 8f97e0dd318eaee37c63c60dd1526e7affa77c2b: audioconvert: add volume control
INFO Importing commit fe03ec8bde67459ae841f14f305e9c8fd5838109: array: add some more helpers
INFO Importing commit 79a3b594f99a67011e1ea5dbfbacf3cb6a464987: client-node: set parent id and owner
Make sure we set the right parent id and owner for the client node
and client-stream
Move the remote id in the proxy object and use it in the stream to
get the node id.
INFO Importing commit 1b4a0e8d5d7e1a5101cf5f0fedeaaf7249241897: client-node: also implement io on the node itself
INFO Importing commit 9417cdd9e696cda1ba8231194abce57ff480564f: client-stream: Also link controls
Improve registration of the node, set the media.class
INFO Importing commit 70b04da7231a3ff62dd10c177f8cfe8e5e56b9f1: media-session: express quantum relative to rate
INFO Importing commit 055518b40d7bbccdb9e62ac9e24fa12217b660f4: stream: add parameter support
Rework parameter handling
Hook up volume parameters
Small cleanups
INFO Importing commit bc2b96559135f53183d89c08b70f8eba75a59c5b: audio-dsp: use the quantum to fill underrun with silence
INFO Importing commit ef307d37bc208caeb2b5ea613e12ee1d67647c48: node: add node session property
INFO Importing commit 1cdb7e02148c3672c75d5ff0fe3bf1fc36267682: thread-loop: add some debug
INFO Importing commit 2ac2822d4f72bbf41ef79341fc931c3d393805d6: link: always activate the link
Always activate the link, don't rely on the node to activate us.
INFO Importing commit e0676fcef82d3462fd089a3e46446913f6e248f1: array: update size on delete
INFO Importing commit 3f45ccd6a519659cb2842475f4bfe831cefd32ab: gst: update to current API
INFO Importing commit 33427b4cd322b68863a0b7c895acde6e2872b801: small cleanups
INFO Importing commit c98fbfe0a9f37ec13c85af7b152cc57a9809a4c1: meta: make safer find_meta_data function
INFO Importing commit f49ab32874c5c1a4bff2ed34f80c2f74b7ae9d70: meta: add video damage region metadata
Add damage region meta
Implement damage region in video-src and export-sink
INFO Importing commit fdc3d5c0f7dca47d6637a77472f8705f0e2a813d: export-sink: be less verbose
Only report region once and only accept 1 region
INFO Importing commit 54c45252fd93c08a52b5acb14f38ed727c56534a: client-stream: don't run the driver
The driver will take the initiative to run the graph
INFO Importing commit 6976175d653feebfbd446a139670393d9803d27d: module: remove obsolete code
INFO Importing commit 5a3eee9caca28dd254f97c1a74ce59eab0bbda04: command: remove clock-update
INFO Importing commit cc542935ea7ac2efda79ff69d3cce9b063a88d50: client-node: add more generic set_io method
Replace the set_position method with set_io that allows us to share
other types of state with the client.
INFO Importing commit e5807cd467f8b24e325f3fc65e1c15bdf750e364: small cleanups
INFO Importing commit 83bb8dc599f157f87f5d17c7c39194e2a22b954c: remote: also make thread realtime for clients
INFO Importing commit fba00fb79104a87548142bdae8dc31bba38c6e06: clock: remove clock interface
Remove the clock interface, we need to get timing information with an io
area to get the required precision and performance.
INFO Importing commit 2b1b35645561e752d60a41852162a27eb4ff1e9b: audio-dsp: add some SSE2
INFO Importing commit d3c203b744c883569ac691f8dd2601c021d04b26: spa: use clock info
Use the port clock io area to get timing info and use this as
the time in the graph when we wake up.
INFO Importing commit 0d148654c0c2b20967c73aee4311f8ba568f32ff: stream: add more timing info
Keep track of queued data in the stream
Pass delay field around to make it possible to know about the raw
software read/write pointer and the hardware one.
Start stream position at 0
INFO Importing commit b67fb6fa5b001fcfb603cdd9b00ff7d85221bfe9: io: add latency io area
INFO Importing commit 892b57c55d7cf2653ee4ba463e462862d946eb92: stream: add capture queued time calculation
Take the size of a newly captured buffer as the difference between
previous and current tick and use this to calculate the queued size.
INFO Importing commit f55cb422cb4fea6e097130f92ea06d0722b4d3d3: hook: add priv fields for future expansion
INFO Importing commit ca898a00dbc9b321572b16254a3715e2e8d4aab5: work on separating port mixers
Make it possible to assign an arbitary node as the port mixer.
Also remove dynamically added ports.
Improve negotiation and allocation on the mixer ports
Add some more SSE optimisations
Move float mixer from the audio dsp to the port
Remove pw_node_get_free_port() and do things more explicitly.
Handle mixer ports in client-node
INFO Importing commit 57ef49b15456219d8350ccc83e6c37b509101b78: client-node: fix port implementation
Make the port forward the port methods to the node.
Fix io area when not using adapter
INFO Importing commit ea66ac407513f128e3c558620a32148279ff75f5: alsa: update write offset after each write
INFO Importing commit 60ec372212b8540a2f1fd6796b58234164cb4999: floatmix: add missing file
INFO Importing commit 899e67eb61ee5c7bfab56748c41d223d5103621b: client-node: clear buffers when mixer is removed
INFO Importing commit 8188d6f904c015c58eec70b2ac78ff7c9b3dad81: link: don't update port state in deactivate
INFO Importing commit a72e3cefd73a5e0e124544286bf9f39a0d9ea33b: fmt: fix 24 bits audio
INFO Importing commit a63523650d19c87473c0e45249399df54857491d: hooks: enforce version on hook emission
Pass the minimum required version to the hook emission and only call
events when the handler is recent enough.
Add some macros to make event emission easier to read.
INFO Importing commit f087a088a577fac06ebe2930c25013cd77d650f7: small debug improvements
INFO Importing commit 41c63149f9408e77a564fa442c5cd1fdd11bee50: audioconvert: remove unused fields
INFO Importing commit 1d34d994e2f6fdc2988cffd7cc8a98d7b6e6d899: link: limit number of buffers when allocating
When we let the nodes allocat buffer, limit the number of buffers to 16
for now. We run out of fds when sending the message. We would need to
send the fds in multiple sendmsg calls.
INFO Importing commit f7c84b733be0dd53d9b6e69f9d8e5f089a821775: gstdeviceprovider: fix caps introspection
Enum the node port params to get the caps of the devices.
INFO Importing commit 8f8ed7270a02b43377b1281367d800a818069d40: link: reset port state on deactivate
Make sure we renegotiate the mix ports when we deactivate the link.
INFO Importing commit 17cc9d20398a4947a7732a52b1e88fd9befc827c: add media session example beginnings
Add an example media session that runs as a separate program instead
of a module
INFO Importing commit 21a79241ed8c7b2b4ffa581544670ca66edb6646: pipewiresrc: fix refcounting of buffers
INFO Importing commit f0a1ab993f1e2b9961b7a7ee177497adb434f785: gst: keep track of clock time
Invalidate the clock when the stream is destroyed and let the new
clock take the time of previous clock when no timing info is
available.
INFO Importing commit c6140bbe38db68b9fdf2e823f3e98ce629375e5c: deviceprovider: fix memory leaks
Fix leaking of the node info and caps by tracking the proxy object
and freeing our stuff when it is destroyed.
INFO Importing commit 31d9438b55a446fbb5d45a3de960a0fb40e12c0c: version: add version file
INFO Importing commit 77f759eb6ec9b69725742bab62065586c524b06b: Bump apiversion and soversion for PW 0.2.x
INFO Importing commit 7bb0efa88777e4bf8f7f801185308665e407678b: build: fix module install directory
INFO Importing commit a5a711bc38e9d197885763c17fab4d4ea0d15775: add apiversion to pkgconfig as well
INFO Importing commit ef7903d3287d044dc8d8e31546d6e2c2b4e001a8: pipewire: debug version in init
INFO Importing commit 60d4473e7b7fa016a95db3d39451ee525758a9c2: make spa-lib versioned
Fixes #60
INFO Importing commit 3b1c40f17f7d5afee4180cf2a91c3f3d09867922: pod: move compare and filter functions out of the library
INFO Importing commit f532fd86811565c29a4f1a6a78cc52fcbed9a735: don't link with spalib when we don't have to
INFO mv "spa/lib/pod.h" "spa/include/spa/debug/dict.h"
INFO mv "spa/lib/debug.h" "spa/include/spa/debug/format.h"
INFO Importing commit a6ad8f747f60a9634f708a8aaf97e7b6e1275f30: remove spalib
INFO Importing commit c710b6f6a4b3146f9239022ee61a6369f6b8d960: debug: add specific format debug
INFO Importing commit 43b8ea9b83bef000f274eb0caa44949b89a7ee0b: set version in core
INFO Importing commit a37694fde5ec2894a0a8d5150655f06ac554408e: alsa: handle invalid timestamp from broken drivers
INFO Importing commit 954da897569beb838bb7f8abf0f962792afc0498: map: mark removed object as removed
Normally the invalid bit is set on the removed object by copying it
from the free list. If there is no free list, also set the bit.
INFO Importing commit d4ab36d52a0cfde7e9ae5040da042c09483b459d: client-node: only clear ports once
INFO Importing commit ce4232cbc706438fc0bc38ea5be2248ce68890eb: map: use invalid value for empty list
INFO Importing commit 5fe230e5ff10130b91f774a3d8594dfa553edb6e: list: add iteration with a cursor
Iterating a list with a cursor is heavier but is safe against removal
of any element in the list. Move the hook cursor iterator to list.
INFO Importing commit f71be550c3b89069bbb1350e300a44ec7bc089d0: map: make for_each use a return value
Make it possible to stop pw_map_for_each by adding a return value
to the callback.
INFO Importing commit 921b613cca442da8ac578ec37197a6cc4bb79d7d: pipewiresink: improve driver mode
INFO Importing commit f36fa5d2cb8191db1d663bf421e4ab6972cf1507: example: improve debug
INFO Importing commit f464b8ee453ec16de7c6f5cb787931ed8d09c81c: link: improve debug
INFO Importing commit 0f66716de901a652367256e4195191de3357d934: gst: avoid clock overflow
INFO Importing commit 009f23abaa24e489bc76d5380660003d9a1f1fb5: gst: interpollate clock times
INFO Importing commit a3e4c6df99897a513585c69e2e04a89a3a443281: gst: improve buffer params
INFO Importing commit d18157452056b99ee1963d08be003fb9010c511a: gstpipewiresrc: cleanups
Clear the stream after we remove it from the clock.
INFO Importing commit 26fa9eae3915f1392e251af27642de54fb227066: clock: set rate correctly
The ticks multiplied by the rate should give the time in seconds.
INFO Importing commit b31832dac9e3243acf217a2d2e1c3c8743b48d24: v4l2: set pts correctly
The pts is supposed to be go in sync with the clock. Our clock is based
on sequence numbers so translate the PTS to this as well.
INFO Importing commit a7807ef1c50fffc4eea748a14e86dbc25db855d6: pipewiresrc: hack live source for now
INFO Importing commit f287cea9e808a09c8731a5c06d89d6d63bea6f61: daemon: add some options
INFO Importing commit e2c2b547428765a617c30623a1245b4a523c9bb2: man: update man page
INFO Importing commit c06d775ddc5f97ce7583bb3344a2c59b74381966: man: add man page for config file
INFO Importing commit 95727d3b0138811705842290c23a13fddc6de500: protocol: don't log error on disconnect
Just log an info message on disconnect. Fixes #33
INFO Importing commit 095e69882e3389a162d03e2f65cac23eaf4aa88c: remove unused functions
INFO Importing commit 58c977f69e5f946434934dabf5d1f910e1132b8a: build: respect 'includedir' meson param
INFO Importing commit 55cb38d0a828c95c694cc4f97dad440080af0643: meson: add systemd option
This is handy for source distributions, which want to avoid
automagic dependencies
INFO Importing commit e56344e55e8e69fea8bd57c4ed2042a68afe8d11: meson: rename options as per meson's style guide
see https://mesonbuild.com/Style-guide.html
INFO Importing commit 5de4dab21b19fa7b57992a0aac19cb1a654fbf75: spa: set buffer sizes better
INFO Importing commit 898bb4b059e7d950cec422d17be0c19173b2ebbb: audio-dsp: fix capture again
Use splitter element to split device format to float32
INFO Importing commit e6977fa17892c44a0cedaf5c5b78979cdc6e7ab1: fmt: unrolled loop only works for stereo
INFO mv "spa/include/spa/support/type-map.h" "spa/include/spa/pod/command-types.h"
INFO Importing commit fca3e1d85d604d3a1fa2cd5d4548a470021a96fb: Remove dynamic types
Do not use dynamic types anymore. The reason is that it's difficult:
- to maintain a shared type database over a network.
- the extra overhead when translating between processes and for
maintaining the translation tables.
- race conditions in translating in RT-threads, this is a problem
because we want to make event streams.
We now have simple enums with types and extension points for all
types. This is also nicer to use in general.
We don't need the mapper anymore or pass strings around as types.
There is a parallel type info system to get more info about ids and
enums and their hierarchy. It can also be used for debugging.
INFO mv "spa/include/spa/monitor/monitor-types.h" "spa/include/spa/monitor/type-info.h"
INFO mv "spa/include/spa/node/io-types.h" "spa/include/spa/node/type-info.h"
INFO Importing commit 805e3bb6c148a8299025dee73c3a4118a9e8a8e8: types: work on types
Move static pod types to type system
work on type info for types
Move the event and command ids to an enum to make it easier to extend
later.
INFO Importing commit 93a8747a4434764815142756a856316e0628324d: type: add command
INFO Importing commit d26aecfef253756a5adc16c9c2b56c193241500f: More type fixes
Param ids and IO ids are now simple enums.
Move some type info in one place, delete some type-info files
Fix type debug
Make audio layout an enum
Mark more enums as enums in types so they show us with their names in
the debug.
INFO mv "spa/include/spa/buffer/buffer-types.h" "spa/include/spa/buffer/type-info.h"
INFO Importing commit 265b4476a13ccf625eb478b95484531fb0b0bd5b: more type cleanup
Move some types in the type-info
Remove unused type files
INFO Importing commit b79c7f578e15169a67913bf31ece94df453f36fa: Move format types
INFO Importing commit 281b65934e9ca59ae9090f940f62721b43b987aa: audioconvert: fix debug
INFO mv "spa/include/spa/param/audio/raw-types.h" "spa/include/spa/param/audio/type-info.h"
INFO Importing commit 90c1a95eef7f39b368c1844a066b12fbb903dc0d: More type cleanups
SPA_ID_* -> SPA_TYPE_*. We use 'type' for all registered types.
ID refers to either a registered type or an enum.
Improve introspection of object ids. Make 0 an invalid enum and
use it to look up the object id type.
Move some type-info files together.
Swap type and id of the object, we first specify the type and then
the id because the meaning of the id depends on the object type.
INFO Importing commit c9526dc2bb7051450b3a81ac9c079bfdc45f29a9: Implement control streams
spa_io_control_range -> spa_io_range
Add helpers for sequence and control pod objects
Implement control properties in audiotestsrc, update test example.
INFO Importing commit cb3ccb7001d26afb0017524034d1bd65f6947135: control: add missing file
INFO Importing commit 5976beb14949d4f7e7cd6d9c7327b9838586c4e6: hook up some more control streams
INFO Importing commit 80de83f38a43b51a990ea042eddb9b981813e41d: format: make helper function to parse media type
INFO Importing commit 514528f2c77103f28aa945b27c4ea91cff335976: format: make helper functions to create formats
Use helper functions to create a fully specified format.
INFO Importing commit ff6a244d8ff82224c673ac373de09976e3c8ddec: Make media type and subtype properties
This is easier to debug and we only want properties in objects
in the future.
INFO Importing commit 2631db14a847e37e552c2a3d6ed00fce3aebf04e: pod: use {} as object delimited, like json
Use <> for sequence
INFO Importing commit 05d3502c84059356075cd3c6a2304cb66ab91dbf: control: rework for spa_io_sequence
Put a pw_control object on all ports that support control messages.
Allow linking of control objects (and thus ports).
Make export-sink generate control messages to update the contrast
property.
INFO Importing commit 7cdb980b1a7f196f6c46e0b67a5f5cfd3d4eb0f8: debug: allow custom type root
INFO Importing commit 0bce72d898a4d3b915c6431835e6b785e4e7de45: stream: reimplement volume changes with notify stream
Implement volume changes with a notify stream.
Do volume changes in the channel mixer with control streams.
INFO Importing commit 61e4ad3b4119a45ffcae5db39548a6a315fe5301: control: always link notify and control controls
INFO Importing commit 1352c7555e70bbd96b43d0650b79e79c6fc0524d: man: install manpages in the right directory
INFO Importing commit 699bed4a1faa9efd7c6a26f43ccbefd27801b409: channelmix: improve control parsing
INFO Importing commit db277bebb6571a17380b0ed89772ded49a8e80d6: add missing file
INFO Importing commit 1754438dc9fcc169dc3b2b9eb66b8062a7dc6e34: Fix memory leak in pw_properties_set
removing a property leaked the key
INFO Importing commit 03fdabd155c14b5029d5571beca0e0a17bc99acc: meson: Use pkgconfig.generate
Also fixes the moduledir having a duplicated prefix.
INFO Importing commit cc842cbdc8a5b69bda752ff85569b4efef02fd16: Type changes
Only allow properties inside objects, this makes it easier to
iterate the object, which is needed for efficiently processing
control streams.
Add a choice type to mark variable properties.
SPA_TYPE_Enum -> SPA_TYPE_Id to avoid confusion with choice enum
Make it easier to allocate and initialize properties on the stack
Make more efficient methods to make objects.
INFO Importing commit c904bed186588c9a13da6e14cc1ed30a79801df3: More test
INFO Importing commit cea31ff8fb8af87105827ff29d869f58d735e823: Fix build with clang
By using __typeof__ instead of typeof:
/usr/include/pipewire/array.h:85:11: error: use of undeclared identifier 'typeof'; did you mean 'typeid'?
alloc = SPA_MAX(alloc, arr->extend);
INFO Importing commit d80274e663d68fe966aca98d35105ca3d198fa0e: pod: small improvements for pod iterator
INFO Importing commit d1a399aadd2767b187522cf3e531eac816724334: audio-dsp: fix user data
INFO Importing commit 3c76b150c746c832c463cd49cde4bc1394b20196: link-factory: also create links when possible
INFO Importing commit 28be82029ba2d988c1b74bb632b4603715c48def: connection: don't reset fds on refill
Only reset fds when we finished reading the message
INFO Importing commit dca37fe0379399966bb0b1cb0bc0739ca02960fe: small cleanups
INFO Importing commit 8fee15457ebe8a8c08fd5ba5995e3531aa6e6db9: node: init quantum to something default
INFO Importing commit f3dec52fd22a3ad8205b7a0fef2f6b567de1449b: audio-dsp: improve cleanup
INFO Importing commit 968192f9a913eb0623aed71414880368c5620bf2: media-session: implement more
Track the state of nodes and ports.
Make streams for nodes tagged as stream
Make sessions for nodes that are sinks and sources and make a DSP
node for those
Rescan when a change happens and reconfigure
Link streams to sessions
INFO Importing commit 593daa36d427979734b7e432ce3d0621ecb7f580: connection: split messages to work around fd limit
Split messages in multiple parts when there are too many fds to
send in one message.
INFO Importing commit 45807e804a18e64c08f9a9dd0e8a1e9f5c782af6: media-session: also link sinks correctly
INFO Importing commit 7aae01fe159ce3187cf546d8c84ccfda8da6f73c: media-session: handle object remove
Improve debug
Deal with removed objects, handle node cleanup
Classify nodes with a type ans get rid of stream struct.
INFO Importing commit fb3379e5871fe8722785f97788b90379ebf628ed: Pass channelmask around and use it to name ports
Use the channel name in the port names of the dsp
INFO Importing commit 5196f7f053753ddefca3c3d91582e5ce90714b86: audio: remove layout from audio
Make special format types for planar and interleaved instead of
having a field.
Add enum for audio channel positions
Add some default audio channel layouts
Place the channel layout in the audio format when possible
alsa: place audio channel positions in format
Add sse optimized channel mixing for some common cases
Remove name from port info, it's not mandatory and in the properties
Add direction to port info
INFO Importing commit fcd90b25d3608be21dee334e1f6127fd977eefc1: More work on multichannel
Reorder channels to a more common default order.
Only add channel layout when channels > 1
Don't try to link to a session that is still starting
Small sse fixes.
INFO Importing commit 3265407d5582345d272985e82e2e69c1f988addf: audio: place side channels before rear in default layouts
This is probably more logical
INFO Importing commit fef616615e0f54e9d27807c0b2e706dd80db9c17: filter: add leftover properties
Add the extra properties from the filter to the result.
INFO Importing commit 78b7da608ff5219fad6018993eb77c5e734dac01: channelmix: more improvements
work with the default channel layout
remap to default channel layout in fmconvert
Pass channel positions in resample format
INFO Importing commit ca2d35ca3055d5e5c82e32a7fa7fd093c5253c4c: alsa: fix monitor strings
INFO Importing commit 20cbbd2cc964724f70f178e4605ebbe06ca7468f: explicitly allow mono and stereo with unknown layouts
INFO Importing commit 75a22eedb01830681f6b5ff58af00ffea3c9c1e6: fmt: fix conversion > 4 channels
INFO Importing commit c194c34326dcefe66370eb5a75eb472d2d2f20ac: audio-dsp: cleanup when the node is destroyed
Also clean up when the node is distroyed
INFO Importing commit 96a84d09dffd97b88ce22a7b17e41ebe1915e34d: media-session: remove session when the driver node is removed
INFO Importing commit 1ea3d5c47493fade932941c546ed8e7b7e36f205: compare: fix pod compare
INFO Importing commit aab69948b00283558e65ccdc6a7a2de98deab4fc: node: add set_param and send_command methods
INFO Importing commit 3dc2254196e77d55de143862bc96cf42e163b88b: media-session: add suspend
INFO Importing commit 61cc453cbed865307f56fc04ad6a36c06931c405: channelmix: mix some LFE as well
INFO Importing commit f57d1125f6fa7d4a48dbb3b2082c51201965b2fd: link-factory: clear links when client dies
INFO Importing commit 64c38e3a6f5b6fa0bcef0093ae3665e60366f601: channelmix: construct matrix and use coefficients
INFO Importing commit 4fd72eaee0a7a670ac48efb0273b86bfd42c2365: channelmix: debug matrix
INFO Importing commit 627dfa3da2b755b07a633d8c7b5727d064ceb6d2: fix some leaks
Make pw_get_client_name() return a static string.
Unload the dbus interface. Rename the method to make it more obvious
that the interface needs to be unloaded.
Free module properties
Free remote objects and types
Free stream params and the array
INFO Importing commit 27cacaaa2e9c905685066c35c8d55f7e23dbceaf: video-play: free SDL data
INFO Importing commit 391643271e12acde76d08f8dfd9c54361849b511: man: fix man page install path
Fixes #85
INFO Importing commit 1ebb3850e9cb842bb36a4c16d5f51760aea47a55: alsa: remove useless debug
INFO Importing commit 3d1acf30322de4d2cec814f92d2aca1f50142d8e: media-session: also link source to DSP
INFO Importing commit b50482e346b87ea5544b348cc4dd5d475513097e: fix cleanup
When the node is destroyed, remove it from the node list and mark
the reference to the node gone so that when the resource is cleaned
up we don't try to destroy the node again.
INFO Importing commit 5ba27a7dc14769443cc7c94ba3f96a0c8af57465: add some more debug
INFO Importing commit 3af7b42193b1b0713a6383602cd419c41efdb682: node: update quantum dynamically
Keep the requested quantum around and recalculate when nodes are
added and removed from the driver graph.
INFO Importing commit 375df6038462227fc49b3ee90c909c3a22d9c839: stream: protect time updates with atomic seqlock
INFO Importing commit ce4cfd78e73f4cff23c69105e64614d306fbb98d: introspect: copy link properties
INFO Importing commit 59f10ad45333866ad1c2583110e71ba4a533f979: Add proxy destroy
Make the current destroy method on the core for proxies to remove the
server side resource.
Make a new destroy method on the registry to destroy globals.
Remove the destroy method on the client-node
media-session: monitor the dsp and device node states to manage the
session state
INFO Importing commit 8a88c6da535e58570d2ebfe415fb083bfc03d4c5: link-factory: add linger options
The linger option makes the link survive after the client is destroyed.
INFO Importing commit 8a562c4427c784114b4d998084916056e2b5f6be: module: remove resource listener in cleanup
Remove the resource listener before destroying the object because that
will trigger the resource cleanup again.
INFO Importing commit 132ee3093013a3e139a0aa0ec58f97bd4716623f: improve some debug
INFO Importing commit 30316df5c88b1bc6e9d7aa06bfaf25122c62cd96: fix some leaks
INFO Importing commit 0aca605bfb108bc91f0bdfced589e3365d07746b: alsa: init variable correctly
We need to initialize the frames variable correctly before calling mmap.
Also initialize the now timer when starting.
INFO Importing commit 1b933e5b320ddbb22484bbac4959962443c99843: loop: use simple hook emission
Add new simple hook emision without a cursor. The one with the cursor
is not thread safe and is not needed for the loop.
INFO Importing commit 881ee6caea254758fa80cf0765a8cbbd17ec18c6: node: remove process signals
Remove the process and finish signals, we are not supposed to
call these from rt threads. Instead use the link trigger to signal
the end of the graph.
INFO Importing commit ec1d7b8df78892eb6030b3d6f639c57790cccf6c: alsa: deal with less frequent hw pointer updates
INFO Importing commit 39240fb9c019b2f1f1bd9e918e61bb284eb78663: use _list_consume to destroy objects
INFO Importing commit 74ebff6b7d5ffc38b2bb23275a7dc8384a02f166: add some more debug log
INFO Importing commit 0701428aec85691923d87badae55c1fb93127b8f: link: only idle node if all links are idle
INFO Importing commit 9b2a051daf8b7ae52973470599b3d8b29c1e259e: link: add feedback links
Check if a link is a feedback loop. For feedback loops we want to
schedule the consumer before the provider.
INFO Importing commit 7a0a1503379c3a99f8a18f4458d3dc1288c12457: logger: add support for logging to file
INFO Importing commit f4672cbe9962ef2882c9cc9d5f27557e544e2a8c: link: improve state handling
INFO Importing commit 650f9eb9a7088daa9a8def63f983e44b84691549: media-session: make device links passive again
INFO Importing commit 04f8da9110c6505476ab7fc5a3b2393f2e41224a: improve debug
INFO Importing commit d4fa4e63e84986405869730269f93d6086806d79: remove unused type map
Add reset methods for array and map
Signal disconnect before destroying the proxies in remote.
INFO Importing commit 4e2855f6fbbb0b7e7fdfc589913e694f4bf100ec: node: move root directly to driver graph
INFO Importing commit b8fb7aeaad37ae660c78c0199a639db301c8f3f8: media-session: handle disconnect better
INFO Importing commit 6b0c28e717310034569bae5d3c36e9599c9e53a9: client-node: don't try to add invalid memid
INFO Importing commit 2ebc65728c161d2208000ef83d082731b38cc212: link: also try to link controls
INFO Importing commit 940c8645d3f31e29a052b65671b88854cef047de: remove property flags
Remove the property flags, we will add info about properties
with the param interface.
INFO Importing commit 8f7328173b8a355032220c978605cbcb1e05f328: utils: add another flag helper macro
INFO Importing commit 857352e4a4d703057587055c2adbfcefe96ed597: stream: advertise that we can do buffers
INFO Importing commit 089fc2e8c13e216c3866b07cb5c50ca98ca92814: link: also unlink controls
INFO Importing commit 1ca399d4a6b642c24b32968bf85beeac40c7d160: link: pass id to _set_io
INFO Importing commit 909abdb6bf33f9b1fb420314bbfa0d2feb17e945: port: remove some checks, the mixer is always set
INFO Importing commit 18408dad811efa283873cbc55bdd9c27d79b5cea: port: handle control only ports
Mark ports with only control io as control ports and skip negotiation
of buffers and format for them.
INFO Importing commit ec88101004d022771fefc1655a416079b7d5bff4: v4l2: move log to instance
INFO Importing commit 392b217f81c1850a2ea5e1fe3fec7d9b8d9b640a: client-stream: make adapter port variable
We need this to add control ports later
INFO Importing commit c1eeb89e1821ba124de0aae73a7ad8913a79b7f4: stream: fix debug of control messages
INFO Importing commit cd1c7b74af1589c591cd2d9221fb285a999d9b5e: remote: improve cleanup
don't free the proxy when the node is destroyed, the proxy has
user data that we need to clean up the ports. Instead let the
remote take care of destroying the proxy later.
INFO Importing commit 0f69a7b7675892dc760ff153fbbc50e62391fbab: node: remove and add node from graph in idle/running
Add the node and all links to the graph when going to running and
remove them again when idle.
INFO Importing commit 32e4d676b4c94bcc76ffb6b64d78b419c8fcd1d0: media-session: clear manager after cleanup
INFO Importing commit 575e177a485ad5482d19385225e71fbc742e176f: client-stream: run the driver graph
INFO Importing commit eb765b26b3d0031abfe1eb0c0e889a3674e294a1: command: add exec command
Add exec command and use it to start the session manager by default
INFO Importing commit 3d36755c4ff953fe5c9694473a6fb6aed9f70876: audio-dsp: use type-info to get channel names
INFO mv "src/modules/module-media-session/audio-dsp.c" "src/modules/module-audio-dsp/audio-dsp.c"
INFO mv "src/modules/module-media-session/audio-dsp.h" "src/modules/module-audio-dsp/audio-dsp.h"
INFO mv "src/modules/module-media-session/floatmix.c" "src/modules/module-audio-dsp/floatmix.c"
INFO Importing commit 8efabe051ea7fefb0239f77dd9ab13d08367e950: remove obsolete modules
remove obsolete media-session and suspend-on-idle. This functionality
is to be handled by an external session manager
INFO Importing commit 1ef1563591b74b9494c7e90583fb7aabb9978b1d: node: add PortsChanged event
Add the PortChanged event and make it rescan the node ports.
INFO Importing commit 4401e479c680ddcadc6026933a874e454cce56fd: small cleanups
INFO Importing commit f46a83dcb78c0b6b68cd78dd5a11024be39ea2a9: resource: pass the resource id in the error
INFO Importing commit 0358e8b480fd150366cfe341b0cea58ae61d19b6: client-stream: there is always an adapter
INFO Importing commit f3dfe61aa0a4fa53c4ad6c769ad86ab54702745a: link: add link state and error to info
Notify when state changes
INFO Importing commit ea739df26fdda4078776c345873ff6bdafecd08e: remote: notify error
Don't fail on errors but emit a signal
INFO Importing commit 294bba65a11bfcc29174abb3ea796a008e017f38: node: update state on suspend
INFO Importing commit 0e2885b599544268fae86b3545a2e6c85f0ad01d: client-node: make the client parent
INFO Importing commit 31f4ceb1374ac3b907f21dce61f7bc373636f07b: properties: return if property changed
make property_set functions return 1 if there was a change.
Only emit property change notifications when something actually
changed.
Try to only copy property value when needed.
INFO Importing commit eb934dacef5883877e6ca77879c75761655c1cd8: properties: better default size
INFO Importing commit d8827e2109edbc18507713bf72f96a5384fd1749: client-stream: add started variable
INFO Importing commit 8de1d03feb45fbf14cb933ed9f9772bb9ffd32aa: audioconvert: use splitter/merger
Remove the split/merge functionality from fmtconvert.
Make audioconvert use the splitter/merger.
Let client-stream decide what mode to configure audioconvert in.
INFO Importing commit 8f1ebe0c7e0bc96f2dd0fe95d671686b17cc52fe: client-stream: enum_params works to the client node
INFO Importing commit f81588f4395a29aef0f80e912517bcc60ddc72de: client-stream: there is always and adapter
INFO Importing commit b2e84e85c6c2c955a4db5dac50234d07dec6e182: media-session: query stream format
Query the stream format. We will use this later to decide what to link
to and how to convert.
INFO Importing commit 4764d69e262c983004ba2cbc3848728f459b8aa9: merger/splitter: only dynamic ports are dsp ports
INFO Importing commit 41d38e56df47b53db1f173cf3aa9b09f34b8c236: media-session: keep track of dsp proxy
Keep the dsp_proxy around because we need it to clean up the
session.
INFO Importing commit a95cd608e73bb0f75aed78921e139c0fb8ecbf18: a2dp: improve negotiation
INFO Importing commit 595daf86c6ddca28d676bb2eeab4ac2d7a3d472a: spa: add some macros to events and object types
INFO Importing commit 6de03418caabe3d54bd2f38eb0717c374496ced3: port: emit signal after properties are set
So that we can use the node properties in the signal handler.
Also use the channel name of the port to make a port name.
INFO Importing commit e1ec1bad23925fdb7caa068c7995f99c4c837ea3: spa: add profile param
Make a profile param that can be used to configure a node with a
certain profile.
Use the profile to configure the ports on splitter and merger and
get rid of the dynamic ports.
Use the profile to configure the client-node and audio-dsp.
Don't try to link more ports than available between client-node and
dsp.
INFO Importing commit 63333adca3ebc2a46fc31a131dbd799a7f82d510: port: don't keep port_info around but make copy
INFO Importing commit 43c8942be130e4de1424944f6959427e47115075: pipewire: enable travis ci
INFO Importing commit f06c1723a801646befc1d6c18ccd042d35e98100: fmtconvert: also return inio status
INFO Importing commit 822b033fb16dc2888f4fcc2c8fdc0be95c03c52a: channelmix: fix copy multiple channels
INFO Importing commit caa3e83eb1115be819dcb527b75f26eab99df32d: client-stream: link controls after profile was set
INFO Importing commit 754782f302dc4cbefa21bcd1b6da1509bffcd2a7: add some more debug
INFO Importing commit 9dba8f3a362ddb26c197cc82e194425893e3b72a: stream: add flush and drain command
INFO Importing commit 1edf2dd210567f184036dd80ece63922003c1a51: client-stream: just stop feeding the graph in paused
Stop feeding the graph in paused instead of going to idle. We might
want to idle in the future when we can get the clock resume as well.
INFO Importing commit 805240258b1c8fcd0c15b3df8a7632991618b02d: Improve channel positions
Sort the channel positions as the suggested format
Use the session node channel positions as the target profile
INFO Importing commit 8d71d2dab831b77cadb74f2e4630f549acc94ac4: pipewire: add enable/disable to meson for spa plugins
INFO Importing commit 456c01afbc82c2bc078de8ea059df6c885d416cf: meson: enable more options by default
Update submodules to latest version
INFO Importing commit dcfe1ac6133f748ea133974b7dc5946af82957e6: meson: Add an uninstalled target and script
This makes it easier to run PipeWire from the build environment
INFO Importing commit 78444aba4ee3ad5e6d3c0660939194a7eec7e6cc: uninstalled: update uninstalled
INFO Importing commit 9479a00871ec7186424c3495232e2f9918fa48f1: update submodules
INFO Importing commit bfcaec75c723292a31257ab00b63f01ba5d43dd6: daemon: put version in config
Fixes #88
INFO Importing commit b3189bb5e733ac743b215774e7845c7b63773bba: media-session: handle port without node
Don't crash when the node proxy is destroyed before the port proxy.
INFO Importing commit 2b096993ed0404e035a592afa1bc5dba89f86d00: media-session: only enable session when format is known
INFO Importing commit 87d30a0e043d1b369a031262a1db2b135e79f132: port: don't keep port flags
Always query the port flags when we need them because they can change
and there is therefore no need to keep them around.
INFO Importing commit 0fe0d5dd85bc2ce4e423509bdfe3aac27e8a5aa2: media-session: also enable session for video
INFO Importing commit ba5e1e614bf23fe2997e189548c5d4234903cb41: props: add some paddig between properties
INFO Importing commit 3018c176225fdb6c95757cb5f50729100626b32a: remote: also keep track of ParamList params
INFO Importing commit 6e6e87223f690367632b34d87e630eb7b4e30d62: channelmix: improve mute/volume handling
Don't try to merge the mute/volume into the matrix but pass the volume
as a separate parameter.
INFO Importing commit 3ebad5c182972838c24a39132c4d55500979ad05: client-stream: update properties when client info changes
INFO Importing commit 8377d7e8d1f2f0f791c6530499bed5a3871a518e: stream: implement properties update
INFO Importing commit 6267e69638852307ad3e4b8dba7d19d6d96e175a: add uninstalled target
Also update submodules
INFO Importing commit aa5bc5846f33cea51994e3a85b8b81661e54e914: v4l2: fix preoperty get
INFO Importing commit ad35e8ef3be8dda803d07eda61a57bb1f7076c49: pod: fix pod compare
INFO Importing commit 4615c5781a454239214636023a8843c8e9192cce: test-v4l2: call process before looking at io
INFO Importing commit d91e545e1db92b25f8b4baa304f5c38c3c4876b2: stream: set state to unconnected when unconnecting
INFO Importing commit e079552dc80bdf65fbdc8b997f7585bc323b2911: link: fix negotiation
Don't use the current best format as a filter to get the current format.
It might be different and then we fail.
INFO Importing commit 7186bd258375e1c05c25d7118f266dfe3fead729: gst: remove old format id conversion code
INFO Importing commit 6c7d2d0e1ece7412d1ab83d2856dc0d1cda161ba: alsa-utils: enumerate channels using channel map
When there is a channelmap, return format descriptions for each layout
otherwise return a range.
INFO Importing commit d27674722a392659ba7d36334ea872eafc79b9ab: improve debug and error handling
INFO Importing commit 4b4f85afe5113559c613fe09621b86d16d89407b: link: renegotiate when no format set
When the port has lost the format, renegotiate.
INFO Importing commit e22762d502ca11b6fd0165d7220313bdccdd79b7: link: also handle success case
INFO Importing commit 6590d3a258bd853102f5d65389e1f6428d095a78: alsa: sanitize channel map
Remove unknown channels
Remove duplicate channels
Fill unknown channels with default channels
INFO Importing commit a086fc5c0c14904b0af93f5447a6ac86efef1b3d: port: just number unknown channels
Ports with unknown channel layout are just numbered.
INFO Importing commit 88d6e52cc7c08725adebffce8a385496f762aceb: add systemd socket activation
INFO Importing commit c28d0f12827d3b02d4d3b0dabc06b811be138275: protocol-native: -1 is for invalid fd, not 1
INFO Importing commit c6551cead4d1c27945e0cd0980b24144445d112b: protocol-native: return errno when server failed
this gives a better error code
INFO Importing commit 79e976e5d7cdabfa47c2deb8b87e89356b75f529: audioconvert: small cleanups
INFO Importing commit fd5e315a1033edb305ae972906275ee68976742b: media-session: handle default media roles better
Use the media.class to derive a better role.
INFO Importing commit c0a6c83227e650f20d50a71e9965315e9dbe9d9b: client-stream: add media.class on node
Add the media.class property on the node as well.
INFO Importing commit 842abad9e182f8d647a5a6206a3c5cb7b793d3fa: client-stream: implement enum_param and set_param better
Make it possible to enumerate the parameters and get/set properties
when available on the adapter.
INFO Importing commit f2e03077a81751757a39cf2c6e04ce341be9cfb9: audioconvert: add volume and mute property
Expose volume and mute property in channelmix and use this
in audioconvert.
INFO Importing commit e59a7c084802942ed2fa02b91358fb243297ac53: media-session: set node volume
INFO Importing commit 693fd3a366ff85fa7928e4ed3813dff1c4f6ce49: meson: only add dependencies when requested
INFO Importing commit 926392a701d115aeb1ca383e24b73d9709b49923: update pulseaudio
INFO Importing commit 8b2781b4944facc05013614093b034f81009cc25: submodule update
INFO Importing commit d2570142fa183dab3578eaaed3a66e443074ae47: resample: don't output 0 buffers
INFO Importing commit a121164df9a31639a2bb5932aaaaf1681ebaa6bb: stream: handle update_properties before connect
INFO Importing commit 66de372e9ae4e9308b494719b0f036bc76bfd075: add node set_io function
Also allow setting io areas on nodes. We need this to set the
graph clock and period size on the nodes.
INFO Importing commit 34db9be04b68e7a539507e52d2c7a7b44fc96ee6: io: add io areas for position information
INFO Importing commit 039589785656c655890c3ca5fda6c495bb2f3779: node: only run the graph when we are the selected driver
Update submodules
INFO Importing commit 4aab22604717e78dc2310eee4ad03fd810a3e96d: io: add size of current cycle to position
INFO Importing commit 2206deb3e86f1c77094615ae484a101f535b2d73: alsa: implement set_io and handle position io
Use position io for deciding the size of the output buffers in
alsasrc
INFO Importing commit 723d4d9db7692c057c87a823582ff235789d4c11: client-node: use spa_io_position
Remove old internal structure
INFO Importing commit 06fe3af7fbb68ae6c63dd2c28a63504f849e8eb1: update submodules
INFO Importing commit f5c78cc2a2bb42bd59563e9ec8f4d5fd46cdfd23: remote: use right io_position enum
INFO Importing commit a4ff7296b20e4143f06c5d13c2b96f21662c6539: remote: don't try to update the source when it's gone
INFO Importing commit 9a969ac756ce17a73472658a9858227fe26eaa2c: v4l2: we set clock and position on the node now
INFO Importing commit 58c6d763282ef3a8ca26de02c40ea54ad82359e4: pod: also handle choice in compare
INFO Importing commit 537598726bfdea24538b1cc324eb8efcfa6e2cde: protocol-native: first bind, then register
First let the client bind to the core, then register the client.
This way, the client is ready to receive methods on the core.
INFO Importing commit 2accfc84d799183a99f6000c2263dfe61b2b9afa: Add version to hello
INFO Importing commit bd9b74f2d8dc3c81c7065d43cc760ca6d23185a1: global: add list of resources in the global
Remove the list of resources from objects to the global
INFO Importing commit bbf718cc9803a43b58f4062853eec756e0d91915: global: add revoke and grant methods
Add methods to grant or revoke access to a global for a client.
INFO Importing commit e026f55c97df0c42b14bb522dd217ed9479ba5bc: protocol: add more methods on client
Add method to get and set permissions on a client
Add method to send error to client.
INFO Importing commit 5088bcce6034581349723d9590affa3ed021f642: module-access: make new access module
Rename the flatpak module to access module. The access module should
either let the client connect or mask the client busy while the
permissions are being configured. It is then up to the session manager
to collect the right permissions of the objects and configure those
in the client.
Let the media session monitor the clients and configure the permissions.
INFO Importing commit 68cab0a8f058cc4ee220102f504f46951e609ab8: update url
INFO Importing commit 161ad70114c0617b6b3ac6ebf057194874324bfc: init and update submodules
INFO Importing commit dfde479b202cbab9588f3021d821e1f4b83ce2b8: protocol-native: put client properties in global
INFO Importing commit 1c450ce2c19a911f5215b893ccca38594021454f: client: add check_access signal
Fire the check access signal right after creating a client to make it
possible to set permissions.
INFO Importing commit 93642538867537c17965fe7c7ba2408d0e51252b: module-access: use check_access signal
Add restricted, blacklisted and flatpak access types.
INFO Importing commit 83517e22ace34bdd0a29e98164808dc2c1b4b9ba: media-session: set permissions on restricted access clients
INFO Importing commit 9f61ef96fffabd8340065e7304016da1a47ffc75: fmt-ops: add f32 -> s16 see optimisations
INFO Importing commit ae9843aca21834b4ec8ad0dfc1404b53eda09f66: disable s16 sse until fixed
INFO Importing commit 57d9f597d90c4123994da03544c625e02456e697: jack: update submodule
INFO Importing commit 4432db4fa76782cbb629b991071d9fef9c0eef20: fmt-ops: fix conversion
INFO Importing commit ef7a111611b441f1e08a173eaffe676b682965c9: fmt: fix and enable f32 -> s16 conversion
INFO Importing commit e1583146ff93a54aef553d96a6d6327be5e85f58: video-src: Add alternative style format pod example
INFO Importing commit 093c675995a81aab0ef22d17b3d9aa66102e3952: a2dp: don't faile set_io
INFO Importing commit ee720236298ab539d8793eed20e1931354113fe9: media-session: try to connect to the node directly
If we can't find a session for the target node, try to connect to the
node directly if it exists.
INFO Importing commit df4a5efb89bf436cd20b8b39e5de858da9968e10: client-node: don't try to modify the clock
The clock position should match the buffer timestamps and we should
not try to change it. If a client wants to align stream it will
have to do this itself.
INFO Importing commit 2aeb5d9d988cd7ea75d364e3188b1014f4a74734: Install a missing header
This header is used by param/video/format-utils.h and therefore needed to be installed as well.
INFO Importing commit a813afd810824893b016ea3912e625c036bcf03e: Fix build with c++ compilers
INFO Importing commit a61f8cf666fb291640ebb3d61a00a3bdda6fed13: Coding style
INFO Importing commit 02e3713cf1ff124cd4137f5e1ac617bf95005a5f: rtkit: Allow disabling with DISABLE_RTKIT
Allow disabling real time thread, this is useful to run inside
valgrind without being killed.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
INFO Importing commit 97eec36f8e9ddf0ebb07a810f19ce6da2a92f1cc: makefile: Add helper to run in gdb and valgrind
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
INFO Importing commit 94656393fd16122078e09d8dad2e629886ed55a7: gitignore: Add build dir and cscope files
INFO Importing commit 2ff6b22b27dd2c0f32ad5a647d8832d728f875c1: gitignore: Add vim files
INFO Importing commit c2cb8e46b981a59911e5f14dc9349561084abf9f: Fix build when systemd is found but not libsystemd
Getting the following otherwise:
```
[13/28] Compiling C object 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o'.
FAILED: src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o
ccache cc -Isrc/modules/src@modules@@pipewire-module-protocol-native@sha -Isrc/modules -I../src/modules -I. -I../ -Ispa/include -I../spa/include -Isrc -I../src -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O2 -g -fPIC -pthread -DHAVE_CONFIG_H -D_GNU_SOURCE -MD -MQ 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o' -MF 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o.d' -o 'src/modules/src@modules@@pipewire-module-protocol-native@sha/module-protocol-native.c.o' -c ../src/modules/module-protocol-native.c
../src/modules/module-protocol-native.c:36:10: fatal error: systemd/sd-daemon.h: No such file or directory
#include <systemd/sd-daemon.h>
^~~~~~~~~~~~~~~~~~~~~
```
INFO Importing commit aeb77e37f78dd8c4d6e7caaec03aff26db1646da: gst: don't dup, use DONT_CLOSE flag on fd_allocator
INFO Importing commit 63363d09dd926bf7127612374085687b337f9626: fmt: small fix to s16 conversion
INFO Importing commit 10531d99eb36e9be85ac1d43f81825f0a9b07dc5: fmt: fix conversion
INFO Importing commit cef55ea47d44a479faad82146a2d1350ac99e96f: spa: tests: add automated unit test for spa_dict
INFO Importing commit 483607af3a4711f6c5052d9629bc9916fc4e1dfe: Makefile: add 'make test' target to run the automated unit tests
INFO Importing commit ef8b7bc003c23e00f311ac6176eb282f2887893b: spa: tests: add automated unit test for spa_list
INFO Importing commit 9724aea17fed50798b1d462115b951648aac4ca0: spa: tests: add automated unit test for spa_hook_list
INFO Importing commit 57cd209d2a5712d7bd07cad581334c8742a09a2e: spa: tests: add automated unit test for spa_ringbuffer
INFO Importing commit 0023e348ac020e02f991d8698ac009b6b89702c2: Makefile: add uninstall target
INFO Importing commit 32afd8d228c47010d35569c9ab4db0e54450086d: video-src: the size is a range
INFO Importing commit 0bc6ba85599feee42f0b0d632e6d8d999464d49f: node: allow for setting driver root
The driver root is the graph that should be run when a remote driver
starts the graph and can be different from the node itself when it's
part of a subgraph like in client-stream.
INFO Importing commit db56f1c9f6ec720597978d5a47ec0bb004e747e9: pulse: update submodule
INFO Importing commit f8b93d2a1ba70ec06771704bd4bf9bcda6e843ea: stream: only activate when asked
INFO Importing commit 95c1b7d0a3da5c13d48ec2344e64971e81583da9: remote: add exported signal
Add a signal to notify when a proxy id has been expored. Use this in the
stream to signal the configure state.
INFO Importing commit 9236be5f7aa49ac269e92d6f62fdbf5b15fc2fb7: ci: implement a sensible travis + docker setup for automated builds
The Dockerfile was rewritten and moved to a separete repository
for doing automated builds on docker hub
-> https://github.com/gkiagia/pipewire_build_environment
INFO Importing commit 6bb90ed88e3be2969345481235c5046d685a8ddf: alsa: refactor get_status
INFO Importing commit 7e8fac22729899f86d2e72696d34854adefd3931: type: restore type info for pipewire types
INFO Importing commit 8089d856c878b54fe8488a1f63623cc6d233660a: protocol: add more debug and check right permissions
INFO Importing commit b905b70a7615092e5700590b56443f2800d9fdab: stream: pass target id as uint32_t
INFO Importing commit b87397025e9d87c2d9d20d4f0ba4737df35a678f: pod: handle unknown types without crashing
INFO Importing commit 4733bd32c8b49aa928fd758f8506bf6b59410017: update submodules
INFO Importing commit 7b6df9e1278791c99f353591dabc7382d84422b0: audioconvert: don't clear profile when format is cleared
INFO Importing commit 9088b2f0d97577e195ab6ecef53a368c32d4b37c: splitter: fix compilation
INFO Importing commit f994b7eb70340ffcec604d6b82ae142171153f7f: protocol-native: only add fd if client active
INFO Importing commit eb0a561f8c8d1aec67d04d50bf8e033285fb6ee9: permissions: pass pw_permission struct around
Use a pw_permission struct to express permissions of object.
Improve client permissions, add/remove globals when permissions
are changed.
INFO Importing commit e107d752488a0b7771fa17fc5ef94087d20b34a6: protocol-native: improve permission checks
INFO Importing commit 85f2e93c546816a5cbb218c271aa18210bd9b64a: Relicense as MIT/X11
Remove some obsolete files
INFO Importing commit bf6843743a34283a3d0b1ea21e83a9c7b7abcf26: export-sink: implement set_io
INFO Importing commit 088ee9f09e7423ce78f170d9c714c0f81c53b9ce: Improve TIMESPEC_TO_TIME
Add explicit TO_NSEC and TO_USEC versions to make it clearer and to
allow for some optimizations.
INFO Importing commit 8d9aae061b46c72261ae9f14f2120a9555643d0b: submodules
INFO Importing commit aade499aae69ba3856c389a4bfb0b469800e1330: fix TIMESPEC_TO_NSEC
INFO Importing commit 00a570f7de9ef7618e3770c570f3b9005f27d98c: audio-format: set unpossisioned flag
If we don't have position information in the format, set the
unpositioned flag. Don't set position info in the format when the
unpositioned flag is set.
INFO Importing commit 2b88dde5678d2d85cb96695b6d2997a2c28b4276: fmtconvert: add conversions for planar to planar
INFO Importing commit 4d7311aca16a77ad0bea9366bdbc26556a7eb3dd: channelmix: handle stereo to mono
INFO Importing commit e47bfa02e5f332a05cb9b1d27b9e535385e0a694: audiotestsrc: properties are float
INFO Importing commit 9825932b883917e21c1f4b4a64858f2e18d8438a: test-convert2: add channel position
INFO Importing commit 3267667d94ba321a2ff7c75fc4b79ae97efdc3e8: fmt: improve s24 to float conversion
INFO Importing commit 7925aed8632cc2995aeac06c73017d7efc6a5052: video-src: use FLAG_MAP_BUFFERS
INFO Importing commit e69cf24f24945cbf0b9d11a15c1f8e419cfe2320: alsa: add dll to estimate clock drift
Make delay signed in the clock io so that we can simply add it to the
tick to get the hw position.
Add clock drift to clock info
INFO Importing commit e03289b4ac33c8fdd8a6ddf5a4f926e059c2dc1b: video-src: print node id
INFO Importing commit 3d3d86fd2493f80979911956e026cbd9d651e42c: node: set clock id and position
INFO Importing commit 0f7a3bdb2a57995fef1bd6d07598ef0863044f60: alsa: use dynamic bandwidth
INFO Importing commit 6f555c63e2d4128790c85d135a3b7790c9b9961f: alsa: set buffer_id in io to INVALID when in use
INFO Importing commit 416b9c254ea9fb6f3ad84083d73f0a33c0182798: alsa: have slaved sink
When we are slaved, calculate our rate difference with the master
INFO Importing commit b6f01542d890f62ba78020d258dff6a9dba4cc04: spa: explicitly cast the offset to signed int
As reported by Marcello Blancasio, convert the offset to a signed int
to avoid conversion without sign extension. Fixes unmap of stream
memory.
Fixes #103
INFO Importing commit d8db090ac23dc31d6594fbd449d4c3471007957c: alsa: only remove sources when they were added
INFO Importing commit c9f7439b52759be0bec5d4023c8dd11aa5012371: media-session: debug profile
INFO Importing commit a096e6d9c956a23ff785a5695b8e6ad315b9b250: link: only start node when all links are ready
INFO Importing commit 0303b7d1c5d488396d350540d4098618d9aa75ce: props: add rate property
INFO Importing commit 9d44d0b135205041fbcc9c2195e0ed33ff65a153: parser: add some utils to parse values
INFO Importing commit 3e1e6b02b5b7623deb3d45a3057115d7553dd0d4: resample: add property to change resample rate
INFO Importing commit 5444b850d2ac7cf8183ed72588225141b9e6f129: fmtconvert: improve enum_format
INFO Importing commit 0343297257c32beaa1cd9dd515bb75d53a0aca07: alsa: rework timing
Use a DLL to track the hardware pointer and use this to set the
timer.
Handle XRUN and recover.
INFO Importing commit f063cc90866845ea4f24b0044cc9d93663bff28d: audioconvert: improve negotiation
Configure format and buffers when the ports are configured instead of
in the start command.
INFO Importing commit 27451e43506aa267fe38f08b986da2c90348cc17: alsa: tweak dll some more after xrun
INFO Importing commit 7e9b22321685561cd9bb7d1497b1dc519c8038db: alsa: reduce start latency
INFO Importing commit afd9a6c95fdfc7dbb91604205a7ae233b8de7d8d: alsa: fix capture again
INFO Importing commit d70b4b2b10d6c5cdaf12aa32f2ed58ce7c193614: alsa: more tweaks
Set the lowest possible period time, this lowers the latency.
Adjust slaved stream when we are drifting too much.
Use faster snd_pcm_avail and only use get_status when in error.
INFO Importing commit b27206c24a177a5856a4df1a9597eaff415798c0: alsa: debug->trace
INFO Importing commit 5e8d9fb19638a1a2e892c552df1128ff1721f26e: merger: fix enum_param
INFO Importing commit 25c81e8c344d4d9ad4413f406b1ee146d0363590: media-session: only add DSP for raw audio nodes
INFO Importing commit 13010d5d2e27cc25d97e18584850d0cd3653df60: fmt: use faster s24 to f32 conversion
INFO Importing commit c8aa1f38df118173bab6a682adceae57285fe237: bluez5: negotiate AAC if possible
INFO Importing commit 6ee3a6003edc0d1bbbc12aabb086f1940ae46f8d: channelmix: optimize some more
INFO Importing commit 37c13eb83fab5ad03bb996cb0d7dc073eef2b49e: fmt: fix offsets
INFO Importing commit db13f9073282260e95d19da0538850d355597ff8: monitor: lookup type names
INFO Importing commit 79253c6d46c64720e9fb10b205f72a0d9b619425: interfaces: remove unused stuff
INFO Importing commit e1bd12e599701a6ea0ea583eaf021906c0ccec9d: device: add device object
Make a device object, let the v4l2 monitor create device objects
The device object is responsible for dynamically creating nodes.
INFO Importing commit 0a88805743f0115cdf267e4a539baf8b2b088ed1: device: handle device remove, clean up nodes
INFO Importing commit e23c209a5f79e455b8ebe775ff90ac8899f01ee3: alsa: implement monitor and device
INFO Importing commit 3ae39180ca1c20e55189b1fef6184628e31040d7: improve monitors
INFO Importing commit 36cbb947f10411cbe2bd6ed8a0b2263d968a758a: alsa: add media.class to device
INFO Importing commit 5b303b5883b969f221c6c0db4e62c404f43e7339: protocol: add name to device
INFO Importing commit 10d277ce03fa6b6438a564f9859567e0b65aa9e0: cli: introspect device
INFO Importing commit 57e94f7bc4ad756201ebf74e5012647d9f537c82: monitor: remove enum_items
Make the monitor and device emit the info and items when the callbacks
are set. This makes it easier to implement the monitor because there
is much less state to keep around and invalidate etc.
Rework the monitors
Add bluez5 device
INFO Importing commit 7bc9c1ebfe43525e887656dc19987287105ee08b: node: remove info from node interface
Replace with info event emited when callbacks are set. This makes it
easier to implement dynamic changes.
INFO Importing commit 0a8861bcbca821fd35ba9db110e41bfabd0620b0: meson: Fix configure when systemd option is set to false
Otherwise it fails with systemd variable not found.
INFO Importing commit b911c36793546e69c89706ccafe31e428c730754: meson: don't add systemd_dep to dependencies if systemd option is false.
INFO Importing commit 3b117d9ecf305ac0e85fd15519c6415e14506998: module-rtkit: define RLIMIT_RTTIME in case it isn't defined.
musl libc doesn't define RLIMIT_RTTIME
INFO Importing commit 90571c2f52c4ced70301552c109b931f4a1cbb1a: audiotestsrc: fix build
INFO Importing commit 249a12ee69418b68b6ec146e9a4c9fb274f06cdb: bluez: work on the bluez device
Add HSP and HFP profiles
Wait for profiles to connect before exposing the device
Implement SCO and RFCOMM connection handling
INFO Importing commit bf43b55d168e37f534eb94390dc17300605de718: bluez: check for bluez deps
INFO Importing commit 417c1cd7560ffbf3ac3f07af59f64aa062e9f1a7: device: add media.class to global properties
INFO Importing commit 72dee1686dddcef6c915c334a48c66ec05ae5b67: alsa: clean up device info
INFO Importing commit cff8ce8e991e21f7467d2bb9a08d5b72671dfa9e: media-session: set device name
INFO Importing commit 59d77818d6004c949aaa652f6fb9ceb846d138a9: device: improve properties and info
INFO Importing commit 5d30b31ceca6b2c2c2bbe066cc3703313e399cd6: properties: add _update method and use it
Remove old unused _merge method
INFO Importing commit 0c9dc75cb34a3e37a6f633b437f69c165140d6b8: alsa: cleanup
INFO Importing commit 7c54b4b89c54f51068f911dfc695a0a122f03923: audio-dsp: improve properties
INFO Importing commit 54f527ac02ee91789f1de7ed267b6bd141f8688b: introspect: remove ENUM_PARAM change
Remove the ENUM_PARAM change bit, we want to do this with a specific
event later that would allow us to specify which params changed etc.
INFO Importing commit 4810d91c58c7ddda6d91484407a1498b9ab04f6f: media-session: use direction to derive CATEGORY
Try to use the stream direction to figure out the CATEGORY when missing.
Add some more debug
INFO Importing commit 6e664563819f8c4e23196878e5dde075f8f57950: device: implement param introspection
INFO Importing commit 20bcbbde78856b469877132b96c8198a24dc2177: node: handle errors from enum_param
INFO Importing commit dfc464413b70cc7334197b5e1fe8f4e7300ac100: stream: set proxy to NULL in disconnect
The proxy is NULL while disconnected, handle this case.
INFO Importing commit cb2b1fb3ff77a08cb9c198634b3eecb54e63dd82: handle enum_param errors on port, node and device
INFO Importing commit a195700eacfbed38817dfb7122d9348251f0c16f: node: also suspend node on destroy
INFO Importing commit 354bb042e224e01dc23e4206b8da6403078e949b: alsa: retry _avail after xrun
..or else we pretend all is fine and end up with no available samples
to read in an infinite loop.
INFO Importing commit bf344a86e5f5d905d767d37d32540399bae2f4d3: alsa: add on and off profiles
INFO Importing commit 67e6a66429e2b0820a46429695e5ffd87ffc4424: remote: pause with invoke
INFO Importing commit c982f7377991d4c3cb99e9d365d8c0df52f8f4f1: remote: send start command before adding the source
INFO Importing commit ac5f0b851ded92ba2bbc001e58a5b8b50e940543: meta: add cursor metadata and examples
Add a moving and flashing circle cursor to video-src
Render the cursor in video-play
Alsa add VideoCrop metadata
INFO Importing commit 537399bbe5c7af622ebeabc74d1f39b25a47c21e: video-play: handle arbitrary cursor sizes
video-play: only allocate the texture when we know the size and
format of the cursor bitmap.
video-src: make cursor size defined with constants.
INFO Importing commit 7091ad340d514de2a1ac7f21b7576a23fed609df: video-play: check valid metadata
INFO Importing commit c5f5f1d94bf26152249374c01e7bf162f9951f4b: alsa-device: remember current profile
INFO Importing commit d6836d89eefb9d3a03f36e63a2ef8e76d62eadd0: alsa: stop try writing samples when no progress
INFO Importing commit 4e7af5644ba0c35a0bcf976c6e34c53593b6c406: alsa: set period size to something larger
Setting a small period size will also result in a small buffer, on some
cards smaller than what we can deal with right now.
INFO Importing commit ee307e9c48caa039fdfa4b5e4d5f4fa03f7b03ec: port: also set buffers when 0
INFO Importing commit 26958eabaa1d754f3da70428b1d18a59c010e501: pipewire: add DISPLAY
INFO Importing commit e6c023cd344018b5a43bcfcc779061f36553dc56: properties: don't add NULL values
INFO Importing commit 3cdd52832ec790f5671c8c0d3a462f98d49a2cca: properties: add _clear function
INFO Importing commit dd28116f12562c73719d3fe73c5c6b337bdb49c7: stream: set node name to stream name
INFO Importing commit 53c2eb26255c9c09113ce1d361b473476e746020: stream: clear queued items when clearing buffers
INFO Importing commit bdc97ae14075f7cb6f4a162e40c93246b7c25c40: client-stream: fix cleanup
first let the client-stream node cleanup and then destroy our
client-node.
INFO Importing commit f0244f659c438a5630b666e72e61622bda8a8d1b: submodule update
INFO Importing commit bf1c9270875b722665d742f03b1859a038289b4b: alsa: reset queued and free buffers on start
When we are out of buffers, drop the available samples.
INFO Importing commit e7462c470e5f919cb45fc3f2a339d16539e8c613: channelmix: handle more conversion to mono
INFO Importing commit 5fa7e0f3eb42f3354d443fb5d4b00997cb5f9604: resample: add peaks resampler
INFO Importing commit 11a3370f12c637f16fef3a5af08e7bee2a2006af: merger: add some more debug
INFO Importing commit 5fcbbb4d6b8ae304e20bcc2e074c2178ef46a83c: media-session: keep track of profile format
Also keep track of the profile format of a node, this is the profile we
choose for it and what we should use as a profile for the peer node.
INFO Importing commit 4d780e87aaa417b07c0a9240fd59323bd6f2d2cc: client-stream: activate peaks resampler when monitoring
INFO Importing commit 9805c2f4138b458cd9b77b26391c80c8395b9375: stream: add DONT_RECONNECT flag
INFO Importing commit fd82f38ff48fbb08efccf958f11a24bb9ff28cc3: pulse submodule update
INFO Importing commit 74c71e9badd173f458cd6b84fa987693062e0e0c: resample: only free resampler when implemented
INFO Importing commit c42b108ac874cd3e300a3e98bb98eb8dac3299fd: resample: small optimization
INFO Importing commit 3476617cffb857367846d7c169cb054e6411eb00: node: only add node when active
When moving a node from one graph to another, only add the node if
it was actually added to the source graph. Because nodes are added when
activated, it might be possible the node was not added yet.
INFO Importing commit 626cdab268f089bd375e60feb7ebe206f8b8e170: node: log error
INFO Importing commit 2bd7f5c93491e1d8bc97ac4dfbfae9b7d27709b4: media-session: skip non-dsp ports on dsp nodes
Detect DSP nodes sooner, flag pads that have the dsp property, skip
ports on DSP nodes without the dsp flag.
INFO Importing commit 02585c6ca9c354a0665798eceef4d2b9ba22765b: merger: add monitor ports
Add an option to enable monitor ports. Use this in the audio dsp
to expose monitor ports on the audio dsp nodes.
INFO Importing commit 97f7ad31a4fc3c7500709b277078b58e1452ca7f: submodule update
INFO Importing commit 4606d46621644861a9038e86c0a0709d18d90ae7: channelmix: add more MONO mappings
Also just warn when we can't assign a channel
INFO Importing commit 2fd8f0906f5f11672f689ac9b157d331219cfbca: alsa: set stride to frame size
INFO Importing commit 491dd785ad2c8b706ab196a96d202f022d5b7614: media-session: only try to link to nodes
INFO Importing commit 08a63ded5d640da3e964968ec4241f2e7e6d2c88: audioconvert: pass samples to convert functions
Pass the number of samples to convert functions instead of number of
bytes because it is much more useful.
INFO Importing commit 0a27040c9a07c2b1a81fc0960ec0ee69b399069d: port: keep track of mix port states
Keep track of the state of the mixer ports and update the port state
accordingly. This avoids clearing the format or buffers on the port
when mixers are still busy.
INFO Importing commit a331779a2841b02cc5d8eee337ac53089170d85b: resample-peaks: fix peaks resampler
Keep separate variable to check if we searched a complete chunk.
INFO Importing commit 3ab95f66f33b9002195d25cca11c52c092489f9e: media-session: don't set audio profile on non-audio nodes
INFO Importing commit 8e969c9d44ad09bdfa2f74e86f11aea62492ac2c: media-session: set media (sub)type on dsp nodes
INFO Importing commit 4be368c9576dc6872fde54f18fd4cf3da962f1ad: media-session: handle dont-reconnect
If dont-reconnect is given and a target node, kill the stream when
the target node can't be found.
INFO Importing commit 2025a9ad3bb816fdc3dedbf6ec757b9efe158d62: node: only move other nodes, not ourselves
INFO Importing commit 3be759ced2f8ad81c51abbf295a96df21d82bd3f: stream: handle proxy destroy
When the proxy is destroyed, mark the stream as unconnected and remove
our reference to the proxy.
INFO Importing commit fb54de0dd0767cffe291a492b7b575acb4232700: submodule update
INFO Importing commit 52368091e3fc5a63fa21d12057fdcdcbf9793f35: v4l2: actually pass the device path to the node
INFO Importing commit 5025aa97e6ca6c08635dc0fb99753a4c8ba45563: audioconvert: fix x86 feature defines
INFO Importing commit 6f75c2d078a4675622132c8600db4fea436b7435: cpu: add cpu detection support
INFO Importing commit 9ca9fda2534bfc099f40628fe03cb17039ccb3f2: cpu: add cpu support implementation
INFO Importing commit e984c19f6cb45d18e44ec7f42b9ed9b5e7f6b400: core: load and add cpu detection support
INFO Importing commit 4dfe1011a62e900f300fd21d076f593687a90e8a: audioconvert: use cpu detection interface
INFO Importing commit ae6d261122397dfc1d98b69e8b4d5c94d6f1afe2: update pulse
INFO Importing commit 7104df1b210edfe5a355eaafe67491c799fbcccb: cpu: detect MMXEXT as well
INFO Importing commit f80620f1f81cf18e155685740c0ff96cef043794: meson: increment apiversion
There are ABI breaking changes in libpipewire.
INFO Importing commit e7a8c29063eadcebffdb0f79dacd66d56edf5c66: bluez5: remove an unused variable
This gets rid of a compiler warning.
INFO Importing commit 6430ca0093323956690862249192d6d9f3054c37: Add some more error checking
Fixes #116
INFO Importing commit a1e567b985d9d72ed7f127520d4e38bc1b9b01aa: stream: remove listener on disconnect
INFO Importing commit 0a4ef3d2c0fecd9bd6130ae5b58fd16e8672d8e0: resample: add SSE peaks resampler
INFO Importing commit 00d1488c0787789f5697ec831220c945ee4163d1: channelmix: handle mono like Front Center
INFO Importing commit b6db6e2130a1dfe0e171978d0c6734817557c57c: channelmix: add quad and 3.1 to mono optimisation
INFO Importing commit 098409608920d3b00e5d3cdec9bb472c01e76f2b: free() can handle NULL just fine so skip the check
Fixes #117
INFO Importing commit 52a3a0c1759854ec569bcb28ebcce700cc26425b: thread-loop: improve error checking
INFO Importing commit 0c0bf3a62ae7518d9e5ef71c1417d06c7e342ad3: thread-loop: fix leak of event
Destroy the event when the loop is destroyed
INFO Importing commit d2bcbdf9cfbf9c79566ddea29f9db1b322cd560e: resample: fix unrolled counter
INFO mv "spa/plugins/audioconvert/fmt-ops-sse.c" "spa/plugins/audioconvert/fmt-ops-sse2.c"
INFO Importing commit 0e91276a0350b8a69a69c57a4e1a66bdd7b42404: fmt-ops: SSE functions were really SSE2
The SSE functions used integer operations and were really SSE2 so
rename.
Optimize some more.
INFO Importing commit 238be6136407cc4952d331a871591212e3d0f73f: Avoid invalid conversion error with C++ compilators
INFO Importing commit 2a252abf50cd1cbaaff9c245dcbc8c6c15231b7a: fmt-ops: small optimization
INFO Importing commit 8984c6f48d2106f143d3f6d5df976f788ecfde30: meta: document fields some more
INFO Importing commit ba7b2d8c21a1807e9422778d478e9ec21f819a3a: meta: clarify the meaning of hotspot when no bitmap
INFO Importing commit f246c7b8efbffdf9f65ad495af835b347d19c804: parser: add more parser helpers
INFO Importing commit a41624d48b953013ebb1f6d06cc07aec8f3f73d2: iter: make iteration safer
Check if the pod size is within the parent pod size
INFO Importing commit 34807655613abe14beb00045650f72c1f6f08806: parser: add more parser helpers
INFO Importing commit 5ef6a5cc5addc859946c9a78d551ba6b042a8066: update submodule
INFO Importing commit dbbcd3fdc46b672b0a3ee0b72ddc07b35862cc02: defs: add SPA_LIKELY to MIN/MAX/CLAMP macros
INFO Importing commit 3cfd1e6cf1fc0cba5d3f0252a4e1e1c230dc7bfd: compare: fix sign for compare of id
INFO Importing commit 2c4bffec74264559348905e17737e09053267443: fmt-ops: small optimizations
INFO Importing commit 1ca7704d64445c80437ce9f26cf4f87585a59271: type-info: fully initialize structs
INFO Importing commit 9573b24e529c80c06b35c353e429bd275f18413d: cpu: add force cpu flags
Use PIPEWIRE_CPU to force cpu flags.
INFO Importing commit 7cd55c2c6be16132ae2793a5280edcfc2343128d: fix switch fallthrough cases
INFO Importing commit de796d34ad42e3e642c4c49c779cdfc41e587dd6: pod: handle pod copy failure
Don't check NULL in pw_spa_pod_copy so that we can check for allocation
failures when the functions returns NULL.
INFO Importing commit 098b80aa0cfb647720e1732ff670d0f4aac35fca: protocol: pass state as id
INFO Importing commit 74e5f9fbcf3c69c61ba1669f00de1c0a86090b80: fix function types
INFO Importing commit e918f9f77c718e0a1d48623cca2b93a3653ee332: fix sign confusion
INFO Importing commit 5b7ddb0105ddf9df3ce1e4292ccfa4df3b5a511a: buffer: remove buffer id
The buffer id is not needed/used, we use the index of the buffer in the
buffer array when configuring the port.
INFO Importing commit 19e4b04939175a29ee46a128c64ed1546929a74e: add more tests
INFO Importing commit 44cb131269b476992f7448057b464dcff34a3de3: meson: enable more warnings
INFO Importing commit b95584c3126655a458c16b6c4ac01ddfcc7f1b6c: plugins: fix warnings
INFO Importing commit 7f0d5a1c10aeff4391235c269933793ecefb65f1: fix compilation
INFO Importing commit 3fa2ad33e4472a76a5e287852e8787e903eea0b6: fix warnings
INFO Importing commit b0f4be5fbcc0e16aafa5cae3f1bf93b1db7121b6: fix more compile errors
Avoid void * arithmetic
Do explicit casts to target type to make c++ happy
INFO Importing commit d12148cfba0f807bfd39a2df4a1cd80e13a5d68d: graph: remove scheduler2
Move graph code into graph.h
INFO Importing commit 3e77e9bf9916c520be24c41b63bd792b590063d6: test: add c++ test
INFO Importing commit f8556f1a08eb9f1aea34c1aca8b1fc6900ed3211: make c++ optional
INFO Importing commit b497ae97927d08acb9ad2a725f99891bc22cc968: spa: install missing headers
INFO Importing commit 2c571cddf505092323ccefc9ce479e1787f2fdea: tests: add c++ include test
INFO Importing commit e23deae087f680bab3e819140ad1f5d66b39b81f: meson: install permission.h header
INFO Importing commit fb5ae6df43f83bd3a3d31e99d7f8b8b20267a22c: tests: add array test
INFO Importing commit 979d15538298ac51c581e2a5771f818d2081c572: core: add user_data to core
INFO Importing commit 57e0a94163cee6129012a2dcfa21cd5c08ae0112: add const to info changes
INFO Importing commit 1ed27a8f2b4810b51246ae6507c13130cc7fc1b1: add _GNU_SOURCE as compiler flag
INFO Importing commit b5a7891ee1702a47783c7220469009bc4465cb38: tests: add more tests
INFO Importing commit 23c439fd669887d2a7431a7ce0311e2ee5e51596: meson: set spa plugin dir
INFO Importing commit 69b7c18718bbe23fd2cc354f9d9f0d636e99745c: tests: add more tests
INFO Importing commit 714178b1e464ba928fed2b081f0673540e5b92d0: meson: add module dir directory for tests
INFO Importing commit 8fa6126599ea6a1e296ab1ec5f303c73ff5bd97c: rtkit: improve DISABLE_RTKIT
DISABLE_RTKIT should not even try to get the dbus connection or
anything.
INFO Importing commit 349a11cde5b0bdbe8cc7b738d3beabbd733e5545: add const to info
INFO Importing commit 66bab1d9b2e1976408ecdd9eee0f35ce8ce2c4c8: remote: remove some events
Remove some events from the remote that we can find on the core_proxy.
Use the core_proxy to get to the done and info events.
Remove pw_remote_get_core_info(), we don't need this anymore now that
we don't listen for the event and the user can keep track of this
herself.
INFO Importing commit 62672f4d231b2173d50540af490c090b521b6ec1: v4l2: set buffer id correctly
INFO Importing commit 2f6c85cda14b140de8a3d98a6f3fa3f875c701ce: remote: buffer id is now just the index of the buffer
Buffer id is only used internally as the index of the buffer
that was given to us by use_buffer or alloc_buffer
INFO Importing commit 77651881f711d06e3d6f0759d234f769c3d8dd9a: improve debug
INFO Importing commit 505eb7a423df7d11d8aadf89bb323b46a043a85d: protocol: automatically bind to the client as well
Bind to the client as well as the remote core. This way we will be
able to update our properties and permissions directly on the client.
INFO Importing commit 1a27d7da1d6119b19049c3f29c0c195fe3904e62: interfaces: remove core permissions
Use the client update_permissions call instead
INFO Importing commit 0072f9cf2b542a8e689a214b8341fb7ad84fb084: interfaces: add method to update properties
INFO Importing commit 103249ae76109033911239fc5902e9779d1771ac: interfaces: remove core properties update
Use the update_properties method on the client
INFO Importing commit 1cb8a61b71ecae65b4d3308b12aa3dedd1514b78: interfaces: make permissions const
INFO Importing commit 01e28dd7a8a4fc8b8c0ff4b5469de416ddc2b873: cli: copy name
INFO Importing commit a55330fe297c1a55121ae87c0e0f0026b09e8b90: cli: fix node-params
INFO Importing commit 2ab96db5b5205706da5aa898ab6afd1669b74165: protocol: fix permission marshal, skip default permissions
INFO Importing commit c2f0dea0f5284aaf28672210a380d63fe925c20f: client: rework permissions
Keep the default permission at index 0 in our permission array.
INFO Importing commit b05297a5fb8485af8c2c0cd7ae107d446d12d2e1: client: only set client active once
We already set the client active when we update the properties and
only when there were actually any updates.
INFO Importing commit 74dd7c9bac82a6a6a0d03e6320c21580e543f45b: client: implement get_permissions
INFO Importing commit eaa5beb1b0cb435c9fa7f541022aa17e9a684d44: cli: add get-permissions method
INFO Importing commit 6a637a8f246cb33263abec112ebda2d1cb1d5890: tests: add test for interfaces
INFO Importing commit 4dcdbe1795ed93eb93f6709c2d96d799ef128b9a: tests: add test for utils
INFO Importing commit 7216f4d4accb67485ed7066019464cb883aa67dc: tests: add test for properties
INFO Importing commit 9dc9e97c6f7bb871db8f68e9e4c7405bc64f4ae8: tests: add more properties tests
Fix properties n_items counter
INFO Importing commit 6856f02cab338ecfbab62fa341a6ebf77ff48f0b: properties: avoid NULL and empty keys
Improve unit test
INFO Importing commit 3dc6820e9eb033338d2256e0fdd054766581df7b: Don't use __ in defines or declarations, it's reserved
SPA_TYPE -> SPA_TYPE_INFO for type info strings
improve includes
Fixes #115
INFO Importing commit e95b6850725513abfffea82ab24ae69ec023d659: format-utils: use Id for enums
INFO Importing commit 79d68ace68cb9fa1e97d977eb70d61d41df12fd7: update submodule
INFO Importing commit 80cfda89c1d8e2f213175170ff2b7518830ee13c: pod: improve the vararg pod builder and parser
Automatically parse and build key/value when in objects without having
to prefix the key with ":"
Automatically build control/value when in sequence without the "."
prefix.
Remove the builder with key/pod, taking a reference to the stack built
temporary pods is not allowed in c++. We can use the varargs version
with the same convenient syntax.
Remove the parser "*" option, it is unused.
Improve spa_pod_builder_add_* and spa_pod_parser_get_* and make them
look similar.
INFO Importing commit dad153ce28e044545b6032ee912da08bb0d4b1ba: alsa: mark properties are optional
INFO Importing commit cb346c07453dac2ccb249241d5949431a91e3d69: builder: improve builder
Only write a prop or control header when not already done.
INFO Importing commit 92e9d99d0a9452908af37382f2723f0cc3d6d96f: add some padding and fix types
INFO Importing commit e4bde735523fa5d0d88868391364d2e3d744d40c: alsa: use min_latency when no position is given
INFO Importing commit fa2d87792547a70642e47e267f9444b15c648b2f: audiotestsrc: use macros for parser
INFO mv "spa/tests/test-control.c" "spa/examples/example-control.c"
INFO mv "spa/tests/test-v4l2.c" "spa/examples/local-v4l2.c"
INFO mv "spa/tests/auto/test-buffer.c" "spa/tests/test-buffer.c"
INFO mv "spa/tests/auto/test-cpp.cpp" "spa/tests/test-cpp.cpp"
INFO mv "spa/tests/auto/test-utils.c" "spa/tests/test-utils.c"
INFO Importing commit 3ee463ed3a1f312631cae0d960e86268957bd3e1: spa: Update tests and examples
Keep tests in spa/tests
Make spa/examples
Remove some old examples
INFO Importing commit 5376832676feba2de688d8bffa915fffd08f6010: builder: control_header -> control
INFO Importing commit 982fa0c80b871e8cc911237f0db45a8171462983: spa-inspect: fix format object detection
INFO Importing commit be1725c67b98e1243e9f5e2981a147a35d8e7738: compare: add size to compare
INFO Importing commit 767e7efc0e9d1416590317cf0ade33d8c0150de6: parser: fix parse of 'V' as Choice
INFO Importing commit 2622e085a9e65f6fd1a5183b6823fb1d839aec2a: pod: add more helpers
Implement more unit-tests
INFO Importing commit 5f236203d67e2fd36e3d392cf9241defc2b9c8a8: test: add more pod tests
INFO Importing commit b2bf69cc42c6352223e8cae64a80ad49d7b0c84b: param: add some docs
Rename profile id to index because it better describes the property
INFO Importing commit 878ae769ef4d6addfc4321a3d8df890b24aecfd2: parser: improve parser
Add more unit tests
INFO Importing commit 351fb9ce295200db1065a7af1d2f40dd9c60cfbd: pod: improve parser and builder
Remove the spa_pod_iter helpers
Remove builder/parser vararg recurse option, you have to
manually recurse into structures when needed. This simplifies
things a lot.
Pass spa_pod_frames to builder and parser explicitly, we don't
have to keep an internal stack anymore.
The parser is now almost a mirror image of the builder.
Make the parser safer when iterating over objects, add functions
to check and get pod contents in a safe way.
Make the builder return errno style results on errors
Improve performance of object properties when they are stored and
retrieved in the same order.
Add many more tests for the builder and parser
Add some benchmarks
INFO Importing commit a1d45d2b25bf08292370d54c19112fbb2a6ef4c6: add missing file
INFO Importing commit 6f586602af3af7ba799c80d940e6e5c4ae8b12b0: audioconvert: add unit test for format conversion
Add unit test for fmt conversion and fix some bugs
Add empty fmt-ops benchmark
INFO Importing commit dd664695705f62f0f483edefb269c66ad3126a6c: audioconvert: add format conversion benchmark
INFO Importing commit 13bf70a8ddf97f3b6bb66ecd6d957d384bbb60c8: mem: align memory to requested alignment
Improve the allocators to always align the buffer memory to the
requested alignment
Use aligned read and writes for sse functions and check alignment,
optionally falling back to unaligned path.
Add more tests and benchmark cases
Check and warn for misaligned memory in plugins.
INFO Importing commit 577852863c8039ff42a17547335381d6a84d92fe: fmt: remove debug assert
INFO Importing commit 58f3146b603a444689bf249654a0704d0006f4a3: v4l2: pass pointers to the fraction and rectangle
INFO Importing commit 30ecf665612e11ac912f9734a14e079d9288e16c: fmtconvert: check bounds on chunk offset/size
INFO Importing commit 93e8074b2c8c39469ec1c70506366a4a648a6e24: alloc: improve alignment in alloactor
link: use buffer allocator
Add more tests
INFO Importing commit 7a8412e81a42c991c3f39ca755b4507bc5ef84f7: alloc: document alloc functions
INFO Importing commit 68bcc6b8e86e50293a34cfceb8e596a9cb1bb345: pod: move vararg macros to separate file
INFO Importing commit efc571972d30648157bb67944fd4e8b54a354790: defs: don't use __
INFO Importing commit 1c7fa34f577e0ebfd97cfbd68abcbff05d37c119: port: make it possible to clear the mix node again
INFO Importing commit ac6a568729a7bbbb82d6714d3b8087cd09d349b2: global: remove the global from the map when we unlink
INFO Importing commit 11769aa7e748fef8f842e3c0bd833602bc3e4032: media-session: track our DSP link
Set our DSP link proxy to NULL when it gets destroyed so that we
don't accidentally try to do things with it anymore.
INFO Importing commit 718847fcd5ea4e0b74313711220e15ad5b9d0e93: audio-dsp: clean ports when the node is destroyed
INFO Importing commit beae1890d35eafc4a04bdcd9021e436b46518494: global: first emit then destroy, then unregister
INFO Importing commit e63adfef256554c705ff56dde0645a7bca3e1d9f: link-factory: fix cleanup
If the link is destroyed, remove the listeners. Only remove the
resource listener when we actually have one.
If the resource is destroyed first, destroy the global.
If the global is destroyed first, make sure we don't destroy it
again when the resource is destroyed.
INFO Importing commit e04560955d1b2224f1ef3f44349acc1abd35a9d1: audioconvert: clean up nodes
INFO Importing commit bf33ce3fc0c36514c571877bf97f993a747015e6: link: don't call use_buffers after alloc_buffers
INFO Importing commit 1baef2625cb28109e64ad2537798ec6b4c902df8: alsa: fix chmaps leak
INFO Importing commit 086166058a2c54dce335de9ea339788fb317f497: media-session: handle unknown media
INFO Importing commit e4f58da013b38c095f71e99ef2ad04960f98ba11: properties: handle prealloc of 0
The argument to array_init is not the prealloc but the extend, so
passing 0 will not work
INFO Importing commit 4509bd8cfd5f1e04ffc67276d45bf90b4e6ec411: media-session: report error when binding
INFO Importing commit 39f130913077ee9edf1cacd781e5bc256b8f4cd2: conf: remove old module
INFO Importing commit 2f102a69d63bbcca99099907a476b8b7b8ff7cb1: export-source: fix example
INFO Importing commit 61194d02b3b71b066dfa50c045919e7c55c67418: stream: small cleanups in notify/control handling
INFO Importing commit bebc8edbc3a618d505c67e97a13e6234ea825451: buffer: add missing type info
INFO Importing commit 7ec9de5ac616031a3515c363283c3c50ad12fd25: video-src: always set chunk info
INFO Importing commit 31dacd9d6fa1fe9458309193773ab1605f1a2d57: remote: move node export code to client-node module
Make the code to export objects more generic. Make it possible for
modules to register a type to export.
Make the client-node also able to export plain spa_nodes.
Let the remote signal the global of the exported object if any. We can
then remote the (unused) remote_id from the proxy.
INFO Importing commit 550a2af0447bcf7e7be5d5d88f7d258cf9654ec9: examples: improve examples
INFO Importing commit bad9b15a925cb165e345862df1060f0fe57c4068: node: warn when _set_io fails on the node
INFO Importing commit baa6b1472d98d94cb2a12ba768a80004e1c5183b: client-node: handle _set_io on the node
INFO Importing commit 30da60ab6b58050980846d59e896febd0797d92b: utils: add SPA_EXPORT
INFO Importing commit a5630507972b32a2adf56a4d95380c5adf260615: spa: don't use constructor attribute to register factories
INFO Importing commit 569cbb48a9463e09167413afd681f5e10a195bc8: use SPA_EXPORT to export symbols
INFO Importing commit 8a9c1129a21582b29d96644be75d05d0efa57862: spa: make fd in spa_data an int64_t
So that we can store other things in it later as well.
INFO Importing commit 87033894c55bf5ff7036bc977c132d3a4ffd8622: io: add graph version of graph in position io
This will make it possible to select the right graph before we
start processing. The idea is that graph updates happen in a new
version and that the switch will to the new updated graph is done
when the period starts.
INFO Importing commit 416bb2466dd7fa0dd03d4233ac92dc2089e87013: log: move field around to plug hole in structure
INFO Importing commit db230fc13625059b135aeadb3fa7df5e2b5e6255: floatmix: unroll loop a little
INFO Importing commit 658c1da52fc8f142f0d6603f0f1ba712badf82e7: node: allocate shared mem for activation
Allocate a per node a piece of shared memory where we place the
activation structure with the graph state and io_position.
We can then give this info to nodes so that they can get the position
in the graph directly but also later, activate the next node in
the graph.
INFO Importing commit f45e0b89667fe743d01edd634aa6bb3e8814fc21: reorganize some struct members to remove holes
INFO Importing commit 5de7898808d1369396b688213b46ec6b6cf3521a: node: implement activation
Make an eventfd for each node and listen for events when the node
is activated.
Reorganize some graphs links to make it possible to activiate nodes
by signaling the eventfd
Pass the peer node to each remote node and let the remote node
directly activate the peer when needed.
Let each node signal the driver node when finished.
With this we don't need to go through the daemon to schedule the
graph, nodes will simply activate eachother. We only go to the
server when there is a server node to schedule.
Keep stats about the state of each node and the time it was
triggered, running and finished.
INFO Importing commit ac5ec9bbe20a0272a284011dd24660dd72a01817: device: improve callbacks
Pass info structures to device callbacks to make it more extensible.
Also notify about the supported params on the device because we
can.
INFO Importing commit ba653fccfca0e38aa5e963e3985d38b6a5f48431: add .editorconfig files
These files help editors choose the correct coding style
conventions, mostly useful for the indentation style
Pipewire uses tab characters of size 8 in all of its codebase
except in the meson files and in the gstreamer plugins,
which use 2-space indentation
INFO Importing commit 24eeea62e7ff7cda1443da4294e264b60b55b7ff: remote: use 0 for pw_proxy_new() user_data_size argument
pw_proxy_new() expects a size for its user data structure
as the last argument, not a proxy version
INFO Importing commit d08ec09dde93a4eaac287bc85d025569b9dcc6f4: meson: spa/plugins: use pthread_lib instead of threads_dep
no need to refer to the same dependency with 2 different names
in the same codebase
INFO Importing commit 58a878623b3ae76fd6ac3bac86024e4700e28933: meson: find dependencies only when necessary
This allows finding dependencies conditionally, only
when the enabled features actually need them.
Also, make sure to require those dependencies when the enabled
features do need them, instead of using "required: false" and
failing later
INFO Importing commit 99e1bb1068fea0fd197aa83a769a3ea575afda3b: meson: spa/plugins: don't check if the plugin dependencies have been found
If these optional plugins are enabled in meson options,
then the dependencies should be required to proceed.
It is not cool to compile with let's say bluez5 explicitly
enabled and after compilation discover that bluez was not
found and meson silently skipped that plugin.
INFO Importing commit 71eb538fbaeaccdbc0f33316cec716216abe5c2c: meson: prefix the names of the tests so that they are unique in the tree
meson < 0.46 does not allow two targets to share the same name;
meson >= 0.46 relaxes that requirement, but I see no reason to require
a new version of meson just for this
INFO Importing commit d9c2f77cfe12d77d827f5dc7dab691197f7b419e: spa/audioconvert: don't include xmmintrin.h in the non-sse fmt-ops
Fixes compilation for arm
INFO Importing commit 4be52f16bd7c355f522e29e61039ae5ae2a18097: spa/support: implement ARM CPU detection
Code is based on PulseAudio's implementation, originally written by Wim
INFO Importing commit 27e997a032b50019ad6099c823be2bf82f544a23: daemon: getopt returns int, declare it as such to avoid comparison issues
On some toolchains/architectures, a char with -1 value is not equal
to the integer -1, resulting in this code to think that it got
an unrecognized command line option
INFO Importing commit bb2b15a5fbafa45871efeac2f26b826f81f3390c: Quote "$@" in autogen.sh
An unquoted $@ will break for arguments with spaces in their names. Unquoted $@ will work until it doesn't, and then it can be tricky to track down exactly what went wrong. Using "$@" will save someone some headache in the future.
INFO Importing commit 04f1046113ad35a5b297a3641bd409a28daeb135: node: pass struct to info callback to make it more extensible
INFO Importing commit 7a1bd163f7ca91963550d48c892da257ccb2d427: node: remove port_send_command
We don't want to do this, we use a sequence to change things
at runtime.
INFO Importing commit 61276da87ed361e87d40b21a4f20416865fe563b: submodule update
INFO Importing commit cbdc024f4ce294741d10acd7cf8fb71a5e55f04f: example: remove unused variable
INFO Importing commit 8ae542435949af2466076841ac53faaecb713972: resource: improve error handling
Make some more varargs error functions
Make pw_resource_error always just send the error to the resource id.
Make sure we send errors to the right destination.
Add proxy error event and emit it when the core finds an error for
the given proxy id.
The client error is supposed to be sent to all resources of a client
for the given global.
INFO Importing commit 3c78036a97e1473ab6095a13a680583ac4526415: node: process -> ready
Change the process callback to ready to avoid confusion with the
process method and it also describes better what happened.
INFO Importing commit 21957e9e8d3fb8722fb723238bc9e035d3b5902c: node: Add port_info event
Add a port_info event. With this, we get updates to ports pushed to
us, which is more convenient and also allows for better dynamic
add/remove of ports.
We don't need to the PortChanged event anymore
We can remove the get_port_ids/get_n_ports/port_get_info methods.
Update plugins
INFO Importing commit e9bedae5faec9582f47d23e442e22ce256826e77: node: add max_ports to node info
INFO Importing commit 755d7ca329e5d6c656047a50018af5747f6040d2: client-node: handle NULL info in update
INFO Importing commit 0d8821096ab0bbd3d7362b981fef57426c9ca154: client-node: only update info when change_mask set
INFO Importing commit eea062ee536b0813dd0d4225b5fc01127fcc0c4c: interfaces: improve remote API
Add return values to events and method callbacks. This makes it
possible to pass any error or async return value.
Add sync/done/error in both directions so that both proxy and resource
and perform/reply sync and produce errors.
Return a SPA_ASYNC from remote method calls (and events), keep the
sequence number in the connection.
With the core sync/done we can remove the client-node done method and
it's internal sequence number along with the seq number in method calls.
We can also use the method/event async return value to perform a sync
with as the unique sequence number for this method.
Add sync method and done/error event to proxy and resource.
INFO Importing commit b743518f78ac9a763a31864cefcd832d518bc21b: node: add props to add_port
INFO Importing commit 7b12212eeb0f2f7d30b6f9a7b239fe967b1276c1: node: improve async handling
Remove the done and error callbacks. The error callback is in an
error message. The done callback is replace with spa_pending.
Make enum_params take a callback and data for the results. This allows
us to push the results one after another to the app and avoids ownership
issues of the passed data. We can then extend this to handle the async
case by doing a _wait call with a spa_pending+callback+data that will
be called when the _enum_params returns and async result.
Add a sync method.
All methods can now return SPA_RESULT_IS_ASYNC return values and you
can use spa_node_wait() to register a callback when they complete
with optional extra parameters. This makes it easier to sync and
handle the reply.
Make helper methods to simulate the sync enum_params behaviour for
sync nodes.
Let the transport generate the sequence number for pw_resource_sync()
and pw_proxy_sync(). That way we don't need to keep track of numbers
ourselves and we can match the reply to the request easily.
INFO Importing commit a3ca2df0fef4712ee513aad51d147e46b9087382: link: handle the right port in the callback
INFO Importing commit 98463b689b9bffc912f719aa20ea28c8df0fe412: node: improve pending results
Make a special function for pending results to make it clear that it
is different from normal results. Don't pass result code to result
function, it is not useful because since the callback is called, all
must be fine.
The spa_pending is removed from the list right before the callback
and can thus be freed in the callback. Pass the spa_pending in
the pending callback so that extra data can be added that way.
Reuse spa_pending objects in link and nodes instead of allocating. We
always only have one pending operation and we can cancel any pending
previous operation by removing the pending.
INFO Importing commit d2c18c7b1a4c9b8d4eb9220747e34fb6bb3edb02: Improve async handling
Don't use special callback in node to receive the results. Instead,
use a generic result callback to receive the result. This makes things
a bit more symetric and generic again because then you can choose how
to match the result to the request and you have a generic way to handle
both the sync and async case. We can then also remove the wait method.
This also makes the remote interface and spa interface to objects very
similar.
Make a helper object to receive and dispatch results. Use this in the
helper for enum_params.
Make device use the same result callbacks.
INFO Importing commit f2ff6f393bc123b666dd0e18f1fe7f56338d3a50: more async improvements
Make the sequence number an int.
Keep track of the last received seq number and pass it in error
replies.
Pass seq in for_each methods.
INFO Importing commit 245a0d5634403662e6b008a496cbc78be7ce1eab: global: pass bind function to _new
Make the bind function a callback instead of an event. We can then
get a return value and use that to clean up the pending proxy and
generate an error.
INFO Importing commit aab2b5594f406f0e3a759a65d9204ced61c5e685: utils: don't remove pending after first callback
Let the caller remove the pending result when finished.
Use non _sync verions to enum_params in node/port/device.
Set result.id in alsa and v4l2 correctly.
INFO Importing commit 3d25adc598ed0b230f74b03b5740fa374124fa79: monitor: add missing file
INFO Importing commit 499dd3ff226772d7ef17e8b628a9d8a462bd1e67: node: add port and node params
Add a new struct spa_param_info that lists the available params on
a node/port and if they are readable/writable/updated. We can use
this to replace and improve the PARAM_List and also to notify
property change and updates.
Update elements and code to deal with this new param stuff. Add
port and node info to most elements and signal changes.
Use async enum_params in -inspect and use the param info to know
which ones to enumerate.
Use the port info to know what parameters to update in the
remote-node.
INFO Importing commit 61ce4e77f6922d465c550c98dabb4d626d70fd70: type-info: add missing type for EnumProfile
INFO Importing commit 03909692287dd6efddc9fc381e6cffc89c748d99: node: make add_listener method
Make struct spa_node_events for events emited from the main thread
and keep the spa_node_callbacks for the data thread callbacks.
The add_listener method installs the events and it's possible to
install multiple handles. Adding a listener first emits the info
and port_info events when installed, similar to how the PipeWire
proxy bind works.
This removes the need for the spa_pending_queue and makes it easier
to implement the _sync versions.
Add some helpers to make it easier for plugins to emit all the info
to new listeners.
Use the listeners for devices as well.
INFO Importing commit 09c4683ef1a7f24529d4f0734fe5eefd61932db6: interfaces: make events return void
Events are dispatched with hooks and have no return value.
Make it possible to get the last resource and proxy sender value
for where we need it.
INFO Importing commit 236d346a3f0e67ce3b88ddcbf2aea537057deb57: global: remove unused event
INFO Importing commit a9b58618b267b235cf69b32475fc9c0ee80b9af1: remote: fix ping event
INFO Importing commit ed988788fd0ef809ead4daa11da176a06aa80445: client-node: pass spa_node_info along
Pass the complete spa_node_info to update node information. Remove
the redundant max/min port info.
Update the remote node based on port and node update events.
INFO Importing commit 582bc70b3c597edd161873f0418e505f6265d6be: device: use right method
INFO Importing commit b238c8c2f6fb4d1a7dd44bac7db837bee7a94836: node: first reset graph, then run nodes
INFO Importing commit 7281a2b2cfbdac0431a5e788bc6a89c6f7cec172: export-sink: update port params
INFO Importing commit f42e214c2d114532d489e77d096b989304f765e1: client-node: also send param idss
INFO Importing commit 936dcbea2e55590bdecb018ed60efdb0b5b3ab55: remote-node: handle driver nodes
INFO Importing commit 1d907412e50883a9166d7d0c673418232d07d2d6: stream: keep track of param ids and emit changes
INFO Importing commit 3777d9612e60f4d8c5d078e5e393da48b4d638ea: v4l2: only emit port info once
INFO Importing commit 5ee287d79bdc8804a4abd18595fab963aa197eb4: client-node: improve cleanup
INFO Importing commit 412c7f4cee57c7cec91ac8119e28b455780781d4: client-node: send own activation to client for stats
INFO Importing commit dcbe94c55a6b25f3522de3abafde8dd209b7efd0: port: simplify states
Remove the mix states, we can get rid of them when:
The format is the same for all mixer ports. Set the existing
format on new mixer ports. When the first format is set, the port
becomes READY. When all mixer ports are cleared the port goes back
to CONFIGURE.
Only output ports allocate and manage buffers, input ports share
the buffers of the peer output port on the link.
INFO Importing commit f0eb59bc75f795f6a9bf7e2c984644d9b271e7a1: port: allocate only from output ports
We don't need to use the mix_id to allocate, the allocation is
always shared between all output mixer ports
INFO Importing commit b357b7a7dae4f383dd1fe5157ef85257a15dd531: scheduling: don't use the graph helpers.
Simplify the scheduling by using simple lists and removing the
subgraphs etc..
Make the driver node trigger all nodes it manages and when they
complete, trigger the driver node to finish the graph.
INFO Importing commit 84bb897886f9b1be027d55411e8f888d2878bbb5: stream: first prepare output io, then call the ready callback
It is assumed that the output io area is ready when the ready
callback is called so that the next elements in the graph can be
triggered immediately. When the graph finishes, the node that
triggered the ready (the driver) is scheduled to recycle and complete
the graph.
INFO Importing commit e31f1fcdca725f2303b50e8f6366dbc946642437: remote-node: handle add/remove of activation
INFO Importing commit 264383cdd41d7ce1eff5bf8a064c21609b18148a: remote-node: first run the tee and then signal ready
We first need to run the tee so that all the io areas are ready before
we can start the driver on the daemon.
INFO Importing commit ae3178abfecda519d9c402cb2127567cc59f8a8e: node: the exported node and never finish the graph
That graph is always started and finished on the server, even when
the driver is remote.
INFO Importing commit 94ce6d528cb93bd94c963e41adba4a66d4862ba9: client-stream: handle driver
When we have a client driver node, it will have prepared the io
areas for us before sending the ready signal. We then need to run
the converters before signaling ready.
INFO Importing commit 1d3ce5a9d993bda4b23851cb055b67d2b78f3847: stream: prepare output before signaling ready
Just prepare the output on the port and signal ready. When the graph
completes we will be signaled again to recycle the buffer and
prepare more output if we can.
Improve the bookkeeping a little when activating nodes.
Fix race with moving nodes between drivers.
INFO Importing commit 47fc2020c0f7011483ef5b88cf74247207c105d5: link: select io right after mix init
INFO Importing commit 964be84e1c15e34fef27acf491be24d6bac543dd: list: check for empty list before insert
We can't insert an empty list.
INFO Importing commit 7cdc13b281b4fade201a4de0f558b65a96bc7991: node: improve driver changes
Reimplement driver changes without corrupting our lists.
Keep track of unfinished graph and dump state of nodes.
INFO Importing commit 3e359646d7d85144bd4e3778d900507a2d122e60: client-stream: first destroy the node
When the client-stream is destroyed, let us first destroy the node
of the stream and then the internal client-node.
INFO Importing commit 45c00ebb54bc73285aea8ac48742361f2e59c1ae: node: recalc quantum of the driver when a node is destroyed
INFO Importing commit 6c643a0ad026df954bbb8c226d97b7d034a7f282: link: first set all buffers, then complete the state
INFO Importing commit fd373ce4d2593fa16b43821075ac4d961ee4c2f1: submodule update
INFO Importing commit 317493a2dc558cd371610496f8d49a10f2466fa6: stream: also recycle buffers
INFO Importing commit 32817371999ffe07a6b9d5b65179fd06cb1262cb: link: keep per link buffer negotiation state
Keep buffers cached on output ports.
Complete the link to PAUSED when we have negotiated buffers on
input and output.
INFO Importing commit 8591d8571009e027fb08e81e23260db1bacf6849: node: remove our listener on the node in destroy
INFO Importing commit 4faa28fd96a3726bdad55aab75633ae9d3784216: gst: handle clock reset
The clock time is reset to 0 after a new format is negotiated. Make sure
the time reported by the gstreamer clock is increasing in this case.
INFO Importing commit 61ad5ee518ddde493249014323ce97bdde97b7d1: fix some small memory leaks
INFO Importing commit d3d7b7e39f876845871adb4218274f3f5641faf9: client-node: ignore io on the node itself
We only handle the io on the mixer ports, the internal io from the
port to the node is done on the client side.
INFO Importing commit 25292e50780ee1587bf8fd424583173717a3c549: pulse: update submodule
INFO Importing commit 7a05a35f8e2f676476c4caf050c9e91b44424fe9: v4l2: don't error when we finish the enumeration
INFO Importing commit 4d99bf9297b6a8e190d6743ae61f5f1b8183132b: improve some debug
INFO Importing commit 743874dd9f653d8a05e57975aca8c86bd50cda28: client-stream: improve cleanup
INFO Importing commit 776ed79b86b146c020140e6692c1594eee7df414: remote-node: improve some errors
INFO Importing commit c6cb2ea61bd30a8dbc82dfdf6877781bae4b64f4: port: remove unused code
INFO Importing commit 66ea505f2290e76928417e1126102d477b95b0d4: alsa: improve debug
INFO Importing commit 1646b13e2987d779f6e1204dff4a4dad2e19c180: node: improve debug
INFO Importing commit f0c887186c8e7c7b1b383934217c7776e2032f44: node: signal driver when graph incomplete
When the graph was not complete, call the driver node to recycle any
pending buffer and complete the graph.
INFO Importing commit 7b2f96ae754e85b9b68d4959d1448795ea2842fe: global: don't destroy resources when unregistering
We can unregister the global without having to destroy the
resources. We always destroy the resources when the global is
destroyed.
INFO Importing commit 7b3e7e2813eb59873cb948d3270a94a03bba1da5: proxy: call core_proxy_delete in pw_proxy_destroy
Destroying a local proxy will also attempt to destroy the remote
resource unless the server already did that and told us to remove
the proxy.
Fix some cleanups.
INFO Importing commit 24117b33c721888f16fd13fc5091930a3e19ad68: control: make control links many to many
Output controls can be linked to many input controls and many input
controls can receive input from many output controls. Keep the control
link information inside the link.
INFO Importing commit 132dd760eed74744d829b1a5d28de3bb834171fc: client-stream: only add link once
INFO Importing commit efa74adfc3fd85957f7de3ba9d2087578906472e: submodule update
INFO Importing commit 8b2b7c305392bb3a1d20db5bcbe0f27d42880251: params: only emit callback for requested seq
INFO Importing commit 306f0dd9641ea4abb7c56729ee2a833e8085e8e8: v4l2: set result param id
INFO Importing commit 3fb9fa06a951c505da18f333e6dd799d6f4cdc28: client-stream: emit property change events
Emit a property (param) change event when the volume or mute is
changed on a stream.
INFO Importing commit 7675141cb9f65ad00a21f64edd0c717b9cadfa4d: monitor: improve param handling
When we receive a param change and the param is unreadable,
remove the params.
When we get a param update, always remove the old params.
INFO Importing commit 1ab00fae6d90e2f725007bab504771a5077e1e0b: client-stream: make PropInfo visible
INFO Importing commit 33afa186212555fafb20d1ef9a11960ff3bca4ab: client-node: don't make add_listener async
It is not really async, the init is async.
INFO Importing commit 9245c812273060dd9654fffeec94b8c956f892f3: client-node: add get_node method
Make a get node method that binds to the server side node of the
client-node immediately. use this in the remote_export and always
return a node proxy.
Use the node proxy to get property updates and signal those in the
stream.
INFO Importing commit 2297e99fde6997afee92f4795969eceaef078167: submodule
INFO Importing commit 6e17b38658b920cd55f11e81fb0b39f016455a61: test: fix test
INFO Importing commit a23be2b0d8c0bd1a77769445a03ac0c030f0c0e8: export-source: fix example
INFO Importing commit a8e9e171592914d8eab86f54022d6edfdb7aa331: audioconvert: enumerate propinfo correctly
INFO Importing commit 3049964031a56b98c2f01164f00856e046e6ad60: stream: parse PropInfo and make controls
Parse the PropInfo params and make pw_stream_control elements.
Only emit control changes when something changed.
INFO Importing commit b163dc911457ee139dde533008ddfbf751e13f56: private: define max params
INFO Importing commit ae7e60d790d20f1f5dc81dcfae8a6c3887148528: interfaces: add subscribe params method
Add a node subscribe params method that automatically emits the new
params when they change so that we can avoid an enum_params.
Use this in the stream object.
Remove the control messages to update controls in stream, use the
set_param. This is more overhead but allows for notifications to other
clients.
Make it possible to update many controls in one go.
INFO Importing commit ca051282a43134e6f4f5328eabeb661c673c3971: port: add port subscribe_params
INFO Importing commit a3e4726ea64def77feac0713b405b516423b735a: connection: add test and fix a bug
Add a unit test for the connection
When we consumed all packets in a buffer, try to get more data instead
of failing right away.
INFO Importing commit 30747942ac1ca28a274d2ae3c63affb622b4aa37: connection: add more test
INFO Importing commit 70e62aacd7f8718807a288d4951efa05bb2d0417: protocol-native: pass a message around
Pass a message around to make things more extensible later.
Keep fds per message if we ever want to write individual
messages.
Pass number of fds in the message header. We might need this to
close the fds when the proxy is gone.
INFO Importing commit 8daff4ce50a0e3aab53478328d4b5284bd663693: v4l2: make custom properties for unknown ones
INFO Importing commit 67f26c9cafe70947f6218f14ce0fb2b9cd2db1ae: peaks: small optimization
INFO Importing commit fa3bcabbcaf294e28e53b37344c7898299af3d85: audioconvert: some more optimizations
INFO Importing commit e31f54fac5c05d9000e2cdcf2aad047fff0fc531: alsa: list formats in order of preference
INFO Importing commit b265081d6d0cc24bc505d28790069d128c4bdb8a: audioconvert: use macro to transpose
INFO Importing commit c9bd95ae5ba8c7513af11ff752ceb60da7bffdc2: audioconvert: small optimization
INFO Importing commit c2cb74a1460fca81e3aa1c22e3031ecad75ea020: protocol-native: fix indentation
INFO Importing commit 74cf412f47c22ce418c761d78510a84e63ebd9de: utils: add debugable spa_memcpy
INFO Importing commit 0505f2dc98a77434dd1bad0a516ecacde4cdca4d: audioconvert: implement passthrough
Add some const and SPA_RESTRICT to methods
When the input and output is the same, work in passthrough mode
where we simply copy place the input pointer onto the output buffer
without doing a memcpy.
Do memcpy when the resampler is not active.
INFO Importing commit df5c81e3bed9d1221f7bb8036d9f38553d11eb50: buffer: add DYNAMIC data flag
Add a flag to mark when a buffer data pointer can change.
Improve docs for port flags
INFO Importing commit 036ca89c0e9bc67db39a70c800d80c5a51e1b1a4: audioconvert: mark ports and buffers as DYNAMIC
Only passthrough buffer data when the buffer and ports are
marked as DYNAMIC.
Use extra buffer for nodes that keep a ref on buffers (resample).
INFO Importing commit 5a2ccee1ff2bafa0e7d2c373def9fe97e921c942: Add FASTPATH trace log
Add a trace_fp that can be optimized away when FASTPATH is defined.
INFO Importing commit f29d14fcc841643151af41117a556a55b0a665ff: resample: Let the resampler object handle all channels
Move the code to loop over all channels in the resampler itself.
This is better because the resampler can reuse its state for
each channel.
INFO Importing commit 9c8913437bf5eecd35a88ad0d7f0bcefd9333c0f: audioconvert: add simple and faster resampler
Add a sinc based resampler that, unlike speex, avoids memcpy and
works directly on the source data. It also allows for ssse3
optimizations and aligned loads. It will later switch to table
interpolation when doing variable rate.
INFO Importing commit ecc3e78ad4cad950031395ae4ed37909535ed760: fmt-ops: use faster f32 -> s32 conversion
INFO Importing commit 555fe2f9f50aff39272707223da8f72db1c6a153: resample-native: implement variable rate
INFO Importing commit 4fafd10a89c216e9f39bcf1801992c8face55eb6: resample-native: cleanups
Add some comments, reorganize for better readability
More alignment of filter and history
Add some more test
INFO Importing commit eaffb25cc28e7acf9fd66d1b4b8832c97cecdcb3: resample-native: optimize equal input and output sample rates
INFO mv "spa/plugins/audioconvert/resample-native-sse.h" "spa/plugins/audioconvert/resample-native-sse.c"
INFO mv "spa/plugins/audioconvert/resample-native-ssse3.h" "spa/plugins/audioconvert/resample-native-ssse3.c"
INFO Importing commit c8d3d475bb3778504ad0906bec6f54bd8138b633: audioconvert: handle more optimizations
Compile an optimized library for the given CPU with the right flags,
then link it with the main library.
INFO Importing commit 7f041f4098a2a3b93b9ac56966b03a644fad72f1: audioconvert: improve benchmark
Also include the simd versions in the benchmark
Fix some issues found by new test
INFO Importing commit e7ef13e3109799fb7ba62855d3d384bb9f70426e: audioconvert: add avx optimizations
INFO Importing commit fe6ebd0e8a9faf32873a0281dcaa54998b86b4af: bench: add avx resampler to benchmark
INFO mv "spa/plugins/audioconvert/resample-native-c.h" "spa/plugins/audioconvert/resample-native-c.c"
INFO Importing commit d260cb19bec805ef3e77f76a72e110504f628abc: audioconvert: compile c version separately
Also compile the c versions in a separate module with their own
flags.
INFO Importing commit d47353c0e68d75d52f497b9e7f7ed4682f1a0a94: resample-native: small tweaks
INFO Importing commit d8e399dee926dc309ed9ad2819112c531d44cd0e: audioconvert: pass state to functions
Pass some state to convert and channelmix functions. This makes it
possible to select per channel optimized convert functions but
also makes it possible to implement noise shaping later.
Pass the channelmix matrix and volume in the state.
Handle specialized 2 channel s16 -> f32 conversion
INFO Importing commit 56158fbb629a7a866d8269991180735665f506b6: channelmix: do passthrough if identity
INFO Importing commit 5c896fedd5479d4626bf0f5f98c87eafaece2075: connection: stop refill when 0 bytes read
INFO Importing commit a44ee31abecf40cef0623beea6fd56cf26d4321a: alsa: write as much as we can
Always write as much data as we can and don't stop when we written
up to the threshold.
INFO Importing commit dc01b294a24c9684b29b4486907eff5e2ebae5fa: resample: return the number of consumed samples
We need to return the number of consumed samples, even when we don't
start from the first sample in the buffer.
Add some more logging.
INFO Importing commit 2340ae40a8e14231da75c982dbf31a981829cb6f: spa: install pod/vararg.h
INFO Importing commit 7a7a12138fb3818ac7ca3445f657ec460cf7d9c0: module-access: don't leak the fd in check_cmdline
INFO Importing commit 40a5063b9f176dc9b233ef615706af557a431790: module-link-factory: fix wrong goto label
harmless, but leads to a wrong error message being printed
INFO Importing commit ae3e5787af16e58a3d817562329090a744c8cf16: audioconvert: unroll some loop
INFO Importing commit 32f039e2e5e8eeab7f29124bbd14c6fdaac94715: core: rework how nodes are added to a driver
Add a function to recalculate all nodes associated with a driver by
iterating the graph for each driver node. We used to do this in an
incremental way, which is easy to join graph but expensive to
split.
A full scan simplifies some things and we can't avoid it when we
need to calculate latencies later. It will also simplifies assigning
master and slave roles to drivers when the graphs are joined/split.
When we link/unlink or add/remove nodes, recalc the graph.
INFO Importing commit 0db5817ed7c178ca524cce649f6f54790f734115: client-stream: Don't allow DYNAMIC_DATA
We don't want to use dynamic data for the remote nodes, the buffers
need to keep pointing to the memfd memory.
INFO Importing commit 787900e8bfda8c38ec13dcee4cdce8d3bc519cf8: v4l2: map all jpeg formats to video/mjpeg
INFO Importing commit 092a0c660d6885dbadb119369bb29b1f324c141b: make bitfields unsigned
Remove driver property from client-node of client-stream.
INFO Importing commit affc641c718bc998e9e781698c967aa46d56ba51: node: set master flag
Set the master flag when a node is selected as master.
Recalc graph when a node is destroyed
INFO Importing commit 45e22191490e6742143344b4dd22fa822c79d1b7: update submodule
INFO Importing commit 8b1e5fedc908a72ccc743b0bbdd97afae8eae0da: core: clear driver on unassigned nodes
INFO Importing commit 715594c6eff5c5d9a14201331310c65793069301: alsa: rework source a little in the case of slave
When we are slaved, read as much data as we have available and return
this from process.
INFO Importing commit bb3da2fcc198b32037689b8d2fd3c68ba1681314: remote-node: reuse activation logic in pw_node
Set the received eventfd as the node eventfd and let existing
logic take care of scheduling the node.
INFO Importing commit 01604e44957626df88268c9ca4df15e3a0b9c87d: submodule update
INFO Importing commit df4cb30c7a93cb8f2c1fb14f90a888593f615f82: ringbuffer: use spa_memcpy so we can debug it better
INFO Importing commit b7cc9ea10289951786b41efcb9537a69c8a6bdd4: alsa: improve rate control
Try to match the delay with the target delay. Use the rate to
adjust the timeout period for master or the resampler rate for slaves.
INFO Importing commit 2912d2506fd7422201cc76f237786eb05ca37a28: audioconvert: improve resampler
Also emit port info the the merger monitor ports.
Proxy params and buffers to the right monitor ports.
fmtconvert does not always have dsp ports
Increase resampler output buffer sizes so that we can up and downsample.
Fix little off by one in native resampler.
Fix passthrough in speex resampler.
INFO Importing commit 8dabd528078e6637fa800173c8fc3a20e461ebf5: audio-dsp: use audioconvert to get a resampler
INFO Importing commit 3b513fa7ae8c8ec051deea2458a5382478a3de0d: floatmix: remove some unused code
INFO Importing commit dcddd5080b9bdd06fb9c9775d49b8fdef016c7e9: submodule update
INFO Importing commit bc85837e2603334534b8d07d2f8bbabef7fa0bb1: alsa: small cleanup
INFO Importing commit f2cdba1929bb4ddea8476309ba6fe9ca61ca5c42: a2dp: handle slaving
INFO Importing commit 24f6fc2a34ff38079edf62c9c97d0e1ca3aeafbd: alsa: handle master/slave changes
INFO Importing commit 9b1da77bfc995156566ea3d260ab7236b99955b8: node: remove obsolete enabled state
We will create/destroy nodes instead of enabled/disable
INFO Importing commit f8513029a17c0217b1200f9a9c2cf45dfcc6eb38: node: cleanup, rename slave list
INFO Importing commit d8f39a7c020197e6eaacbfd3fec61aa942bee4a9: alsa: improve clock slaving for source
INFO Importing commit cd779a1c9316ecd05c4eed42569f2f9327d17cd0: splitter: disable passthrough in more cases
Also disable passthrough when we first negotiate output format/buffers
and passthrough is not possible because the output buffer does not
have the dynamic data flag set..
INFO Importing commit 9bfffc009dd4f5c7a99a9ac2a8c92940a9910abe: core: only follow active nodes
INFO Importing commit be5e79831c2338a05d871d8eadfab3345215e687: introspect: remove unused RUNNING state for a link
INFO Importing commit 9ec3e3ab6d78c1e4f71525055b828935a9b6864f: private: set min quantum to 32
Going as low as 32 is possible now with the better clock rate
estimation.
INFO Importing commit 317fd9fac522e329ec4f7af42fe00f478b4dbfcd: alsa: handle quantum changes
INFO Importing commit b43844e7c67afbce92235608e931ccd28e3b72b9: alsa: improve capture resync
Make sure we capture enough data even when the ringbuffer wraps
around.
Use the clock nsec to get timing, we don't need to get the new time.
Improve sync in capture.
INFO Importing commit 5ac383e7f75a34a494fe13f905f69f5326d1fb18: alsa: improve capture slave resync
When we underrun, send out a buffer of 0 samples and catch up next
time.
Detect discont in the master and resync.
INFO Importing commit 636c02d38b7cf4418b578fcaf45631765e23ca2a: audioconvert: fix native variable rate resampler
INFO Importing commit b01858931caeb8d025b4fdaa1fa13712aba6c119: v4l2: add camera media.role
INFO Importing commit 9a842e4643659bc43d0493c3fd3ed42c7c4976bd: pipewiresrc: actually use the fd when set
INFO Importing commit 35c2aca706a7cee00bdea271f65a385107539866: remote: only remove the proxy id when it existed
INFO Importing commit ecde090a1f6f59b094896ccb0d2bcd7c615321dc: pod: remove type check, it causes errors
INFO Importing commit 41ab051b68369804e692c8afa1f4cf4b6fdcef51: fmtconvert: fix format enumeration
Even if the other pad is already negotiated, we can convert all
formats to F32.
INFO Importing commit 1a7fcaf9c6b13e31405a023ba0be9ad78678af06: Fix cleanup
INFO Importing commit a70fd80c2d3fe68155338fbd40c55a5afcb0b3aa: fmtconvert: fix format enumeration
Rework the format enumeration so that it also return the other
rate/channels, even when using a canonical format.
INFO Importing commit a804b7126784c6eecbcead671261cb5f8b76e7dd: core: destroy all resources on hello
Destroy all resources (except the core) for a client when it
does a hello. This typically needs to be done after passing the
connection fd from one client to another.
INFO Importing commit 4e70cddf1d87f7f3ac5e8285d87d493e696f39eb: core: don't remove client resource in hello
Keep the client resource of a client around and make sure we don't
destroy it in hello.
INFO Importing commit a2bf4ce96ef8a993dcd867d0eac75c35bba57b3f: protocol: add security label to a client
Don't pass the ucred to the client construct, just set the properties
in the protocol.
Use the client properties to get ucred.
Add the security label to the client properties (from SO_PEERSEC)
INFO Importing commit 795b14f48b2659dd70436b2f112850f3e41f9eef: protocol-native: also handle 0 recvmsg as EOF
When recvmsg returns 0, also handle it like an EOF and close to
connection otherwise we keep spinning forever.
INFO Importing commit 2d3f30fb96fc9f0f0299b7f7fbd4716348a7620e: introspect: fix enum
INFO Importing commit 07ff96728524c6f396c7e67d4f9f6625e3bea65d: client: call find_permission only once
INFO Importing commit 23d0b9e5e21b87dcfb81daa316f33a699e9908b2: link: check permissions
When creating a link between two nodes, check if the owner of a
node (when it is a client) can see the other node.
INFO Importing commit 9221b8dedd3fc8f6e1a2a8f67700a336cb4095b2: global: combine all permissions of the object tree
To get the permissions of an object, combine the permissions
of the object and all the parent nodes up to the root.
This is necessary to enforce that a client can never see and
object id (in this case the parent id) it is not allowed to see.
INFO Importing commit 04c153d410f0aabcc07281800b148f29572bfff9: global: add permissions_changed event
INFO Importing commit 79fe89412a51dde98f5cde1097711cb02dd6b273: client: update permission before calling global_update
first update the permission and then call the global update method. This
ensures that any query of the permissions will have the new permissions.
INFO Importing commit a224234acd1fe1f4a4302bbaa1df2d1a4c7c8476: global: don't follow NULL parent
INFO Importing commit b474666e2e841a2cd37cfb49558ca60b37d8501f: link: listen for permission changes
Destroy the link when the ports or nodes are no longer visible
to the other side of the link.
INFO Importing commit d39d15b0d93c1c7532ff6799a0317ffe3ae3734a: global: keep track of child globals
Keep track of the child globals and unregister when the parent
is unregistered.
INFO Importing commit d7c7e9bf6f5f4f343b67aaf631e2e5c0f1c83594: global: update child permissions
When the permissions of a global change, update the child permissions
as well.
INFO Importing commit 2889db8efbb79423983a121b26baaff9f248eb26: link: listen to permission changes on the ports
If one of the ports becomes invisible to a client, hide the link.
If one of the ports is owned by a client and the peer port becomes
invisible for the client, destroy the link.
INFO Importing commit 29164a0f54e0fbbeb5faad1d0557f99e32e86fae: link: remove error from method
We return a reason in errno
INFO Importing commit 674f3e197e9209df1f27fb6f4f1abc4f5cff3090: bluez5: add a2dp-source plugin
INFO Importing commit e6c42d3324fe91b5867bafa1b2c6d3b1e7f73cc2: hook: add option to call hook with return value
INFO Importing commit 5858c992ef2e3f64c66276639820c97f79e47629: audioconvert: improve debug
INFO Importing commit 23d4ed62dd8793d88ab8f2dd92544a26f320c43d: device: rename internal variable for consistency with node
INFO Importing commit 903cbeb7c1c758e11c5e8cf6cec8eb9f3a1f2328: hook: handle port and factory implementation with hook
This way we can also handle the version number.
INFO Importing commit f6ace8a000a4ecbdafc59dc2af6ef27629266dad: a2dp: add events and implementation
Use hooks for the implementation of the transport
Add events to the transport
Handle the destroy event of the transport to release the reference
in source and sink.
INFO Importing commit a78617c6a82a08027f86a8e388875a6e9735063f: a2dp: cleanups
INFO Importing commit 6ee192dff5a19f95b25b5eaf11be42cf7b9990b5: hooks: use hook to implement the callbacks
This way we get the version check implemented and save some
code.
INFO Importing commit 448c1937adb1f15fe14e7262b2625431998b1dc3: hook: separate spa_callbacks from the hook
Make a spa_callbacks with just the functions and data and use this
in the hook and objects.
INFO Importing commit c348790ca1bc24398899ef14fd70db08334fe3bf: map: handle more error cases
INFO Importing commit 6cfddde39ccfb31febdf3531d89debc496982000: bluez: fix a2dp source
Actually compile the codec config and declare the config as extern
or else it's just all 0.
Only acquire the transport when ACTIVE.
Implement transport state_change signal and acquire the transport
when going to pending/active.
Try to acquire the transport before we expose the device if we
can.
Force device expose when we get the device ServicesResolved=1 property
update.
Free transport when the rfcomm is closed.
Implement various DBus signals to detect dynamic property updates.
INFO Importing commit e009fead09410846d3dc39cd9b8e8d4c717f296e: io: remove unused range
INFO Importing commit 4ae771ccc1506928225bd76ec13feafb787c637b: a2dp: also acquire when the state is pending
INFO Importing commit 3cb400bb6149ae0ae68aaa7d1911d23c4af26c2b: audioconvert: don't use range
Use the spa_io_position->size to decide how many samples to output
from the resampler.
INFO Importing commit 51e900c9d3122118855bf6f26c7c080c1a368eee: Remove libv4l2 dependency
It's not used anywhere right now.
INFO Importing commit b1c193346e352315ba32889f7e5ffe486a69d1c8: pipewire/node: Pass along 'media.role' node property too
INFO Importing commit 4be788962e60891237f1f018627bf709ae3981e6: core: fix pw_core_find_format() for active ports
pw_core_find_format() is currently broken when one of the ports is already
active: The format of the active port is used and the other port is
completely ignored.
As a result, the autolink module may try to link a new port to the first
already active port even if the formats do not match.
To fix this, use the format of the active port as a filter and enumerate
the formats of the other port.
INFO Importing commit da9f0ed160a6ddbd3c457fa800288a57716d2b32: core: simply load the dbus interface in core
INFO Importing commit b195a2563699d4dcf05d93fa16a8b5293bdd0532: pipewire: only load spa_handle
Only provide a method to load a spa_handle, getting the interface
from that is easy and we only use refcounting on the handle.
INFO Importing commit a564d9f3f1b46ee8591c8c88264c59e8f63acc02: Move implementation helpers to utils
INFO Importing commit 58fa5561b8860fecc82f0dcabce7942cf29a14ed: interface: get_registry always returns a Registry type
INFO Importing commit fbf6acd27120bf93ea23c2241b5a00a080b35c22: list: use spa_list_consume some more
If we know the item is removed in each iteration, _consume can handle
deletion of any item while being iterated.
INFO Importing commit f57a806cf81cbe53c3146c5a3b875d0317541a61: Return -EEXIST when registering an object twice
INFO Importing commit e20857ccd1091caf26bae95bc6510cf5df4e998a: destroy resources first, then the global
The clients see the proxy disappear before the global is removed.
INFO Importing commit 21cd78fe9eed53488f1dde5c0c688513342bd893: autogen.sh: Reuse existing build directory
Removing the build directory might delete important development files
as well.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 5f5403ff7541c4261684f19b7a796d07c5dfd698: autogen.sh: Replace symbolic link to Makefile
The autogen.sh script creates a symbolic link to the build/Makfile. If
the link already exists, a warning is printed and the old link persists.
Now replace it with the correct target.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 7af045cf93d24459013c19a334fb7f6498f9aa5f: autogen.sh: Put meson arguments right after command name
According to the meson man page, arguments go directly after the command's
name. Rearrange the call accordingly.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit ff44d5742611963a73d9647ef97d2abf8e1640a8: autogen.sh: Check for meson
If meson is not installed, at least an error message should be printed.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 83d1e37e2ce51a56dff38466da4bdab76ae413eb: autogen.sh: Immediately fail on command errors
If a command fails, there's no point in continuing with configuring
the project. Exit immediately.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit 10ec2859110c9bfda841bb21f9dda4e33b01702d: meson.build: Test for ptrdiff_t in <stddef.h>
The build scripts assumed ptrdiff_t to just be around by default. But POSIX
specifies ptrdiff_t to be defined in <stddef.h>, which is now included from
the test.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
INFO Importing commit c79a30bd8ad75fdd931623ff7b1832fb4a0a5f72: gstpipewiresrc: clear timestamps when processing a buffer
This is necessary for 'do-timestamp' to work if the source provides no
timestamps. Without this, the timestamp from the first use will remain,
because the basesrc only overwrites timestamps that are
GST_CLOCK_TIME_NONE.
INFO Importing commit 78fbcca660c0f09c358db93520ef69c3f7b24b71: alsa: handle alsa-lib 1.1.9
alsa-lib 1.1.9 removed /usr/include/alsa from the include path, we
must include <alsa/asoundlib.h>
INFO Importing commit eb6481efb3c3f4288c2e0156940ee10434577a11: fmtconvert: also return all formats when not negotiated
Also return all possible formats if the other port was not
negotiated.
INFO Importing commit ff946e3d4be276c8f36a656a708a4c736a3e15aa: interface: add an interface struct
The interface struct has the type,version and methods of the
interface.
Make spa interfaces extend from spa_interface and make a
separate structure for the methods.
Pass a generic void* as the first argument of methods, like
we don in PipeWire.
Bundle the methods + implementation in a versioned inteface
and use that to invoke methods. This way we can do version
checks on the methods.
Make resource and proxy interfaces that we can can call. We
can then make the core interfaces independent on proxy/resource and
hide them in the lower layers.
Add add_listener method to methods of core interfaces, just
like SPA.
INFO Importing commit 7bb6515800942658cd054a19367f16788d929d88: loop: cleanups
INFO Importing commit 3ad73f05321fd385dbddd94a31b36071248d15c2: keys: add keys.h with defines and docs
Add a keys.h file that lists and documents all keys available to
be used in properties.
INFO Importing commit a680f434d22f0855357e6aec02a3ce9dd1b3f4f2: port: use right properties
Use format.dsp as a key to mark the dsp format on a port
Use audio.channel as the key to set the audio channel on a port
INFO Importing commit 428cb5de75005300d7cf86cfb04aac4322badb70: port: ignore not implemented mixer methods
INFO Importing commit 51d15691143f9fb0fa60fb795e5f54c67e5ca171: stream: fix internal method call
INFO Importing commit 5b3336ce3e2374dbab2360b1c9e086b343f3a010: device: fix event signal
INFO Importing commit c44d65551696bb16a7974a71f364303d133c41ed: v4l2: use 32 buffers max
We don't yet probe the number of available buffers and so we might claim
to support 64 buffers but then fail to allocate that many buffers in
_use_buffers().
INFO Importing commit 891bb49dfb49d8353619c47bb358413e82e7df98: core: fix destroy order
Improve destroy order, destroy children before parents.
INFO Importing commit 973a92b49d3397405aa1fb3efed7a05377a5a24e: device: add free signal
INFO Importing commit 4661ee882cd3e1ab3fd86d9b65ad7604b6b2f567: spa-monitor: remove device when destroyed
Remove the device from our list when it got destroyed.
INFO Importing commit 5299677f8826d05cc700711154aff12d848afbd0: add const to spa_event and spa_command
INFO Importing commit 7d1a833b82c9a70950bbbcb0df2a21f472d9ab3d: add index of method, event and callback defines
INFO Importing commit c767ce62c944a5f80b051a4e63b92ec0c354f5ea: device: add sync operation
INFO Importing commit 857b2a0cfbae080ec23ad78c61188f0e266244f0: spa: add result type
We need this to know the type of result, especially when serializing.
INFO Importing commit 9420497dd96a9c033afec09f592e0a28f0dd449a: alsa: profile 0 is Off
INFO Importing commit bf677d55da8c121f0eb7a21908bd493c33785361: spa: implement node sync
INFO Importing commit 504b2da72b731343985e7469066a2e2112ab878b: device: handle async implementations
INFO Importing commit 67a1d317c45a982d7d6ad148bd3ce7f2df5cc464: client-device: add client device
Make it possible to implement a device out-of-process
INFO Importing commit 7ef99b8edba804ba448b0c2506bb894b8b590e86: examples: add export-spa-device example
INFO Importing commit 4754335d314ad3f12710415adbb8a153e2402e21: alsa: activate On profile
INFO Importing commit b1ea91fa1d78868404fa896cc49779407289e1a0: client-device: fix cleanup
INFO Importing commit e9ecc4769692ff550dd793872b20410221386632: clean up proxy and resource api
Remove override for resources, it can't work in general.
Rename method to add_object_listener to add a listener for
events/methods from the remote object.
Rename some methods to _call to call the interface and _notify
to notify the listeners.
Remove unused client event to be notified of resource
implementations.
INFO Importing commit 32ee1f045d2bdf038f1f6dc9043b2852e3973c80: client-device: directly map resource to spa_device
The resource is an implementation of a spa_device with remote methods
so we directly use this as a device implementation.
INFO Importing commit 0b4f56a586ea28e7c22de2345c8b3d10c0f92cfc: spa/include: install missing headers
INFO Importing commit 165f3e06ad62cd9fe53bf1e7837838b4ac1d29f7: client-device: add missing file
INFO Importing commit 3780bd1b3039f2ed21a2d8e80375e1092fbc2ace: spa: use core to load spa_handle
INFO Importing commit 9785d998213fdb32a91c9d22c214f22b72d74120: monitor: Remove monitor event
Remove the monitor event and emit events with structures like we do
for the devices.
INFO Importing commit c8cbb7e322e88167c6ffd6818ee5a0328345f37f: bluez5: improve debug
INFO Importing commit 11393ce9dd8e6eb60a1aaa80d0c34bd858ed2017: bluez: add api to properties
INFO Importing commit e1cbdaed0bc7da3aaa5af8dd62bbd1dc9e292afd: remote: add option for extra user data for proxy
When doing an export, make it possible to add extra data to the
resulting proxy for user data.
INFO Importing commit de51046fd5bc52cad7b7e5961ac528e2068c91ee: example: add example external bluez devices
Add an example for how to monitor devices, and make nodes that
can be used to stream bluetooth out of the daemon process.
INFO Importing commit d45569ce9ecac89913156bb48c25bc93f063e590: spa-inspect: zero listener to clear callback
INFO Importing commit acd797d780348b67d572cee0d84d1df0bf3df90c: add device.api property
INFO Importing commit 9d48021af1ba8e5fe6afb87788d1d9006b054ae4: travis: fix runing autogen.sh after changes to detect meson
On the CI docker image, there is no "which" command,
so meson cannot be detected.
INFO Importing commit 423f7ed8580e844d10260258b2f927cc01f7bfc7: travis: run make install and check for headers that have not been installed
INFO Importing commit 80488dba4a30f67490f211ede32d292898176e4f: daemon-config: actually use the stripped line
INFO Importing commit b9d904269514174cd69806b3b9cba0888925430e: core: add method to add and find spa factory libraries
Make a method to add a mapping between a factory name regex
and the library it is in.
Add a method to find the library for a given factory name.
INFO Importing commit 89a86db0c4c3decfc8cb48bedecdfdd176c10310: command: add add-spa-lib command
Add a command to add a factory name regex to library mapping.
INFO Importing commit 1d1f035e78bdf5be7910a8c72c393e283f6a1cb7: monitor: return factory_name in the object_info
Pass a factory_name in the object_info of monitor and device.
Restructure the factory name to mean something functionaly. With
the factory to library mapping this then means that the implementation
of certain factories can be configured in the config file.
INFO Importing commit d4def56bcb6e0d91ef68a521b29e03730c5f8bd4: spa: don't pass library around
Don't pass the library in the methods, we use the factory_name to
find the object. Make it possible to override the default library
with a property.
INFO Importing commit a672a9ee671bd34855d97662f473a32c7fba3b3d: modules: add usage to factories
Improve audio-dsp properties
Fix some keys
INFO Importing commit 009a33668b8329d7d15961d5c562be96db51285e: make property for monitors
INFO Importing commit 1f250046a36807dd3e901dd3393b1e89e16c32ec: plugins: fix compilation of optional plugins
INFO Importing commit 49ef8f9b5f3444f1d676f8e6d4973a85df2b3db0: spa: add keys for properties
Define and document property keys
INFO Importing commit 98602f0343c1b0d2962fc318f16a98536ae6d555: alsa-monitor: make valid device path
INFO Importing commit 81c7dd4433dfe4f432f66d8a00abdb90994e24f0: support: abstract some system functions
Make a new API to hide some the implementation of eventfd, timerfd
and signalfd along with clock and read/write/ioctl/close functions.
We would like to have plugins use the abstractions so that we
can switch them to something else when needed.
INFO Importing commit f5192d533fff2d3d3054591b5ab438cba7f3700d: system: pass right flag
INFO Importing commit 92d7da0103c71b063b2b8f21fed705079a4c6086: daemon: only use properties on core
INFO Importing commit 3f5c75c52d26c59831ea4267d923ae281b2db3f8: cpu: add CPU_FORCE option to cpu interface
INFO Importing commit 4c2b6c7c9199fd4fad4a70e05c5e6de483d2e995: log: add log level option
INFO Importing commit 86dc0496a51aa5c875f99e0fa4fda3fa917e9e15: simply use INTERFACE_Loop for the main-loop
INFO Importing commit db88e9f954d86a61940b141a58ad80e39242b7bb: System: More work on making system functions pluggable
Move the epoll functions to the system functions and make the loop
use those. Use simple mask for events instead of enum.
Add the used system api in pw_loop.
Add System API to spa_support and use it where possible.
Pass the system API used in the realtime loops in spa_support as
well and use this in the realtime paths.
Improve bootstrapping, load only the log and cpu interfaces because
those can/need to be shared between instances. Let the core load
the other interfaces.
Add keys to configure the System and Loop implementations used in
pw_loop.
INFO Importing commit f205504c26b18e85a21b0d417be3969e78db46d9: test-core: add more core support tests
INFO Importing commit 0a5bce4a3b6a278d3afd11a5e8242c09478b8026: bluez5: expose factories in the plugin
INFO Importing commit 504d78cd185d83e588f827b24972c1f12efd4986: improve error handling
Set errno for functions returning NULL if relevant.
Propagate errno and result codes better.
Handle more error cases.
INFO Importing commit c6c9e6a8b310ebdbf71d1338512c06b80a1e4728: core: add method to load spa_handle
Add a method that loads a spa handle based on the currently configured
libraries in the core. Remove duplicate code.
INFO Importing commit a9808a3edba243ba62dca8ced67a5f912a5fc0cf: thread-loop: set error correctly
INFO Importing commit d46c239ab093d3f002c381013fce04c2f4a305fe: some printf fixes
INFO Importing commit 497a8364c50a6bbe806b89a70374a35be105e3ce: printf format fixes
INFO Importing commit 8cda0dd96248f5f4d4bcbcc3a0f08d9b1deded14: test: clear resample struct before use
INFO Importing commit b2992a0f8a38578399fdecbc448f3bb715b456b4: improve error handling
INFO Importing commit c30d938034ce9bc2a247e5eb89e7d0ab04d7c0ec: core: improve cleanup
INFO Importing commit 58500445991427e8ad32539f0e3b2151ce88a61b: improve error handling
INFO Importing commit 216b641ebb8e0db17bef71cabe43bbad5675d1d4: connection: add do_close flag to connect_fd
Make pw_remote_connect_fd() not automatically close the provided
fd but let the caller take care of that. This allows us to reuse
the fd in pipewiresrc.
Fixes #155
INFO Importing commit c4f35825fe618ae9ac92970602bde20aad98f8ac: protocol: improve error handling
INFO Importing commit 00ea15dc1f46ed326930af229b3cb44f14570296: improve error handling
INFO Importing commit d1241e2c1c837ff59186f0d10c8261239ba80390: improve error handling
Make sure we free properties we take ownership of.
Add some more return values to functions that can fail.
INFO Importing commit a212d2f9ed096b7e6c6543dcaec84695dc51b4a3: improve error handling some more
INFO mv "src/pipewire/command.c" "src/daemon/command.c"
INFO mv "src/pipewire/command.h" "src/daemon/command.h"
INFO Importing commit 85caf0b485a12c2b83c79d7b159f3e6c515e9bb2: command: move command to the daemon
INFO Importing commit 03eeb945f396d35c0950fafbead592cfda47277a: daemon: add support for properties in the config file
Make a set-prop command to set a property from the config file
into a pw_properties. Pass this to the pw_core_new() and the
main-loop to tweak some stuff.
Move some warns to errors
INFO Importing commit 5b7e95c71cf63832e515343f32af02ba21fbbe81: system: make system functions return error on error
Return -errno from system functions instead of -1 in errors. This
makes it easier to pass along the result without having to go to
errno etc..
INFO Importing commit 4494f9c7c927d4d7b6f69bb172a352ed2eeb70de: log: use temporary log first
Use the default log implementation as a default log until a more
complete one is installed. This way we get log early.
INFO Importing commit 6720ded5296fe1d689041b1b4c7eb9b8a7315e4d: names: add standard factory name definitions
Define a set of standard factory names and document what they
contain. This makes it possible to change the implementation by
mapping the factory-name to a different shared library.
INFO Importing commit 9934e62fe420d629905c8a1f2a6f9c490ecefe42: don't use error()
INFO Importing commit ffaa365beff0e7f1d1f395800c14b1be26d8d007: Add evl system support
Add system functions that can execute on the evenless Real-Time
subsystem. https://evlproject.org/
Enable this plugin as the system library for the data thread and
all poll/timerfd/eventfd will execute on the evl subsystem.
INFO Importing commit cbe3a8839758b8284a8eafab53d39da9289fbdd8: evl: add build option
INFO Importing commit 49c435550702b767952140b49b6c7656e945846b: fix build
INFO Importing commit 76956eb41c52b996cb1dbf6b40ca173b622301a9: module: don't free properties twice on error
INFO Importing commit bb60708ccc6292d772053b161149f3599d6ccf10: pod: _builder_deref() always works with builder size
INFO Importing commit f19ca292e83987b72a75106046260d076b070c6e: builder: take size of the frame
spa_pod_builder_frame() should return the position in the builder
memory or NULL when the frame doesn't fit. Check the size of the
frame instead of assuming the frame is already written to the
buffer.
INFO Importing commit 15b6c7ef7e014b56dd950aac04d3043dfa5009c8: v4l2: warn when control fails
INFO Importing commit 350e8051a774845c5f8d29bf0c3270ec2b685b2a: builder: add _rewind method
Add a rewind method to undoes the data of a frame.
Add unit test for overflow and rewind
INFO Importing commit 891c5fd79dbac27d4a674a9b68f708d867ea7635: builder: make _rewind part of _reset()
_reset() should also rewind the work that has been done. We don't
need _rewind() anymore then.
INFO Importing commit bee88e52795aeb8d1ba846a0f9d59f61678921d2: v4l2: handle and recover from control failure
When we fail to construct the labels of a control, reset and
continue without labels.
INFO Importing commit 428e743116cd849f6a79a27864ec89751e4f7976: core: emit info when not binding resource 0
INFO Importing commit 57879cc80166149bb20818267c8a90d3aba2b8ff: cli: improve help message
INFO Importing commit 5833b7b2a7a1b9f0a1eb4c2f3d74a7c7e2e51ed8: client: remove recursive permissions checks
Don't let permissions of an object influence the child permissions,
this is not so easy to manage and needs some more thought.
The result is now that it's possible to see a reference to a (parent)
id that is not visible, but that's ok.
INFO Importing commit 170c3e4d6c3bef060960527e675935a4e791c726: small cleanups
INFO Importing commit 0726a608df9a69ff64429d9f23a03f56da518a3f: Improve debug and small cleanups
INFO Importing commit aba81455ff4ba06cca5a4a09d3b3d1bdb348f240: adapter: add adapter node
An adapter is like an audio-dsp node and client-stream combined.
It allows tighter control with the device (for rate control and
variable buffer sizes), software volume.
The idea is to also implement the client-stream with this
eventually.
INFO Importing commit 94e7be18459568fb6a5631f0551c0a858f00e2be: media-session: use adapter around sink
Don't use the DSP nodes anymore, use the adapter instead and wrap
it around a sink/source.
INFO Importing commit cb6b8e0d17ce940e21a56da979ba8d9301637da2: adapter: setup control and notify
INFO Importing commit 98d10bbd1f236c38daabb7ce2df445101fccf089: adapter: use slave as filter for adapter
This makes the converter choose the final param and not the
slave, which makes more sense.
INFO Importing commit 0154e6eaacc45e4849e7a7929b064dc55b4f2a55: small cleanups
resample: remove unused index variable
INFO Importing commit a6a7b3ab544da05dfd50def642c61da15c6fee21: resample: add functions to calculate in/out length
Add test for this as well
INFO Importing commit a3c0bb0e9ac544073e008cca45a5de30dccf5768: module: fix cleanup on error
INFO Importing commit 595dc0ab5ba83a74bda74014e70d1507ef287fc0: resample: fix phase calculation
INFO Importing commit c7d7058896e93daa04923a99fe726231487dcc3c: Improve rate matching and clock slaving
Use a new rate_match io area to exhange rate matching info between
sink/source and resampler.
Compensate for the rate match delay when scheduling timeouts.
Let the resampler notify the source of how many samples it needs to
produce the desired quantum. Make sure we keep an extra buffer in
the device to be able to make this possible.
Let the adapter directly call the slave node process function.
INFO Importing commit 7f885b6db4f442b38ffedc61b62cd0084a535380: add SPA_SENTINEL
INFO Importing commit 9364f64b10b13372a0e1b477decd03ca9699a683: adapter: move to SPA plugin
Move the adapter code to a SPA plugin and make the adapter module
use the plugin instead.
INFO Importing commit a07fb58a21ad087b805b628823542685650e8463: adapter: set driver property
Pass the node.driver property from the slave to the adapter.
Set the media-class on the adapter.
INFO Importing commit 1c0bf4266cd9373b401290521efc6473aa0ca756: adapter: fix alias
INFO Importing commit d7098d6a4c202e84b4a5ed23fd59253feb3b9809: session: handle monitor in the session
Load the monitor in the session manager.
Export devices to pipewire.
Create nodes or a device in an adapter.
INFO Importing commit a9cb74f9085754fb4231f58a4c9e75ade84eff19: alsa: don't clear io area ever
INFO Importing commit a9bce3803a400794cf1fa6dfa04126d252f6085a: cleanups and debug improvements
INFO Importing commit afd6e578a8478ff23f6be3c79b0e9d90111ef455: audioadapter: we don't need to clear the dynamic flag
INFO Importing commit a6ce5e7eeb03a1b64660030ae61bc40a93a10af0: merger: respect DYNAMIC_DATA flag when copy pointers
INFO Importing commit 6f672c883ec9ca5c2cee50615f17216182a7e1e8: node: always call output mix when HAVE_BUFFER
INFO Importing commit 00c2f6fe4f8ab3a11a8fca7d52da64c59615c2e2: adapter: produce output when we have a monitor
INFO Importing commit f8127943cdbd1aa344ee710e5ffd1bd0f7b483fe: pulse: update
INFO Importing commit 0e765de5194e2585ceb5a83a6c0d816fbbd8a124: props: remove pointers in property values in protocol
Mark pointers in property values with pointer: and remove them
when sending the properties over the wire to avoid errors.
INFO Importing commit 5334cecf51658e1f0578e27fc5c84f013b2987aa: node: return ENOTSUP for unimplemented callbacks
INFO Importing commit 1acefc00a6d9dd19500f0dbbcc129c46d0ddee94: audioadapter: implement reuse_buffer on the slave
INFO Importing commit 6655e09502fd5d483dcde4b1a90f8c3a2e7ae7b6: node: only update driver_list when registered
INFO Importing commit 01e56c45ac1e3e1ce1a992683a63adf416f16583: node-factory: destroy node when resource is destroyed
INFO Importing commit 356f1242becce80afffef80cda6b90f9c35ad997: a2dp: pull more data when needed
When we still have a buffer but it does not have enough data to encode a
frame, ask for more buffers.
INFO Importing commit 5385bb5674ea0f84ff8cb5b55de3fdbb6b9a05a9: adapter: make the factory work without a resource
Free the slave when the adapter is destroyed.
INFO Importing commit 57d471b6f45f2e4d3f4f289b9d0b75ac619e8a29: remote-node: implement set_param and port_set_io
Implement set_param, just call the node implementation
Always call port_set_io on the mixer port.
INFO Importing commit 3745f79fc5b7b49b65718af9561cc72449dab05a: media-session: create a local adaper+a2dp sink/source
Run the a2dp sink and sources with the adapter in the session manager
and export it to PipeWire. The idea is that the codecs should not
preferably not run inside the daemon.
INFO Importing commit 6fc02ca5e07617be54d9a0f4b269d4ebef4e6eb9: move some debug to trace
INFO Importing commit 129ccd3a3ee65e79cd754fe02f6a2ae5c3342f8e: audioconvert: do setup internal links and buffers also in convert mode
INFO Importing commit 10426790b06f5f468bf52afe936e0b0ef1ec8d5f: audioconvert: clear buffer allocation state as well
INFO Importing commit ea6ff81d4f24cae41015a1e3b26786fab3de3c16: audio-dsp: allow mode to be set with a property
INFO Importing commit 4aa1ef9bf186219cfd0ae28458ed59b1a799df01: audio-dsp: Allow merger.monitor to be set with property
Only set the factory.mode when not already set.
INFO Importing commit fec2915b75f4452086642ee101820e15b805c7d2: adapter: allow factory.mode to be set with property
INFO Importing commit 80face4b92a9d9c0a316deb1043340d6cfeb0c37: audioadapter: handle set_io errors better
INFO Importing commit 93006d6d9029e320f3634015ca7c38aed71153bf: resample-native: only do full resample when rate == 1.0
Otherwise choose the interpollating resampler.
INFO Importing commit 453e75a23eb7f0ecf89dc9e031e54ae3d50f35cd: improve some debug
INFO Importing commit 1a6fe0e023406260165d6c39bb82b3db58f6794d: module-adapter: handle errors with NULL resource
INFO Importing commit 9b7d5c81e027f4af3682bd76866f0e364b1398f8: module-adapter: only set MEDIA_CLASS when NULL
INFO Importing commit b0b379fc2a05e28909acdbbca454dfef916c72b5: node: handle async node_set_param
We block the client doing the call until the operation completes
with a sync on the node.
INFO Importing commit 0a6ee190182ef3fcc353334b62cee6fc56eac4af: remote-node: fix mmap offset
Use the right offset in the mapped memory
Clear the DYNAMIC data flag because we really can only work with
the shared memory.
INFO Importing commit 01d9f4eb3a9f902e0ee09983c0fd56fa741d9180: module-adapter: make it possible to pass the slave node pointer
INFO Importing commit 0cdc3dce0b593c0e84d76290b20ce0d0d71f940b: stream: remove client-stream
Use an adapter instead of the client-stream. This means we run
the audioconverters and resamplers in the client instead of the
pipewire daemon. It also allows us to implement the audio mixing
correctly in the capture client.
The only pending piece is that we now wake up the client with the
period of the server. Maybe we can later optimize that and
accumulate/split buffers before waking the client.
This probably needs fixing with video..
INFO Importing commit 6b82163e94062f6356e9bf1bf58af4a48bb9278c: audioadapter: don't fail if the slave can't provide a filter
When the slave can't provide a format or buffer suggestion, just
continue without any filter.
INFO Importing commit 3d302ffd4d90289bc3838a67683b796173bf7a7d: media-session: remove DSP node type
Remove unused profile-format
INFO Importing commit 24d4eb585f5a14e54e88ec6ade4c51c19939e654: adapter: improve port names
INFO Importing commit 7bb27344ba3dbf4755cf085e170099f76935a472: node: only add listener once
INFO Importing commit 71938e6c77ab6d4744c648c5b5e25a6b1731806c: make client non-busy when sending sync or ping
We need a reply so mark the client non-busy so that we can receive
it.
INFO Importing commit 30e5ad2b6a16a2c330e1374f46876cc59ad805c8: protocol: improve debug
INFO Importing commit a54efe85814bee82a20cb53368965abfd1884a92: link: set/clear io as part of de/activate
INFO Importing commit 11830871dfdc82329e39a849834450fd6946871a: client-node: improve cleanup
INFO Importing commit cf6fcb65c9b2a55892e26d4a1003a897dad47652: adapter: decide monitor ports in the session-manager
INFO Importing commit 461da71ae3c5831cb82b02b128ab8b915467aaf2: pulse: update submodule
INFO Importing commit 22b67cc95d0d685d6b1c240f6cd9d68367f5328f: adapter: remove slave hooks
INFO Importing commit 53d3d5cb0cc3cd4eb16bc5885ea4be1bc812b05f: improve debug
INFO Importing commit af1b012a70c4225747fd67a009dd1bbe771880a3: adapter: free slave in the module
INFO Importing commit 1612ed793ef43601f68c5553d6bced400370f5bd: core: handle slave_list in set_driver only
When destroying a node, move all slaved nodes to their own driver.
INFO Importing commit 1379d45e976a981a4027aecc9aefe85894ff0355: node: make destroyed nodes as inactive
To make sure they are skipped in the graph calculation.
Always update the slave_list and slave_link
INFO Importing commit 68208064090f80586aa1c112fd8687a86a5c5e3d: core: clean slave_list nicely
INFO Importing commit b23ca2e24d7e806c37dc18d96166d316497b38ff: client-node: track and free activation memory
INFO Importing commit a8bc8e1b1e605ca4d355d74cf48a7b184d4eff2a: adapter: improve cleanup
INFO Importing commit 2caf81c97c0aee3ac67f80233decbcfb830979e4: mem: improve memory handling
Add a memory pool to manage blocks of memory. Make it possible
to allocate and import blocks.
Add add_mem and remove_mem to the core events to signal a client
of a block of memory. Remove the client-node add_mem.
Make a global pool for memory and a per client pool where we
import and share the memory we need with the client.
Use the new memory pool to track and map memory in clients.
INFO Importing commit bae142661561aeca334957866b1254a050d66bcf: mem: use MemId to pass buffer memory
Track memory on buffers in the server and simplify some memory tracking
on the client.
Don't send internal memblock flags to client.
Add read/write flags to memblock.
INFO Importing commit e5778b874580f878e630faa69a64d0b67ff0325f: mem: set READWRITE flags
INFO Importing commit 5aa0ff21c6b5b287940766438777c968f5589df0: stream: only use adapter for raw audio for now
INFO Importing commit 18776b155b6231e3a81c2c4a4c5f4fc87150f19c: mem: Add tag to memmap
Add a tag field when creating a memmap so that we can do lookup on it.
This makes it easier to implement the tracking of mappings for io areas.
Remove custom io memory tracking and use the tags.
Add flags to spa_chunk to make data corrupted. The flags on the buffer
stay constant for the life of the buffer. Add flags to mark memory
readable and writable. Mark memory readonly in v4l2-source.
Pass the daemon activation area to the client in the transport event.
This never changes and need to be handled differently from the other
activation areas.
Use the right flags when importing memory.
Add the (desired) memory type to mempool_alloc.
improve some debug.
INFO Importing commit b314547702953a82ec5cacbd7b716b654a8cd728: videoconvert: beginnings of video converter
INFO Importing commit 8590ac158bb4f295f41e2c1acd6950f838e5e1d2: node: add flags to port_use_buffer
Remove the CAN_USE_BUFFERS flag, it is redundant. We can know this
because of the IO params and buffer params.
Add flags to the port_use_buffer call. We also want this call to
replace port_alloc_buffer. Together with a new result event we can
ask the node to (a)synchronously fill up the buffer data for us. This
is part of a plan to let remote nodes provide buffer data.
INFO Importing commit 2f3351ef9b73c715406e4ec9601fe0e34f96f4c8: node: fix compilation
INFO Importing commit deb6c52f76bf7598437ac69a8b8392adcb8ecf0d: node: remove port_alloc_buffers
Remove the now obsolete port_alloc_buffer, rework to use the
port_use_buffers with the ALLOC flag.
INFO Importing commit e76a7abceb7389365f0789d1f8853fd9b52fb5be: Add support for client fd memory
Remove the node buffers reply again. We don't need it. Instead add a
new method to the client-node to upload an array of buffer datas.
This method is called after the client has allocated buffer mem. It
will update the buffers on the server side with the client allocated
memory.
Wait for the async reply of use_buffers when doing alloc_buffers so
that we can get the updated buffer mem before we continue.
Let the link follow the states of the ports.
Add some error code to the port error states.
Add PW_STREAM_FLAG_ALLOC_BUFFERS flag to make the client alloc buffer
memory.
INFO Importing commit 40e3ba8bb49c642ad6ff8b6758d1d902bac8a8e2: session: only set profile on audio for now
INFO Importing commit c164cb80c815b7f2a0f52110d8d0f22c52004fa4: improve debug
INFO Importing commit 796d0133bf47e9a02a4b7a9120eeab3d4ad68ebb: Add function to import block and track memory region
Make a new function that we can use to track mappings of imported
memory.
INFO Importing commit 5aba40752d6c4b8156413d50c38944434adcfab2: node: use activation to check for completed graph
The driver node is not scheduled on the server side and so we only
know if it finished by checking the activation.
INFO Importing commit 3d2f5f2ab1b0a1f2f8d6568c77738779770d311a: link: go to PAUSED when mixers have buffers
INFO Importing commit a7d8e7e6ccbe236eb7d8d4a948a868494ff4edce: client-node: also track memory on the server
Do the same kind of memory tracking on the server side so that we
can remove the fd from the client when unused.
INFO Importing commit e11a81ba4f0b0ee1d5be3ac4a2a077b452377dbe: node: always pause in suspend
It might be possible that the node was not paused yet in idle when the
flag was set.
INFO Importing commit bf618c34404e88aa48219b48449785061c0a93c2: tests: fix unit tests again
INFO Importing commit 30576fcff8f2a2a1f77e9234aa6eb06c77c3e495: audioconvert/fmtconvert: assume F32 on the other port when listing formats
This allows picking F32LE as the default format on links that have
no restriction and it avoids failing negotiation when the restricted
end cannot handle S16/F32/F32P
For instance this pipeline would previously fail:
audio-dsp mode=merge ! audio-dsp mode=convert ! alsa-sink
old negotiation: S16LE S24_32LE
new negotiation: F32LE S24_32LE
The link between the audio-dsp nodes has no restriction, so previously
it would negotiate S16LE, which would then fail to negotiate with alsa-sink
because fmtconvert does not know how to convert S16LE to S24_32LE directly.
With this change, the middle link negotiates to F32LE, which can be
converted to anything.
INFO Importing commit 9869734250349205ec5507b06e08608bb85cd6a0: monitor: unload spa handle instead of free()
INFO Importing commit a16ea3b576c10dda05d0a2b29a1fd676e8f4fd20: remote: do connection in the main loop
INFO Importing commit a79e6737a96710f6b074da133fdaf49cd6503125: device: improve debug
INFO Importing commit 2772c9f55429a0b6de89c07a958a1315f2e70f36: bluez: clean up nodes
INFO Importing commit acf931abc5701475f38bb9237c4a05b05249ca9d: audioadapter: Format param is write only
INFO Importing commit f1ea49d6e9614fc3ee1eb1f79953bb6f7b89d771: mem: add size of tag to make it possible to check subtags
INFO Importing commit 4048a730e0d3d2dc690620db7d05d443c60cd324: remote-node: use remote from data
proxy could be cleared already when destroyed
INFO Importing commit 761460425006ab49149c6123617191b3cbacf6fa: improve debug
INFO Importing commit 960a82dbb98f25764fce57dd3e2751e54a5ff67f: client-node: improve cleanup
INFO Importing commit b655fd08f71889855efb0443b45014c2787d37b8: stream: destroy proxy on disconnect
INFO Importing commit b511bd2c6a7f444fab0fc5966a55ccca346b9452: spa: install missing utils headers
INFO Importing commit e5623400143d5406807129ec46c4238c0ad8d2f5: travis: fix the build script
It turns out that indentation matters...
My apologies that it took so long to figure this out
INFO Importing commit 29d73e343744f65dc481c846a2d128942b3e3271: fix compilation
INFO Importing commit d274497e3c01f160f5bcd1bd4d13f7638cb3477e: bluez: unset sco and rfcomm fd when destroying transport
INFO Importing commit de031b42b1d5e89dfb23d39317955c4b56f17c1b: bluez: add sco-sink and sco-source nodes
INFO Importing commit d6289639f1b7954813bafc6279584cb17a6b08da: media-session: keep track of peer
When we don't link to a session but directly to a peer, remember
this so that we don't try to link over and over again.
INFO Importing commit a377bfa3f1c63bc69e15fb8cf73c171afccae418: debug: improve debug of bool
INFO Importing commit 8982e157c4a70f5d5a21cd4ba8fab7327510bd41: port: handle NULL port info
INFO Importing commit f29d09807475184386eec58584474f8fc735981a: node: keep track of spa flags
INFO Importing commit acdfed0d0421c0a14b752ff03420679e6aac4aea: session: keep format with max number of channels
INFO mv "src/modules/module-audio-dsp/floatmix.c" "spa/plugins/audioconvert/test-source.c"
INFO Importing commit f41720e7db21aecf05299ced1b58fc2f0178f516: Add PortConfig parameter
Add a new PortConfig parameter to configure ports of elements that
are marked with the SPA_NODE_FLAG_*_PORT_CONFIG. This is used to
configure the operation of the audioconver/audioadapter nodes and
how it should convert the internal format. We want to use the
Profile parameter only for cases where there is an enumeration of
values, like with device configuration.
Add unit tests for audioconvert and adapter to check if they handle
PortConfig correctly.
Make the media session use the PortConfig to dynamically configure
the device nodes.
Remove audio-dsp, it is not used anymore and can/should be implemented
with a simple audioconvert spa node now and some PortConfig.
INFO Importing commit b3f450e859d32f5feeffaafea53d16e0c4a4f8b0: mem: fix errno value
INFO Importing commit 003076ffc7a465c8fc092a1b04c81d71a3822943: splitter: always fill up all dst pointers
INFO Importing commit d98a6d22d5f5c58d647b054a2734c0ffa47fa267: improve debug
INFO Importing commit ba118e26a36ccbcb675de32d557a3a42a86efc71: link: improve buffer negotiation
Don't free the buffers when the mix is released, this will happen
when nothing is using them anymore with port_use_buffers later.
Mark a mixer as having buffers when the output port has buffers.
Don't set buffers on a mixer port that already has buffers.
INFO Importing commit ee6689313368449c4721a09f7015c4d678633ac9: mem: use right flags when mapping
INFO Importing commit a319ec55ea583fb5fb952f1e6d6ba3b1ece3cec6: remove some unused code
INFO Importing commit 06446e0d643125fc420a2575046ba2bb741957c8: port: simplify buffer allocation
Use just one function to do buffer allocation on a port.
Remove some unused variables.
INFO Importing commit 447d1f94bf6844ee47683b30ad6195a80386a39a: jack: update
INFO Importing commit 6f8268df40b038d3f2463224a1872759f7da56ba: audioconvert: remove speex resampler
It's slower and less accurate then the native one.
INFO Importing commit 7cbdaeb3b69fcbe65a223ec013b8fff10e66b391: remove obsolete dbus protocol
INFO Importing commit 3ee9cbd57d9ed620e33991b287bc81b552be0514: fix errno values
INFO Importing commit a42c51768295e542246cc7e3ac0dfbca88696554: improve debug
INFO Importing commit b71f2dd716e755bb76e66008976a7cc4227804fe: meson.build: fix meson version warning
Features are used from 0.44 but min version is specified as 0.42.
Bump min version to 0.44.
Signed-off-by: Matt Porter <mporter@konsulko.com>
INFO Importing commit a1ec7f5fa7d6a0387444f15a59217a533070c4c1: pod: add helper function to copy array values
INFO Importing commit 65909b79648bb5c0437e3a10b5864852f989d319: props: add property to pass array of volumes
INFO Importing commit 4449cf61adce4ad7ca4ac64bed58f9bc5874699e: audioadapter: filter filtering
INFO Importing commit b8b2e494bd6f7f68f42cb090355671b48118126e: audioconvert: improve proxy of internal params
INFO Importing commit 1c27f4899284b09d9be6ce9ab1f3ca55e8ce5e1a: params: add PortConfig debug info
INFO Importing commit c6a7b3eedbc3fd2856cd536e68fb67475e36ae94: channelmix: implement per channel volume
Implement per channel volume on channelmix. Extend control on stream to
take an array of values when possible.
Remove name argument from pw_node_new and pw_device_new. We can pass
this as a property instead.
Improve properties on nodes to more closely match what pulseaudio does.
Don't let the monitor do too much with the udev properties but let the
session manager set the description and icon-names.
Remove some change_mask flags for things that don't change in
introspect. Use the flags to mark changes in -cli and -monitor.
INFO Importing commit 3e674f1646327b6539897c10df08008ca4f759f7: stream: find right media_class from format
INFO Importing commit 935de18aa5b4d4a73513afdc80ef62c0aa4126e5: port: return async result from use_buffers if any
INFO Importing commit b90c5b925a59a7f6931099953646f33a9328342e: examples: add example of memfd upload
Add an example of a client that allocates the buffer memory and
uploads the fds to the server.
INFO Importing commit 990357d72431a655df03de1c5031f7309774128a: node: fix method index
INFO Importing commit e827d65659f0ec5641a29a202ccc986b1defe2a9: stream: make the control info const
INFO Importing commit ab069d45be4308d51ba43030c174adc58ac31c55: stream: improve debug
INFO Importing commit 697976f416f7e610e8de929a8eff8c3cb44e55a9: audioconvert: only emit node_info once in add_listener
INFO Importing commit fa792a91a0bf0006b0710e0f5f448f27139a5445: fmtconvert: always prefer just 1 buffer
INFO Importing commit f6fca4845957fe080d4ea7008f8a60303a877289: client-node: always remove the previous io memory
INFO Importing commit 23812807ad0a66c5977465dcdea8a44d38eaac1b: pulse: update module
INFO Importing commit 6a8fe43a0c37cf00e8abbd9268d32152abd2d84e: improve debug
INFO Importing commit c879b85884da54d29f7f30e0c3afd0249a353680: export-sink: add more buffer space
INFO Importing commit d86e462dcaf251131bf7176f493eb6e141549f45: client-node: clean up buffers and other memory
INFO Importing commit 35f617157f163dc39fd1e46c58c67a883366c90f: proxy: improve proxy cleanup
When we destroy a proxy, mark it as zombie until the server removes
the id. This way we can still keep the id locked with a valid entry
and remove it later.
INFO Importing commit e3d19993e9fb66f1b912a556549b77438211a544: stream: EIO on format and buffers when disconnecting
INFO Importing commit 449d98910b312172d00d98efcabc12d3d864e07f: proxy: remove unncessary link in remote
INFO Importing commit 87ae7a8011f4c965cc018c6d1c9e58a078d9f284: channelmix: apply channel volumes correctly
INFO Importing commit 96ba0fbdeb75365c5a8056fb18cc5118509aebc1: client-node: only clear buffers when format cleared
.. like we don on the client.
INFO Importing commit 0af87d2685547ad34d451bcff30c08c232e6ec78: client-node: keep port buffers in special location
Keep the output port buffers in a special mix info. They should
stay there even when the mix is removed and should only be cleared
explicitly with a NULL Format or 0 use_buffers.
INFO Importing commit 37b57caf1100e9f10d31daedd2159aa37153ac2f: loop: pass loop as first argument in function
INFO Importing commit 78765e8d823b520cc38a3df049fb87eed245a9db: v4l2: set port ref to implementation
INFO Importing commit dff1cfe13ea39f6b6ea6b32b996ee01e3ba67856: fix example
INFO Importing commit 6f16d6ff8e281f422c6d01553ebe27cc6796816b: example: remove some unused fields
INFO Importing commit 954c96632c7adea0968bd89eda76ffbc5edd9da4: channelmix: try to handle 1 channel as MONO/FC
INFO Importing commit 47f0f1f9a3af00be541c23ee08fd8458c495014c: loop: flush items in invoke from thread
When we do invoke from the loop thread, first process the pending
invoke items before handling ours. This can be used to sync the
invoke queue before cleanup.
INFO Importing commit aa2e2f192bfc0ee79826c4734895a58ca257dd23: client-node: dont' send peer_added with our own node
.. because it's just ignored in the client anyway.
INFO Importing commit 8da7222c7eb9261106e7df70b26db9b8e6ceebbb: protocol-native: avoid NULL pointer access
INFO Importing commit 2f28e59c6310be787b8a1425887ee232d1195ad9: protocol: use Fd pod for fd indexes for easier debugging
INFO Importing commit 7ad111de4710c96d3caa4849d1adda3673c42418: connection: return INVALID for invalid fds
INFO Importing commit 23fe46b698d1fc628976bc29f3aa3604f089a551: stream: implement drain
Set the drained flag.
If the server calls us and we're out of buffers and the drained
flag is set, emit the drained signal.
Deactivate the node on disconnect.
Make sure we have no more pending process callbacks in the invoke
queue before when we pause.
INFO Importing commit 58fd46ebd10c995394c1f6f42c815f25ff21a15e: remote: remove our listener when the core_proxy is destroyed
INFO Importing commit 84ec90da2d211672dd4c6b6a0cde1a2ba70276d4: proxy: add refcount to keep the proxy alive in demarshal
We need to keep the proxy alive during demarshal because the callbacks
might decide to destroy the proxy.
INFO Importing commit 9807e7fdab0378a8dbefc173d08b95152834b377: pulse: sync
INFO Importing commit 774e11bc1010b787f956d0dd455e76e8af173075: keys: rename device.id to device.bus-id
INFO Importing commit 32ce5c4deb78deb0890e3d0b6988306074e2903e: properties: add function to copy list of keys
INFO Importing commit 8db4a797aaf11c0db2e447195f2700701df5a366: core: remove parent_id from the global event
Remove the parent_id from the global event. Remove the parent
and owner from the global object.
Use properties instead to mark parents and owners of objects.
Properties are easier to control for client exported objects and
usually a simple parent/child is not enough. For example, a client
exported node has the client as a parent but also the factory that
created the node.
INFO Importing commit d9050fcb724e611be21a12e9b129b807be5ad3d3: connection: use right size
INFO Importing commit 09eb121099108f7acc6055e3ce35cbfcd2ed9eaf: videotestsrc: fix format description
INFO Importing commit edbd9eb0776c263ee0888a1b4e1e47b319666387: video: add support for RGBA with 16 and 32 bit float
INFO Importing commit 9799b0e6799591a5652d803bdf2c5756c1fe72ec: vulkan: add vulkan compute source
Add a source that runs a compute shader and exports the GPU buffer
as a DmaBuf to the clients.
INFO Importing commit f1d60d6009d989edeaba608bb21c61811865de67: protocol-native: downgrade getsockopt SO_PEERSEC error to warning
Getting SO_PEERSEC on distributions that do not use a LSM by default,
results always in a "protocol error", which is just annoying and not
a real problem for pipewire's operation.
INFO Importing commit 0af5e981e0afa39243f55d4096fe4141d378537f: pipewire-cli: add interface filter in the list-objects command
so that you can now write, for example, "list-objects Node"
and see only the nodes, instead of seeing all the objects, which
can be hundreds...
INFO Importing commit 97b3c6d1d58950ca93a670198ab04c459632704a: travis: disable vulkan option
INFO Importing commit 38169ec5dbb75af7d3dc52f4bd353bd445fee243: vulkan: update some properties
INFO Importing commit 4f31ca538329e0067a6c83e8791c97c3e543f0f5: vulkan: only send out buffers when ready
Keep track of the buffer that is rendering and when it finishes,
move it to the ready queue.
INFO Importing commit 4b202b965665bbcb55194b4ab827984e5804e3e0: a2dp-sink: fix infinite loop when buffer could not be encoded
INFO Importing commit d00c641559e85f148241f7b6b3a21b6df807f7cb: protocol: we need to read Fd into int64_t
INFO Importing commit 5b9869200fcf8841e06f024ad94be8104fd9fba2: jack: add jack source and sink
Makes a device with a source and sink that automatically
proxies all physical ports from jack. Jack then drives our
PipeWire pipeline from its own thread.
INFO Importing commit dd69b1dd7d843902ca860e61be84bd7eb26519d8: alsa: advertize node params correctly
INFO Importing commit 6f5e6568c99326facb2ece5eeb3c06d603099194: node: warn when we can't set position on a driver
INFO Importing commit f746c29768b506fe86104401dc970469646140ad: jack: more improvements
Fill in the position and clock fields with jack values.
Advertize PARAMS correctly.
INFO Importing commit f8d5b3947aa43e0dbfd1286721ea106a3db55e60: jack: update
INFO Importing commit 8ed3cfe67937e239a38847724903802bd359ac7d: audioconvert: be more careful when clearing buffers
clean_convert() removes the internally negotiated formats but
it does not set the format (or buffers) of the externally visible
ports. Therefore, don't clear the buffers_set flags.
Instead, clear the buffers_set flag when we explicitly reconfigure
the ports, when we also clear the format.
Also clear the port buffers when we set a NULL format.
Fixes #178
INFO Importing commit 9351b14bf473854b1eaaccaa419b417b71deea04: remote-node: avoid map and unmap for our own node
INFO Importing commit 1a4713ee3ad09b5c71fdceccfe67ad980ca25763: jack: update
INFO Importing commit 3a43fac0c20057a622aae68e58d95e856f739c44: sco-sink: fix several timeout issues
INFO Importing commit c9e177827b6312ffc7f822a293ab304655e83599: node: calculate cpu time
INFO Importing commit 570575f052a8aa631f14aed7c5abe386c2c7ac70: pod: cleanup event and command init
INFO Importing commit 6ad4adc194b7b5aa42c5b04b935f64f5584bca83: node: add xrun callback
Let alsa emit xrun callbacks.
Write the xrun stats to the activation area of the node so all
clients can read it.
INFO Importing commit 93fbe121d069d5384c58be8966f84edf141e6499: node: tweak CPU load values
JACK uses a CPU calculation with an exponential moving average
with degree of 1/2.
INFO Importing commit f86ca635975afd36e445292e199a8335be87b34d: client-node: refuse params on the wrong side of our mixers
INFO Importing commit 8f01dd4c757099fce6732e61c689ddc5447c53ed: node: improve debug
INFO Importing commit ae457625d3aaf517b14e4ce40d53fdb26bc53ed4: client-node: also don't remove our own activation
.. because we don't add it.
INFO Importing commit bc88e1cbf86c8d70f02afbf9d9a7cb1db92a69c3: stream: add SEQ_READ/SEQ_WRITE macros
INFO Importing commit f36daaedeaf5db47e6e4305af895a2cd651db857: node: add flag to always assign a driver to a node
Add flag to always assign a node to a driver. This makes sure that
even when the node is not linked to anything, it will still be
scheduled by an active driver. This is needed for JACK support.
INFO Importing commit b356c83d32516dd929adeb29eac975c84e4d1dfc: node: add support for transport
Move some things around. Move the duration of the current cycle
to the clock. Also add the estimated next timeout to the clock.
Add a generic media specific counter to the clock.
Clean up the position_bar info. We can do with only a double beat
value and make the signature in floats.
Flesh out the io_position info. This has now the information needed
to convert a raw clock time into a stream time. It basically has
the same kind of features as GStreamer segments such as looping,
variable rate playback etc.. It also contains the state of the
timeline (paused/playing) and it can be used to update the position
and state from clients.
There is also extended information in the position field that
clients can update when they can.
Plugins basically only update the clock info they get (and use
the position info to check if they are slaved or not).
Before each cycle, check if there is a pending position update and
apply it.
INFO Importing commit 7c865f5db0469842b853bd1438fb0fc97caee10c: io: add support for segment
Move fields from the io_position to io_segment. The segment contains
the mapping between raw clock time and stream time in various
formats. We keep an array of pending segments available in the
io_position field so clients can anticipate changes.
Make looping a flag in the segment instead of a state.
Prepare for segment masters. These will be registered clients that
are responsible for updating parts of the extended segment info.
Add namespace to some defines.
INFO Importing commit 2805713da3e7c6463e4d5e3f51bef4cccd227a45: io: rename some segment variables
Also initalize a default segment in the node.
INFO Importing commit 0a15e1f80481259a76461132f135455e3c716cf0: io: add offset for clock times
Add an offset to apply to the clock time before we can compare to the
segment values. This way we can keep the segment start independent of the
clock values and we only need to adjust the offset when paused. It's
like the base_time in GStreamer to calculate the running time.
INFO Importing commit 84405dae2ad11d97deb33c1cfe986bb805a0ef17: node: add fields to support sync
Sync is enabled when clients need time to move to a new location.
It's a bit like GStreamer preroll after a seek. Clients that need
time, increment the sync_total. Whenever a seek is done, the server
waits in the Starting state until the sync_pending is 0 (or timeout
later).
Improve atomic operations
INFO Importing commit 5363d3352c628792ff332f526b6138b16ac77f97: bluez: process available buffers in read_ready callback for a2dp-source and sco-source
INFO Importing commit 35c5cf9b525f8a877fc570a6a25a948e6ab2c5b3: node: improve sync
Place the requested sync and position update flag in the node
activation. This way we can use our existing loop to update the node
sync states and check if the node is ready.
Implement sync timeout, when the client can't start or seek within the
timeout, we start RUNNING anyway and hope the client catches up.
INFO Importing commit 0d35f44fd9cd30a7c023510ca2cb7d659560bfa4: tests: add channelmix test
INFO Importing commit a910deb0fc2f015100514c75a424f843c35c3664: pipewire: set default log level to WARNING
INFO Importing commit 8afa5b0adaccb37779e11816623083ccfcd6b0f3: node: move segment owner into the io area
This makes it easier to keep track of who is responsible for what.
Also remove the valid fields and move them to flags in the segment
info. That way, the owner can update the flags without having to
worry about concurrency.
Keep separate info for the reposition information. We need to do this
to make it possible to seek in other formats than the frame.
Clear out the owner field when the node is destroyed or removed from
the driver.
INFO Importing commit fc770a5fbb9c3cd3ea4a3df65e67d83372adce69: jack: update
INFO Importing commit aaa6821052eda697138e246430c1712b06d2dc0f: jack: update
INFO Importing commit 001c0a5217597c62dfddfa29ac89f07559fe0ef8: alsa: don't compensate for rate match for very low latencies
For very small buffer sizes, don't try to attempt to compensate
for the rate matching because we would come dangerously close to
the read/write pointers and cause dropouts. Instead this latency
should be reported on the ports later.
INFO Importing commit 0f9594e1190b324d75c4b949a705ee923a01d389: node: add suport for quantum updates
When the node latency property is changed, trigger a graph recalc
to set the new quantum if needed.
Also update the driver quantum when unassigned nodes are assigned
to a driver.
INFO Importing commit 1bbb144b59e8e3fc38f28ed68de47aaeb2849228: alsa-utils: update the threshold also for capture
INFO Importing commit ca34a751731e2e64af460faf6b8da846b684427c: protocol-native: attempt to remove socket
After we grab the lockfile we should remove the socket when it
exists so that we can bind again. This should solve startup
problems after a crash, which left the socket around and caused
bind failures.
INFO Importing commit faaf84286b76423c2a187c94159b07ddb9c10c6f: node: improve position and transport
Reorganize some things, let the clients update the segment info
in their own activation, then let the server merge it. This avoids
clients stepping on eachother. When looping through the clients,
copy the segment info when we encounter its owner.
Remove the list of segment owners to the activation. This is better
than in the activation because we can then just keep one list of
owners.
Remove the NONBLOCK flag from the eventfd so that we can do blocking
reads as well.
Just keep a reposition owner in the driver activation. This points
to the node that has the reposition info. This avoid complicated
synchronization to keep multiple nodes from stepping on eachother.
Now they can just prepare the reposition info in their activation and
set themselves as the reposition owner. The last one who succeeds
wins.
INFO Importing commit 63414694560f2a35f0da1feaf3fcc63af40dae53: jack: update
INFO Importing commit 73628c91de2240cb23d9ee370ed0e18f1749cc91: audioconvert: refuse invalid channels and rate
INFO Importing commit bd2d0ebc75e97bebc56c9110848911f672b35401: node: handle target without node
INFO Importing commit 0eb270576647ed774320bbdd2c3d855db1ebf4d0: alsa: fix read of second part of ringbuffer
INFO Importing commit b1bfc900d66349a32402fbf3e2b7c1bd6597bb2a: improve: debug
INFO Importing commit a232e67dd873405079b1b444f4f4b00e11bdf16e: resample: completely fill resampler
start with a completely filled resampler so that the first
input byte immediately gives an output sample. When then have
n_taps/2 leading (almost) 0 samples.
Also make the passthrough resampler act like the real resampler
by introducing an n_taps/2 delay.
INFO Importing commit 88299ab225dc4e1466db4d8d5cfec052b6eb20be: alsa: add sync-id to properties
INFO Importing commit 4a4fa57efcc44452d53befe8e9524581c216236d: alsa: handle target better
Rework how we handle the current device fill level and our desired
fill level so that we handle it more consistently.
INFO Importing commit 729dd1360a899adbd4055e781c9afd06d96aaea3: alsa: don't set rate, it's set by the app
INFO Importing commit 3340f3cacc056ad51d5a601da94b431c2c108e54: core: don't touch unassigned nodes that don't need_driver
INFO Importing commit 9c9bff8fe915e6e45e4a23b943b0242c69501ef1: data-loop: add _wait function
Add function to wait for one iteration of the loop. This can be used
by specialized implementations of the data loop, like jack.
INFO Importing commit 0fe7f9765dd99aa768e4f7a418f4fa8cf7711ea7: link: use the port as the work-queue object
Use the port as the object/seq identifier of the defered work. This
way we can handle feedback links between the same node and identify
what port completed.
INFO Importing commit b9e517ee67b833071749293a3c8df8a8e7267c72: pipewire: add PIPEWIRE_LOG environment variable
PIPEWIRE_LOG will redirect logging to a file.
INFO Importing commit 3142d3b9796c4a1c38e9b4c91ff50b6258de498c: mem: add private mapping flag
INFO Importing commit ddd2a97f7e02a647ed9b3e94d3429a03ca656919: bluez: set bluez profile property when emitting node
We need to expose the bluetooth profile in the nodes so that external
applications know how to handle them.
INFO Importing commit c9855763c3efb0a076affefe50c4561732c837fb: remote: always close the fd in connect_fd
Not closing the fd causes leaks in existing apps. It's probably better
to always close it and let apps deal with that by using dup or similar.
Make gst sink and source dup the fd before connect_fd().
Fixes #181
INFO Importing commit 80ba0b2dcf0b49dc009f756ebfaa8641726f95b1: node: only put async state changes to work queue
INFO Importing commit 7fd6d6d820c5816589e8417cf6180b216e39be66: node: revert previous commit
Always add work to the work queue, some code relies on the fact that
the state change continuation happens from next iteration of the
mainloop.
Don't warn when destroying the work queue and there are still items in
it, this is ok.
INFO Importing commit 2d8bce7479e1d5941a8a1b05d83588e8888f8a73: names: add vulkan compute source factory name
INFO Importing commit d648ea4ad367964361e45fc1e8532dde1d8c8f59: control: don't fail on async port_set_io
INFO Importing commit 8b85cc225e938b1314a800d4c4584d75daec1c9e: rename HAVE/NEED_BUFFER -> HAVE/NEED_DATA
It is more generic and works with control-only ports as well
INFO Importing commit 4381e796325e478061f3250059491e70e49d7170: control: clean up some control includes
Remove control from channelmix, it's not used
Add control metadata
Add OSC control type
Improve some docs
INFO Importing commit 565f0475f07aefd846da5aeb0279ff9b19026d5e: tests: update test
INFO Importing commit 49a5e97d691feb122ef1ea5028831309592c8438: format: add application/control media type
Add a new application/control media type that can be used to negotiate
control streams between ports.
INFO Importing commit 59bf522ce1d901a171b4ea744d576101e222a0c3: system: use the same bits as POLL and EPOLL
Use the same bits for the io mask as POLL and EPOLL so that we
can avoid conversions.
INFO Importing commit 322ccb452c93f3435f06302573894af4f057ee17: small cleanups
INFO Importing commit d3c7acb137134bddff3bc8a8964600252d3fb674: iter: add helper to parse pod from memory region
INFO Importing commit ab0d1b7fadbf6e0b924422f20d1188f64757b36e: alsa: cleanups
Avoid getting the clock time just for debug.
Improve time at startup.
INFO Importing commit 818fb9e904a3ea43ba313994e404f1b63833c548: alsa: add midi bridge
Add a node that exposes all midi input and output ports and converts to
and from PipeWire control streams.
INFO mv "spa/plugins/alsa/alsa-monitor.c" "spa/plugins/alsa/alsa-udev.c"
INFO mv "spa/plugins/bluez5/bluez5-monitor.c" "spa/plugins/bluez5/bluez5-dbus.c"
INFO mv "spa/plugins/v4l2/v4l2-monitor.c" "spa/plugins/v4l2/v4l2-udev.c"
INFO Importing commit 6756a3c8fc47f46feaafe0373928110dc81124fc: monitor: remove monitor API and use device
Remove the monitor API, we can use the device API for it. Make sure
we support creating devices (like alsa) from another device (udev).
Use new object.id to store the object id in the object properties. Use
the port.id/node.id etc to make relations to other objects.
INFO Importing commit 77e07e1948ae1c8b38f9ca417d635f9168b0516c: improve properties on globals and ports
INFO mv "spa/plugins/alsa/alsa-device.c" "spa/plugins/alsa/alsa-pcm-device.c"
INFO mv "spa/plugins/alsa/alsa-sink.c" "spa/plugins/alsa/alsa-pcm-sink.c"
INFO mv "spa/plugins/alsa/alsa-source.c" "spa/plugins/alsa/alsa-pcm-source.c"
INFO mv "spa/plugins/alsa/alsa-utils.c" "spa/plugins/alsa/alsa-pcm.c"
INFO mv "spa/plugins/alsa/alsa-utils.h" "spa/plugins/alsa/alsa-pcm.h"
INFO Importing commit db341a64507a2171b4ad67bd8d0aa306e37ebdb8: improve properties on node and port
Rename some alsa filenames.
INFO Importing commit 197d2b15b60399416a372be5c57c15e6f4362364: alsa-pcm: small cleanups
INFO Importing commit 387b281f5c55b4c7dfdcd1191a07b820a7cc3ebd: alsa-seq: use dll to track queue timer
Also increase timer resolution to get less jitter.
INFO Importing commit f0b3ed52573ba3205d56a4fd2cd71d75b6edcf15: alsa-seq: improve timings
Track the position of the clock instead of our own timer.
Implement stop.
INFO Importing commit efe3aba6087e83f9ccd86d8648043dab395e546d: adapter: put port channel in port name if possible
INFO Importing commit 8d472befaa4474d4723c15860c1d1fbbc728b2b1: alsa-seq: Improve connection setup
INFO Importing commit f539b42a03b556f6c3de4379061f3e34d46b3c26: alsa: improve midi
Add some debug
Ignore ports without buffers.
INFO Importing commit 44840c4a55a76ca6e264cf2295c594b31d637166: alsa-seq: add some comments
INFO applying NAEKLARIGKCKCHIGI6FXKGF6JMLGYCRSWHGH6WYSC7AJRYWJWA5QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying Y5BQD2TLJHZFD6YXTRHJRAZWG6YRN4WDOIMIBDTV32FLKNLKUCHQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying CMB4Y6SSUWRE7N72VBYRYHHJXGLCNMDQ46UIUEMPURTF47XJ6PPAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying FZCHRT44CRTNAWKJSBYLP3H6W3GAV7IGPRE557L66PFRBEZT5ESAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 56K73HFDY4FSYZLQ2O6UCE5CJ54VUU6CUDAF2LSH7GSI7C6BMKBQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying AHHAEND2KZI6AQIJSDXUSWVI55RYCQDE4PMOLPB4ZJF5YPDMEQBQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying FWDVOLELJZUDLIKFBJADAY5DQVE2C3J4ZPVVNOC7F7YWLE57PI5AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 5J2CSF2WZ5ZOI732H4F6MQFSWLOIP3UKQV5UG63THL5SA7M5HCMAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 4D3I72BWNZJXMVSFPVWI2VR4SEPEZWXLYXUULGLOMLOJIQDQWDMQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying XBLL77AXA3QLV7XXCF75OBBPQ3WKYENV7GMRSPUL5RA2NZSVEKCAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying REDVRDHQBWMKHZNUIRZJKF3JYXSFI3U56NSVBMD4TEZT64XNUJTQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying S4FG7CQGF4ARDL56JITPE3V6GLHA3JMK32ZUYL7FPPYYUTUVAAOQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying FFN7IHYBE6DVCHNT2CFQL27MNZZBGD437L56C5JYN73MDF7YB4NQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying X6CK4OUY7HLWKU2GKEC4HPTXRVQRKAO3FBOWZDICFJJEYWXKYVQQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying C6CS3UHN3UFHLUQ52Z4XYCE4GMWNVEX64RCY7B622VW3PQXR53PQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying KYBVQDCGBO7HOVKJTLWPVBX2DOXXPDHCA6XBW5BA46T7VPRDJ3GQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying PT2X5RSRVOQSMRUYRJ7AIWB3IIJIMZPZFBHOJ2UMUQHAPVEJG6DQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying UFVP5DBAHGZF5LTWAIG3UPQHKMXDPZFY5I34TXBB2I2JGAQ5BEPAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying KUVBCLLQG6BTXXKSLVYLINKDQDTUNRREADTW2GY33TUVSGHWZCEQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying AHXZFM2ARLAZ7AQHVU2RK2APTZN2YCLM5MUUTLDWIXIQ3QUH2MQAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 5LRWC5FSMH7D5AGHLWDWNRPEZ5R4HRGVP4YDSN6GT6CX2DQ6LKAQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying WW5NG5SJOVU4AONI4MHXRTUEZGOC55YF7SRROPU5HPCTDWYIKNPQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying LF54TE2H3HP3FUYZAVTCTARFMQDZC4X5FQT235NC2X2QIE4LOVMQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 72RHHSMPLF4GDXR4PUUTM4UYS2HLSYJ5KAAKJ4HQNPDDZHDPGB6AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying PO3JG47P2UWBKOFXXGKNLHA3ALDPKKMPCNNQY6VPOQVWRAIFLGPAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 3AJIS7SYE7EAPGBPILLED2K5U7FXV3Z4XNKDXZI55ECMSWBW5ECAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying XAA7FYBTHE5GSJ2EWNUAUB3LIPUDHQNXOP3PNUUJBYQAENVAP5TAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying ZFFA5MP63SBEOUBYOE4U7PGGRVKVBIHCGHIWPZXPMUC5NXBAPIHAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying GWKXX2FF3P7IQKOUHJMMURTBCPQELM64ODDU2JH4XU4BOPWT2WNQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying RMOS4I53WIXR2N7G3RZ7N4JV7AMVOVP72XSYWUKMVPFXPI6KUKZAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying BY7G5YG3T235R4UARUXV3YFUFZ5N5KLJG5Q4PYYLF3RZBAC3DKBQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying TVCD6E2RMJWXPDFACSSSIBN2NS2R4RS2KT24N453NXWA3ZU5S54AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 2ZDOYIYOOKMV64FWYCIHCSJE5HI5NLL2X5FX4Z33WEMSBVEO3YVAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying A725NVIWZH7AKYM2BQ2YNE54N62T4UH2MZYD3VJME2YKTXPHGWTAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying SXS22QMDXKS5PHDCK3EZA6YPBA3Z5XCJ63TSRZITOYIFROCSQEAQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying BCY2EKIG5AYSK2V373LBMWC6OLDXN33VXCJBT7EENVTAPXUTDGOAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying XF5AQJRD7TMBDEHT5IM7JO6WJ4R4DJYVLNSYAM3K66ZRBOBR4MWAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 3X46LUDYAXRIZ7TGCJI3QFJJ5TDDRNJQE4Q7QR4JQ7A5KICVSHPAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying IXOXNFXFKSGI3GANJMGCPKGPR7ECLD6JS2QFGGLHLAOT6WFUYPYAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying GK5V6FXOBBDON2G3MEQ7HFGQZKJQMEJT325PPMV3MCSE6KBVDSCAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 622SNIRZIK7DFRK2KV47OK6DR2POXFGJWFF2NTPAZZUBILS4QG3QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying GYMJAW4TCJJNGEQ7LFND2AACJFBTS3DN5KVSVMZIY273NSBMUEMQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying M3JS534ODJIRBBZ4HJ7E3DQ3V3SCKX2QTKJAV6IGOHEYLMEXPF2AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying LD23TQWHZVD5DXAFALPVMYGR3IZ4TQ5CJHU7ILRMVEP6HRPRKULAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying OGY4NBOALYOBY6QVIA4OF556CWPXNH6GCUJRG6LO4SUDHSQVQ47AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying EYF7PC3ZY7DCYYVNQPD3GLALQMV7RZ3ULCBV3NXFPLFTN4OS4PMQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying NWUM7TDASU3HR7OJMF2UKWG3PBLN7RQJ2KSSVMY7M6JFVUXBJXOAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying SK3BTQASTOBTPLSNUNJRORJGFEZQ3X6ZIGTXX7JRDLMG56ZOJ2SQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying QN47EUV72BYSKPWONLBPOCUFRDAZQUEAT3RI6K6H2OCTPAB6HVWAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying RWCN24N46PHB5ZPX7GHNWR5FKOM5RF5BZQD2RAYC7OJKNPNAYBFAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying UHE4LXOD2ZP6P3QMPC6HGZJVLLSESDYFXWFGNLDF6PWFEPHD6D3QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying PSIMBOO66WHKZP4PNIYOEQU6QFNATL54WURMUDFYYR2VAATLBNTQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying HMGTCJW23NURKIIKASB5XYQOSNHLTFAWZY2KERLH7B2TZIISZERAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying VFAAMHTUZL5PSOVGRRVA7R2GQW3WZCD5V3YCZXIEDEBSYKS7F5NQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying VHRRIHKYOJPYCRGC4BH6KAQQ52XAU5UAZEM5SO6OGF7ISFUIWWPAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying UNHGUL2CJAM2FXFMRPLZHRNMYQSJKHRZWRAWEH2PRWOF7ROPTEHAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying BW6TYDEPEBLWOKH6MTPH3FQZU3ZE5OCBTMS6UTGU4QK5V43BTQUAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 227NBVBWKZGS3AHCXPJYF5STG6P7LMUW24P6K24NI7PXBUFE5G6QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying RYDZKWBNJ73PZXZMSNWAHAI2S3A2V6FDKXU6KXGQ4ETKA622XR7QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying GRGEPWYRA5L6EIGDLH4HP4PEORW33WMCELVD3P2RWMH3QWKZGCEQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 4ICBT4WA4YTD4SQEJI6HPUK5KLXRAEVSOYWS4EUUBSZGP5ATSOGAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying EFOIMOHJAMSOFSRXI4GG2KX7KWCFXLLITIGLGU3GH2CXBRS7PBUQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying UIP6TEQ25MU7LLLV22YURLORZEWR3TBJFIRVOO7OD5GD7QL5MTCAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying YFR4N5DPTE276LDY7XYURF464K6PLFPTVJXLXMZEIN4QMUA5ZZ2QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying U44FR7GMTDEQE5OXXTCKM4AI2NN4F2HV7SWK7XAUMERYIX3BZORQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 4EJTMXJEFIN7BVWFTCMPUIVDTNTNFRDP6HK4W3RXVG7PUZQILAXQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 34KWPHT3TGAMLRY5QXQLSB6W5PCXF6CBL2YOV2WJWEMDOAYPFRFQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying CCHYCVXWBKVMVI52I2PG2W4QOQRADRID5HQVSAHO4II4CV4BTORAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 7Y2OMLKGLDGCHBHYJDH4SWYF475DMJ7N4Z4QCOKO2UT65ARMEXVAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 5PRDRKZT6KEVRKUT5TZT756MZVYVDYKABTDYACT475UJXPCTZCYAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying H5TX65LJVASCOVPJB6MDJ72TYW5BOGR5VTAE3HOCUPVVBRIVVWYQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying KLN2GGJTR5T4JGE4KYENRAP5ZWG2OVWMBQG7FGRHNRZOTYF6J5WQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying QR7W35TEBGMNILYQ72XG3H4ZPFBH524E6KJSBXULGF7YELOWJYOAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying EI7PQBF3CUVGLGDXCSVY3LQ7CTYCE4XMSTOADHCJD6SACXUEADNAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying GKVFU35UWBA3O7MWVNSGI2Q63KKZUHIOHHGJTTVN5SHZYT52GDXAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying BTOQBQY5H75X73KBHGUICQWXYF5NMHFDKODTQZIR2TJFXYI2TH6QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying QPI7JJKMQ6BFSDFLQ7XMZMCCJC3NVPZFB5Y4QRJT4NHBUAYMSA7AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying RO5WZ5VTZIJWH56IBXM2JXJXL4X4QUGWJKJXAH7Y4VWKOQOFDWUAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying LLEHDLPANXFWV2NSUE6OWHHJPR6J5L4CCVQYC65VGAZD6XBNOTFQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying TQGVPK35M63TUHGMRTESZNK545K663TFEDURATD5YUBY2V3SP6BAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying ZU4TOEXSBQSWV57VRPGYKHRTWJSEDZ2BMABB4B3VIZ27JZP6KXAAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying MFFCDBUPJPZ7MK4EG2BCQ362XT4355KYJ36QH4S7ALF4X3SEHOBAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 27MBXSTINHBJIJCGMBGV5GNGPXZISFSWJO3K4NXQPYL7NSCFFJZQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying MJEN63HD7IL2XU34565XPLHOXXAGEZIPW3Q4MALKI7DC5VS3YZLAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying J2S2H4DDJJIGDPBFJ7JDNCJLX6WHFSZ66A55NTCYQ4LJLBT7JJMQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying WKU2T2YXPBGEFSRAITVAPZRFNVD6T5M37F4LMY3AA2OQ3KZTIFGAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying JK7IZI6TZXM3ZFZ3ABQUFPP72VMD7GX2IHS6OZZDKICL4OAW5PRAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying F2BQU3NCGVIWENNGT4RZ7B2ANQAY6E5G5YAE2HAOV6TXTROWMPJQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying Y6FBPNVAXTH2743HL3WJY457YF6CLFR4L7A5E6WTEFPNFJLT5TEQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 5VXMEVDKI6EE456LJTFH3GQBUQE3ID5CMLJ5HABX5LVPJUJQYQXQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying IT3DOGENMNSRQP5BBBN5FEEPUDWZW7ROTY2CKER7JXQQ2TYCJV7AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying S2PZL2XGVO4YWOSLW26GETF56CZ72QAYKSKHFIT6JJLSYGFWD65AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying UEMTYLIKV6JRKYOW4Z4SPCLDQUJFJKQH2HLCQL7V6GEZEUT25U5QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying QEU7SE3IKULRK66GSEBBGNEOKVPAEFKWAPJC7M7SE7YLCOX5BL5QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying TNZUK4ZWR3ZFTAIU46QXZD4ETR3CE4FVIXUBJRYPDFNN33GUKYMAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying KU4DSNBJUEHMALNKN6GHQVTPCP4ZXIEPCRFFF3QPVFG2OTGPXVFAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying HAH32T33RLG4URG3BLNFZZJUGKUACZQBTNDZPUFQZXCOKBRA5RSQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying ICUSINM2TN6DS6UOLNBPQ6JT53RU7JOUJORFVQSJ5SURPTPSJT5QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying FSBF5XAUWOSSBXHKZTWNATH5PJZT5ZKDBTOARV6MJDAUO3PPMGMQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying SJYE2OVHR6TG2UFYHUGKCKNAVK2GGRKMOOCSNXINHJLGY4X2TX5AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying GSLE32IYFJB2KU33HKPWVW2NHX5ZPLPOODF2SUDMNRDBME4MVK2AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying Z3XLGM3KHE7U7F6QRBBYRKVHINQ3B6REWMOCP2CUPXX5O3XLZHPQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 5V7GIT2TDIMBW5ZD5HQZFLUX5J7QTQYQVISX5ADTBPKSLPT5HN5AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 7FTWKX2CM27OBMKAHH4FWCEZYXBS5N6SKZEMF3RZTHS2EOAOJVNAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying MOJPMSGHLUS3UOP27QTKUKS2YBXC2EPE2TW7QTPIWRGUFTKVMPCAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying CAYVUMV62GJITG6X4EY2SSRCHG6R2QJBN3EZI6JVSV3XK5PTYIPQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 6SKZINQ5UDVEDXKVQO2G3AC4YDBQJMWH7CBZCFCC3NRLGQP3S7AAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying MZAQQYKSZO2TRBYYEQGUHWJO64BNTSPHUG2UYLNFSBTTFTLVLAIAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying FW2LNINPC5GF6XFEYTZTYAS2TNSEUVLTOMZMOWVVG3SOTUYILHPAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying UU4CHKMIL6XYA63VIWB6Y3NNNUBJHFW3X3JMEUZGDF7R2RIWSVBAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying GSGHQM3Y5JGBGPIBUQX7NSH5RCKC7JBC24KUSIBJIDZYU5JVLQ5QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying PVCDIUP5BBZKOZM3BGV4FKHDXXMTXPXF5OEC4ICSPZIT5HT2W6NAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 53GLSIRZ4VXOFOBDPCAWYMJL6KNZJZASUT3KK2YAP4E3O3D67M6AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying SFPVMDX7MXMF6L43WZZS25JI3U6OL4ETMG3GBO7R6VYLRLT6F6NAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying PGJVVTXZBQEXLAY25LYIDMHDI7FY24Z5RCSSM6KAXZYXZBKFSTQQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 5Q5PWNKTERYAZUISIXYBIWA5ETPWMDDEJJXE4KVYAS6A6OSHNHZQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying IOBXYYKYD7CYP4QEWKZ2YMATLGDWCREKFTF2B4UFX23KXGQVLXDQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying BXOUPRPTULISN5NT2TLQ5U324UWJO3ALDOKCIW6UL5HWGZHKV4KAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying WOELOOSGDCMMKVP4KRZYZ4O47OSJS4ZIJMS3A66HUXS4LYSZGI4AC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying FCQIUFKDDKMQ6F37HIVHCLIYDCM6UBVTTDSLAOLCPNSIIZSOTWZAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying SOUSZ32CTUENP7FMXHKCANTBNLJFZU2UQMXTSED7UBDMRS5AJQAAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying S4SZYSIQYQ5LM3SGJHLIZVPSFRGLCGQLSKVOJYLWQKBXWM7COB2QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying NAJ37P62F75PZ4QUETYLRPWMIBQDAD7JUE4CGNN3YKGPSJDR2DAAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 3Q7PI2GG72GL4X6ZK6O4ASKPGCPZ64X4H2PWJYWO7ZW7LRJIUGMQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 3IBVAHXC2P3FXAQPOTKAIPVZ2H5JOG4HS36O3SSSBHNHPRBSWFDAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 5RJG5JTPDJMUR2MGNGFGSMRB5DTZJBUFTDYLXYR4OOPARQ5CLO3QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying OJTRJZFMXJ2PC5GNHKFJ5IQU76HMVH36OHNHKNKFA4RUANBWND2QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying XV6RPHQQHEYJMPBFHYFEE4LIYEMOWILYPHW6WCKCIPHALX6BKFUQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying I4RT3Z6K42BOIXJ2EGN6WPZNJWQPMVE3NRGLTHRFN3FEH37L2UCAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 6YCWOPRZMZJVJRZZHBLT75Z53ZVNG2LLZEZX3ET2PK64ZMTXN3GQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 6FCALOJA7ER57J26XYSZ46Z7ZG5C7MKI36JOBQ5S2JUEIQNVHTWAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying OMWQDRQBNL3YWTTQVB7HHPQ7PAWC3KJZYCCRN2PHC5OTSD3JO6EQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying QAIHTPWRZ5BFAOFMOMFZGYBBBB3ISHLOFC2KQPGY5UXCFU6OGQNQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying Z46F6DH3HXF6Z5YBV2J74DKBZLKKDNLZ6T3KMMLSYNKHGAKR2KGAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying WNJCJQUJLMUB6JQG3CC2T4DHWTXUQNKTPVU6WX5LZ2BJYJPHD5BAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying P3LXI7TJMLCXROQ3ILHC4QVPHAYMBL5FO6RFFMHDNWR2ER5562XQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying 5PQIPQYCJJ6R3C3PBWNJLJZIH4N2C7Q2XSEM37UG3QTNDEI7W2KQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying OIKJXR3E7V2CISU6KUPXKKENU6SLLVSECYM6XIRC3YJGGSXECH6QC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying MKAFF3BJ5XWJ4HBVKRRQNJKNQSG3QDAPWYNW3J6SL5FIBH7T4LVQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying PQKMB6ZPGYYJUEEYJAGZ2QITHYQAGYIZJ3DQKPNSFRNLQMMYNWNAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying BVQBXXSFGFOPB4EV4MVTQBFDIYCLVY4EKR7WONOXQ3SCPWV5B7LQC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying FKM4RIRHFXN5MVVQWDU6SAE2R6XWGQDEZSAZMVDSYJT4FEI2IOPAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO applying NOKS244VZHV4QXMXI5TSK6XI4AI6MYHIC2FTECWNMVNVFYVQD5YAC to "8b69fbb27a078ecf6d19696427520e917d92f08f"
INFO mv "spa/tests/test-control.c" "spa/examples/example-control.c"
INFO Importing commit 8b69fbb27a078ecf6d19696427520e917d92f08f: Merge branch 'work' into master
ERROR While adding "GPL": Path not in repository: GPL
ERROR While adding "LGPL": Path not in repository: LGPL
ERROR While adding "git-version-gen": Path not in repository: git-version-gen
ERROR While adding "spa/include/spa/clock/clock.h": Path not in repository: spa/include/spa/clock/clock.h
ERROR While adding "spa/include/spa/graph/graph-scheduler1.h": Path not in repository: spa/include/spa/graph/graph-scheduler1.h
ERROR While adding "spa/include/spa/graph/graph-scheduler2.h": Path not in repository: spa/include/spa/graph/graph-scheduler2.h
ERROR While adding "spa/include/spa/graph/graph-scheduler3.h": Path not in repository: spa/include/spa/graph/graph-scheduler3.h
ERROR While adding "spa/include/spa/graph/graph-scheduler4.h": Path not in repository: spa/include/spa/graph/graph-scheduler4.h
ERROR While adding "spa/include/spa/graph/graph-scheduler5.h": Path not in repository: spa/include/spa/graph/graph-scheduler5.h
ERROR While adding "spa/include/spa/graph/graph-scheduler6.h": Path not in repository: spa/include/spa/graph/graph-scheduler6.h
ERROR While adding "spa/include/spa/monitor/monitor.h": Path not in repository: spa/include/spa/monitor/monitor.h
ERROR While adding "spa/include/spa/param/audio/raw-utils.h": Path not in repository: spa/include/spa/param/audio/raw-utils.h
ERROR While adding "spa/include/spa/param/buffers.h": Path not in repository: spa/include/spa/param/buffers.h
ERROR While adding "spa/include/spa/param/io.h": Path not in repository: spa/include/spa/param/io.h
ERROR While adding "spa/include/spa/param/meta.h": Path not in repository: spa/include/spa/param/meta.h
ERROR While adding "spa/include/spa/param/video/raw-utils.h": Path not in repository: spa/include/spa/param/video/raw-utils.h
ERROR While adding "spa/include/spa/param/video-padding.h": Path not in repository: spa/include/spa/param/video-padding.h
ERROR While adding "spa/include/spa/support/type-map-impl.h": Path not in repository: spa/include/spa/support/type-map-impl.h
ERROR While adding "spa/include/spa/support/type-map.h": Path not in repository: spa/include/spa/support/type-map.h
ERROR While adding "spa/plugins/alsa/alsa-monitor.c": Path not in repository: spa/plugins/alsa/alsa-monitor.c
ERROR While adding "spa/plugins/alsa/alsa-sink.c": Path not in repository: spa/plugins/alsa/alsa-sink.c
ERROR While adding "spa/plugins/alsa/alsa-source.c": Path not in repository: spa/plugins/alsa/alsa-source.c
ERROR While adding "spa/plugins/alsa/alsa-utils.c": Path not in repository: spa/plugins/alsa/alsa-utils.c
ERROR While adding "spa/plugins/alsa/alsa-utils.h": Path not in repository: spa/plugins/alsa/alsa-utils.h
ERROR While adding "spa/plugins/bluez5/bluez5-monitor.c": Path not in repository: spa/plugins/bluez5/bluez5-monitor.c
ERROR While adding "spa/plugins/v4l2/v4l2-monitor.c": Path not in repository: spa/plugins/v4l2/v4l2-monitor.c
ERROR While adding "spa/tests/test-graph2.c": Path not in repository: spa/tests/test-graph2.c
ERROR While adding "spa/tests/test-perf.c": Path not in repository: spa/tests/test-perf.c
ERROR While adding "spa/tests/test-props4.c": Path not in repository: spa/tests/test-props4.c
ERROR While adding "spa/tests/test-ringbuffer.c": Path not in repository: spa/tests/test-ringbuffer.c
ERROR While adding "spa/tests/test-v4l2.c": Path not in repository: spa/tests/test-v4l2.c
ERROR While adding "src/modules/module-autolink.c": Path not in repository: src/modules/module-autolink.c
ERROR While adding "src/modules/module-client-node/transport.c": Path not in repository: src/modules/module-client-node/transport.c
ERROR While adding "src/modules/module-client-node/transport.h": Path not in repository: src/modules/module-client-node/transport.h
ERROR While adding "src/modules/module-mixer.c": Path not in repository: src/modules/module-mixer.c
ERROR While adding "src/modules/module-portal.c": Path not in repository: src/modules/module-portal.c
ERROR While adding "src/modules/module-protocol-dbus.c": Path not in repository: src/modules/module-protocol-dbus.c
ERROR While adding "src/modules/module-suspend-on-idle.c": Path not in repository: src/modules/module-suspend-on-idle.c
ERROR While adding "src/modules/spa/spa-monitor.c": Path not in repository: src/modules/spa/spa-monitor.c
ERROR While adding "src/modules/spa/spa-monitor.h": Path not in repository: src/modules/spa/spa-monitor.h
ERROR While adding "src/pipewire/command.c": Path not in repository: src/pipewire/command.c
ERROR While adding "src/pipewire/command.h": Path not in repository: src/pipewire/command.h
ERROR While adding "src/pipewire/type.c": Path not in repository: src/pipewire/type.c
INFO Importing commit 56cf3196a2569113fd018dd4a37e5e33c37c3cb0: Update NEWS
INFO Importing commit 5183e1d4b4c54ad2a464ad58c95c489f93b4280d: bluez-monitor: fix usage of pw_properties_setf without a format string
Otherwise compilation will fail with certain -Wformat-security flags
Add the flag to the warnings.
INFO Importing commit 50fc65a07e1ce60a48096363af522d15ff290115: pulseaudio: update
INFO Importing commit 68fc530d9cbc0b1d628eb40f6c7e9d0761c24b67: remote: take ownership of properties in _export()
pw_remote_export() takes ownership of the properties so implement
this in the device and spa_node export functions.
Fixes #187
INFO Importing commit c59af4debc57cbe0bf7bab7dc027055fc62dadad: examples: copy properties for pw_remote_export()
pw_remote_export() takes ownership of the properties so make a copy
of the ones we still want to hold on to.
INFO Importing commit 024429ea7b9c1326579f88eef815612db40589d2: link: only set port io once
Only set port_io once.
Fixes #186
INFO Importing commit 990ecd20c5b012ca77d865bd10a30ddaf009929f: vulkan: handle older versions
Fixes #183
INFO Importing commit 4421cc473b04d163b7468d2f8045ce7940a9a68e: Revert "link: only set port io once"
This reverts commit 024429ea7b9c1326579f88eef815612db40589d2.
INFO Importing commit df495b5a8e98123d765f8d9c3a6908665c35bf57: link: fix the race condition of port_set_io
This patch is fixing random crashes when vlc player connects rtsp.
we have two places to do link_activate, one is in node_activate(1),
the other one happens on link_paused(2).
The order of (1) and (2) can vary for each different connection.
Sometimes, (1) comes before (2); Sometimes, (1) comes after (2).
This will cause one crash in about five connections from vlc to
rtsp.
If link_paused(2) is earlier than node_activate, it will do set_io
and make activated=true, then when node_activate(1) comes, nothing
will happen:
int pw_link_activate(struct pw_link *this)
{
struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this);
int res;
pw_log_debug(NAME" %p: activate %d %d", this, impl->activated, this->info.state);
if (impl->activated)
return 0;
...
}
In this case, everything works well.
If node_activate(1) is earlier than (2), it will do port_set_io, but
"activated" will still be false after port_set_io since the link state
can be not PW_LINK_STATE_PAUSED:
int pw_link_activate(struct pw_link *this)
{
struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this);
int res;
pw_log_debug(NAME" %p: activate %d %d", this, impl->activated, this->info.state);
if (impl->activated)
return 0;
pw_link_prepare(this);
... // port_set_io
if (this->info.state == PW_LINK_STATE_PAUSED) {
pw_loop_invoke(this->output->node->data_loop,
do_activate_link, SPA_ID_INVALID, NULL, 0, false, this);
impl->activated = true;
}
return 0;
}
Then when link_paused(2) happens after (1), port_set_io will be done
again.
This will lead to random crash of pipewire.
Signed-off-by: Barry Song
Fixes #186
INFO Importing commit 96ac81958b68ee1036ad4f1a23cfe6f1466d952d: properties: setf with NULL format is like remove
INFO mv "src/examples/alsa-monitor.c" "src/examples/media-session/alsa-monitor.c"
INFO mv "src/examples/bluez-monitor.c" "src/examples/media-session/bluez-monitor.c"
INFO mv "src/examples/media-session.c" "src/examples/media-session/media-session.c"
INFO mv "src/examples/v4l2-monitor.c" "src/examples/media-session/v4l2-monitor.c"
INFO Importing commit dc83c10c9a9bc954f652477e7ec0f9b53d197a70: media-session: add device reservation for alsa
Implement the device reservation DBus API.
When we acquire the device name, set our device profile to 'On'. This
adds our sources and sinks to the graph.
When we lose the name, switch back to 'Off' and remove our nodes
again.
Move the session mamager stuff in a directory.
Fixes #191
INFO Importing commit 82ee139f659fc3c7ffb35c717a92b12f2f57f746: spa: improve object properties
INFO Importing commit f59a43a4f09682b5591b94a141858cf810dd912a: v4l2: improve is_capture check
INFO Importing commit 3d48ba8394396fc8d8cadb1bff3514217ddd70e6: connection: move remaining data and fds
If we can't send all of the data, move the remaining data to the
start of the buffer so that we can send it again later.
See #111
INFO Importing commit cc8e992cd155b4f19312a5036c7b744fc547410f: protocol: improve flushing
Use the IO_OUT flag to schedule flushing instead of a flush_event.
Handle EGAIN and wait for IO_OUT to try again.
Fixes #111
INFO mv "src/modules/module-adapter/floatmix.c" "src/pipewire/mix/floatmix.c"
INFO Importing commit 6e0ffb0c47ca58c5ad8dc04493c021a29763898a: flags: change flag macros
SPA_FLAG_CHECK -> SPA_FLAG_IS_SET
SPA_FLAG_UNSET -> SPA_FLAG_CLEAR
Add SPA_FLAG_UPDATE
INFO Importing commit e04d58ee3adfcbbccf855e8398c2383434ac7998: Improve some debug
INFO Importing commit 93a2defbb8c41bea05fd24ca08226cbf11465a13: alsa-seq: reset buffers
INFO Importing commit 4a47bf47062fa913a067e0a146ac34d2a152be24: buffers: refactor buffer allocation code
Refactor the code in pw_link to allocate buffers. Add some more
options and make it generally useful to negotiate buffers between
2 ports.
INFO Importing commit 5cfb6634f4522d5845b329bc7147a11aac54cfff: port: select a mixer when we set a format
When the port receives a format, look if we can find a mixer for it
and configure it.
Use the float32 mono mixer when possible.
Use the new pw_buffers in the link.
Let the port allocate buffers between the mixer and node when
requested.
The client-node doesn't need a mixer because mixing is done on the
client.
Remove all mixer and buffer negotiation code from adapter because
it is now done at the port level.
INFO Importing commit d4fab985a2562ebd21036c9b6c44afef3498c788: small leak fixes
INFO Importing commit 9c4e5f4e27842e74f433aec4642fafa4f48912d6: port: improve buffer handling
Remove the buffers_move method, it's not needed.
INFO Importing commit 6e0c279bc1fe76d6d9c25444d3aeba6e5476778a: improve properties on objects
INFO Importing commit 0a6ad1adec3a27d333746303a5abea0b746dc057: alsa: only emit PCM device when available
Only emit a PCM device if the device actually has one. Otherwise we
end up with a useless PCM device for a pure midi device.
INFO Importing commit fb95e7660a6a20a477a1c71990f7ee485aef8363: media-session: start the midi bridge from the session
INFO Importing commit 1f700e7cddd96b4dd99ab8ba199f678c10295fed: dict: add SORTED flag and faster lookup in that case
INFO Importing commit 36904e1612598d9f58ce1e199f6c24a0beaf1cce: dict: add function to sort
INFO Importing commit 1c2331059546daaf949314d17531e3d351a02649: Fix typo
INFO Importing commit 27eabede3592315ac6fa011afe385f70d83c589b: volume: fix build
INFO mv "src/pipewire/mix/floatmix.c" "spa/plugins/audiomixer/mixer-dsp.c"
INFO Importing commit 0ecbe4844e4bceeb5684bccdd5bdee3ecd6b4c2f: mixer: Move floatmix to the audio mixer plugin
Move floatmix to the audiomixer plugin and change the name to
AUDIO_MIXER_DSP.
Add runtime selectable sse and sse2 optimizations.
Load the port mixer plugin dynamically based on the factory_name.
Add some more debug
INFO Importing commit 5693d72fcb0a0290faedcce64c57a3820a5cc660: audioadapter: expose parameter in port_info
INFO Importing commit 9aadc753c00e23e6ec10627f6ab1960d77579ffd: type: add missing type-info for MemId
INFO Importing commit 9d842fb5ebb87cc8fda25e97c340db091cb54958: improve debug and error reporting
INFO Importing commit 117db11f7e67c230fc4b3fd4656295dcdbe5b923: Remove some unused fields
INFO Importing commit d99350635a740c2e9ef1c3b3faeccc875252c1ae: protocol-native: add flags for future extensions
INFO Importing commit 082463efd0c0794d1d41f12c1b3d8797235e56fd: protocol: add v0 compatibility
For flatpaks we need to be able to support older v0 protocol clients.
To handle this we have:
- the connection detects an old client when it receives the first
message. It can do this by checking the sequence number, on old
versions it contains the message size and is never 0, on new
clients the sequence number is 0.
- We add a new signal at the start of the connection with the detected
version number. This installs the right version of the core proxy.
We also move the binding of the client until the hello message is
received. This way we can have a new client connect (portal),
hand over the connection to an old client, which then removes the
client binding again in the hello request with a v0 version.
There are some changes to the passing of fds in v0 vs v3 which need
to investigated some more.
- bump version of our interfaces to 3. This makes it possible to
have v0 and v3 protocol marshal functions.
- Add version number in the proxy. This is mostly automatically done
internally based on the version numbers the library is compiled
with. Where the version number was in the API before, it is now
actually used to look up the right protocol marshal functions. For
Proxies there is usually just 1 version, the current one. It is the
server that will support different versions.
- Add v0 compat marshal functions to convert from and to v0 format.
This has some complications. v0 has a type map it keeps in sync
with the server. For this we have a static type map with mappings
to our own v3 types. Pods are mostly the same except for objects
that used to have arbitrary pods in v0 vs spa_pod_prop in v3. Also
convert between v0 spa_pod_prop and v3 spa_pod_choice.
Formats and commands are also slightly different so handle those
mappings as well.
We only have marshal functions for the server side (resource)
v0 functions.
- Add v0 compatible client-node again. It's a bit tricky to map, v0
client-node basically lets the server to the mixing and teeing
and just does the processing of the internal node.
INFO Importing commit e18ca6e9c831b429bb419c6c132b420da54a92c1: protocol-native: don't try to flush when the source is gone
When the connection is broken, we destroy the source avoid trying
to flush when the source is gone.
INFO Importing commit 2b75f28d8bb7adc648c5bdbb384e8d082f923657: remote: create/destroy mempool with the core proxy
INFO Importing commit e28b5b8232e913111884458608ca025ecdb1f166: pipewire: return better errno symbol not found
INFO Importing commit 6ad52b1a11f19ce860d60d6d293267d41142bd32: iter: check if size can hold a spa_pod
INFO Importing commit b37bf7e06898e1da12b8dc7285ccd04092d4df6a: alsa-seq: ask for more data when consumed
INFO Importing commit e0f79bcbb82b96e22c196671163ce2980cd2a16a: io: add some more docs and memory io area
INFO Importing commit 0978343e4483076e041ceac36a8e2fe61d517418: buffers: make max buffers a config option
INFO Importing commit 8899d00bfc9d20083c1ecb5a6d459356415dc1d4: control: add control mixer plugin
Add a mixer plugin for control messages and plug it in ports with
control messages.
INFO Importing commit c8ffcaaefe60facee55d53cc38bfd294fc1934ea: plugins: just check the data pointer
We don't need to look at the data type, we just just be happy when
the data pointer is filled in.
INFO Importing commit 7798cf7364af2497305e225efb471338aacb913e: core: improve alignment
Use the CPU alignment to align memory of allocated buffers. This makes
it more likely that all CPU optimizations can be done.
INFO Importing commit d8eb7ce81f22bc3e696c3adff5e8ba76c3244715: audioconvert: fix avx flags
INFO Importing commit e2f6a7a34e3fda0f8f413e081d8baea60599c9ba: audiomixer: add AVX optimized mixer functions
INFO Importing commit ecd8dbc7f0ae217442b1aad4bc9fed35838877d5: node: add node.priority
Add a simple priority to nodes.
INFO Importing commit 102bd21d0efb1286d66781b8c01f90f3743ae99a: alsa: lower priority of cards with device not starting from 0
INFO Importing commit 2758a4555f8e171b41fa366833e88fd7f3fc9c7c: meson: enable mixer
INFO Importing commit 566640a21bed7c3b0b5f1eb586ed154ebe767c54: audioadapter: fix switch between master and slave
When we get worken up with a callback, mark ourselves as a master
because we then need to avoid running the converter again in the
process callback. After we perform the process callback, unmark
ourself as master and wait for the next cycle.
This fixes switch from master to slave for sources.
INFO Importing commit 92d5c179d6bcef250d3bf6c73b4949b00e1213de: tests: set the samplerate in the format
This works for now without a samplerate because we ignore it but
it might not in the future..
INFO Importing commit 1eca773145a0c69579627e364761c1bb8cf40540: media-session: only deal with state when it changed
Look at the change_mask and only deal with the state when it changed
or else we might start the idle timer again when something unrelated
changed.
INFO Importing commit 2e3608a34f7544adf5980b91198a3739136934eb: Improve some debug
INFO Importing commit f5b9862a89c61ab7709bc2429afbb12d9ff40973: alsa: tweak xrun recovery
Don't try to resync right after a xrun.
Init the dll after reslaving.
INFO Importing commit 116676e14953a2c444f532a61c04d00a790866ed: node: add active flag for rate match
Add flags to the rate match io area
Add flag to activate/deactivate rate match
Set active flag in rate match when slaved
Update rate before starting resample
INFO Importing commit 128a8e6c3c6ba10385cd9744652d24bec44959a1: cli: add create-device command
Add create-device command
Add short command aliases
INFO Importing commit b284988755f89ecff9d6e7a2f1a61bf74bdf723b: jack: improve shutdown
INFO Importing commit b3d72fb82d64a77a0ea705faa791ea8b1ec89319: jack: improve properties
INFO Importing commit 34a1a988ba31f446b6aed77a7fe5adb510776db0: session: make a jack device
Add a jack device and activate it when we release the device (for JACK
presumably). We need to work around some issues, jack does not allow
us to connect yet when it asks to release the device so we need to
wait a little and then connect.
INFO Importing commit 3aa19dd38a83505d247eb0f432d9dd39e1eab904: node: send Suspend to the node
Send suspend to the node when suspending. This is usually the same
as puse for all nodes.
Implement negotiation when we Start audioadapter. This makes it
easier that to track the ports that are negotiated for now.
Use Suspend to clear the audioadapter negotiation.
INFO Importing commit 659152d3928890e012ee21ede116b660d84ad0d5: list: improve spa_list_for_each_safe_next
INFO Importing commit e10a74785cf35559d85508a4721f61f7d4209ae8: pcm: don't complain on Suspend
INFO Importing commit fa25900682ef77168f712c7b8a55a0bb49d0d62a: alsa-seq: fix for being a slave
INFO Importing commit eb1d675cb0dc64a79ca401d91b6b5f7bf3b43f5d: node: add master priority
Change node.priority to priority.session to indicate that this
is the priority that the session manager uses to select the node.
Add another priority.master that the core uses to select a master
driver. Keep the driver nodes sorted by master priority.
Let jack always prefer to connect to the master driver nodes.
INFO Importing commit ff96165035fa77ca8869a94f5bbd663ab3290d62: Improve debug
INFO Importing commit 0500454ac94273d1ae29eef230716e8c5f8c3621: jack-device: improve device name
INFO Importing commit 2ac8be4ac7f693aaf3be7912d20717fd2f185c39: audioconvert: negotiate when starting
Don't try to negotiate from set_param and use_buffers, instead
negotiate when we Start and clear on Suspend.
INFO Importing commit 54f6834de4494deb725e33e436eb820803fe7a05: io: add clock_id to clock
Can be used to determine if we need to slave or not.
Add node abi test
Fix some headers
INFO Importing commit 5383782336fa08b9c6da7f2c6981db3721b94e65: alsa: Disable rate matching for the same card
Add a clock name to the clock, remove the old api/clock_id. This makes
it easier to add descriptive names
Place the alsa card number in the clock name.
Check the clock name of the master clock and if it matches our own
clock, disable rate matching.
INFO Importing commit 9f4df5ee40d8a2654b016ec7f031d08753b88b55: alsa: add some debug, tweak resync
INFO Importing commit e8464cf1b3eae2a1239a45072464f5068fb16113: port: fix client-side buffers again
Clear the ALLOC flag for the mixer use_buffers only when the node did
the allocation already.
Fixes #193
INFO Importing commit 38bc80a3b89f1679c818003757d918ea777da829: remote-node: implement suspend
INFO Importing commit 320dc203cfd8ad9b9520d8b59ed7625f64b09594: export-spa: print node id
INFO Importing commit aab72a70e6d9235b4a8102bf130abc6beb5b471b: submodule update
INFO Importing commit 3c9aa2e96c30029e42af57fa99adc057f26dc94e: fmt: add sse2 optimized s32->f32d
INFO Importing commit b74080ea55fe6fe0850961e05b48b230feac8142: alsa: give capture stream highest priority
Make sure we always make the capture device a master. We would prefer
to only do resampling on the sinks when we need to.
INFO Importing commit 12fb58add10f0d118c6c0e24db1ecd47c488f465: core: explicitly calculate min and max quantum
Just clamp to default for now until we can implement power save mode.
INFO Importing commit 605a0a6f9731961f3aaed15ad505ece4aa18e566: jack: increase max buffer size
INFO Importing commit 2fa97daa24cac839ac23783450a06bc6bb8876dd: add some constants for max samples
INFO Importing commit f30b4bf5062fca18ce5c1230f7ab4fbf970fa63d: alsa-seq; remove latency property
INFO Importing commit 81fc595e3d7410d22e1d14b96d22d52b424f38f7: add defines for max buffer size
INFO Importing commit af73585948af88ab1963bae560402e4cbfc802d8: Increase max buffer size
INFO Importing commit 9ffec214b82a9f297e7a39d51e5bbadfc4da74b8: fix includes
INFO Importing commit ebb5ed94a267489447f0a0ac96b37cfd8080b734: add some docs
INFO Importing commit 8d512822cfb911132b86837e313b95660c948a67: fix the build
INFO Importing commit 121586cfae043a618b3c0e56c3ae58ba932d7174: fix build
INFO Importing commit c904809e759059b31734d022a421ba1531d86dc5: param: move param_info to params.h
INFO Importing commit 4f5a5fc9179cd3afea9f81ad75e181be13854abb: vulkan: tag port as video DSP port
INFO Importing commit 858a5017ed158caaa6b3a5e1d353ef7e20dd75d6: small cleanups
INFO Importing commit 96ff726666a2dc73298faac83f070d0dfb54f104: jack: update
INFO Importing commit 2728babc8509e8cd80ca5ab793debfbc4d209cff: jack: sync
INFO Importing commit 241a6165d2e4c3a245f86cab3be2f7de8cd250ed: jack: also add rate to format
INFO Importing commit f7d32e78f2c7a3b4f76dc9181cadca920bf548e6: pod: remove SPA_POD_IS_OBJECT_TYPE
We have a safer version of that in iter.h
Use macros to get id and type of an object
Use safer checks in plugins.
INFO Importing commit b4b69473d3817e79371d944fb182cbb1348b3169: filter: add filter API
The filter API is meant for making generic audio and video filters.
It's like a pw_stream but with many in/out ports and no conversion.
Eventually the pw_stream will be implemented with the filter.
Add some example audio and video filters.
INFO Importing commit b179b11e66a6bccb71cae6903057e0a207e50337: jack: update
INFO Importing commit 140203d5a3c38dd39eda235e274bc208aa0c6fc3: core: add and use some keys for cpu settings
INFO Importing commit d94019ccd25e2b3494fe0a85e621a05fa01eceae: io: Add current video frame size to position
Add some padding, tweak some padding
Remove count in the clock, it's useless
For video frames we will want to use metadata to place
this on individual buffers.
INFO Importing commit 9b2d34c04babca68c48f8c9fd09563bfb8f7ceaf: audioadapter: store format on set_param and use it as a filter when negotiating
INFO Importing commit a18c8df7d04a1dea3a0faa12450ce4bdd7160ab3: meta: make sequence number 64 bits
Add offset in current cycle
INFO Importing commit c842b5adf2f86ccdd043203dd886ce5b9cdbd685: reserve: fix RequestRelease
Only fail when message is NULL
Actually send the message as well
INFO Importing commit d1e331e2689b7e3243108e51d2e39c4a6785e105: pod: add POD_None
INFO Importing commit 8ddf579cc0402e95df68aab209e557a1b730889e: protocol: add flags to protocol marshal
Allows us to to select marshallers for implementation and binding.
INFO Importing commit 0a81a982f70296a623c3a424c3d0a9891dbacdb5: metadata: Add metadata API
Metadata allows apps to attach properties to objects that can be
read by other apps.
Not complete yet, properties should be removed when the object is
removed.
INFO Importing commit c67445c343ec267b22dfbca891f73c1b28d4672a: test: audioadapter
INFO Importing commit 612bfe9a64ef78f2c40516f502e1c13c2930f4b9: jack: update
INFO Importing commit 57299ec491aff7627b55a571d60ea009b8dc583c: Add missing files
INFO Importing commit 59bdab94bce052589fa2f02e42bf98ddf01b643d: Drop git submodule structure
The workflow is getting a little messy with these, so we're just going
to merge those repositories in.
INFO applying NHE775W6IZNKKNH5FKUFFTYFDWLIN5ARZDONTI34EU4ET3REAZBAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying UXQEOE7TDJVEZJ2V2I2IIFDYCWRDI3HGE6TTBQ53RSHBBZ5EEF4QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying SKB67M57ZBJX4AFQ3TUYYLE2EFFWTDHG3L3Q7NYDV7DDR5VAZ52QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying ONVIFDXP62LQ4NWUJAYO5MT4D2SZO5OGIT3KNFAIJUYA2EDBEL6QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying 2UAMCUREX4HGJFXLI2XTXXPIVLJTXUDP477S6OWSKOPUKK7EIOIAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying HKMS4CRGNSYBCHEKRE66FSQYYQE2DVLR4KPZTNT3ROAARYE4LY7QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying LRBHZQZ5T3DVTNWZCFNYFLWBF43AMAXBBTNCSAR3QXCXF3CYN73AC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying CFUBF7DFOXHS2SZEQ3IG7K7LRIX6QAZJWGL6LBIHWA3LETARNRKQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying YZM5M365JM6FPVKF5H4NCY6L5BKEQQILLTTSSPUL2SYJ2N52KR2QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying DMH3CCILRMXHP6PN2T6ZY53SHQN2W2TMHQ5U54C6OOVWKFTMP4NAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying GJDIVMNY7M4YOUPVHRB5542UREPLKQ24BHNPWGRRZVV6BTEQ4MKAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying O3C6JGC2CTI7N2AA2B2RE4KXEAVXQ7RKMJ7OXE34HWAWICDWDKPQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying GNGHBQXB3JGXHEP5LFSK76J2YX4HTRXIKS73BDCGOHMTEZNYSLHQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying KFEPINWTTOR2NTK3H6IETLTUGRNQWWOUJXY2BZW6KI3OFE4OHM2AC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying DEWM3P2YTGRVFLA4AQRZ24QQABCNEGMT3ONRP6TDDJW6V3YQEH3QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying VWGI54IN2JORLCAFDBUQ6RM4JACPOXUWXLS3FXH6WRW5K3VG7YYQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying 7U5GVKFQTAH3XRRI7342GBTS24CUZC45NAC5ZMU4DKLKRYQA4GUAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying ZSIXNAIZGJA6AURW6NYZ5WIU773PVUP5VMPS3GZ63NJ73LQ3GGJAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying KPWXVPQFHKBF7SJNGGI3YX6LFMHXKS7T4GSB22IBZ24JJ3XDLN5QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying RPFRGK7YU3REA5J4OCBLOPNDLZISYMTMLL2V4MMSDAN6PAASILMAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying 6LKDSKSRB27IDZOQORGRD7FUHKPZJMTDRXPJALFTCSQD7EIWLUNQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying X7BVLWVYL6LBJI3POGQMJVYAPZG5NCZOBCA7V4MT7X6UYKMFRFVQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying I3ED7UYCOKBRHDJXQEBRMABCZATTTX2PGQTHJXTH5YCGMOB4XRZAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying L7ROHGP6APVHTTAB5LOPWLGWVKUGWZSG7J33G5EEIJYNRLNK5BXQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying ACWLFFFCCGBH4UJ4DZGSR4AILDRQCQ45PTFRMU6D4DSEF23NOY2QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying I2LNMZ4KEZCH2SBDMYL5QNLSKFINWWDUR7CMQV5A6AJ557JSYMNQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying GXB3HL4UOXTJT6MLW6JZAZY6KZJVNS4UVWTETNIJOPNEBDX4IEGQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying ZV3Z2IENBMJGI65KH2UWSYNEB5NZDZBLTCSVHLPZQRCWJPPDMEDAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying TYQM2GFTWUBSMDCVJEVB3QONOCWCTOOETK5DGE3KI2AC57YVRJWAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying HGOYX6ISBW5ZO6KOAA62NAC4S2TMB46FUYW2QXBHEVG3QLRZIS6QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying VOUH4EPRON2MN2B2OPRTXPES2QPMM7URFVBGZAK5PNRYMDIYKAKQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying DSY4HGSUPXT6YGYQNFD6DCCYJ4FC3P6IIM2SIOKC2HOVQIOM4MHQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying L4CJMH2Y3JA63YORGYBHNA7AF46PEXQ23CJ75LOKWDSCNRG3FYLAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying PZIMBHP2VTNIEWN6GA3IYMUXDVRL742SFRCDDO5IRGNYTATA3JRQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying CZK3GU2TUK6FBAKJJBSZQMBEFNU3QV5O7WWKT5S7DT7RNC7NF5EAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying OMG7GKJXHKO2M4CN76SEAVWO5JUA6W7LSAXD6UCNIT4BMUFDIPQQC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying 6EN7ELCQAS7MKDQCRAQLBURFLS7XJT2IR4IWYVHTUYCI5HR3I63QC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO applying AQI7WESGHNWX64LLYJBT3NJSOROSF42YORKNUBQVVP64XJW7XEFAC to "57d2fbdbf2bfe0ee165290662485e5bc4939bc8c"
INFO mv "README.md" "pipewire-alsa/README.md"
INFO mv "alsa-plugins/meson.build" "pipewire-alsa/alsa-plugins/meson.build"
INFO mv "alsa-plugins/pcm_pipewire.c" "pipewire-alsa/alsa-plugins/pcm_pipewire.c"
INFO mv "conf/50-pipewire.conf" "pipewire-alsa/conf/50-pipewire.conf"
INFO Importing commit 57d2fbdbf2bfe0ee165290662485e5bc4939bc8c: Merge pipewire-alsa subtree
INFO applying L7TWALY3BTMYMWXNYJ7YJV6HHPMHZHPITE5U2GGIHB7MLWNQCY7AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 3NVJ34LTCPYFU7UFLBQ7UULVMZIHEWA6CQWOMJFAMLLOA3CHFJHAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying X2O4DRXR5JBPHRVIJCTC4PV6DB6KXFPMS6AIFM6HD6AYOOZSNIVQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 7JCRJDNYPQYLF6REGUVKNILCBZZ3MQVRSOAGCZKN2U55WEES3Q7AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying IDIZTGTMIHNKLQSDUVC6XMDORVQYSHE5LVLBMT2J4LK73A3RLKEAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying CZAKHQ6J4AZ6VUUZS2AXYPKWROTK75DW7ZA7IBHTMPEWBQCUGUXAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying YJEHV2DIHRRGXT2IAO3VSWCGHRHSLM6SMP7TSIXWYSAJDFK6X6WQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying VDM6GWEC66QAVJGAPNAVQKXSYMSPY3I4UESO5H2LF7SSCSX3BYUAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 6H7ITTMXGOQ67EVZACVE5YNXDDS6W3KP5U4L6PWO3QW74QOS4MXAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying I2RVBJAG6XPKP2VIOTQZC3TV7CLAW6NHIOULKJM3D2FQFGUJLJKQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying HYXFIYNF7P6E6K3BC47747VJHHP66ZDGEFBC5DSU346QN6KB2L7QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 7CTUF3CKAUKDE3AC52P7YL4ZQTVD2TCXT5RLUCY5XFX3TJR3N4DAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying NAXNTIRYA5ICV434OGHUPFXLQH44WGP745XMJCHRJY5QNE62UYPAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying J2XL7YK3MEPXTXP7AL3YTVFBWWZ4YPBUQB4G2UZT6NY32DH2HDSAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying Q4AIALGYF6P5XM5SA2ZOL3CC4EC64YLO47SSP77UYVKOAWBG5XLAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying UU2G2QHYJLXRNEY5VVMX5T6BYZ7MAIALI32UHHDREYNHZ247J5RQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying JNVHGEE27B6ZARMNUCYIP4CD3KHJA6T3DWZDS5ZXVINWJPNVR2BQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying WNJNU735XWDA7GPNSEKHTH6HGOC2JEZHXUN7E7YV77QZTUDP4SMAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying VFTCNWCH2HUHCJWCFEQIZGW6GCRWPZCKJ3U4MPPM452QVAYZBL5AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying KH3PA5I7XDVRF2AGXBJYXOF4CCNEDCGDFY6TYDUURP47PVYTDSXAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying MGJT5S3AWYXM4O2JLXWFVRGXKWDEFYLM27D63FTG6AP5JKSR7KKAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 566EIR7HHW7ETHXLZJGS5R5TSJFATBVWA2WYFAMGMQKTU3MCG4IQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying XWDWO7RXHNIZ5CKOAI2QPUW33KH3X4WDQU7RGIAMXMDXEZNQ73SQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 3YKCAPQHX7RX47HN7IHRO4N65P3AK7CL2PIHHVKICW7FKD3THSOQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying DUVHD3U2SFBLF5ZI64K6TZ5R2DGSGMTXMOUWITTX3GSYPDWNEIXAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying AMINSBH2KFZNJPI7ML734N5HPPMWUKNH47RBPT6LHCSDF2YIJZCQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 54HBQXQHQ2S5TV6UQ6I3HKGLBAUVWNALKUTSM6RPYKRLQG42VL2AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 6MFU45YFE7Q7PAT53DIUTHC3FTQCMPVAB7VSIKGPB7LHRBB5DLEAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying ANWHUAFVLSDGMWNQBWR6YBYZFILH65NI74X26EBT2UVHRATKGHHQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying N4ASKYHBH5F6YQ5OIT6VEQ27IFRU47WVVBWAYTLK7BJD7BVQJXWAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying Q3LQILEEKXEK3LS2G5L2PVTCSDAEBUYO5J5HXY7JLV5SMTXP5U6AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying DUZYVUFNRTWM3KFMZ6NM374PWTKC5HA66DBIANV57M4BWCMP5SXQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 5LUKZGVSG5KSRVUUFKMIIJBLUZUF6BRSBMT4SNENVN6FDNADC55AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying AAFERFOAC5DF76WRZNUKSDD4HKVWY4NELNLFWIYJC7TJOB6BSCQAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying OELVRLGB557RCHGCCCS7KBAOKW53VJC24JLWHG2WTPQR6KFCOYXQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying XRNDK2GXSZTBUNDYLGA5L57ONYS2JOZMJGW5G77IZYXCHBDJZU5AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying RWRNIMHQYM6MYKNLPSTLVUQWGS2ZOEX3RL4QK4MNPBRCEZT46SXQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying RKJWZDK2WDV2XVW7QPCKUJQBAMBO2Q2DJUWTZD5MA6CDGDEGPG7QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 4MEGHIYXUTDMSCD2Y3PGLTP236BWPXU3MKRTEPALICGADVSOB62QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying XLKAOOPSTKY544XFDV2JX3MFAG7D523EZNBU3NWQ76UDHGE4FTKAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying NIDK33COQ5P6DTMY5CSY4WDHA3RSFSATIKRPPYTTQK6PTMBJ6CXQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 5WKKNGECP4JZC2EFZZQ7QXL26PNWGO32MLOLR2BE73WAJVNFYFLAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying TLDDIVGQIUDOG5FTN6K2YEWMM4EGT5QJVS6INXJIXP365WQ33KJAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 2UBW5XTIPV43LD3P5JIPM3Y6ETC7RZGCSE6VPOHRVRG62GJ4R7KQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying ZTNBLV2ICMGT27IIOU7Z2HT54C43PY5UAX42743G3DQJS42LA7OAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying R6T5JPV3HJBSE5IDPWH75AKLKSUKUWRLAMPFOAJ7XMRDFPWFPZDQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying OX36DDROJPM7TSP5TUAWZPAGACJ5UE7WLOCFJVIT5ZZ4KCO7ZXBQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying G3FQOHUD6QXKPTLQRVHCNN2XWS76KMSZAAZXTVMCCQJ3NCL3RQSAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying AS23CNTWOXZZV2FWZRBTN6JEHFMLBDPMWXNXEBKX7TCR4JUFTUZAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying CETBKQJQKZC74ZUOFOBWHU7L36C6B5MJCQTFKTOYJQZOJWI5XEQAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying GHOQJ2OA3BY4U3WP4EUCQ6WYVT7XXOXEZRWQ2BADZEEZVTXWEJUQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying G3S7SNDNPYG3GTJKRMW3WVDDAEIBDURYF4O5QSUK24R7NWMZF22AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying VVV6CD2NJKI3HEU7GM3YDITQNQTBXQP5RL2UBSNP2AR2HO3A6S2AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying SYCXU5FWHYPLSQGFVM3H37LOMEZVMZDYLYY7CDIAZL454EABRP5AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying DIOS6WRU6KH6FLNAL5XIP7PFVTNQJYDJFSHX4EYVWMSNH3N5WYQAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying PEC4RWGAO4CTLDMK6EATXSEY3R55W47HXDP6CA2XPLSLJ7N6MPWQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying JVGT3U7PTYR4AI7B3OIZJA5NMR45GM76JOASZRT462SX5Q5B6UCAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying DYZ7O5YEDKMNUGRVR3V2APFZAU34IRHGZV7HI5XBNXPY2WQLNGQAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 6F22I2EG2M7YIAM5P5XX2SEE4ZJ5N376L7BE3WVNWXR3OIVSGNIAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying AJ77A4QIJLAWSJDAXIGYXRGXID7BSGYPPCYJ44KZX2GXONN5NMOAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying ISS36TCJVGJOSXE2MJPVRWMADNJJAIVB4ORLS6RJZ6ZJI5ZWCTLQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 5EOVIN5JWJHHXQL2YBGKY56EGU3YB6FT34RUQW7G5BEMI6ELE5LAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying KDW4LRELYBIK4LYESS4DF3ACXYOEMM7LKH67ETOTNMW2KC3MOVUQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying VQY4WL6ZCATUV2TOY67Z6RCOS6DDGOC4XFIFNNHQE7I32E7ROAXQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying BSWNN3PGS6S7OF6V757IZNINDCLOG4HNN2B3QPOIMX4V6IO7WPNQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying GGH53KECMCWSWPNFNECHJHY3LB6VGQNCB6V2RP7OOO2ANVBOS5TAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying G7OPEVQOD4YLLNJO7CF7PIWOMISSRSPWPUVF6IVCFYJ74I7DL7YAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying IOSQEDO3T7F6EPMJSXIC6MRN4WODU7BDAOPKLL7OYDIXQ32H3POQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying DC5GA2UAPYG2TCM4RWABM6AQ5L6UXOY5PMLSNXFB23AGLYEPD7NQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying QP3LV2YZORT2YJFJUAXU6G3EQWHHJWL76EWRVZMJXUV4D5IW363QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 3Q6IKYIPZKMHI7M4NENVS3FZ4N2SP3FDEA7NZT7YJZOB7Q7UNI3AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying MG73B4OAZHGGJJJNUASN5UO5AYTVGNWXY2CYHDBKKUW3TJSMA55QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying YUNKEZHDNH4O7IXGOZCQ4MURDDJARBBCEWSV2RCUANVJVY4EWTTQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying A2WVTTUHL4PYNDUUBUG5QIU2WOFGP66OUI3XO4SQLMN3BCI4GHVQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying Q2N73RPYOU3GJCIXR7C4DRBG44BB6YHH7SCJHGGUBEPQPJYBQJ4AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 6JLA5I7ZPH35YZE7H6FI77BKTQDRCW7FVQUNXVORLDCJGD7FN4KAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying CPVHILKBW2YR4VWNVU3B7625EPLAJDFU4BRALULV6O7DYLRCRI3AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying Q6AGKYMX44YUOPDDBN7CZS75RQB3UYY7WKG2D6EJLE6JHNEYXBAAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying PXQLYDM6DYCU6MS7373DRANEAJXT5P3BHZ7M5EWYGFSCCGQPZYBQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying EMXSNOYRHSZNR43KEFXFZ57Q75OFMUWNYZAAFXSI32QBEGGOCSDQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying YSXIKNPQXNLHVVG6JBLQ6E3MRL5FYHNVPR73LQGSISI6I3FK4C4QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying FG4GM6IH2HGHFQ4AIZKRJNEUP6FZGPHI4VND6NIDS7CSZSM7IUIQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 46FJRITA7KUMUGRN7GVEJURMZMBM2RV6KANNKBJVP5N44GXVMJEAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying YKRAZ5S4CP6J7ZGFYRT5NQAO3QITVQRF3N6PJD557RWNHWXF3HLAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 6KRG3KSIEZKUXWJZSC256CFMKJUNWQII2PULDNCGQLJJ3VQ4MIZQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying IKDLOUFJS2OPPR7F632XUOF2DXVBOON45OCZO3BJC3YNLTPD7GDQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying C7BP7NAFNBSXX5JPPO54RM6YTRTIPL67NHEF4C47LRRGSPDEZ6NAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 72RQPOUIYXFFYXCCXKCXPEUFXEJVWIFF2GK3H24ZRIRHSQS2FOTQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 2LJ22WVRO4LXN2AXV24XNLTNH4MAPE7VQ3GBJS756WQ5QHW6QWQQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying TBBCNFMUG3PTDRFIUXR7EAK2766LSYFFQ54G4KQHEEX5IYSZHFFQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying ADPI4XUU3HFXYEWBSXAF3YVU6Z44B2H3XTJAIBTRHB5RIBGRNYKQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying ICWJ2HXCRL2FJZXQWKLXV6F52KB35AOVE7MV777V3GLGWJLLICPQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying ADPEOMKJ6J6MZINANL3FYSU7XHQNU77GCFAZ24XGP7DGMH7DU3JQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 5VOASVRYUWUI7LIFSZ6BV5D2E6QWNTM2JSYHGWOYLYTCZQNPUPDAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying HITXO7KXOOGFOXYNWXEFCSKBZBCY5NEVHEK25GKPKB2UUZSV7IYAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying JU5PH6GHKP2CBT4BJ6L6R7VK3BLEJPLZUXE4ULKG6ED6VTTWOA6AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 5V63XULZCJMAI3ZET6PUDYUV25ESVCGGRY4AGINF4EHWLOVCFMGAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 5TFRDPKLJSOSXEJRZ7B6F5DTO4FXDCNYYFJ3F5N63M7VDNHHR2DQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying QXEXANXDGD56KBZKOLBQPEE5P5FXAMCYL7CQOOAEGAZJQBEZBVCQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying TLSPLZ7V7BCLFQKJ3RJL3KEIJOTFJCRUSFO2ZSBWAN3AD7G4ODJAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying PQMIJWUTFJVLSXAFJ2UWS2P7S6NXMYWCJELOHZHOUKOACNCIKFTQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying DKH66IKI7UU5RHU7EPXCRIPQ35CLQXTWZJ74V2EOLUAS6NUMHZYQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying RMXAG34ACAXVF7ZVCKTP5HXOK5VFFA3L2SAPDIQO5CTRGIY3HXWQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying GTZVFV37SWHLFGMUF3PYK3O5PYIALEEE2N6FZLH32A7DU4MBU4FAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying I4AA5LQ5ZIDGRM4FFTGVK673ISFRCSPWYWWPZB7MAXON5EVHIKFAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying CMEHRNTRBTAK6TD32F62Q3SDHOSDFHEIB5SUWSQDWKKGS62CQTRQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying IV6UOWJAKAUYC5OQRIWBZ4NY6MO2FMVPPLYQ6XSDUHQXPFFR5M5AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying NNJHWZVAUFRRH7GDMVFF6C6IRJE63D5W7I5ZW66CVU7LA4327BXQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying LUVFACF6AMT6XJWADQZSJVE74YCGV3JRAUDIQPGRH4EVUATAGAYAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying J6QVMTYQQUYGJFRIFFRJSOI4B3YZLJACVV2RXCHIWLNJABWK4NUQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 4FU2SVHR6AFAWIOWF5PIMZOLIQFGFLRDSAS5LDWIZAMVOM3PLHAQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying KE6TBU3DMZG4SEGOODG5H4K47LPZWDGOLEXXZDUFWVAYF2PI4ADQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying NIWKP5PIHK3QU72JSP57DRXAW3YDWF2UIA7OC7EYSZ7Y3LJEJQHAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying KPRMCUV5BYCLLY6ZXBIORWZJJXEPU6NX363RUW7RGVRFTDTNW66QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying QOABMGMWTOEMWMD3KY5DXBEIKNWXSO2WBTXL32K5GCNVAA3YP7GAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying GPLV4DCP2CMEJQQITP4PROBZCTZIZSUVSMTG7DVVMZWZYJFKQBLQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying LP3GNRSGEIA3PMQ4UGIQKCGMVLW3SROEO3UJTWBO4I5OIQ4I653AC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying CZEZ6SQOXRVGVLKFODLUG6KXI4GMUXADM7T74YWGH3JC4WC7EOQAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying NJCKMFB452TOCM6N4H4AC2CPRNNV5UWQ6LZINEIKH46ZJQQ5HD6QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying OFNPQASOSCGUNBITTDNVQXP33QJK3KU3H2JS3FYMIXV3FP5MMNMAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying U552ETXYFJZG6KBUZ3D4TJ2BH5HAQKTDTDBZICDVMXSLLJRZW3XAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 3ZE6A6YVM3VOB2OPSSTQJUAZWSUTYCUR4ORO5IGZT6NPP7RSS53QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying KTKUDJQMFSP4BFY3UWJ23OCUGNZQWK5PELFQVIOV25C6UAXPN2GAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying JODI6IPFVP4DRTZIYWXXL2QRHAYWVAZ3NG4FCQIPQSFCJIBGLS4QC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying PWAV7HQVSUJY3ZSY4CVTU4V6OBH3TFF7QOGDHBUJJYN6BXUUGVXQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 4IEOYCBIXGB77PANNYJYMXJD2M7XDGY7D2I3LPHQW4DKJ5AIURQQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying IVHCSS3K74VBIS3BD2POZAODAC2B3GLRNMRATUKIZU5NDLLLVCWAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying PMZOWTEC5O6U3W3473E4WMICCZRLIUAPQZP2A67CVJALNSOWT6IAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying CRGCAY465BWWB3PQIQN67EFMDBCJ4BLEETGZJU7GANYN23RMPSBQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 6JG3S7AJA2C4H3NDRE4BZMPFRQDSTDHHNUIMZSSJTK2UFEBZWYAAC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying ZZHTDCSNVLGE66XLT2XNE7PS67NNSMXQPH63EZ6OFY3HT5BOZMXQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying AELEQSZ3H4RJZAIFUTGK5TTBNYZUSPCXNIBIUM7BTVUKNDSTPJVQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO applying 5IWU6ZD27VHRXUA3EXYMJSXZ374LIU6EFDF5LTZNY2SKYLOYWPPQC to "863a642e08e55e4f608c09a4966372422fb1f677"
INFO mv "README.md" "pipewire-jack/README.md"
INFO mv "examples/video-dsp-play.c" "pipewire-jack/examples/video-dsp-play.c"
INFO mv "src/metadata.c" "pipewire-jack/src/metadata.c"
INFO mv "src/pipewire-jack.c" "pipewire-jack/src/pipewire-jack.c"
INFO mv "src/ringbuffer.c" "pipewire-jack/src/ringbuffer.c"
INFO mv "src/statistics.c" "pipewire-jack/src/statistics.c"
INFO mv "src/uuid.c" "pipewire-jack/src/uuid.c"
INFO Importing commit 863a642e08e55e4f608c09a4966372422fb1f677: Merge pipewire-jack subtree
INFO applying VE56ECI7WAUFXV4E7LZMZXRWWJM7AWWYLKX65NZ74TUTT4JCIIFQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying YMS5HX5KRIQNQTEWLOKKDFYA62NEIYK36IQHXERVSHRU24HNBGPAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying KTX7CGR2RAITZYPVBSIQIV62IM5UUVUPXD53DRBKOCFCQID5OK3QC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying YGYEBDAIMTR33C7LJKKXVPQIHFUUAZUEEQTTVRJQNY7KDK74OFRQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying Q7LWU6PMGDGGYIUCG7UVJ3MVTOOABFE2QZPX4FFATT6AMFTBTMFQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying QMDREWH2NOWBLYRUSAWET6OR65RSKJL2KGGLBYJ2S5KBGFXWCJRAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying BIQLBIPUAUON6BRJF4HEVG5HXLLTWIVY6EWXBGSHEU4AKSWFKU3AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying S2J2DGO4GJVVFQ5AMBLFZ7NVJB23F2MVSGGKUUI243GRLWORGOCQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying INFGZO6TLJGYG2JGILEZ4F5QCNPPFFXRKQZRSDIBGFCIJIWZPUBAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying EX4FK63AKGS6QE7INUJESWKZW37SYOGSQP6Y4ZOTDS742N5CO22QC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying A6P4MUSKEVDUVE2IHRGGN5ZJ5E5H2EGIH7XSFYMY2XWPTFDKMACQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying KORYDUBVJWGFJRFZH5BS3JFQ5APM5IQCEUFCR64EDKHKSHM5G64QC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying FERQZQIECDEB3N3ED7EA6SK7OC6K5JEOWROFXZKIXVU54D2NZSHQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying NA3M2VOZWYUOPURBNP4Z24Q3CULBPRHMIPEVZRG53F4UCNS7V4ZQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying IKTCNFGAPY3XI2YMWZEUQLCQJMDQG3QFHRRKIHIGZVRLJZW2VNZAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying QHKUQJA52DPRQGHCWKFDCWUACWTEY2ZCGBH6BWMB32V566KTT6CQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying ME5UORD5FHJNZVCW6G2QFCISKNSNFPDO5TVJYEZNMR7PVBMX7KSAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying S56DBPHITVPFLR4IO2MWCJFUTGXQKNODLUBME2ZSJK2Z4DIAD2CQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying C6DXSJJW4AGMY76WJNHV7LK6Y5GEIIRJ2JYTHAI6WKKLIR6IFZPAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying IGSUALIHOF6JWC2KV5ZWR42YKHMYVUD7B2LVZSOZGZIP63FVTI7AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying AQYDGZ6CME6JVDKSUEHPATQLTA4JML6DVZVRK6TSIWSMBZUPSK5QC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying NPW6WSK3FBE7RPNF4UD55Z2QFGR4GNMCPI5FLXGOVNINM4N5T2FAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying VC3HCUSOM4D3RP2SPPTE6EYKOWXHHHBYFCXUY3BREQTFYXMN2MWAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying B2V4YJYB4AHV4MJ4Q5GAHV5EGAKTKOQEY7ESDFTQBVNHOWFXANUAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying BTKE7HKX52BDF4CGUQBNKS6FQHT2F2FV3OWHJNK73PAM2UVTJA2AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 5B34TEJF6JUMPOX5KXFRRCDZI57TKACTHLWLAXCMQHUH7BAIDAAQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying KM4YA2KDVJ6MTGEE5X7PN5FXEIYYDPPP22BQZEQXG42JS4WQIHHAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying PLMOA77VPVXF44B7JXO2GZFO3QMBGWBCAQBYFWQ5GK2OBAHTSHNQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying LCOCVQ2ES2PAB73JV35M5ZPVBBAFWNMCFE25BIWY4AOUJQ2JMLLAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 3UPTWIIH5N2ZT3KTNYAR3QUFTSENYYSXTE6LDOUSHVTZ7ETL6GJAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying J35JPLN5T47GFUKID3SYOVWPRGQ5X4UWWJOFGZVJKEZLBJYWXQAAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying V7OSNDM53OKG6BG5CCHHOJRQ3YH6HPZJRTEQILEIC4WNTBQZF3RAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 7LVMFES4G6QSLNUHYOKJCX7MIA4PH5UPLXD43SRRVNNCM5IWBKWAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying VJJY7TGWDJTKTR7VM3PC6QJPXNISRPKTFG66WTEEUSB6V7WBIZFQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 5LM3QCONHO7VSBBUVZB2Q36IUBNELV34JIPKFPMCL2V4754KHPSAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 7AU6ZMQKJRQQK2WWPJKUX23F2E7HJJ2NKQCTHYSPRF5TPT3JWR7AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying BA4EDIBZKY7OEFBSLFC2ZWHDN7P3U45GNKVHBMUAPLO73LK53ZFQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 3XVUQBR5W5EHLUIW2NOUW44N3NGHIF4XGD53ZSPYFFABY5WBWOUQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying KHRR6ABCOCTXSVWE53GL34MKWKJIB2DOYO6KVAITBRIKNLULESCQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying MZXWCH44INAU7JVA6ROFUCMXJU5B5Z3SD67DGNHJGDYFFKRZWHYAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying VJ4DJCJ3DMBC4KH5TPXH7LUYUNMZKEOWWSTISBK6STL7JYUXKQFQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying FBCHW7YY3Q4WSZFAY3BBCMH42UOJYPBKQGQ63JECBC7QJ7OQELZAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 3ACANT566YSIBTVKDNNMVVD2VJJAXKTL5HMHPJ5747DJ3KCRXRSAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 6MZEZTFD537XHMDBWAZSEGTJAXIFP3ZJYP5IT7EB3XHMVY5JTJAQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying NDJLJ3CMN2WHGI4XRNLENYN556Z7DQOSOL4E6SHQAO5JEQXEGHAAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying ORIEZ4RVWOCYX6KFP2PNHLM2UYRZIBK33QDGJBH2BR7GHJ7FMXRAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying F4DYPVXSHYSNATDZSEGK46RZCFUL7DTIFYFXD657HZHDYCZZ3LHAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 32MIQGB4YRFLYYVVNP2NEPBWTFG2EALLDUOZMDBBNRR4FLER633AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying NDDHE7R5AF4TJQLP42RCUOL3U5WJ2ON6EMCKO76XNLEGEW2GUINQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying QWBKULFWDALKA7YPPOH5224KL32POETERELM3NPMLHV34CXJX2RAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying N7TKH74WJHAFMVRKNJUMN5O5X2FNQE6SYVVIGKKMVZTZNXZGBPQQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 7UWZ5SXVCVMUHXHR34IXD7KDFBBJ27VEQ3HOVXK5YPA4PZ75LHMQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying PDTLINKOZKOMQ3M6L4WUFBD4CV4M7ILVRMQ3IJ2OWMURBUN7AEBQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying CF4XLKQFEA6MSHSFEOITXSSTX4VCC3OY3O4YZIE2XTMPLRKUUMCQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying D5N2GQANS5LEOA4YM4A374VPZVG22CFETC7XNZUMDN4FUWJUTEOAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying JAW2PWT3G2MB64NWGTQ5NSLFVMYIWSKTHN4YHAPQKHWA3Y2ABSFAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 5SFUTBGTQIT7PVGMLHSTDQAESKN52QSTKFBABPFCLMF4YRKADHUQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 5DPTPIQ746DNTJ4DNRONNA6QMCSJGX37EVCKBHTRIKHPKOIECGZAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying FDT77X3MMQ6YNUMV654AG4OJEX7F5ILCQIJ6NGWERWNLPUSVGXAAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 7EUDDLNKIAX6MYJSSSEMLVWM4PX2XYZOSJTW7CV4TVP4TMJCANHQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying CLGD46ZTMBXS2YXKOIV3T4KQHQS567P4J5K7NUR25SXV3YFL3ATAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying VWDFA2P22P767WAZGGCARNX6PVDAMH2EMVODTXEMA56UDYXAE6IAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying DSU6CEVKCDKI3AGWVY2JYJOWIDTZRAWPZFPV7HFQJ6ZE5CA2KEFAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying ICLMBSC2ZIMZI3O2AQUSHITHMCXO5TEGI4Q5BNLISVJ3KWHJQ5SAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying LNZ666SMP7LOEQAYK4HJGZ7XX2ZA24L2UVMJ36KDWIRJ2EL6YXMAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying DXIRN7XK45AG3J2MKY2JHMFBZTPUF6F5UQFSVSATOLAAKPNPMGIAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying YGJ2QPJBYL4AA7TXMJRXPGFOC2UF5DTGR2VL5IPLFJMR7GIHGAZQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying ZV2UP3HLOSAYR5DQZIRURQ5XRQTALDS36MNCJCIEWKH2QYQGB2HAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying HFUZDF6FA36H6QFWJGIOLRHDQAF6KMNN7B2OGLVNIQXWNQG45FMAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying D42YMGXC2FU5CFXN5GUMG4S7FVVJI3TEF4GFO5BGZ27NEEJ67JJQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying LOTXGIMDETIVGWEXEJFEARSMWHQAGQ3M43ZFYW2IQMPQEXNRYDIQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 5KUIRT6GMJWPDLPYDKLMRDLZDDIMHNMVTR7QQSBUTNJ7OU325RXAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 5VRDKSHXRL5PN2HFDRAKZMHMKR6NZPLPIXVTV6XGBNBRX3VPRJWAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying CHIB75DL7O224S5SLBSOHZPMQQY2AIECDYDBT65BULSKNSDBL3OAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying ZPRUHV3EL6U7M4PUNPSMM4XAIVEATEPXBMMJIYUKKDFXDVDMKZDAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying TPITGIUZ7C5PI5PU5RKOW3GRROLXFXYCQ56SAXQHJKBDVTCQGYTQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying QY7KGS6T2VG75HSJBGSZSLBLFJPMQQ3XVTBFU6WMVB22BGAFKOTAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying UU3SRDNXGKPKGU6UB7MRKFQP4Z7QGRPC7QOZOD5IXUI4YK3X43NAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying NQTUNIWU3IBLKLKPOHDBHGBG36HQISFIZVTKTE7NE7AHKCE2MOJAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 5F6SLDNB46XZB3QT7VQAUUUKGCA3XV5IXCRNOM7GNLEMESALCBZQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying RIPPME3BWE2HZNIEIGTRT66NA4TIUD5ZG3TD47AFGSUQ4S6IIN5QC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying VWCBFSCXQJKYWFVPK2UFEL6KMGUYZ2CT3P2G4XW7XSIUFMVKD7NQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying P2XRCDWHTZ5OFQTLJNWZVDNOG5CJB6ML5E4FSNX5GJ4SRDAYM6SQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying EF6GHFAYISZXRLH5LKQ6XX3FP7VCOHBCBYSWBCUZ5SN3KHK4MCTAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying AW425EP6GQ6LXZDPIXSJTCEAOKLEPFXWJRY4KE7JCPWFU62P6YMQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying TDN55TIUSZWMN53X6WQCQR66DLMCIS4M2YR2HLX44QVE4STCSBZQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying IIPX3XOCW7IFURYN2FJ5C5LGEHEA7BGJ6FNPD4VLLVNVABRUMQUQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying AS45ZPRZVKCHCAIUZTFB2IDJLB25HRMLGB4B7SNHGUYUIOCA3CBAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying PZXGNH5PKXOTGNFYZ5ADXDPX2TDBB2BQ5L5I56PH3NE3QCEB6BJQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying IXLCHCNTOTTCZGRHX6FHOLD2Y26XKSK3FYYZQ2JTEW2MXADQ5WNAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying LFURGHH547FZ4IXPR7ASYYPFPSI63S5NTCSR5SXFUWZIBSAERQUAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying YBOWPRB3UKG25YBCI457CIISAAWY4ROZWL4TWRJFLQ56A2QSFLEAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying BOGYVXTZJETKBXFJNOQBXKBNMYXOEWXHPEKZ32FJZHBAHKN2WOEQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying HU2QTMJTVLR2QUDAICLYZMTBZYNWKHK6ZJXVCBUVR5ID2GHY6YZAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 4GH3BFKVAEC3RJ7QAFYAFCX7OWXPVEKRY5O5A4DCOOU7EJ44XS7AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying TJLSQQRAXQCTWP4RFAU7M2DK4ZSRW3JQXQK23YWUMRZMLTMSJPGAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying TYOP3CNE6WBBEIDI3V7IQVXKO5K7NJELTMAQA2DB7K52QGPMCJEQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying QOJFOGBFHQVDWBTCAXOXICSFMSRZERHQR274FLE2ER6RPTGPTQIQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying FH6MYN2OV4JZ62SFJOX3NU3A3BLWFG6GHJIJMFIRSGBSBFJZ5GVQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 5HVY3KSBUGV3JKXYZTPUL6TLOSHXSN266NQRJVMDXBUELXJEOAVAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying JSROVC5P2TW7VPBLX2FXIK4BST647ML6VQKKMYDX3MLUFOIXE6GQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying GVWMIYJHC5CTTVIMMF6UP2FZFA6WXKUCCUAHVJXVW5BVDOFSLX6AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying QQSBD535X4YZTPPES2NGNCRASZNVKCG6PT74GMMLPFYHXYJXTJ7AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying D2KL2MXXM7KDJTH72EI7MS6BXDQ7VJAL6PQKMFDOW5JUVDLQS5HQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying Z2AKVJVF6FUMRKJC6FQPCRIIY6HOTAPLVLKKL2DPYINWCFZN2UUQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 63HAQLJ6FBCFLMG5SMIJQU3BLZDU5YEZ255SARDP4ZP4NBN2PHYAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying GDWWERA4G4EFMMLN65WKZTYTNHCTSQB2GJ65EXUMNQEM4VOVOQ7QC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying HOM2JQB3VBNZHO2TGW5J2EHXGZ2CB2MTXHGKJCE7OZCWEP65SKQAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying YL6SNTBIOO3ZZFD3HXJOCSU4GUY2QELV7NBELJCJZIKHZFNQFUCQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying OWTCYUB4BJABXYJ5WZZDG5HQO7C2HWUWDJK54AFQ35UE5ERRNIAQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 3KJSHVKV6KMIAVH7OWRIVMISDMERWSCB7IF2MJ6BWPQGJJDLWBMAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying CTGR4FB7AA5JULBZYECOWNY5GKWCSHD7IAY6MVIPZ6ZULXCNMW4AC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying 67AYZA4MCC3VXJELB2QB6Y73BVBLE3LITREBUE5AV3TM5QHEDPPAC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying TYFXOYHAZRHXBSRA2XKKCUSCCHYLZLIICBUO7MM2ZMBTQUUEJRCQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO applying OB6AUIWWPCBWCLXZRBDSBKB4O5SCSNNIPXHOSKHEU5WPSBYWH5JQC to "37a72b2531d0c148869c7e7bbf640d2971bed13f"
INFO mv "README.md" "pipewire-pulseaudio/README.md"
INFO mv "src/bitset.c" "pipewire-pulseaudio/src/bitset.c"
INFO mv "src/bitset.h" "pipewire-pulseaudio/src/bitset.h"
INFO mv "src/channelmap.c" "pipewire-pulseaudio/src/channelmap.c"
INFO mv "src/context.c" "pipewire-pulseaudio/src/context.c"
INFO mv "src/core-format.c" "pipewire-pulseaudio/src/core-format.c"
INFO mv "src/core-format.h" "pipewire-pulseaudio/src/core-format.h"
INFO mv "src/direction.c" "pipewire-pulseaudio/src/direction.c"
INFO mv "src/error.c" "pipewire-pulseaudio/src/error.c"
INFO mv "src/ext-device-manager.c" "pipewire-pulseaudio/src/ext-device-manager.c"
INFO mv "src/ext-device-restore.c" "pipewire-pulseaudio/src/ext-device-restore.c"
INFO mv "src/ext-stream-restore.c" "pipewire-pulseaudio/src/ext-stream-restore.c"
INFO mv "src/format.c" "pipewire-pulseaudio/src/format.c"
INFO mv "src/internal.h" "pipewire-pulseaudio/src/internal.h"
INFO mv "src/introspect.c" "pipewire-pulseaudio/src/introspect.c"
INFO mv "src/json.c" "pipewire-pulseaudio/src/json.c"
INFO mv "src/json.h" "pipewire-pulseaudio/src/json.h"
INFO mv "src/mainloop-glib.c" "pipewire-pulseaudio/src/mainloop-glib.c"
INFO mv "src/mainloop-signal.c" "pipewire-pulseaudio/src/mainloop-signal.c"
INFO mv "src/mainloop.c" "pipewire-pulseaudio/src/mainloop.c"
INFO mv "src/map-file" "pipewire-pulseaudio/src/map-file"
INFO mv "src/operation.c" "pipewire-pulseaudio/src/operation.c"
INFO mv "src/pipewire-pulseaudio.c" "pipewire-pulseaudio/src/pipewire-pulseaudio.c"
INFO mv "src/proplist.c" "pipewire-pulseaudio/src/proplist.c"
INFO mv "src/rtclock.c" "pipewire-pulseaudio/src/rtclock.c"
INFO mv "src/sample-util.h" "pipewire-pulseaudio/src/sample-util.h"
INFO mv "src/sample.c" "pipewire-pulseaudio/src/sample.c"
INFO mv "src/scache.c" "pipewire-pulseaudio/src/scache.c"
INFO mv "src/strbuf.c" "pipewire-pulseaudio/src/strbuf.c"
INFO mv "src/strbuf.h" "pipewire-pulseaudio/src/strbuf.h"
INFO mv "src/stream.c" "pipewire-pulseaudio/src/stream.c"
INFO mv "src/subscribe.c" "pipewire-pulseaudio/src/subscribe.c"
INFO mv "src/thread-mainloop.c" "pipewire-pulseaudio/src/thread-mainloop.c"
INFO mv "src/timeval.c" "pipewire-pulseaudio/src/timeval.c"
INFO mv "src/utf8.c" "pipewire-pulseaudio/src/utf8.c"
INFO mv "src/util.c" "pipewire-pulseaudio/src/util.c"
INFO mv "src/version.c" "pipewire-pulseaudio/src/version.c"
INFO mv "src/volume.c" "pipewire-pulseaudio/src/volume.c"
INFO mv "src/xmalloc.c" "pipewire-pulseaudio/src/xmalloc.c"
INFO Importing commit 37a72b2531d0c148869c7e7bbf640d2971bed13f: Merge pipewire-pulseaudio subtree
INFO Importing commit 6b565d2eabb34c72180d803c32778abd37b67516: format: add video modifier
ERROR While adding "spa/include/spa/param/format.h": Path not in repository: spa/include/spa/param/format.h
INFO Importing commit d79abd150209af29dc0a94e0d93d034e5528f2b4: install metadata header
ERROR While adding "src/extensions/meson.build": Path not in repository: src/extensions/meson.build
INFO Importing commit 54733718bd56989856210657f28c129df364888a: ci: Add a Dockerfile
This is a simple image based on current Fedora with the required build
dependencies.
INFO Importing commit 44bf0baaa7ce53257acec71f8357d878fde1ed80: ci: Migrate from Travis to GitLab CI
This makes more sense now since we're using FDO GitLab for all the other
development infra.
INFO Importing commit 1e14206c715d53ed8d5451283ca9a45bfbd32092: extensions: implement new session manager extension
This extension, implemented in module-session-manager, implements
a set of objects that are useful for session managers.
ERROR While adding "src/extensions/meson.build": Path not in repository: src/extensions/meson.build
INFO Importing commit d6dc0d0356b81ea644c45a79f269aade78a58aae: pipewire-cli: add support for printing endpoint info & params
Upstream-Status: Pending
ERROR While adding "src/tools/pipewire-cli.c": Path not in repository: src/tools/pipewire-cli.c
INFO Importing commit 15f3d28e11b16dceeed9a567d052bac5bd3c33fd: daemon config & remote: load module-session-manager by default
Upstream-Status: Pending
ERROR While adding "src/daemon/pipewire.conf.in": Path not in repository: src/daemon/pipewire.conf.in
INFO Importing commit 29254b688a4ee939cb4c51132ce0372d2ddb0899: pulse: fix list_prev
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 085f1822b9f07c4f4ff815b109332908e5e68f37: session-manager: fix protocol
Add separate types for interfaces and implementation
Fix some bugs in the protocol
Add some introspection support in cli
ERROR While adding "src/extensions/session-manager/impl-interfaces.h": Path not in repository: src/extensions/session-manager/impl-interfaces.h
INFO Importing commit 6397db9d6807fa7504b6aff8ef8b65ca24145be8: protocol: init spa_dict properly
Or else the flags might be wrong.
ERROR While adding "spa/include/spa/debug/dict.h": Path not in repository: spa/include/spa/debug/dict.h
INFO Importing commit 8409e8be49446103ccb3f7fdd7577a8f9e495cc6: endpoint: make endpoints of alsa devices
Make one endpoint for each device
Make a stream for each node
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO mv "README" "README.md"
INFO Importing commit 4cf66c00c08bfdd8d191266f97fc885d4aa5b46f: readme: Format in Markdown and add some more information
INFO Importing commit cd1ec41253c44a51dd4a24747efbc734841151b9: jack: use metadata when available
INFO Importing commit 1f5aa2645245852c73cad9fca779e9510476d240: type: move implementations to a separate section
ERROR While adding "src/pipewire/pipewire.c": Path not in repository: src/pipewire/pipewire.c
INFO Importing commit 60cd74fdb0e38a5669acb4c8ba4b34bc4ab09c0b: alsa: set MEDIA_CLASS in nodes
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit 9df6efcd8d6feeb32310d072e9ff64267f2703f5: properties: copy_keys -> update_keys
Change copy_keys to update_keys and make it more powerful by taking
a spa_dict as the source.
Copy some more properties in the session.
ERROR While adding "src/modules/module-session-manager/client-endpoint.c": Path not in repository: src/modules/module-session-manager/client-endpoint.c
INFO Importing commit 7a4a8d78b93fe02039117adffde13f9f45bd3de9: WIP use endpoint in pulse
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 638ee33f4486aa01ebb51cf1a984329cc2dcd82c: remote: only load protocol when not already loaded
ERROR While adding "src/pipewire/remote.c": Path not in repository: src/pipewire/remote.c
INFO Importing commit 74b4790afe0b712158dfd9e43ccd1903a6509a08: core: handle error when creating memorypool
Start data loop later.
ERROR While adding "src/pipewire/core.c": Path not in repository: src/pipewire/core.c
INFO Importing commit 8bbfe876a7d510affa5fbdc4d8750c82eaf1ab54: Revert "WIP use endpoint in pulse"
This reverts commit 7a4a8d78b93fe02039117adffde13f9f45bd3de9.
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 4ad7ce3aa2089de4f860374f63d75ffbb354ebdb: session-manager: split policy and monitor
Separate the session manager in a monitor and policy part.
The monitor manages the devices and endpoints.
The policy watches the nodes/ports/clients and applies the policy
of linking them.
Because both now have a separate connection, we can remove some
hacks in the protocol. When a remote was both the implementer and
user of an object we could get in a deadlock when the user was
blocked waiting and the implementator was blocked sending a reply.
We used to un-busy a client when it was expecting a reply from a
ping or sync for this reason.
Add and use some more keys for the endpoints and streams.
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit 9f765897dbacee91544e89bff1791a9bca052b80: add missing files
ERROR While adding "src/examples/media-session/monitor.c": Path not in repository: src/examples/media-session/monitor.c
INFO Importing commit f918fa874fb95b663708959f8940946665eb3e07: Update README.md
INFO Importing commit 4f70a19a82002e2fdd89ad6149f0bf5f82bec34b: gitignore: Add generated Makefile
INFO Importing commit cbf495fa359d8b4a913c40f382143ae0be3a3e73: Add a code of coduct
This is the Contributor Covenant v1.4.1.
INFO Importing commit c63f0ed562ac8fe991a2ff6e4d58772a54290b55: doc: add session-manager <-> pulseaudio mapping
ERROR While adding "doc/pulseaudio.md": Path not in repository: doc/pulseaudio.md
INFO Importing commit 8c53e5305d0fb94b9c85844c593fcb005a2a7c93: meson: remove spa option
PipeWire does not work without at least the basic SPA plugins.
Remove the option to disable SPA.
Fixes #198
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
INFO Importing commit 3c51f559ef1efda8168b544f98a2c68aacb00386: elsa-endpoint: include asoundlib first
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit f61498b863d51498a141031d4e21cdfe3b0c815c: session-manager: Fix use-case.h include ordering
Seems like the ALSA requires the general headers to be included before
use-case.h.
ERROR While adding "src/examples/media-session/alsa-monitor.c": Path not in repository: src/examples/media-session/alsa-monitor.c
INFO Importing commit b14bb1f4967ab083e4adf838b456f510a45a098b: media-session: don't include use-case.h
We only use the use-case manager in alsa-endpoint
ERROR While adding "src/examples/media-session/alsa-monitor.c": Path not in repository: src/examples/media-session/alsa-monitor.c
INFO Importing commit 68e94a2e7e96f99b4659cf6ab3427c0971fb4b7b: system: use spa_system functions for fds
ERROR While adding "pipewire-alsa/alsa-plugins/pcm_pipewire.c": Path not in repository: pipewire-alsa/alsa-plugins/pcm_pipewire.c
INFO Importing commit fd937fa37831c4f7ada03caa7461c65da923ace0: On FreeBSD, add dependency on epoll-shim library.
FreeBSD doesn't provide timerfd and eventfd functions. These are implemented in
3rd party library called epoll-shim. Link targets requiring these functions to
this library.
INFO Importing commit aec64336fee83c6e6367274f7779249dbeffa243: Do not try to include endian.h on FreeBSD.
ERROR While adding "spa/include/spa/param/audio/layout.h": Path not in repository: spa/include/spa/param/audio/layout.h
INFO Importing commit ef3ebbed46fe58bc9799e0f0badb7adbc544de11: Define empty struct ucred on FreeBSD.
ERROR While adding "src/pipewire/private.h": Path not in repository: src/pipewire/private.h
INFO Importing commit da7eefd60e3900e0430f52e2c0e601027f9342f0: Implement get_count() from cpu.c for FreeBSD.
ERROR While adding "spa/plugins/support/cpu.c": Path not in repository: spa/plugins/support/cpu.c
INFO Importing commit 9ab4e397049b1725b0758f1de497503039e2b689: Add a stub implementation for sched_getcpu, as this function isn't present on
FreeBSD.
ERROR While adding "spa/tests/stress-ringbuffer.c": Path not in repository: spa/tests/stress-ringbuffer.c
INFO Importing commit 0a21c61ed0f577a3fa4f6ef6af1654bc1400659a: Don't define memfd_create() and USE_MEMFD on FreeBSD.
ERROR While adding "src/pipewire/mem.c": Path not in repository: src/pipewire/mem.c
INFO Importing commit feb9a4b9e19b56a2fb893d5b4cce3005ad5730ba: Don't call prctl() on FreeBSD.
ERROR While adding "src/pipewire/pipewire.c": Path not in repository: src/pipewire/pipewire.c
INFO Importing commit 33df224254d917cab1e1875ebe511b4876720d64: Use pthread_set_name_np() instead of pthread_setname_np() on FreeBSD.
ERROR While adding "src/pipewire/thread-loop.c": Path not in repository: src/pipewire/thread-loop.c
INFO Importing commit 6ea24a7db5b8c8d4ef07177db33779e48ea0bfda: Don't call getsockopt with SO_PEERCRED and SO_PEERSEC parameters on FreeBSD.
ERROR While adding "src/modules/module-protocol-native.c": Path not in repository: src/modules/module-protocol-native.c
INFO Importing commit 999fa525f5d48dde64119db6f1955ada3ae965c6: Implement _gettid() for FreeBSD and do not call pthread_setschedparam() with SCHED_RESET_ON_FORK argument.
ERROR While adding "src/modules/module-rtkit.c": Path not in repository: src/modules/module-rtkit.c
INFO Importing commit 47f7caac06a1d8a53346ceeb395ffbd53757322b: Don't include byteswap.h on FreeBSD.
ERROR While adding "pipewire-alsa/alsa-plugins/pcm_pipewire.c": Path not in repository: pipewire-alsa/alsa-plugins/pcm_pipewire.c
INFO Importing commit 2720df017533d2e1262fbeca64cdc41d75376ca1: Do not call memfd_create on FreeBSD.
ERROR While adding "src/examples/video-src-alloc.c": Path not in repository: src/examples/video-src-alloc.c
INFO Importing commit ac24743b2e41ed964867388aa8a1053504fa8797: the epoll shim should only be used by the system library.
All other places should use the system library to get the right
fds.
ERROR While adding "spa/examples/meson.build": Path not in repository: spa/examples/meson.build
INFO Importing commit 53f93c2bde096feee9846e0d0166a035a741027c: logger: print timestamps on logged messages
Timestamps have usec precision and the seconds are limited
to 9 digits. Usually what matters in these messages is to spot
delays between printouts and not really what is the absolute
time of the system.
ERROR While adding "spa/plugins/support/logger.c": Path not in repository: spa/plugins/support/logger.c
INFO Importing commit f92775719afcfcf3ef4a341be669e00c0c2a0bb5: log: make timestamps configurable
ERROR While adding "spa/include/spa/support/log.h": Path not in repository: spa/include/spa/support/log.h
INFO Importing commit ef94b5c345a0791bb16e5c7f25a4a8baa5a97e23: tools: add new pipewire-dot tool to generate a global objects dot graph
ERROR While adding "src/tools/meson.build": Path not in repository: src/tools/meson.build
INFO Importing commit 5abab5d4daba88c45b0f642fde3a9f332d22881a: doc: Add some documentation on generating CI docker images
ERROR While adding "doc/ci.md": Path not in repository: doc/ci.md
INFO Importing commit 5f65f1cbbee0b307ded7fa032d8d0dbd62472e88: client: register the global early, in pw_client_new()
otherwise, if the access module blocks the client, the on_start
callback in the protocol is not called and there is no global,
which means the session manager cannot do anything to grant
permissions on this client and the client is blocked forever
ERROR While adding "src/modules/module-protocol-native.c": Path not in repository: src/modules/module-protocol-native.c
INFO Importing commit e18a24493a254c881a1bda384fdcd70cd671fd1c: client: don't register in client_new()
Don't register in client_new() to make it possible to do other things
on the client before registering. Register the client in protocol-native
after we set up the events etc.
ERROR While adding "src/modules/module-protocol-native.c": Path not in repository: src/modules/module-protocol-native.c
INFO Importing commit e62041203488bd4c2fe6e4a22aba0b89733d7826: param: add more fields to Profile param
Add description and priority to profile
ERROR While adding "spa/include/spa/param/param.h": Path not in repository: spa/include/spa/param/param.h
INFO Importing commit 18974f90f6abad7886d8044c98052148cd2b20ab: pod: rename context to flags in spa_pod_prop
Flags are more useful when we can use them to describe how to
filter properties later.
ERROR While adding "spa/include/spa/debug/pod.h": Path not in repository: spa/include/spa/debug/pod.h
INFO Importing commit 81bf9cd488ffebda9d59fa78b1661aaa92d90b59: improve some debug
ERROR While adding "src/modules/module-link-factory.c": Path not in repository: src/modules/module-link-factory.c
INFO Importing commit 40e837555d5a56f31900f0601924dcfe2522b9d7: jack: improve port sort order
Sort by object path before attepting by id.
ERROR While adding "pipewire-jack/src/pipewire-jack.c": Path not in repository: pipewire-jack/src/pipewire-jack.c
INFO Importing commit aa4dc73b2140185b2c701201d54867d0fe73e141: node: move keys to separate file
ERROR While adding "spa/include/spa/node/keys.h": Path not in repository: spa/include/spa/node/keys.h
INFO Importing commit feb8dd3a34f030cc6e625bf9cbedf6698b75295b: Add include of keys.h
ERROR While adding "spa/plugins/alsa/alsa-pcm-sink.c": Path not in repository: spa/plugins/alsa/alsa-pcm-sink.c
INFO Importing commit 3f89911f1d6818b0907c461d2161fd3c8078cbd1: device: expose DEVICE_API in global properties
ERROR While adding "src/pipewire/device.c": Path not in repository: src/pipewire/device.c
INFO Importing commit 8f1b840979b2d0fe3da4892738616879f6091dbd: ci: Automate container building in Gitlab
This removes the need to manually build and push out the Docker images
for the build. This step is now in GitLab CI itself.
INFO Importing commit d8c86d977a72d463b4d552c804b70d35b9ba1706: remote: destroy mempool after proxies
Some proxies might want to free the memory from the pool.
ERROR While adding "src/pipewire/remote.c": Path not in repository: src/pipewire/remote.c
INFO Importing commit d9b34dc4e316c1fafa21bd350cf5ad059fd35db4: filter: remove unused pending_seq
ERROR While adding "src/pipewire/filter.c": Path not in repository: src/pipewire/filter.c
INFO Importing commit e9eabead4bab9e0c9e2eb95fea3589f5185d6ce9: add keys.h header
ERROR While adding "spa/include/spa/meson.build": Path not in repository: spa/include/spa/meson.build
INFO Importing commit 02d0802004f0f75afd792429c8b2ee7ec1e253fc: remote-node: don't enum invalid param ids
ERROR While adding "src/modules/module-client-node/remote-node.c": Path not in repository: src/modules/module-client-node/remote-node.c
INFO Importing commit bca653198a52cd046546bebad0caef7c3ac086ae: audioadapter: emit param events only once
The events from the convert are already proxied to the audioadapter
so don't emit the event twice.
ERROR While adding "spa/plugins/audioconvert/audioadapter.c": Path not in repository: spa/plugins/audioconvert/audioadapter.c
INFO Importing commit 6bd553f89bb35536b197fdd10134354200e5d55a: node: add _set_param()
ERROR While adding "src/pipewire/node.c": Path not in repository: src/pipewire/node.c
INFO Importing commit f2b7f2dc6d028b9295157ec9b00e0d221844900f: filter: improve param handling
Improve update_params so that it can be used in set_param.
Remove the node proxy listener, we don't need it.
ERROR While adding "src/pipewire/filter.c": Path not in repository: src/pipewire/filter.c
INFO Importing commit e40fbf8cc426ff8d6bcb4e28647105ed6a759642: Add printf checks for proxy_error and resource_error
Add an error variant without checks.
ERROR While adding "pipewire-jack/src/pipewire-jack.c": Path not in repository: pipewire-jack/src/pipewire-jack.c
INFO Importing commit be53554defe2bc935c0dc216872ed835f2307c05: filter: add new method to set error state
Add a new set_error function that can also take a message instead
of abusing the update_params method.
ERROR While adding "src/examples/video-dsp-play.c": Path not in repository: src/examples/video-dsp-play.c
INFO Importing commit 738603fd040cf35c425532b90d9a4e58f1fc4abb: stream: Align with pw_filter
Remove some of the unused states in pw_stream. The app can know the
state by following the format and buffer events.
Make it possible to be notified of io are updates. This should make it
possible to follow the transport etc.
Make it possible to be notified of any param changes.
Rename finish_format to update_params because that is what it does.
Make this work in the same was as the filter: updating the params
removes all old params of the types and installs the new ones.
Don't get the Props and PropInfo from the node proxy, instead get them
directly from the adapter that we have locally. Update the controls
directly on the adapter instead of going to the server first.
ERROR While adding "pipewire-alsa/alsa-plugins/pcm_pipewire.c": Path not in repository: pipewire-alsa/alsa-plugins/pcm_pipewire.c
INFO Importing commit bca114f8c5194237ba54dd104e5878c906028faf: system: include time.h for the itimerspec struct
ERROR While adding "spa/include/spa/support/system.h": Path not in repository: spa/include/spa/support/system.h
INFO Importing commit 772bf2dce211460c10359163bde3c462d31102f5: filter: Use method implementation directly
ERROR While adding "src/pipewire/filter.c": Path not in repository: src/pipewire/filter.c
INFO Importing commit b73976ff104113d91a7695468d755addb2c2812d: logger: use CLOCK_MONOTONIC on freebsd
ERROR While adding "spa/plugins/support/logger.c": Path not in repository: spa/plugins/support/logger.c
INFO Importing commit b7c5e0069777accf4a60f0728a895ecdc6431709: add some missing events
Add initialized events for completeness
ERROR While adding "src/pipewire/client.c": Path not in repository: src/pipewire/client.c
INFO Importing commit 8acae9db7deaf2d39f41c12c49f47c3e5b49593d: Make sure we bind before registering the global
Bind to the resource in create_object before we register the global.
This ensure a client gets to see the resource global id associated
with the resource before it appears in the registry, which makes it
easier to patch the local proxy to the global object.
ERROR While adding "src/modules/module-adapter.c": Path not in repository: src/modules/module-adapter.c
INFO Importing commit 3131acea46ac1649f0460b1ebd59c391dfcd7026: alsa-seq: close seq device
When we unload, close the seq device again so that the source is
removed from the main loop.
ERROR While adding "spa/plugins/alsa/alsa-seq-source.c": Path not in repository: spa/plugins/alsa/alsa-seq-source.c
INFO Importing commit 988144dda438d9169fbd8af3cf31c68b1cadc0ab: test: fix test
ERROR While adding "src/tests/test-client.c": Path not in repository: src/tests/test-client.c
INFO Importing commit b264ef07721cf2bfbc2fd40debc9c5559c079dd4: proxy: add _get_type()
Also return the optional version in resource_get_type()
ERROR While adding "src/pipewire/proxy.c": Path not in repository: src/pipewire/proxy.c
INFO Importing commit f56e4dbc4d4d9b401c03629b79ca0c6953199420: interfaces: add event to notify of global bound id
Make it possible to know when a proxy is bound to a global id before
the global shows up in the registry. This makes it possible to match
locally created objects to the one appearing in the registry and
possibly avoid a second bind.
ERROR While adding "src/modules/module-protocol-native/protocol-native.c": Path not in repository: src/modules/module-protocol-native/protocol-native.c
INFO Importing commit e3a1c4151e4c43e4dd6f3c4aeab3e26e76dd0075: emit bound_id event
ERROR While adding "src/modules/module-client-device/resource-device.c": Path not in repository: src/modules/module-client-device/resource-device.c
INFO Importing commit a1801b690f31889276ec2ceebb51bb8d29414a98: jack: use explicit variable to keep track of transport
ERROR While adding "pipewire-jack/src/pipewire-jack.c": Path not in repository: pipewire-jack/src/pipewire-jack.c
INFO Importing commit fcd4ae3334e1a1a143b16f0ff1a81b1a00916a3f: remote: remove obsolete exported event
We can now do the same and more with the bound event on the proxy.
ERROR While adding "src/modules/module-client-node/remote-node.c": Path not in repository: src/modules/module-client-node/remote-node.c
INFO Importing commit c9a54112e4d311b9cf07eb18e35d51887037479b: client-node: use bound id from the proxy
Remove the obsolete node_id from the transport. We get this info
now from the proxy.
ERROR While adding "pipewire-jack/src/pipewire-jack.c": Path not in repository: pipewire-jack/src/pipewire-jack.c
INFO Importing commit edd011605dea5cf1d8fc5aec85678ce5105a8cb9: use endpoint in pulse
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 3f3dfbc67e2dc41569365321f5d81a9c4ae8d37d: More session manager work
pulseaudio card is mapped to device
pulseaudio sink/source is mapped to an endpoint
prepare to map streams to card profiles
Add Route param to implement the endpoint routing later (ports)
Create an alsa endpoint for each device
Create one stream for each endpoint (Playback/Capture)
Implement create_link on the endpoint. The idea is to call
create link on the peer endpoint to complete the link. Remove
create_link on the session.
Add stream-monitor to turn pw_stream nodes into endpoints
Add a policy manager that tries to link endpoints
Use enum pw_direction for the endpoint direction. We can use the
media_class to determine if this is a pw_stream or not but it should
not really matter, you can link any output to any input.
Add autoconnect property for endpoints to make the policy connect.
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 161cf46898a3068bc77ca8d9b743d7218dbc1d39: media-session: add media session helpers
Move all the media-session object monitoring into one place and
provide an API to get to the session objects.
Make API to add module specific info to objects.
Add methods to export and create objects in the session. This should
make it possible to link proxy to implementation and avoid a server
roundtrip in some cases.
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit c5ee45044da5d5c2e52ca219904ade47c94304ac: fix unit test
ERROR While adding "spa/tests/test-utils.c": Path not in repository: spa/tests/test-utils.c
INFO Importing commit fcb0031f7c8cfe8470f21e499c7fe9744cf09948: media-session: fix port direction
ERROR While adding "src/examples/media-session/media-session.c": Path not in repository: src/examples/media-session/media-session.c
INFO Importing commit 9bc5d23ffecbc8a2d8c8450f7e25598ca2d450b8: media-session: add _roundtrip helper
Add a function to force a roundtrip
ERROR While adding "src/examples/media-session/media-session.c": Path not in repository: src/examples/media-session/media-session.c
INFO Importing commit 3cd7d90d885950f82cf19ea79973dbf3091e4180: media-session: link all stream ports
Create a helper in the session manager to link all ports between
2 nodes.
Make the output endpoint call the input endpoint create_link, passing
the node or ports to link to.
Make the input endpoint complete the link by calling the session
helper to link all ports.
Remove the node policy, we're only using a policy for the endpoints
now.
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit ddd185e7493118ca78ee78bb049987cc26c21fff: session-manager: pass param id as POD_Id
ERROR While adding "src/modules/module-session-manager/protocol-native.c": Path not in repository: src/modules/module-session-manager/protocol-native.c
INFO Importing commit 7bce1762de1934e75dd1c01594ad8e263710f2ac: alsa-endpoint: set param on node
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit 4ccbce99324052820518217d739980663001655a: stream: handle endpoint-target for streams
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit 709a52e2869d55dd5c155c73f231e9909d8a6819: media-session: also create EndpointLink objects
Create an endpoint link object when linking endpoints. Keep track
of the links in the endpoint_link and cleanup when they are all
gone.
Improve properties on session objects.
ERROR While adding "src/examples/media-session/media-session.c": Path not in repository: src/examples/media-session/media-session.c
INFO Importing commit 8c43ebaf3eb4a04491a43572bcec03bc50a4ac70: pulse: find linked endpoints
Set the stream node object-id as the node.id on the endpoint so that
the pulse api can find the linked endpoint.
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit b5184961366950b5cfe4c7ac43adede7871df6aa: pulse: only find linked source or sink endpoints
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit f2ce69c4bd8ad9ef11ee3981e6c381508112f872: media-session: pass the client.id in the endpoint
Pass the client.id that we made this endpoint for in the endpoint
properties. This makes it possible to let pulse find the client
that belongs to the endpiont. The client.id is used to find the
client that actually made the object (the session manager)
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit e24e3835503cf2cc2b7a6d8d31c5ec3cee3be6bc: media-session: add callback based sync method
Call the callback when the sync completes. Implement roundtrip
with this.
ERROR While adding "src/examples/media-session/media-session.c": Path not in repository: src/examples/media-session/media-session.c
INFO Importing commit 8d49964c4d84f3c187cfd326ff4d93577985078b: session-manager: add monitor keys
Add keys to specify monitor endpoints
ERROR While adding "src/extensions/session-manager/keys.h": Path not in repository: src/extensions/session-manager/keys.h
INFO Importing commit aef04961aae2887bfaae6270a3bf0d673409a639: alsa-endpoint: make monitor endpoints as well
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit b432bda1091a227f685521214aad8d3d9d984c6e: pulse: use monitor endpoints as monitor
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 541f3a4cc63c276afe1e49f300facb86c6702776: media-session: keep globals in a list as well
Also keep a list of globals and use it to emit the globals in
add_listener.
ERROR While adding "src/examples/media-session/media-session.c": Path not in repository: src/examples/media-session/media-session.c
INFO Importing commit b7aa8f5c8580d00852302e8c13789b0ae2ce013a: media-session: subscribe to params when needed
Subscribe to params and collect them.
ERROR While adding "pipewire-pulseaudio/src/stream.c": Path not in repository: pipewire-pulseaudio/src/stream.c
INFO Importing commit 80ac7556705b68789caca35fc17f16eb7ee8a957: media-session: make the services more modular
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit c46753bcae3ad4774bd41d39d656d3fb02a8592d: media-session: track nodes we create
Add a method to create a node and track the proxy. We can then
use this to track the params on a node.
Don't listen end enumerate the params in the monitors bbut let the
session do that. Use the collected params from the session to create
endpoints and streams.
Always activate the default stream on alsa nodes to create the
ports and have something we can present to apps.
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit 8335c50e1e0ff4333004eacc4fbb2d736dd0c54c: session-manager: fix protocol
ERROR While adding "src/modules/module-session-manager/protocol-native.c": Path not in repository: src/modules/module-session-manager/protocol-native.c
INFO Importing commit 2fddfb02bd5d45ddd754f1bf945bb91c3294cec4: pulse: map stream index to endpoint
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 8e24e57db008040f9d8ecd466a813ccb55e51097: endpoint: handle NULL name and media_class
ERROR While adding "src/modules/module-session-manager/endpoint.c": Path not in repository: src/modules/module-session-manager/endpoint.c
INFO Importing commit 5b96e3a5287050086509f91159e9e08fbfc37f09: stream-monitor: improve stream monitor
Monitor the node Props and PropInfo and update the endpoint when
they change.
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit 87946ed2cf6407efe937f3e0786a00809fa59c71: media-session: move all flags to the object
ERROR While adding "src/examples/media-session/media-session.c": Path not in repository: src/examples/media-session/media-session.c
INFO Importing commit 4361e5f32679aa761e264cfa7259c3665288ba5a: media-session: count params
ERROR While adding "src/examples/media-session/media-session.c": Path not in repository: src/examples/media-session/media-session.c
INFO Importing commit 8c067604809956762cac604664650844f6c20935: alsa-endpoint: monitor and update node params
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit e1ef01c8609f780d5b218ab959e1290b28e98b5c: alsa-endpoint: move to separate service
Let the session manager monitor device objects as well.
Make the alsa-endpoint monitor a separate service instead of letting
the alsa-monitor call it directly. This means that it listens for
device objects and then tries to configure the endpoints when the
device profile is set to active. This does not work yet because we
can't link the nodes to the device yet because there is no way to know
what the global id is of the device we created.
Make sure implementations of objects run in a separate remote connection
because the main remote connection might block while waiting for a
return value from the implementation.
Trigger an object update after all object info is collected. We do this
by triggering a roundtrip after receiving the info event. When we get
the reply, we can assume all info is flushed. This includes the
parameters that we received.
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit 125fcb566053e0529aaa4ceb2e043632a3215443: session-manager: remove obsolte _set_id
media-session: Wait for devices to appear and be bound before setting
the profile on the device. Then wait for all the nodes to appear
before attempting the create endpoints on the device.
ERROR While adding "src/examples/media-session/alsa-endpoint.c": Path not in repository: src/examples/media-session/alsa-endpoint.c
INFO Importing commit 279e6706b26850d60e33921c2e1a968ea6a0753d: stream: do not call process if the queue is not empty enough
ERROR While adding "src/pipewire/stream.c": Path not in repository: src/pipewire/stream.c
INFO Importing commit 4314fba7c4e245c1089b8937dbddfa9f227463d4: alsa: close fd before destroying the loop
ERROR While adding "pipewire-alsa/alsa-plugins/pcm_pipewire.c": Path not in repository: pipewire-alsa/alsa-plugins/pcm_pipewire.c
INFO Importing commit b0932e687fc47e0872ca291531f2291d99042d70: pulse: avoid errors with const
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 2474f9ae7d9f2e42195d8a13816b0ffdb996fd66: Add some more useful functions
ERROR While adding "src/pipewire/protocol.c": Path not in repository: src/pipewire/protocol.c
INFO Importing commit dd2fa2caee4cd38092d285f7f25c56228cea5b3b: core: move export function to core.h
ERROR While adding "src/pipewire/core.c": Path not in repository: src/pipewire/core.c
INFO Importing commit 7594eabdc8ebaec267b58ae07da4ed2609cf0d36: remote: pass core_proxy to export function
We want to remove the need for the pw_remote in most cases.
ERROR While adding "src/modules/module-client-device/proxy-device.c": Path not in repository: src/modules/module-client-device/proxy-device.c
INFO Importing commit 8bb1ccf587febe4a8373e31e960a9dae308b1dfe: protocol-native: emit a core error on disconnect
Let the listeners on the core_proxy know about connection errors.
ERROR While adding "src/modules/module-protocol-native.c": Path not in repository: src/modules/module-protocol-native.c
INFO Importing commit 0b2e4a18ffee2ed641f2865de87ea201867db725: protocol-native: make the connection earlier
Make the connection as soon as we create the client. We create it
without file descriptor and then set it when we connect. This
makes it possible to use the connection to queue messages before
we connect.
ERROR While adding "src/modules/module-protocol-native/connection.c": Path not in repository: src/modules/module-protocol-native/connection.c
INFO Importing commit ed9d4e5e8045c2d722a483eca549689d004062c3: mem: add method to clear pool
ERROR While adding "src/pipewire/mem.c": Path not in repository: src/pipewire/mem.c
INFO Importing commit d5ea24ae2cf2e8ed3651d4dcc4b69c4edb24b48e: proxy/resource: add method to remove
ERROR While adding "src/pipewire/core.c": Path not in repository: src/pipewire/core.c
INFO Importing commit c67c73d64d78bbd2c9da35da6765093aae77ca55: remote: install core_proxy right after connect
Make the core proxy available right after we called connect. This
makes it possible to avoid waiting for the remote state change and
start using the core_proxy right away.
ERROR While adding "src/pipewire/remote.c": Path not in repository: src/pipewire/remote.c
INFO Importing commit 6b1e1a82f1ff92cfdf39b2f3103b70c247eda4b1: alsa: improve debug
ERROR While adding "pipewire-alsa/alsa-plugins/pcm_pipewire.c": Path not in repository: pipewire-alsa/alsa-plugins/pcm_pipewire.c
INFO Importing commit 1ba5a172361aa9f677e82117718d8e4c2748322b: core: add PW_KEY_CORE_PROFILE_MODULES
Let the core load a set of default modules.
Add a key to control what default set to load, falling back to a
reasonable set. Make the daemon not load any set and rely on the
config script to load modules.
ERROR While adding "src/daemon/main.c": Path not in repository: src/daemon/main.c
INFO Importing commit f8aabe69fedf7b6d859ed89c957e7cf5c4213216: interfaces: don't define opaque types
Let the types be opaque so that we can make a private implementation
later.
ERROR While adding "src/pipewire/interfaces.h": Path not in repository: src/pipewire/interfaces.h
INFO Importing commit 8a959ea7a15db69c82b8f42ba7d70aa0f065b073: core_proxy: prepare to rename pw_remote -> pw_core_proxy
The pw_remote object is really a wrapper around the pw_core_proxy.
The events it emits are also available in the core proxy and are
generally awkward to use.
With some clever new pw_core_proxy_* methods and a pw_core_connect
to create the core_proxy, we can convert all code away from pw_remote.
This is a first step in this conversion, using the pw_remote behind
the scenes. It leaks into some places because it really needs to become
its own struct in a next step.
ERROR While adding "pipewire-alsa/alsa-plugins/pcm_pipewire.c": Path not in repository: pipewire-alsa/alsa-plugins/pcm_pipewire.c
INFO Importing commit 3d79970d8869e8377f0e78a671b491e92848d7ea: remote: remove events and states
ERROR While adding "src/modules/module-protocol-native/local-socket.c": Path not in repository: src/modules/module-protocol-native/local-socket.c
INFO mv "src/pipewire/remote.c" "src/pipewire/core-proxy.c"
INFO Importing commit ca6f1bd2f1eaeb65c2893158a2dde91d2a4ba9c5: remote: remove the remote
Mostly rename pw_remote_* to pw_core_proxy_*
ERROR While adding "src/modules/module-protocol-native.c": Path not in repository: src/modules/module-protocol-native.c
INFO Importing commit 7b0b5b77c38d0fa1bcbaa2f498d70083cf2430a8: core-proxy: add connect_self
ERROR While adding "src/pipewire/core-proxy.c": Path not in repository: src/pipewire/core-proxy.c
INFO Importing commit 05565b21b12c1a681e29dfc75d2f196c0d15fba2: proxy: improve cleanup
Remove the core_proxy from objects so that it doesn't try to use it
when it's being destroyed.
We need to recheck the core_proxy because it might have been removed
in the destroy signal.
ERROR While adding "src/pipewire/core-proxy.c": Path not in repository: src/pipewire/core-proxy.c
INFO Importing commit 7dc8a33e3e14d1e4ec256b60d9c09eb0c503e316: fix unit tests
ERROR While adding "src/pipewire/filter.c": Path not in repository: src/pipewire/filter.c
INFO Importing commit af605cdda241821cc6736367ec67aeec2ce0f483: use opaque types for proxies
This makes it easier to implement the proxies
ERROR While adding "src/examples/media-session/metadata.c": Path not in repository: src/examples/media-session/metadata.c
INFO Importing commit 9610a4a5736a7066e9e254e5d476e611b3bf97da: fix interface call
ERROR While adding "src/extensions/session-manager/impl-interfaces.h": Path not in repository: src/extensions/session-manager/impl-interfaces.h
INFO Importing commit c990c73d626e1bb54d0889ad33d908ea2fc0d2a9: support absolute paths
ERROR While adding "src/modules/module-protocol-native.c": Path not in repository: src/modules/module-protocol-native.c
INFO Importing commit ed8dadca153f6fa602501918a5441e3b5100e003: core-proxy: expose more methods
ERROR While adding "src/pipewire/core-proxy.h": Path not in repository: src/pipewire/core-proxy.h
INFO Importing commit a8c3dc6a8a3734f1efdfc534302ce8f8139bed03: improve properties on stream and filter
ERROR While adding "src/pipewire/core-proxy.c": Path not in repository: src/pipewire/core-proxy.c
INFO Importing commit 9b1c3c211e0d2cf344ba6478e5ae3325b09eeede: stream: disconnect the core_proxy when needed
ERROR While adding "src/pipewire/filter.c": Path not in repository: src/pipewire/filter.c
INFO Importing commit d677aeeeca0d7b7214b01d09d1445e6dd297f382: stream: remove our ref to the stream on destroy
ERROR While adding "pipewire-pulseaudio/src/stream.c": Path not in repository: pipewire-pulseaudio/src/stream.c
INFO Importing commit cfeb724d58b95f975b88103775a6f97b0b605244: pulse: don't add listener when connection failed
ERROR While adding "pipewire-pulseaudio/src/context.c": Path not in repository: pipewire-pulseaudio/src/context.c
INFO Importing commit 6204c95ee3bacae8495342a011bd135799ca2ac6: remote-node: restore old activation after we unmap the server one
ERROR While adding "src/modules/module-client-node/remote-node.c": Path not in repository: src/modules/module-client-node/remote-node.c
INFO Importing commit 181c2de2ee3fa549f5d08e84cbcb4f9c951451c3: parser: only recurse into CHOICE when 1 value
Only try to collect the CHOICE value when there is only 1 value.
This makes it possible to parse the complete choice as a SPA_Pod.
ERROR While adding "spa/include/spa/pod/parser.h": Path not in repository: spa/include/spa/pod/parser.h
INFO Importing commit 2070ad37dff392187857f9b9102639a636e6d104: example: handle connect error
ERROR While adding "src/examples/audio-dsp-filter.c": Path not in repository: src/examples/audio-dsp-filter.c
INFO Importing commit e27331a25ec9d5bdfcf10b7317df22fe706a7429: filter: use spa_node directy
There is not need to make a pw_node first and export that, we ca
directly export the spa_node.
Fix property updates on node and port.
Fix some leaks
ERROR While adding "src/pipewire/filter.c": Path not in repository: src/pipewire/filter.c
INFO Importing commit b5811280efb2d7667455e665b7ab903d7ed84e64: core-proxy: improve cleanup
Also disconnect filters.
Ignore multiple destroy calls. This can happen when the protocol
destroys the core-proxy and some implementation cleanup code
does the same. The cleanup code can't reliably know about this
cleanup.
ERROR While adding "src/pipewire/core-proxy.c": Path not in repository: src/pipewire/core-proxy.c
INFO Importing commit 030d2a075b5f359c76bcc14b1f35792863738c17: stream: improve params
ERROR While adding "src/pipewire/filter.c": Path not in repository: src/pipewire/filter.c
INFO Importing commit 5a2ad084e82d184691deaa80ac47c4542d9a6159: proxy: add pw_proxy_set_bound_id
Add method to set bound_id and emit the signal.
Rename resource_bound_id -> resource_set_bound_id and add
resource_get_bound_id.
ERROR While adding "src/modules/module-client-device/resource-device.c": Path not in repository: src/modules/module-client-device/resource-device.c
INFO Importing commit 2c492ff71f575a54e3e8b60f45be3f8820400118: client-node: don't check format
Don't check if we got a Format param to be able to set buffers,
let the implementation decide on that.
ERROR While adding "src/modules/module-client-node/client-node.c": Path not in repository: src/modules/module-client-node/client-node.c
INFO Importing commit 468cbb8892ba4b22e03ce05c71d87191ea2781a9: core-proxy: improve cleanup
Don't disconnect and destroy on errors, let the app do that.
Don't try to use a destroyed core-proxy.
ERROR While adding "src/modules/module-protocol-native.c": Path not in repository: src/modules/module-protocol-native.c
INFO Importing commit 84c91c44e39d56b4e7301fb751af3526a58a072c: port: emit info changed on new port
ERROR While adding "src/pipewire/port.c": Path not in repository: src/pipewire/port.c
INFO Importing commit 49a4440692bb283bbf6c3ba86e9877b867f063aa: audioadapter: pass slave properties directly
ERROR While adding "spa/plugins/audioconvert/audioadapter.c": Path not in repository: spa/plugins/audioconvert/audioadapter.c
^C⏎ nyanpasu64@ryzen ~/code/pipewire (master) [SIGINT]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment