Hi list,

I am interested in contributing some patches for Tracker, making it more
suitable for In-Vehicle Infotainment-use. I am working for Pelagicore (
pelagicore.com) to develop these patches. The patches will mainly concern
speed and size issues, one patch is currently being developed and the rest
are in a planning stage. To easily contribute these patches, while still
being able to publicize purely automotive specific modifications (such as
scripts containing pre-defined autogen parameters for specific
environments), I have opened a GitHub repository, which is called
tracker-ivi. The aim here is to keep the GitHub repository very up-to-date
with the git.gnome.org repository, diverge as little as possible, and to
submit all applicable patches from tracker-ivi to the Tracker mainline.

To start with, I would like to submit a patch containing a new extractor
for PNG files, which is faster than the original.

The reason behind the speed increase with this extractor compared to the
old extractor is that the new extractor seek()s out the metadata fields in
the PNG, rather than traverse the entire file to find them, as the old
extractor did (using libpng). The length of the seek() to find the metadata
fields is calculated based on the length of the first IDAT field, which
means it is important that the IDAT fields are uniform in length. In theory
it is possible to have variable length IDAT fields, but I have never seen
this in practice.

My idea is to insert this new extractor with a slightly higher priority
than the PNG extractor (the PNG extractor currently has prio 10 due to the
.rules-file numbering, "PNG-faster" has 09). If PNG-faster fails to read
the PNG file (which should happen if, for instance the IDAT chunks are
variable sized), the extractor will fail and the regular PNG extractor can
re-try the extraction.

The PNG-faster extractor supports iTXt (UTF-8 chunks) and tEXt (Latin-1)
chunks. It does not support zTXt (zlib compressed Latin-1), as I have never
seen this used. Adding zTXt support would be trivial however.

The commit containing the patch is available here:
https://github.com/Pelagicore/tracker-ivi/commit/a3fee45609a6aebdf268b459914bc55d26616b6a

The URL for the GitHub repository is:
https://github.com/Pelagicore/tracker-ivi

Please let me know if this extractor is interesting & fit for inclusion
into Tracker, or what needs to be fixed for it to be included.

Regards,

Jonatan Pålsson
_______________________________________________
tracker-list mailing list
tracker-list@gnome.org
https://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to