The metadata provider library, libmd, extracts metadata from media files on attached devices to provide client applications with up-to-date information on the media content available for browsing or playing.
Clients of libmd can extract specific sets of metadata fields from individual media files. With this design, clients can retrieve the exact metadata they need at precise times so they can optimize performance and the user experience. For example, suppose the user selects a track in their media browser. The browser can extract the track's creation information fields (which are small and fast to retrieve) but not its embedded artwork images (which can be large and slow to process). This strategy increases the browser's responsiveness.
Consider a cover flow application that allows users to visually browse their music collection and begin playback by selecting an album image. The application can extract the cover art when generating the flow of albums and then extract the artist name, year of release, and other album information when the user selects an album image. This load-on-demand philosophy ensures that the exact information—whether images or text—becomes available as soon as the user needs it.