View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001857 | OpenMPT | libopenmpt | public | 2025-01-14 17:16 | 2025-01-14 21:03 |
Reporter | Toothless | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Product Version | OpenMPT 1.31.13.00 / libopenmpt 0.7.12 (upgrade first) | ||||
Summary | 0001857: Infinite length reported | ||||
Description | I have this file beyondmy_control.mod - https://cloud.rys.rs/s/HBAqLWF7gr35YSZ
libopenmpt reports "infinity" duration from get_duration_seconds(), which seems to be in spec for "too complex pattern data" as per https://lib.openmpt.org/doc/classopenmpt_1_1module.html#a7a9ba10dd86296f1239f74dbc9dd26d1 But VLC correctly gets the duration - 34:32 - so I suppose this library should be able to get it too and there's some other issue? | ||||
Steps To Reproduce | The function is called as such from a Python application (user reported it to crash Tauon, the music player, as it was not handling infinity):
| ||||
Additional Information | The file is seemingly from 1995, which is older than me... Downstream PR - https://github.com/Taiko2k/Tauon/pull/1389 | ||||
Tags | No tags attached. | ||||
Has the bug occurred in previous versions? | |||||
Tested code revision (in case you know it) | |||||
VLC uses libmodplug, which cannot compute nested loop lengths correctly. 34:32 is not the correct length of this module - the correct length is about 50 minutes. Since OpenMPT - unlike libmodplug - actually correctly evaluates nested loops, and since this can be very costly on both runtime and memory consumption, a line has to be drawn somewhere when to stop loop evaluation - otherwise tracking every possible loop state will consume gigabytes of memory. This module has 4 extremely long nested loops that exceed the threshold for amount of rows spent in nested loops by a large amount, so libopenmpt stops counting and reports infinity. While it might potentially be possible to relax this limitation in the future, I don't see an easy way right now. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2025-01-14 17:16 | Toothless | New Issue | |
2025-01-14 17:26 | Toothless | Additional Information Updated | |
2025-01-14 20:21 | Saga Musix | Note Added: 0006301 | |
2025-01-14 20:38 | Saga Musix | Summary | Infinite length reported for a file that VLC handles correctly (.MOD 4-channel Protracker module) => Infinite length reported ~for a file that VLC handles correctly~ (.MOD 4-channel Protracker module) |
2025-01-14 20:38 | Saga Musix | Summary |
Infinite length reported ~for a file that VLC handles correctly~ (.MOD 4-channel Protracker module) => Infinite length reported |
2025-01-14 21:03 | Saga Musix | Note Edited: 0006301 |