libextractor  1.11
About: GNU libextractor is a library used to extract meta-data from files of arbitrary type.
  Fossies Dox: libextractor-1.11.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

extractor.h
Go to the documentation of this file.
1 /*
2  This file is part of libextractor.
3  Copyright (C) 2002-2017 Vidyut Samanta and Christian Grothoff
4 
5  libextractor is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published
7  by the Free Software Foundation; either version 3, or (at your
8  option) any later version.
9 
10  libextractor is distributed in the hope that it will be useful, but
11  WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with libextractor; see the file COPYING. If not, write to the
17  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19  */
20 
21 #ifndef EXTRACTOR_H
22 #define EXTRACTOR_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #if 0 /* keep Emacsens' auto-indent happy */
27 }
28 #endif
29 #endif
30 
31 
32 #include <stdint.h>
33 
34 /**
35  * 0.2.6-1 => 0x00020601
36  * 4.5.2-0 => 0x04050200
37  */
38 #define EXTRACTOR_VERSION 0x010B0000
39 
40 #include <stdio.h>
41 
42 #ifndef _EXTRACTOR_EXTERN
43 #if defined(_WIN32) && defined(MHD_W32LIB)
44 #define _EXTRACTOR_EXTERN extern
45 #elif defined (_WIN32) && defined(MHD_W32DLL)
46 /* Define MHD_W32DLL when using MHD as W32 .DLL to speed up linker a little */
47 #define _EXTRACTOR_EXTERN __declspec(dllimport)
48 #else
49 #define _EXTRACTOR_EXTERN extern
50 #endif
51 #endif
52 
53 /**
54  * Options for how plugin execution should be done.
55  */
57 {
58 
59  /**
60  * Run plugin out-of-process, starting the process once the plugin
61  * is to be run. If a plugin crashes, automatically restart the
62  * respective process for the same file and try once more
63  * (since the crash may be caused by the previous file). If
64  * the process crashes immediately again, it is not restarted
65  * until the next file.
66  */
68 
69  /**
70  * Deprecated option. Ignored.
71  */
73 
74  /**
75  * Run plugins in-process. Unsafe, not recommended,
76  * can be nice for debugging.
77  */
79 
80  /**
81  * Internal value for plugins that have been disabled.
82  */
84 
85 };
86 
87 
88 /**
89  * Format in which the extracted meta data is presented.
90  */
92 {
93  /**
94  * Format is unknown.
95  */
97 
98  /**
99  * 0-terminated, UTF-8 encoded string. "data_len"
100  * is strlen(data)+1.
101  */
103 
104  /**
105  * Some kind of binary format, see given Mime type.
106  */
108 
109  /**
110  * 0-terminated string. The specific encoding is unknown.
111  * "data_len" is strlen (data)+1.
112  */
114 
115 };
116 
117 
118 /**
119  * Enumeration defining various sources of keywords. See also
120  * http://dublincore.org/documents/1998/09/dces/
121  *
122  * @defgroup types meta data types
123  * @{
124  */
126 {
127  /* fundamental types */
132 
133  /* Standard types from bibtex */
160 
161  /* "unique" document identifiers */
169 
170  /* identifiers of a location */
179 
180  /* generic attributes */
192 
193  /* processing history */
204 
208 
209  /* software package specifics (deb, rpm, tgz, elf) */
236 
237  /* photography specifics */
255 
256  /* image specifics */
262 
263  /* (text) document processing specifics */
275 
276  /* music / video specifics */
322 
323  /* GNUnet specific values (never extracted) */
332 
334 
339 
341 
346 
348 
351 
357 
364 
367 
369 
372 
379 
386 
389 
391 
395 
397 
400 
402 };
403 
404 /** @} */ /* end of meta data types */
405 
406 /**
407  * Get the textual name of the keyword.
408  *
409  * @param type meta type to get a UTF-8 string for
410  * @return NULL if the type is not known, otherwise
411  * an English (locale: C) string describing the type;
412  * translate using `dgettext ("libextractor", rval)`
413  * @ingroup types
414  */
415 _EXTRACTOR_EXTERN const char *
417 
418 
419 /**
420  * Get a long description for the meta type.
421  *
422  * @param type meta type to get a UTF-8 description for
423  * @return NULL if the type is not known, otherwise
424  * an English (locale: C) string describing the type;
425  * translate using `dgettext ("libextractor", rval)`
426  * @ingroup types
427  */
428 _EXTRACTOR_EXTERN const char *
430 
431 
432 /**
433  * Return the highest type number, exclusive as in [0,max).
434  *
435  * @return highest legal metatype number for this version of libextractor
436  * @ingroup types
437  */
440 
441 
442 /**
443  * Type of a function that libextractor calls for each
444  * meta data item found.
445  *
446  * @param cls closure (user-defined)
447  * @param plugin_name name of the plugin that produced this value;
448  * special values can be used (i.e. '&lt;zlib&gt;' for zlib being
449  * used in the main libextractor library and yielding
450  * meta data).
451  * @param type libextractor-type describing the meta data
452  * @param format basic format information about @a data
453  * @param data_mime_type mime-type of @a data (not of the original file);
454  * can be NULL (if mime-type is not known)
455  * @param data actual meta-data found
456  * @param data_len number of bytes in @a data
457  * @return 0 to continue extracting, 1 to abort
458  */
459 typedef int
460 (*EXTRACTOR_MetaDataProcessor) (void *cls,
461  const char *plugin_name,
463  enum EXTRACTOR_MetaFormat format,
464  const char *data_mime_type,
465  const char *data,
466  size_t data_len);
467 
468 
469 /**
470  * Context provided for plugins that perform meta data extraction.
471  */
473 {
474 
475  /**
476  * Closure argument to pass to all callbacks.
477  */
478  void *cls;
479 
480  /**
481  * Configuration string for the plugin.
482  */
483  const char *config;
484 
485  /**
486  * Obtain a pointer to up to @a size bytes of data from the file to process.
487  *
488  * @param cls the @e cls member of this struct
489  * @param data pointer to set to the file data, set to NULL on error
490  * @param size maximum number of bytes requested
491  * @return number of bytes now available in @a data (can be smaller than @a size),
492  * -1 on error
493  */
494  ssize_t (*read) (void *cls,
495  void **data,
496  size_t size);
497 
498 
499  /**
500  * Seek in the file. Use `SEEK_CUR` for @a whence and @a pos of 0 to
501  * obtain the current position in the file.
502  *
503  * @param cls the @e cls member of this struct
504  * @param pos position to seek (see 'man lseek')
505  * @param whence how to see (absolute to start, relative, absolute to end)
506  * @return new absolute position, -1 on error (i.e. desired position
507  * does not exist)
508  */
509  int64_t (*seek) (void *cls,
510  int64_t pos,
511  int whence);
512 
513 
514  /**
515  * Determine the overall size of the file.
516  *
517  * @param cls the @a cls member of this struct
518  * @return overall file size, `UINT64_MAX` on error (i.e. IPC failure)
519  */
520  uint64_t (*get_size) (void *cls);
521 
522  /**
523  * Function to call on extracted data.
524  */
526 
527 };
528 
529 
530 /**
531  * Signature of the extract method that each plugin
532  * must provide.
533  *
534  * @param ec extraction context provided to the plugin
535  */
536 typedef void
538 
539 
540 /**
541  * Linked list of extractor plugins. An application builds this list
542  * by telling libextractor to load various keyword-extraction
543  * plugins. Libraries can also be unloaded (removed from this list,
544  * see #EXTRACTOR_plugin_remove).
545  */
546 struct EXTRACTOR_PluginList;
547 
548 
549 /**
550  * Load the default set of plugins. The default can be changed
551  * by setting the LIBEXTRACTOR_LIBRARIES environment variable;
552  * If it is set to "env", then this function will return
553  * #EXTRACTOR_plugin_add_config (NULL, env, flags).
554  *
555  * If LIBEXTRACTOR_LIBRARIES is not set, the function will attempt
556  * to locate the installed plugins and load all of them.
557  * The directory where the code will search for plugins is typically
558  * automatically determined; it can be specified explicitly using the
559  * "LIBEXTRACTOR_PREFIX" environment variable.
560  *
561  * This environment variable must be set to the precise directory with
562  * the plugins (i.e. "/usr/lib/libextractor", not "/usr"). Note that
563  * setting the environment variable will disable all of the methods
564  * that are typically used to determine the location of plugins.
565  * Multiple paths can be specified using ':' to separate them.
566  *
567  * @param flags options for all of the plugins loaded
568  * @return the default set of plugins, NULL if no plugins were found
569  */
572 
573 
574 /**
575  * Add a library for keyword extraction.
576  *
577  * @param prev the previous list of libraries, may be NULL
578  * @param library the name of the library (short handle, i.e. "mime")
579  * @param options options to give to the library
580  * @param flags options to use
581  * @return the new list of libraries, equal to prev iff an error occured
582  */
585  const char *library,
586  const char *options,
587  enum EXTRACTOR_Options flags);
588 
589 
590 /**
591  * Load multiple libraries as specified by the user.
592  *
593  * @param config a string given by the user that defines which
594  * libraries should be loaded. Has the format
595  * "[[-]LIBRARYNAME[(options)][:[-]LIBRARYNAME[(options)]]]*".
596  * For example, 'mp3:ogg' loads the
597  * mp3 and the ogg plugins. The '-' before the LIBRARYNAME
598  * indicates that the library should be removed from
599  * the library list.
600  * @param prev the previous list of libraries, may be NULL
601  * @param flags options to use
602  * @return the new list of libraries, equal to prev iff an error occured
603  * or if config was empty (or NULL).
604  */
607  const char *config,
608  enum EXTRACTOR_Options flags);
609 
610 
611 /**
612  * Remove a plugin from a list.
613  *
614  * @param prev the current list of plugins
615  * @param library the name of the plugin to remove (short handle)
616  * @return the reduced list, unchanged if the plugin was not loaded
617  */
620  const char *library);
621 
622 
623 /**
624  * Remove all plugins from the given list (destroys the list).
625  *
626  * @param plugin the list of plugins
627  */
630 
631 
632 /**
633  * Extract keywords from a file using the given set of plugins.
634  *
635  * @param plugins the list of plugins to use
636  * @param filename the name of the file, can be NULL if @a data is not NULL
637  * @param data data of the file in memory, can be NULL (in which
638  * case libextractor will open file) if filename is not NULL
639  * @param size number of bytes in @a data, ignored if @a data is NULL
640  * @param proc function to call for each meta data item found
641  * @param proc_cls cls argument to @a proc
642  */
644 EXTRACTOR_extract (struct EXTRACTOR_PluginList *plugins,
645  const char *filename,
646  const void *data,
647  size_t size,
649  void *proc_cls);
650 
651 
652 /**
653  * Simple #EXTRACTOR_MetaDataProcessor implementation that simply
654  * prints the extracted meta data to the given file. Only prints
655  * those keywords that are in UTF-8 format.
656  *
657  * @param handle the file to write to (`stdout`, `stderr`), must NOT be NULL,
658  * must be of type `FILE *`.
659  * @param plugin_name name of the plugin that produced this value
660  * @param type libextractor-type describing the meta data
661  * @param format basic format information about data
662  * @param data_mime_type mime-type of @a data (not of the original file);
663  * can be NULL (if mime-type is not known)
664  * @param data actual meta-data found
665  * @param data_len number of bytes in @a data
666  * @return non-zero if printing failed, otherwise 0.
667  */
669 EXTRACTOR_meta_data_print (void *handle,
670  const char *plugin_name,
672  enum EXTRACTOR_MetaFormat format,
673  const char *data_mime_type,
674  const char *data,
675  size_t data_len);
676 
677 
678 #if 0 /* keep Emacsens' auto-indent happy */
679 {
680 #endif
681 #ifdef __cplusplus
682 }
683 #endif
684 
685 #endif
struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add_defaults(enum EXTRACTOR_Options flags)
EXTRACTOR_Options
Definition: extractor.h:57
@ EXTRACTOR_OPTION_DEFAULT_POLICY
Definition: extractor.h:67
@ EXTRACTOR_OPTION_IN_PROCESS
Definition: extractor.h:78
@ EXTRACTOR_OPTION_OUT_OF_PROCESS_NO_RESTART
Definition: extractor.h:72
@ EXTRACTOR_OPTION_DISABLED
Definition: extractor.h:83
struct EXTRACTOR_PluginList * EXTRACTOR_plugin_remove(struct EXTRACTOR_PluginList *prev, const char *library)
void EXTRACTOR_extract(struct EXTRACTOR_PluginList *plugins, const char *filename, const void *data, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls)
Definition: extractor.c:597
void EXTRACTOR_plugin_remove_all(struct EXTRACTOR_PluginList *plugins)
#define _EXTRACTOR_EXTERN
Definition: extractor.h:49
int EXTRACTOR_meta_data_print(void *handle, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len)
void(* EXTRACTOR_extract_method)(struct EXTRACTOR_ExtractContext *ec)
Definition: extractor.h:537
int(* EXTRACTOR_MetaDataProcessor)(void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len)
Definition: extractor.h:460
struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add_config(struct EXTRACTOR_PluginList *prev, const char *config, enum EXTRACTOR_Options flags)
EXTRACTOR_MetaFormat
Definition: extractor.h:92
@ EXTRACTOR_METAFORMAT_BINARY
Definition: extractor.h:107
@ EXTRACTOR_METAFORMAT_C_STRING
Definition: extractor.h:113
@ EXTRACTOR_METAFORMAT_UTF8
Definition: extractor.h:102
@ EXTRACTOR_METAFORMAT_UNKNOWN
Definition: extractor.h:96
struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add(struct EXTRACTOR_PluginList *prev, const char *library, const char *options, enum EXTRACTOR_Options flags)
enum EXTRACTOR_MetaType EXTRACTOR_metatype_get_max(void)
const char * EXTRACTOR_metatype_to_string(enum EXTRACTOR_MetaType type)
const char * EXTRACTOR_metatype_to_description(enum EXTRACTOR_MetaType type)
EXTRACTOR_MetaType
Definition: extractor.h:126
@ EXTRACTOR_METATYPE_DISC_COUNT
Definition: extractor.h:333
@ EXTRACTOR_METATYPE_FLASH
Definition: extractor.h:243
@ EXTRACTOR_METATYPE_LOGO
Definition: extractor.h:290
@ EXTRACTOR_METATYPE_LOCATION_MOVEMENT_SPEED
Definition: extractor.h:361
@ EXTRACTOR_METATYPE_MAXIMUM_AUDIO_BITRATE
Definition: extractor.h:378
@ EXTRACTOR_METATYPE_IMAGE_QUALITY
Definition: extractor.h:251
@ EXTRACTOR_METATYPE_SECTION
Definition: extractor.h:212
@ EXTRACTOR_METATYPE_HASH_SHA1
Definition: extractor.h:167
@ EXTRACTOR_METATYPE_PUBLICATION_DATE
Definition: extractor.h:154
@ EXTRACTOR_METATYPE_MOVIE_DIRECTOR
Definition: extractor.h:299
@ EXTRACTOR_METATYPE_FINDER_FILE_TYPE
Definition: extractor.h:206
@ EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM
Definition: extractor.h:291
@ EXTRACTOR_METATYPE_CONDUCTOR
Definition: extractor.h:306
@ EXTRACTOR_METATYPE_BOOK_EDITION
Definition: extractor.h:136
@ EXTRACTOR_METATYPE_UNKNOWN_DATE
Definition: extractor.h:195
@ EXTRACTOR_METATYPE_CHARACTER_SET
Definition: extractor.h:264
@ EXTRACTOR_METATYPE_SUMMARY
Definition: extractor.h:187
@ EXTRACTOR_METATYPE_LIBRARY_SEARCH_PATH
Definition: extractor.h:234
@ EXTRACTOR_METATYPE_LOCATION_ELEVATION
Definition: extractor.h:359
@ EXTRACTOR_METATYPE_DISC_NUMBER
Definition: extractor.h:282
@ EXTRACTOR_METATYPE_PAGE_ORDER
Definition: extractor.h:295
@ EXTRACTOR_METATYPE_URI
Definition: extractor.h:162
@ EXTRACTOR_METATYPE_PUBLISHER_SERIES
Definition: extractor.h:149
@ EXTRACTOR_METATYPE_PACKAGE_INSTALLED_SIZE
Definition: extractor.h:221
@ EXTRACTOR_METATYPE_PRODUCT_VERSION
Definition: extractor.h:297
@ EXTRACTOR_METATYPE_SHOW_NAME
Definition: extractor.h:301
@ EXTRACTOR_METATYPE_EXPOSURE
Definition: extractor.h:240
@ EXTRACTOR_METATYPE_BITRATE
Definition: extractor.h:342
@ EXTRACTOR_METATYPE_AUTHOR_EMAIL
Definition: extractor.h:144
@ EXTRACTOR_METATYPE_MANAGER
Definition: extractor.h:273
@ EXTRACTOR_METATYPE_CHANNELS
Definition: extractor.h:374
@ EXTRACTOR_METATYPE_CAMERA_MAKE
Definition: extractor.h:238
@ EXTRACTOR_METATYPE_TEMPLATE
Definition: extractor.h:271
@ EXTRACTOR_METATYPE_GROUP
Definition: extractor.h:330
@ EXTRACTOR_METATYPE_RESOURCE_TYPE
Definition: extractor.h:233
@ EXTRACTOR_METATYPE_PUBLISHER_INSTITUTION
Definition: extractor.h:148
@ EXTRACTOR_METATYPE_JOURNAL_NAME
Definition: extractor.h:138
@ EXTRACTOR_METATYPE_LAST_PRINTED
Definition: extractor.h:198
@ EXTRACTOR_METATYPE_JOURNAL_NUMBER
Definition: extractor.h:140
@ EXTRACTOR_METATYPE_SONG_VERSION
Definition: extractor.h:285
@ EXTRACTOR_METATYPE_TARGET_ARCHITECTURE
Definition: extractor.h:224
@ EXTRACTOR_METATYPE_PACKAGE_PROVIDES
Definition: extractor.h:217
@ EXTRACTOR_METATYPE_MUSICIAN_CREDITS_LIST
Definition: extractor.h:319
@ EXTRACTOR_METATYPE_BOOK_TITLE
Definition: extractor.h:135
@ EXTRACTOR_METATYPE_GENRE
Definition: extractor.h:280
@ EXTRACTOR_METATYPE_ORIGINAL_RELEASE_YEAR
Definition: extractor.h:314
@ EXTRACTOR_METATYPE_PUBLICATION_MONTH
Definition: extractor.h:152
@ EXTRACTOR_METATYPE_THUMBNAIL
Definition: extractor.h:259
@ EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE
Definition: extractor.h:258
@ EXTRACTOR_METATYPE_FORMAT
Definition: extractor.h:190
@ EXTRACTOR_METATYPE_WARNING
Definition: extractor.h:294
@ EXTRACTOR_METATYPE_PUBLICATION_YEAR
Definition: extractor.h:151
@ EXTRACTOR_METATYPE_UNKNOWN
Definition: extractor.h:181
@ EXTRACTOR_METATYPE_VIDEO_BITRATE
Definition: extractor.h:384
@ EXTRACTOR_METATYPE_CODEC
Definition: extractor.h:335
@ EXTRACTOR_METATYPE_NOMINAL_BITRATE
Definition: extractor.h:343
@ EXTRACTOR_METATYPE_EMBEDDED_FILE_SIZE
Definition: extractor.h:205
@ EXTRACTOR_METATYPE_SHOW_EPISODE_NUMBER
Definition: extractor.h:365
@ EXTRACTOR_METATYPE_PUBLISHER_ADDRESS
Definition: extractor.h:147
@ EXTRACTOR_METATYPE_PACKAGE_PRE_DEPENDENCY
Definition: extractor.h:225
@ EXTRACTOR_METATYPE_CHAPTER_NAME
Definition: extractor.h:302
@ EXTRACTOR_METATYPE_CAMERA_MODEL
Definition: extractor.h:239
@ EXTRACTOR_METATYPE_REVISION_NUMBER
Definition: extractor.h:274
@ EXTRACTOR_METATYPE_NAR
Definition: extractor.h:399
@ EXTRACTOR_METATYPE_AUTHOR_NAME
Definition: extractor.h:143
@ EXTRACTOR_METATYPE_AUTHOR_INSTITUTION
Definition: extractor.h:145
@ EXTRACTOR_METATYPE_FORMAT_VERSION
Definition: extractor.h:191
@ EXTRACTOR_METATYPE_FINDER_FILE_CREATOR
Definition: extractor.h:207
@ EXTRACTOR_METATYPE_LAST_SAVED_BY
Definition: extractor.h:199
@ EXTRACTOR_METATYPE_ENCODER_VERSION
Definition: extractor.h:350
@ EXTRACTOR_METATYPE_NARINFO
Definition: extractor.h:398
@ EXTRACTOR_METATYPE_WORD_COUNT
Definition: extractor.h:267
@ EXTRACTOR_METATYPE_RATING
Definition: extractor.h:326
@ EXTRACTOR_METATYPE_GNUNET_DISPLAY_TYPE
Definition: extractor.h:324
@ EXTRACTOR_METATYPE_EVENT_PICTURE
Definition: extractor.h:289
@ EXTRACTOR_METATYPE_HASH_MD5
Definition: extractor.h:165
@ EXTRACTOR_METATYPE_TRACK_NUMBER
Definition: extractor.h:281
@ EXTRACTOR_METATYPE_AUDIO_LANGUAGE
Definition: extractor.h:373
@ EXTRACTOR_METATYPE_LIBRARY_DEPENDENCY
Definition: extractor.h:235
@ EXTRACTOR_METATYPE_AUDIO_PREVIEW
Definition: extractor.h:396
@ EXTRACTOR_METATYPE_MODIFIED_BY_SOFTWARE
Definition: extractor.h:202
@ EXTRACTOR_METATYPE_GPS_LONGITUDE
Definition: extractor.h:174
@ EXTRACTOR_METATYPE_LANGUAGE
Definition: extractor.h:157
@ EXTRACTOR_METATYPE_MOOD
Definition: extractor.h:320
@ EXTRACTOR_METATYPE_FRAME_RATE
Definition: extractor.h:382
@ EXTRACTOR_METATYPE_PACKAGE_ESSENTIAL
Definition: extractor.h:223
@ EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY
Definition: extractor.h:214
@ EXTRACTOR_METATYPE_TARGET_PLATFORM
Definition: extractor.h:232
@ EXTRACTOR_METATYPE_JOURNAL_VOLUME
Definition: extractor.h:139
@ EXTRACTOR_METATYPE_EXPOSURE_MODE
Definition: extractor.h:248
@ EXTRACTOR_METATYPE_VIDEO_DEPTH
Definition: extractor.h:381
@ EXTRACTOR_METATYPE_COVER_PICTURE
Definition: extractor.h:287
@ EXTRACTOR_METATYPE_VENDOR
Definition: extractor.h:229
@ EXTRACTOR_METATYPE_PACKAGE_RECOMMENDS
Definition: extractor.h:218
@ EXTRACTOR_METATYPE_PLAY_COUNTER
Definition: extractor.h:305
@ EXTRACTOR_METATYPE_ALBUM_PEAK
Definition: extractor.h:355
@ EXTRACTOR_METATYPE_HASH_SHA0
Definition: extractor.h:166
@ EXTRACTOR_METATYPE_COMMENT
Definition: extractor.h:131
@ EXTRACTOR_METATYPE_WRITER
Definition: extractor.h:296
@ EXTRACTOR_METATYPE_POPULARITY_METER
Definition: extractor.h:317
@ EXTRACTOR_METATYPE_WHITE_BALANCE
Definition: extractor.h:252
@ EXTRACTOR_METATYPE_PARAGRAPH_COUNT
Definition: extractor.h:266
@ EXTRACTOR_METATYPE_TITLE
Definition: extractor.h:134
@ EXTRACTOR_METATYPE_ARTIST
Definition: extractor.h:279
@ EXTRACTOR_METATYPE_GPS_LATITUDE
Definition: extractor.h:172
@ EXTRACTOR_METATYPE_AUDIO_BITRATE
Definition: extractor.h:377
@ EXTRACTOR_METATYPE_FLASH_BIAS
Definition: extractor.h:244
@ EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE
Definition: extractor.h:194
@ EXTRACTOR_METATYPE_PERFORMER
Definition: extractor.h:283
@ EXTRACTOR_METATYPE_IMAGE_RESOLUTION
Definition: extractor.h:260
@ EXTRACTOR_METATYPE_EXPOSURE_BIAS
Definition: extractor.h:242
@ EXTRACTOR_METATYPE_PACKAGE_DISTRIBUTION
Definition: extractor.h:227
@ EXTRACTOR_METATYPE_NETWORK_NAME
Definition: extractor.h:300
@ EXTRACTOR_METATYPE_SUBTITLE_DURATION
Definition: extractor.h:394
@ EXTRACTOR_METATYPE_PRODUCER
Definition: extractor.h:329
@ EXTRACTOR_METATYPE_AUDIO_DEPTH
Definition: extractor.h:376
@ EXTRACTOR_METATYPE_CONTRIBUTOR_NAME
Definition: extractor.h:298
@ EXTRACTOR_METATYPE_CREATOR
Definition: extractor.h:189
@ EXTRACTOR_METATYPE_PAGE_ORIENTATION
Definition: extractor.h:269
@ EXTRACTOR_METATYPE_PUBLICATION_TYPE
Definition: extractor.h:150
@ EXTRACTOR_METATYPE_ISRC
Definition: extractor.h:163
@ EXTRACTOR_METATYPE_ISO_SPEED
Definition: extractor.h:247
@ EXTRACTOR_METATYPE_ENCODER
Definition: extractor.h:349
@ EXTRACTOR_METATYPE_MAGNIFICATION
Definition: extractor.h:254
@ EXTRACTOR_METATYPE_LOCATION_NAME
Definition: extractor.h:358
@ EXTRACTOR_METATYPE_PACKAGE_VERSION
Definition: extractor.h:211
@ EXTRACTOR_METATYPE_GROUPING
Definition: extractor.h:368
@ EXTRACTOR_METATYPE_SUBTITLE
Definition: extractor.h:321
@ EXTRACTOR_METATYPE_UPLOAD_PRIORITY
Definition: extractor.h:213
@ EXTRACTOR_METATYPE_MACRO_MODE
Definition: extractor.h:250
@ EXTRACTOR_METATYPE_SOURCE
Definition: extractor.h:261
@ EXTRACTOR_METATYPE_GPS_LONGITUDE_REF
Definition: extractor.h:173
@ EXTRACTOR_METATYPE_VIDEO_DIMENSIONS
Definition: extractor.h:380
@ EXTRACTOR_METATYPE_CREATION_DATE
Definition: extractor.h:196
@ EXTRACTOR_METATYPE_LOCATION_COUNTRY_CODE
Definition: extractor.h:178
@ EXTRACTOR_METATYPE_SUBTITLE_CODEC
Definition: extractor.h:338
@ EXTRACTOR_METATYPE_AUDIO_CODEC
Definition: extractor.h:337
@ EXTRACTOR_METATYPE_COMPANY
Definition: extractor.h:272
@ EXTRACTOR_METATYPE_ABSTRACT
Definition: extractor.h:186
@ EXTRACTOR_METATYPE_PACKAGE_CONFLICTS
Definition: extractor.h:215
@ EXTRACTOR_METATYPE_LOCATION_CITY
Definition: extractor.h:175
@ EXTRACTOR_METATYPE_EDITING_CYCLES
Definition: extractor.h:201
@ EXTRACTOR_METATYPE_PACKAGE_REPLACES
Definition: extractor.h:216
@ EXTRACTOR_METATYPE_LOCATION_HORIZONTAL_ERROR
Definition: extractor.h:360
@ EXTRACTOR_METATYPE_MAXIMUM_VIDEO_BITRATE
Definition: extractor.h:385
@ EXTRACTOR_METATYPE_PAGE_RANGE
Definition: extractor.h:142
@ EXTRACTOR_METATYPE_LINE_COUNT
Definition: extractor.h:265
@ EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME
Definition: extractor.h:331
@ EXTRACTOR_METATYPE_KEYWORDS
Definition: extractor.h:185
@ EXTRACTOR_METATYPE_MODIFICATION_DATE
Definition: extractor.h:197
@ EXTRACTOR_METATYPE_LICENSE
Definition: extractor.h:226
@ EXTRACTOR_METATYPE_SERIAL
Definition: extractor.h:347
@ EXTRACTOR_METATYPE_REVISION_HISTORY
Definition: extractor.h:203
@ EXTRACTOR_METATYPE_CREATION_TIME
Definition: extractor.h:158
@ EXTRACTOR_METATYPE_COPYRIGHT
Definition: extractor.h:183
@ EXTRACTOR_METATYPE_AUDIO_DURATION
Definition: extractor.h:393
@ EXTRACTOR_METATYPE_ORIENTATION
Definition: extractor.h:253
@ EXTRACTOR_METATYPE_TARGET_OS
Definition: extractor.h:230
@ EXTRACTOR_METATYPE_ENCODED_BY
Definition: extractor.h:310
@ EXTRACTOR_METATYPE_SAMPLE_RATE
Definition: extractor.h:375
@ EXTRACTOR_METATYPE_ORIGINAL_PERFORMER
Definition: extractor.h:315
@ EXTRACTOR_METATYPE_TOC
Definition: extractor.h:390
@ EXTRACTOR_METATYPE_PACKAGE_SUGGESTS
Definition: extractor.h:219
@ EXTRACTOR_METATYPE_VIDEO_CODEC
Definition: extractor.h:336
@ EXTRACTOR_METATYPE_CONTRIBUTOR_PICTURE
Definition: extractor.h:288
@ EXTRACTOR_METATYPE_SHOW_SEASON_NUMBER
Definition: extractor.h:366
@ EXTRACTOR_METATYPE_DEVICE_MODEL
Definition: extractor.h:371
@ EXTRACTOR_METATYPE_VIDEO_DURATION
Definition: extractor.h:392
@ EXTRACTOR_METATYPE_MAXIMUM_BITRATE
Definition: extractor.h:345
@ EXTRACTOR_METATYPE_MINIMUM_BITRATE
Definition: extractor.h:344
@ EXTRACTOR_METATYPE_PAGE_COUNT
Definition: extractor.h:141
@ EXTRACTOR_METATYPE_BIBTEX_ENTRY_TYPE
Definition: extractor.h:156
@ EXTRACTOR_METATYPE_PAPER_SIZE
Definition: extractor.h:270
@ EXTRACTOR_METATYPE_VIDEO_LANGUAGE
Definition: extractor.h:388
@ EXTRACTOR_METATYPE_LICENSEE
Definition: extractor.h:318
@ EXTRACTOR_METATYPE_LOCATION_COUNTRY
Definition: extractor.h:177
@ EXTRACTOR_METATYPE_BOOK_CHAPTER_NUMBER
Definition: extractor.h:137
@ EXTRACTOR_METATYPE_PUBLICATION_DAY
Definition: extractor.h:153
@ EXTRACTOR_METATYPE_REFERENCE_LEVEL
Definition: extractor.h:356
@ EXTRACTOR_METATYPE_RIGHTS
Definition: extractor.h:184
@ EXTRACTOR_METATYPE_STARTING_SONG
Definition: extractor.h:304
@ EXTRACTOR_METATYPE_LAST
Definition: extractor.h:401
@ EXTRACTOR_METATYPE_TRACK_GAIN
Definition: extractor.h:352
@ EXTRACTOR_METATYPE_FILENAME
Definition: extractor.h:130
@ EXTRACTOR_METATYPE_ORGANIZATION
Definition: extractor.h:327
@ EXTRACTOR_METATYPE_ORIGINAL_ARTIST
Definition: extractor.h:312
@ EXTRACTOR_METATYPE_SOURCE_DEVICE
Definition: extractor.h:292
@ EXTRACTOR_METATYPE_METERING_MODE
Definition: extractor.h:249
@ EXTRACTOR_METATYPE_MIMETYPE
Definition: extractor.h:129
@ EXTRACTOR_METATYPE_BEATS_PER_MINUTE
Definition: extractor.h:309
@ EXTRACTOR_METATYPE_COMPOSER
Definition: extractor.h:308
@ EXTRACTOR_METATYPE_HASH_RMD160
Definition: extractor.h:168
@ EXTRACTOR_METATYPE_FOCAL_LENGTH
Definition: extractor.h:245
@ EXTRACTOR_METATYPE_CHARACTER_COUNT
Definition: extractor.h:268
@ EXTRACTOR_METATYPE_PUBLISHER
Definition: extractor.h:146
@ EXTRACTOR_METATYPE_ALBUM
Definition: extractor.h:278
@ EXTRACTOR_METATYPE_CONTAINER_FORMAT
Definition: extractor.h:340
@ EXTRACTOR_METATYPE_HASH_MD4
Definition: extractor.h:164
@ EXTRACTOR_METATYPE_ORIGINAL_TITLE
Definition: extractor.h:311
@ EXTRACTOR_METATYPE_SUBTITLE_LANGUAGE
Definition: extractor.h:387
@ EXTRACTOR_METATYPE_ORIGINAL_WRITER
Definition: extractor.h:313
@ EXTRACTOR_METATYPE_PACKAGE_NAME
Definition: extractor.h:210
@ EXTRACTOR_METATYPE_GPS_LATITUDE_REF
Definition: extractor.h:171
@ EXTRACTOR_METATYPE_DEVICE_MANUFACTURER
Definition: extractor.h:370
@ EXTRACTOR_METATYPE_RIPPER
Definition: extractor.h:328
@ EXTRACTOR_METATYPE_SONG_COUNT
Definition: extractor.h:303
@ EXTRACTOR_METATYPE_SUBJECT
Definition: extractor.h:188
@ EXTRACTOR_METATYPE_ALBUM_GAIN
Definition: extractor.h:354
@ EXTRACTOR_METATYPE_FOCAL_LENGTH_35MM
Definition: extractor.h:246
@ EXTRACTOR_METATYPE_LOCATION_SUBLOCATION
Definition: extractor.h:176
@ EXTRACTOR_METATYPE_DISCLAIMER
Definition: extractor.h:293
@ EXTRACTOR_METATYPE_BUILDHOST
Definition: extractor.h:228
@ EXTRACTOR_METATYPE_RESERVED
Definition: extractor.h:128
@ EXTRACTOR_METATYPE_PIXEL_ASPECT_RATIO
Definition: extractor.h:383
@ EXTRACTOR_METATYPE_URL
Definition: extractor.h:159
@ EXTRACTOR_METATYPE_LOCATION_CAPTURE_DIRECTION
Definition: extractor.h:363
@ EXTRACTOR_METATYPE_PACKAGE_SOURCE
Definition: extractor.h:222
@ EXTRACTOR_METATYPE_SOFTWARE_VERSION
Definition: extractor.h:231
@ EXTRACTOR_METATYPE_TOTAL_EDITING_TIME
Definition: extractor.h:200
@ EXTRACTOR_METATYPE_LOCATION_MOVEMENT_DIRECTION
Definition: extractor.h:362
@ EXTRACTOR_METATYPE_BIBTEX_EPRINT
Definition: extractor.h:155
@ EXTRACTOR_METATYPE_IMAGE_DIMENSIONS
Definition: extractor.h:257
@ EXTRACTOR_METATYPE_CONTACT_INFORMATION
Definition: extractor.h:284
@ EXTRACTOR_METATYPE_DURATION
Definition: extractor.h:277
@ EXTRACTOR_METATYPE_LYRICS
Definition: extractor.h:316
@ EXTRACTOR_METATYPE_INTERPRETATION
Definition: extractor.h:307
@ EXTRACTOR_METATYPE_APERTURE
Definition: extractor.h:241
@ EXTRACTOR_METATYPE_GNUNET_FULL_DATA
Definition: extractor.h:325
@ EXTRACTOR_METATYPE_TRACK_PEAK
Definition: extractor.h:353
@ EXTRACTOR_METATYPE_PACKAGE_MAINTAINER
Definition: extractor.h:220
@ EXTRACTOR_METATYPE_DESCRIPTION
Definition: extractor.h:182
@ EXTRACTOR_METATYPE_PICTURE
Definition: extractor.h:286
enum EXTRACTOR_MetaType type
int64_t(* seek)(void *cls, int64_t pos, int whence)
Definition: extractor.h:509
uint64_t(* get_size)(void *cls)
Definition: extractor.h:520
EXTRACTOR_MetaDataProcessor proc
Definition: extractor.h:525
ssize_t(* read)(void *cls, void **data, size_t size)
Definition: extractor.h:494
enum EXTRACTOR_Options flags