My friends, my life, my style - James S.F. Hsieh

6/01/2010

Media Library Engine 2.0


It is a file-based media content management service that provides query/access, management, and tracing APIs. Windows applications can search, manage, and sync content with MLE2. It includes a daemon which syncs metadata and thumbnails between database and file system in background. MLE2 database back-end is SQLite engine. Comparing to Google Picasa cataloging engine, MLE2 can handle more files (10K~100K files) than Picasa, and they have similar performance for cataloging and search. In addition, it provides a schema-free metadata system to store complex metadata. It supports multiple applications or instances to concurrently access library. MLE 2.0 also supports primary features such as:

 Support multiple libraries in concurrent.
 Support high performance query, full-text-search, grouping and paging; MLE can handle a query to search 100000 ~ 250000 files less than 1 sec (depends on HDD and CPU).
 Support bulk operation to modify library.
 Support file time and size stacking
 High throughput thumbnail system which supports three levels pixel, 96x96, 160x160, and 480x480.
 Support applications to trace change of files.
 Extensible metadata and tags model, applications can define customized metadata and tags for special purpose.
 Extensible fault-tolerable media parsing framework, applications can implement multiple media parsers to support customized file formats. MLE includes a default media parser which supports JPEG, PNG, and BMP format based on Microsoft Windows Imaging Component.
 An async message channel between MLE and all clients. MLE uses that to notify change notification, and applications can use it to communicate each other.

I designed and implemented whole engine.