View Issue Details

IDProjectCategoryView StatusLast Update
0001100OpenMPTPlayer input plugins (xmp-openmpt, in_openmpt)public2018-11-13 07:50
Reportermanx Assigned Tomanx  
Status resolvedResolutionfixed 
Product VersionOpenMPT / libopenmpt 0.3.6 (upgrade first) 
Fixed in VersionOpenMPT / libopenmpt 0.3.7 (upgrade first) 
Summary0001100: foo_openmpt: delay-loading libmpg123 makes packaging as .fb2k-component on impossible

The way we delay-load libmpg123 makes it impossible to package foo_openmpt as an official component in the foobar2000 package format on the official foobar2000 website.
Packaged components will be installed in their own subdirectory, however our delay-loading mechanism explicitly expects the openmpt-mpg123.dll library in the application folder for security reasons.
Removing the whole delay-loading feature alltogether would make things work because foobar2000 loads components in a way that dependency libraries are expected in the same folder as the component DLL (XMPlay and Winamp do likewise for their plugins).

Additional Information

This is fixed in trunk/0.4 by r9851, r9852, r9857.
Also see 0001097 .

Applying r9851 in 0.3 would also affect the other player plugins, namely in_openmpt and xmp-openmpt.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)


related to 0001097 resolvedmanx Remove dynamic loading support in libopenmpt, and in particular for libmpg123. 




2018-03-06 15:11

administrator   ~0003465

A possible solution that would not change behavior for xmp-openmpt and in_openmpt (i.e. loading the plugin without openmpt-mp123.dll would still be possible) would be to add a separate libopenmpt project configuration solely for foo_openmpt in 0.3.

Saga Musix

Saga Musix

2018-03-06 15:23

administrator   ~0003466

Another possible option is to also use lieff's minimp3 in 0.3 and not require an external DLL at all. We don't really need any of the extra things that mpg123 can offer, and minimp3 has been proven to be very stable already and is smaller. Generally I would prefer minimp3 over mpg123 in any Windows builds also for libopenmpt 0.4.



2018-03-06 15:29

administrator   ~0003467

Changing minimp3 in 0.3 is not an option: Way too much work, and more importantly, it breaks SemVer.

Also, I do not want to change the default on Windows to diverge again from the default on other platforms (and on Linux, there is absolutely no way that Debian or other serious distributions would ever ship a libopenmpt with minimp3 as the mp3 backend, at the very least not as long as libmpg123 is actively maintained, which it certainly is).

Saga Musix

Saga Musix

2018-03-06 17:32

administrator   ~0003468

We already have other platforms that diverge, in particular emscripten. Since there's no one single solution to all platforms, I really don't see a problem there, in particular since it would help test coverage of the minimp3 implementation on other platforms than just emscripten, while mpg123 is already tested on various unix flavours and of course in OpenMPT.



2018-03-07 10:13

administrator   ~0003469

r9858 avoids delay-loading of opempt-mpg123.dll in foo_openmpt. Other plugins are unchanged.



2018-03-07 10:24

administrator   ~0003470

r9859 and r9860 change the packaging in 0.3

Issue History

Date Modified Username Field Change
2018-03-06 15:08 manx New Issue
2018-03-06 15:09 manx Relationship added related to 0001097
2018-03-06 15:09 manx Status new => confirmed
2018-03-06 15:11 manx Note Added: 0003465
2018-03-06 15:23 Saga Musix Note Added: 0003466
2018-03-06 15:29 manx Note Added: 0003467
2018-03-06 15:30 manx Additional Information Updated
2018-03-06 17:32 Saga Musix Note Added: 0003468
2018-03-07 10:13 manx Note Added: 0003469
2018-03-07 10:15 manx Additional Information Updated
2018-03-07 10:24 manx Note Added: 0003470
2018-04-15 16:48 manx Assigned To => manx
2018-04-15 16:48 manx Status confirmed => resolved
2018-04-15 16:48 manx Resolution open => fixed
2018-04-15 16:48 manx Fixed in Version => OpenMPT / libopenmpt 0.3.7 (upgrade first)
2020-05-24 19:25 manx Category Player input plugins (xmp-openmpt, in_openmpt, foo_openmpt) => Player input plugins (xmp-openmpt, in_openmpt)