Hi there.

so, this still seems to be an open problem. lets find some sort of workaround.
or at the very least deduplicate the effort of getting a locally working
jack-opus...

as it seems to be better to not pullute the shared libraries with custom
variants (no way back etc.), i think (until upstream has a better
solution), libopus-dev should just provide an additional static library
including the custom stuff. i.e. build the library twice.

here [1] is a working package (in the custom branch). with the contained
library libopus-custom.a, you can then build an opus enabled jack e.g.
from the opus branch in [2]. without further work, this will lead to
wrong/ambiguous opus symbols in shared objects using the custom libopus.
so its not ready for a release.

$ readelf -s /usr/lib/x86_64-linux-gnu/libjackserver.so.0 |grep opus
   391: 00000000000a0d00     5 FUNC    GLOBAL DEFAULT   11 
opus_custom_encoder_destr
   491: 00000000000aa2f0  2068 FUNC    GLOBAL DEFAULT   11 
opus_custom_mode_create
   521: 00000000000a8bc0   185 FUNC    GLOBAL DEFAULT   11 opus_custom_decode
   564: 00000000000a6450   100 FUNC    GLOBAL DEFAULT   11 
opus_custom_encoder_creat
   577: 00000000000a6440     7 FUNC    GLOBAL DEFAULT   11 
opus_custom_encoder_init
   801: 00000000000a5e90  1226 FUNC    GLOBAL DEFAULT   11 
opus_custom_encoder_ctl
   820: 00000000000a8f60   151 FUNC    GLOBAL DEFAULT   11 
opus_custom_decoder_init
   823: 00000000000a7510     5 FUNC    GLOBAL DEFAULT   11 
opus_custom_decoder_destr
   840: 00000000000b2e90     8 FUNC    GLOBAL DEFAULT   11 
opus_get_version_string    <=
   876: 00000000000a9000   100 FUNC    GLOBAL DEFAULT   11 
opus_custom_decoder_creat
  1111: 00000000000a5e80     8 FUNC    GLOBAL DEFAULT   11 
opus_custom_encode_float
  1338: 00000000000a8bb0     8 FUNC    GLOBAL DEFAULT   11 
opus_custom_decode_float
  1340: 00000000000b2e60    33 FUNC    GLOBAL DEFAULT   11 opus_strerror        
      <=
  1418: 00000000000a5e10   108 FUNC    GLOBAL DEFAULT   11 opus_custom_encode
  1536: 00000000000aa270   114 FUNC    GLOBAL DEFAULT   11 
opus_custom_mode_destroy
  1853: 00000000000a8c80   730 FUNC    GLOBAL DEFAULT   11 
opus_custom_decoder_ctl
  2031: 00000000000a74d0    25 FUNC    GLOBAL DEFAULT   11 
opus_custom_decoder_get_s
  2420: 00000000000a0cb0    37 FUNC    GLOBAL DEFAULT   11 
opus_custom_encoder_get_s

rather than reinventing opus or even jack and the others, my suggestion
is to rename the non-custom symbols in the custom library before
packaging. the package then will probably be debian specific and will
still contain duplicate object code/symbols for the sake of 1ms. but in
my understanding shipping a static library is revertible enough to give
it a try.

thanks
felix

[1] git://tool.em.cs.uni-frankfurt.de/git/opus
[2] git://tool.em.cs.uni-frankfurt.de/git/jackd2

Attachment: signature.asc
Description: Digital signature

Reply via email to