Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foobar2000 v1.3 upcoming changes (Read 25930 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foobar2000 v1.3 upcoming changes

The upcoming foobar2000 v1.3 release will address various performance problems with very large music libraries.

Background:
One of the key issues with foobar2000 metadb design is that it stores a complete copy of file's text metadata in its cache.
This includes:
  • misplaced cuesheets
  • EAC logs
  • lyrics
  • epic novels
  • misplaced base64 encoded pictures
  • other weird stuff that people come up with
.. which leads to:
  • extreme memory usage
  • slow startup and shutdown
  • poor search performance

To address the above issue, foobar2000 v1.3 metadb will selectively ignore specific metadata records read from the files - mainly data that does not need to be readily available for displaying in playlist, library viewers, etc.
This will not affect daily use; properties dialog will still be able to show complete metadata by reading it from affected files directly.

If your component needs to display such data - lyrics in particular - please change your code to fetch it from the file directly on-demand.
Example:
Code: [Select]
static bool getInfoFromFile(metadb_handle_ptr inHandle, file_info & outInfo, abort_callback & abort) {
try {
input_info_reader::ptr reader;
input_entry::g_open_for_info_read(reader, NULL, inHandle->get_path(), abort );
reader->get_info( inHandle->get_subsong_index(), outInfo, abort );
return true;
} catch(exception_aborted) {
throw;
} catch(...) {
outInfo.reset();
return false;
}
}
Thank you for your attention.
Microsoft Windows: We can't script here, this is bat country.

foobar2000 v1.3 upcoming changes

Reply #1
Thanks for the heads up. Just out of interest will this affect fields compiled through titleformatting?

foobar2000 v1.3 upcoming changes

Reply #2
In case it was not clear, this thread should be reserved for discussion by developers who will be affected by this change.

Non-developers should confine questions and so forth to the corresponding thread in General. Off-topic posts from this thread have been moved there.

foobar2000 v1.3 upcoming changes

Reply #3
Fields accessible via regular title formatting methods will be affected as well.
Of course you can supply your own file_info coming from any source you like to title formatting to bypass this restriction.
Microsoft Windows: We can't script here, this is bat country.

foobar2000 v1.3 upcoming changes

Reply #4
Ok. Will there be a way to detect if a field exists but has not been loaded into the db?

foobar2000 v1.3 upcoming changes

Reply #5
Current situation (may still be subject to changes):
Oversized fields become "." (single dot character) - one-value regardless of original value count - so you can still search for files containing the field.
Metadb knows whether the info it holds is complete (no oversized fields encountered) or simplified, so you can skip loading info from files directly when the cached info is already complete.
Microsoft Windows: We can't script here, this is bat country.