Media Metadata Extraction and Manipulation
This SoC project aims to convert Gallery into a more powerful tool when comes to making an extensive use of the embedded data in binary media files, commonly called metadata.
Currently Gallery has an 'Exif' module that is capable of extracting that information, and embedding it inside a block when the user is viewing an image that contains embedded metadata. That parsing happens every time the user views the item via the core.ShowItem view. In some cases, there is a noticeable delay on that page load, mostly with big image files. That data isn't cached nor stored anywhere, so it isn't possible to search it efficiently, and there isn't the possibility to alter the metadata, a very requested feature that would allow lots of people manage all of their metadata tagging/classification needs directly from Gallery.
When finished, the additions and modifications to the exif module will...
Allow a G2 User to:
- Be able to extract (only one time) and then access image embedded metadata directly through persistent database storage (a lot faster than re-parsing all the properties every time an item is being viewed)
- Use another "metadata provider" (backend library) to have a wider quantity of properties to visualize and if the backend allows it, modify them with a nice editor (Exiftool support will be added for this point)
- Use an implementation of the GallerySearch interface that will allow searching all the Gallery items that match certain criteria in metadata fields
Allow a G2 Developer to:
- Add support for more properties being parsed from a file within a certain provider in a straightforward manner, or implement support for another metadata extraction backend (like jHead)
- Easily add more tests for any of the specific providers or the common provider interface with the defined contract
- Backend provider class Helper/test decoupling (DONE)
- Basic exifer support (DONE)
- Search interface implementation (DONE)
- Exiftool read-only support (DONE)
- Exiftool write support (DONE)
- MetadataEditor logic and interface (DONE)
- General Review, Unit testing and bugfixing (IN PROGRESS)
Nice to have features
- Altering the properties of a group of similar/same GalleryDataItems
- Integrate getid3 module to use the same Maps as the exif module
Original Google proposal