GUPnPDLNAMetadataExtractor

GUPnPDLNAMetadataExtractor — Base class for extracting metadata for given media.

Functions

Types and Values

Description

GUPnPDLNAMetadataExtractor is used by GUPnPDLNAProfileGuesser to get needed metadata for profile matching. This class itself does not implement any metadata extraction features. For that it is expected to provide a plugin which:

  • Provides a GUPnPDLNAMetadataExtractor subclass implementation.

  • Exports a gupnp_dlna_get_default_extractor() which takes no parameters and returns a GUPnPDLNAMetadataExtractor.

GModule is used for loading the plugin, so GModule's features can be used also (like exporting g_module_check_init() to initialize the multimedia framework used for extracting metadata).

Default plugin directory and default plugin file is set during configuration stage, but it can be overriden during runtime by setting respectively GUPNP_DLNA_METADATA_BACKEND and GUPNP_DLNA_METADATA_BACKEND_DIR environment variables before the plugin is loaded (i.e. before GUPnPDLNAProfileGuesser is used for guessing profile).

The GUPNP_DLNA_METADATA_BACKEND environment variable should hold a name like "gstreamer", so libgstreamer.so will be loaded. For determining a plugin filename g_module_build_path() is used.

If subclassing GUPnPDLNAMetadataExtractor then also GUPnPDLNAInformation, GUPnPDLNAAudioInformation, GUPnPDLNAContainerInformation, GUPnPDLNAImageInformation and GUPnPDLNAVideoInformation have to be subclassed as well.

Functions

gupnp_dlna_metadata_extractor_extract_async ()

gboolean
gupnp_dlna_metadata_extractor_extract_async
                               (GUPnPDLNAMetadataExtractor *extractor,
                                const gchar *uri,
                                guint timeout_in_ms,
                                GError **error);

Queues uri for metadata discovery. When discovery is completed, the ::done signal is emitted on extractor .

Parameters

extractor

GUPnPDLNAMetadataExtractor object to use for discovery

 

uri

URI to gather metadata for

 

timeout_in_ms

Timeout in miliseconds.

 

error

A GError.

 

Returns

TRUE if uri was successfully queued, FALSE otherwise.


gupnp_dlna_metadata_extractor_extract_sync ()

GUPnPDLNAInformation *
gupnp_dlna_metadata_extractor_extract_sync
                               (GUPnPDLNAMetadataExtractor *extractor,
                                const gchar *uri,
                                guint timeout_in_ms,
                                GError **error);

Discovers synchronously metadata of given uri .

Parameters

extractor

GUPnPDLNAMetadataExtractor object to use for discovery

 

uri

URI to gather metadata for

 

timeout_in_ms

Timeout in miliseconds.

 

error

A GError.

 

Returns

(transfer full) : A GUPnPDLNAInformation object if discovery succeeded, otherwise NULL.


gupnp_dlna_metadata_extractor_emit_done ()

void
gupnp_dlna_metadata_extractor_emit_done
                               (GUPnPDLNAMetadataExtractor *extractor,
                                GUPnPDLNAInformation *info,
                                GError *error);

Emits ::done signal. This function is intended to be used by subclasses of GUPnPDLNAMetadataExtractor. It is required to always pass a meaningful info , even in case of error. That way a receiver of this signal can know which URI discovery failed by using gupnp_dlna_information_get_uri().

Parameters

extractor

A GUPnPDLNAMetadataExtractor object.

 

info

A GUPnPDLNAInformation about discovered URI.

[transfer none]

error

A GError.

[allow-none][transfer none]

Types and Values

struct GUPnPDLNAMetadataExtractorClass

struct GUPnPDLNAMetadataExtractorClass {
        GObjectClass parent_class;

        /* virtuals */
        gboolean
        (* extract_async) (GUPnPDLNAMetadataExtractor  *extractor,
                           const gchar                 *uri,
                           guint                        timeout_in_ms,
                           GError                     **error);

        GUPnPDLNAInformation *
        (* extract_sync) (GUPnPDLNAMetadataExtractor  *extractor,
                          const gchar                 *uri,
                          guint                        timeout_in_ms,
                          GError                     **error);

        gpointer _reserved[12];
};

Members

extract_async ()

This is called by GUPnPDLNAProfileGuesser to get a information about media file asynchronously.

 

extract_sync ()

This is called by GUPnPDLNAProfileGuesser to get a information about media file synchronously.

 

gpointer _reserved[12];

Padding. Ignore it.