This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

1. Supported File Formats

This page lists all the formats we maintain in the Tracker code tree.

The extractors below are chosen in order of Specific before Generic. If there are multiple extractors for the same mime type, the first one found in the directory is used.

Most extractors are automatically configured, meaning, if the dependency libraries exist on the system, support is built automatically. To ensure extractors are enabled or disabled for particular formats, use the --enable-* or --disable-* switch indicated in the table below!

Last updated for 0.17.4.

Specific Extractors

Formats

MIME Types

Details & Open Issues

Build Specific

Requires

MSOffice

application/msword

GB#630244 GB#632876 GB#632880

--enable-gsf

libgsf >= 1.14.24

application/vnd.ms-powerpoint

application/vnd.ms-excel

application/vnd.openxmlformats-officedocument.presentationml.presentation

application/vnd.openxmlformats-officedocument.presentationml.slideshow

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

application/vnd.openxmlformats-officedocument.wordprocessingml.document

ABW

application/x-abiword

GB#633105

--enable-abiword

-

PS

application/x-gzpostscript

GB#633106

--enable-unzip-ps-gz-files

-

application/postscript

PDF

application/pdf

-

--enable-poppler

poppler >= 0.16.0

Playlist

audio/x-mpegurl

-

--enable-playlist

totem-plparser

audio/x-scpls

audio/x-pn-realaudio

application/ram

application/vnd.ms-wpl

application/smil

audio/x-ms-asx

ISO

application/x-cd-image

-

--enable-libiso

libisoinfo-1.0 >= 0.2.9

DVI

application/x-dvi

-

--enable-dvi

-

EPUB

application/epub+zip

-

--enable-libgsf

libgsf >= 1.14.24

CUE

-

-

--enable-libcue

libcue >= ANY VERSION

XPS

application/oxps

-

--enable-libgxps

libgxps >= ANY VERSION

application/vnd.ms-xpsdocument

HTML

text/html

-

--enable-xml2

libxml >= 2.6.0

application/xhtml+xml

OGG

audio/x-vorbis+ogg

-

--enable-libvorbis

libvorbis >= 0.22.0

application/ogg

MP3

audio/mpeg

-

--enable-mp3

-

audio/x-mp3

FLAC

audio/x-flac

-

--enable-libflac

libflac >= 1.2.1

PNG

image/png

-

--enable-libpng

libpng >= 1.2.0

sketch/png

SVG

image/svg+xml

-

--enable-generic-media-extracter=gstreamer

gstreamer-0.10 >= 0.10.31, gstreamer-tag-0.10 >= 0.10.31

JPEG

image/jpeg

-

--enable-libjpeg

libjpeg >= ANY VERSION

TIFF

image/tiff

-

--enable-libtiff

libtiff >= ANY VERSION

GIF

image/gif

-

--enable-libgif

libgif >= ANY VERSION

XMP

application/rdf+xml

-

--enable-exempi

libexempi >= 2.1.0

IPTC

-

-

--enable-libiptc

libiptcdata >= ANY VERSION

EXIF

-

-

--enable-exif

libexif >= 0.6.0

ICO

image/vnd.microsoft.icon

-

--enable-icon

-

GStreamer (Normal)

video/3gpp

-

-

gstreamer-0.10 >= 0.10.31, gstreamer-tag-0.10 >= 0.10.31

video/mp4

video/x-ms-asf

application/vnd.rn-realmedia

Generic Extractors

Formats

MIME Types

Details & Open Issues

Build Specific

Requires

Plain Text

text/*

-

--enable-text

-

MSOffice

application/vnd.ms-*

-

--enable-libgsf

libgsf >= 1.14.24

Oasis

application/vnd.oasis.opendocument.*

-

--enable-libgsf

libgsf >= 1.14.24

GStreamer (Normal)

audio/*

GB#613254

-

gstreamer-0.10 >= 0.10.31, gstreamer-tag-0.10 >= 0.10.31

video/*

image/*

GStreamer (GUPNP-DLNA)

audio/*

-

--with-gstreamer-backend=gupnp-dlna

gupnp-dlna-2.0 >= 0.9.4, gupnp-dlna-gst-2.0 >= 0.9.4

video/*

image/*

dlna/*

GStreamer (Dicoverer)

audio/*

-

--with-gstreamer-backend=discoverer

gstreamer-pbutils-1.0 >= 0.10.31

video/*

image/*

GStreamer (Decodebin2)

audio/*

-

--with-gstreamer-backend=decodebin2

-

video/*

image/*

GStreamer (Tagreadbin)

audio/*

-

--with-gstreamer-backend=tagreadbin

-

video/*

image/*

AV

audio/*

-

--enable-generic-media-extractor=libav

libavformat >= 0.8.4, libavcodec >= 0.8.4, libavutil >= 0.8.4

video/*

MPlayer

audio/*

(uses spawn, not efficient)

-

-

video/*

Totem

audio/*

(uses spawn, not efficient)

-

-

video/*

Xine

audio/*

(uses spawn, not efficient)

-

libxine >= 1.0

video/*

RFE / Planned Extractors

Formats

MIME Types

Details & Open Issues

Build Specific

Requires

RTF

text/rtf

mailing list thread NB#163469

-

-

1.0.1. My format is not listed here?

The list of extractors requested can be found here.

Contact us on the Tracker mailing list or on IRC!

1.1. How do I add support for a new MIME type?

1.1.1. Overview

Packages and tools used:

1.1.2. Adding MIME types

There is a tutorial provided by the shared-mime-info specification.

So here is an example:

Let's say that you're packaging support for foo images with your project, the GIMP project.

1.1.3. Removing MIME types

Let's use the example of reversing what we've done above:

1.1.4. What does 'update-mime-database' do?

Below <MIME> refers to $XDG_DATA_DIRS/mime, which in most cases is /usr/share/mime (unless a different prefix is used).

Files affected by running this command include (for more detail on this, refer to the specification mentioned above):

1.1.5. How can I test my new MIME type?

Using the tools mentioned above, specifically xdg-mime and xdg-open, you can easily test your new file format.

Let's see some examples:

1.1.6. How does all this relate to Tracker?

Well, essentially, Tracker uses this same system of MIME type caches and desktop files through GLib and various other libraries. When Tracker comes to extract specific metadata for a file (by specific, we mean non-file based data, e.g. image orientation or something related to that type of file only), we marry up the extractors to MIME types. You can see the MIME types we support by looking at the *.rule files which are installed into '$XDG_DATA_DIRS/tracker/extract-rules' (usually '/usr/share/tracker/extract-rules'). These are also in the source code repository and installed as part of the Tracker package.

We use globbing techniques to match MIME types to extractors. That's how we can have generic extractors to match all images (using 'image/*' for example).

So once you have your MIME type set up, you just need to add the MIME type to the rule file OR if it is recognised under an existing glob pattern, such as 'image/*', you just need to add support to the relevant extractors already in place.

That's it :)


2024-10-23 10:59