saivert / ddb_output_pw Goto Github PK
View Code? Open in Web Editor NEWPipeWire output plugin for DeaDBeeF Music Player
License: GNU General Public License v2.0
PipeWire output plugin for DeaDBeeF Music Player
License: GNU General Public License v2.0
After updating pipewire, deadbeef crash on play, the plugin doesn't compile with the latest version.
Could you update this plugin?
Problem:
$ meson setup builddir
The Meson build system
Version: 1.0.0
Source dir: /home/c3kkos/ddb_output_pw
Build dir: /home/c3kkos/ddb_output_pw/builddir
Build type: native build
Project name: ddb_output_pw
Project version: 0.1
C compiler for the host machine: cc (gcc 11.3.0 "cc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0")
C linker for the host machine: cc ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Has header "deadbeef/deadbeef.h" : NO
meson.build:23:2: ERROR: Problem encountered: missing header: deadbeef.h
A full log can be found at /home/c3kkos/ddb_output_pw/builddir/meson-logs/meson-log.txt
I got deadbeef installed in /opt.
I've copied the "include" dir with all the .h files, to my home, in the git clone dir, in the builddir.....but they are not found.
Sorry, i never used meson, this should be my fault
$ pwd
/home/c3kkos/ddb_output_pw
$ ls
builddir deadbeef LICENSE Makefile meson.build pw.c README.md
ddb_output_pw/deadbeef$ ls
artwork.h converter.h deadbeef.h gtkui_api.h
^ that dir/files.... i copied them everywhere....i suspect meson expects a $PATH entry?
Deadbeef is closing randomly, after finishing a random track the program just disappears and I have to reopen it.
Then after opening it again I get the following in the log:
dlopen error: /opt/deadbeef/lib/deadbeef/ddb_out_pw.so: undefined symbol: PW_LOG_TOPIC_DEFAULT
trying /opt/deadbeef/lib/deadbeef/ddb_out_pw.fallback.so...
plugin ddb_out_pw.so not found or failed to load
I use ALSA output plugin..
I dont use Pipewire, and I dont have this plugin in my .local/lib/deadbeef directory.... thats why I dont understand this "failed to load"....
Do u think the randomly exiting is connected with this plugin?
Where would u start searching for the problem?
I appreciate any ideas...
I got this crash to happen one time. When a track was playing, I double-clicked a new track to switch to it and deadbeef crashed. Not a debug build so I only have partial traces.
Stack trace of thread 2607:
#0 0x00007f2cea08dd22 raise (libc.so.6 + 0x3cd22)
#1 0x00007f2cea077862 abort (libc.so.6 + 0x26862)
#2 0x00007f2cea0cfd28 __libc_message (libc.so.6 + 0x7ed28)
#3 0x00007f2cea0d792a malloc_printerr (libc.so.6 + 0x8692a)
#4 0x00007f2cea0d8826 unlink_chunk.constprop.0 (libc.so.6 + 0x87826)
#5 0x00007f2cea0d907b _int_free (libc.so.6 + 0x8807b)
#6 0x00007f2cea0dc9e8 __libc_free (libc.so.6 + 0x8b9e8)
#7 0x00007f2cb92941b1 n/a (libspa-audioconvert.so + 0x2b1b1)
#8 0x00007f2cb9297835 n/a (libspa-audioconvert.so + 0x2e835)
#9 0x00007f2cb928f0b3 n/a (libspa-audioconvert.so + 0x260b3)
#10 0x00007f2ce4efaba4 n/a (libpipewire-0.3.so.0 + 0x63ba4)
#11 0x00007f2ce4efe8d4 pw_impl_node_set_state (libpipewire-0.3.so.0 + 0x678d4)
#12 0x00007f2cb934d090 n/a (libpipewire-module-client-node.so + 0x11090)
#13 0x00007f2ce4f0d828 pw_proxy_destroy (libpipewire-0.3.so.0 + 0x76828)
#14 0x00007f2ce4f1bfed pw_stream_disconnect (libpipewire-0.3.so.0 + 0x84fed)
#15 0x00007f2ce4f1c429 pw_stream_destroy (libpipewire-0.3.so.0 + 0x85429)
#16 0x00007f2ce526dc3c n/a (ddb_out_pw.so + 0x5c3c)
#17 0x00007f2ce526dcad n/a (ddb_out_pw.so + 0x5cad)
#18 0x000055712a430fb3 n/a (deadbeef + 0x4bfb3)
#19 0x000055712a42ca87 n/a (deadbeef + 0x47a87)
#20 0x00007f2cea2a6259 start_thread (libpthread.so.0 + 0x9259)
#21 0x00007f2cea14f5e3 __clone (libc.so.6 + 0xfe5e3)
I wasn't able to reproduce it after it happened. Using the latest plugin commit (e38b507), pipewire 0.3.40.
When the Pipewire plugin was first used in Deadbeef, I was surprised that the volume went to 100% after switching songs, I noticed it didn't happen when the pipewire volume control was enabled, I think enabling this by default would be more user friendly
Hello,
Would you be able to correct the source code in the Infobar Plugin 1.4 to work with the latest versions of Deadbeef?
The reason I am asking you, since you have done coding in Deadbeef for this project, I'm hoping you can do this, if you have the free time.
I posted an issue about this on Deadbeef's Github repo, but unfortunately no one has come forward to update this, which is really a shame.
If you are familiar with the plugin, the reason I want to use it, it also has Biography support besides Lyrics.
You can only use deadbeef-0.7.2 with the Infobar Plugin.
I'm attaching the original source for the Infobar plugin.
Thank you for your time and consideration, please let me know. :)
Hi,
Not sure what's going on but I can't build this plugin on Fedora 36.
Package details:
$ make
cc -I/usr/local/include -std=c99 -shared -O2 -o ddb_out_pw.so pw.c `pkg-config --cflags --libs libpipewire-0.3` -fPIC -Wall -march=native
In file included from /usr/include/pipewire-0.3/pipewire/properties.h:35,
from /usr/include/pipewire-0.3/pipewire/core.h:87,
from /usr/include/pipewire-0.3/pipewire/context.h:67,
from /usr/include/pipewire-0.3/pipewire/protocol.h:46,
from /usr/include/pipewire-0.3/pipewire/proxy.h:108,
from /usr/include/pipewire-0.3/pipewire/client.h:35,
from /usr/include/pipewire-0.3/pipewire/pipewire.h:35,
from pw.c:25:
/usr/include/spa-0.2/spa/utils/string.h: In function ‘spa_strtof’:
/usr/include/spa-0.2/spa/utils/string.h:279:16: error: unknown type name ‘locale_t’
279 | static locale_t locale = NULL;
| ^~~~~~~~
/usr/include/spa-0.2/spa/utils/string.h:279:34: warning: initialization of ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
279 | static locale_t locale = NULL;
| ^~~~
/usr/include/spa-0.2/spa/utils/string.h:280:9: error: unknown type name ‘locale_t’
280 | locale_t prev;
| ^~~~~~~~
In file included from /usr/include/spa-0.2/spa/pod/pod.h:32,
from /usr/include/spa-0.2/spa/pod/iter.h:35,
from /usr/include/spa-0.2/spa/pod/parser.h:35,
from /usr/include/spa-0.2/spa/param/audio/format-utils.h:37,
from pw.c:23:
/usr/include/spa-0.2/spa/utils/string.h:284:33: warning: comparison between pointer and integer
284 | if (SPA_UNLIKELY(locale == NULL))
| ^~
/usr/include/spa-0.2/spa/utils/defs.h:280:46: note: in definition of macro ‘SPA_UNLIKELY’
280 | #define SPA_UNLIKELY(x) (__builtin_expect(!!(x),0))
| ^
/usr/include/spa-0.2/spa/utils/string.h:285:26: warning: implicit declaration of function ‘newlocale’; did you mean ‘setlocale’? [-Wimplicit-function-declaration]
285 | locale = newlocale(LC_ALL_MASK, "C", NULL);
| ^~~~~~~~~
| setlocale
/usr/include/spa-0.2/spa/utils/string.h:285:36: error: ‘LC_ALL_MASK’ undeclared (first use in this function)
285 | locale = newlocale(LC_ALL_MASK, "C", NULL);
| ^~~~~~~~~~~
/usr/include/spa-0.2/spa/utils/string.h:285:36: note: each undeclared identifier is reported only once for each function it appears in
/usr/include/spa-0.2/spa/utils/string.h:286:16: warning: implicit declaration of function ‘uselocale’; did you mean ‘setlocale’? [-Wimplicit-function-declaration]
286 | prev = uselocale(locale);
| ^~~~~~~~~
| setlocale
/usr/include/spa-0.2/spa/utils/string.h: In function ‘spa_strtod’:
/usr/include/spa-0.2/spa/utils/string.h:329:16: error: unknown type name ‘locale_t’
329 | static locale_t locale = NULL;
| ^~~~~~~~
/usr/include/spa-0.2/spa/utils/string.h:329:34: warning: initialization of ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
329 | static locale_t locale = NULL;
| ^~~~
/usr/include/spa-0.2/spa/utils/string.h:330:9: error: unknown type name ‘locale_t’
330 | locale_t prev;
| ^~~~~~~~
/usr/include/spa-0.2/spa/utils/string.h:334:33: warning: comparison between pointer and integer
334 | if (SPA_UNLIKELY(locale == NULL))
| ^~
/usr/include/spa-0.2/spa/utils/defs.h:280:46: note: in definition of macro ‘SPA_UNLIKELY’
280 | #define SPA_UNLIKELY(x) (__builtin_expect(!!(x),0))
| ^
/usr/include/spa-0.2/spa/utils/string.h:335:36: error: ‘LC_ALL_MASK’ undeclared (first use in this function)
335 | locale = newlocale(LC_ALL_MASK, "C", NULL);
| ^~~~~~~~~~~
make: *** [Makefile:5: all] Error 1
I'd be grateful for suggestions on how to solve it.
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.