[pulseaudio-discuss] libpulsecore dependency on libpulsecommon

Maarten Bosmans mkbosmans at gmail.com
Wed Nov 16 03:49:17 PST 2011


I'm looking for some guidance on how to solve
https://bugs.freedesktop.org/show_bug.cgi?id=41539.
The problem is that pulsecore/pstream.c (in libpulsecommon) includes
pulsecore/core-scache.h (which is itself in and includes from
libpulsecore), this is wrong. Apparantly it causes real trouble on
Solaris.

The header core-scache.h is only included to make the
PA_SCACHE_ENTRY_SIZE_MAX preprocessor symbol available.
There are several solutions possible.
 - Move the #define to a file in libpulsecommon. This is the solution
proposed in the patch attached to the bug. However, I don't like the
proposed new location in memchunk.h, because it is quite unrelated to
scache functionality.
 - Move the #define to pulse/scache.h. In this case we need to guard
against the symbol being externally visible.
 - Simply hardcode the value of 1024*1024*16 in pstream.c, perhaps
with a comment that says it should stay in sink with
PA_SCACHE_ENTRY_SIZE_MAX.

Which solution is preferred?

There are also other source-level dependenies from
libpulse/libpulsecommon on files from libpulsecore.
pulse/volume.c -> pulsecore/sample-util.h
pulse/channelmap.c -> pulsecore/sample-util.h
pulsecore/core-util.c -> pulsecore/cpu-x86.h

Is this also something we want to address? (I can make patches)

Maarten


More information about the pulseaudio-discuss mailing list