IPB

Welcome Guest ( Log In | Register )

> foobar2000 Development Forum Rules

This forum is for developer discussions only. If you have a problem / bug report / idea / feature request that isn't related to foobar2000 SDK, post it in an appropiate forum instead - tech support questions go to support forum, everything else goes to general forum.
All non-developer posts on this forum will be removed. Continued abuse of this forum will result in admin actions (warnings, account suspension).

 
Reply to this topicStart new topic
foobar2000 v1.3 upcoming changes, Attention lyrics viewer authors
Peter
post Jul 25 2013, 12:35
Post #1


foobar2000 developer


Group: Admin
Posts: 3314
Joined: 30-September 01
Member No.: 84



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
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.
Go to the top of the page
+Quote Post
The vern
post Jul 26 2013, 00:59
Post #2





Group: Developer
Posts: 203
Joined: 2-June 09
Member No.: 70332



Thanks for the heads up. Just out of interest will this affect fields compiled through titleformatting?
Go to the top of the page
+Quote Post
db1989
post Jul 26 2013, 12:13
Post #3





Group: Super Moderator
Posts: 5275
Joined: 23-June 06
Member No.: 32180



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.
Go to the top of the page
+Quote Post
Peter
post Jul 26 2013, 16:51
Post #4


foobar2000 developer


Group: Admin
Posts: 3314
Joined: 30-September 01
Member No.: 84



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.
Go to the top of the page
+Quote Post
The vern
post Jul 30 2013, 16:39
Post #5





Group: Developer
Posts: 203
Joined: 2-June 09
Member No.: 70332



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

This post has been edited by The vern: Jul 30 2013, 16:39
Go to the top of the page
+Quote Post
Peter
post Jul 31 2013, 10:11
Post #6


foobar2000 developer


Group: Admin
Posts: 3314
Joined: 30-September 01
Member No.: 84



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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 28th December 2014 - 05:48