RygelTranscoder

RygelTranscoder — The base Transcoder class. Each implementation derives from it and must implement create_source() and get_distance().

Synopsis

#define             RYGEL_TYPE_TRANSCODER
RygelDataSource *   rygel_transcoder_create_source      (RygelTranscoder *self,
                                                         RygelMediaItem *item,
                                                         RygelDataSource *src,
                                                         GError **error);
GUPnPDIDLLiteResource * rygel_transcoder_add_resource   (RygelTranscoder *self,
                                                         GUPnPDIDLLiteItem *didl_item,
                                                         RygelMediaItem *item,
                                                         RygelTranscodeManager *manager,
                                                         GError **error);
gboolean            rygel_transcoder_can_handle         (RygelTranscoder *self,
                                                         const gchar *target);
guint               rygel_transcoder_get_distance       (RygelTranscoder *self,
                                                         RygelMediaItem *item);
gboolean            rygel_transcoder_mime_type_is_a     (RygelTranscoder *self,
                                                         const gchar *mime_type1,
                                                         const gchar *mime_type2);
const gchar *       rygel_transcoder_get_mime_type      (RygelTranscoder *self);
void                rygel_transcoder_set_mime_type      (RygelTranscoder *self,
                                                         const gchar *value);
const gchar *       rygel_transcoder_get_dlna_profile   (RygelTranscoder *self);
void                rygel_transcoder_set_dlna_profile   (RygelTranscoder *self,
                                                         const gchar *value);
const gchar *       rygel_transcoder_get_extension      (RygelTranscoder *self);
void                rygel_transcoder_set_extension      (RygelTranscoder *self,
                                                         const gchar *value);
struct              RygelTranscoder;
struct              RygelTranscoderClass;

Object Hierarchy

  GObject
   +----RygelTranscoder

Properties

  "dlna-profile"             gchar*                : Read / Write
  "extension"                gchar*                : Read / Write
  "mime-type"                gchar*                : Read / Write

Description

Transcoders are obtained from rygel_media_engine_get_transcoders() and are only expected to support the derived RygelDataSource types provided by the same media engine.

Details

RYGEL_TYPE_TRANSCODER

#define RYGEL_TYPE_TRANSCODER (rygel_transcoder_get_type ())

The type for RygelTranscoder.


rygel_transcoder_create_source ()

RygelDataSource *   rygel_transcoder_create_source      (RygelTranscoder *self,
                                                         RygelMediaItem *item,
                                                         RygelDataSource *src,
                                                         GError **error);

Creates a transcoding source.

The provided original RygelDataSource will have been implemented by the same media engine that provided the RygelTranscoder, allowing the RygelTranscoder to access specific resources of the underlying multimedia backend used by the media engine.

self :

the RygelTranscoder instance

src :

the media item to create the transcoding source for. [in]

src :

the original (non-transcoding) source. [in]

error :

location to store the error occuring, or NULL to ignore

Returns :

the new transcoding source

rygel_transcoder_add_resource ()

GUPnPDIDLLiteResource * rygel_transcoder_add_resource   (RygelTranscoder *self,
                                                         GUPnPDIDLLiteItem *didl_item,
                                                         RygelMediaItem *item,
                                                         RygelTranscodeManager *manager,
                                                         GError **error);

self :

the RygelTranscoder instance

error :

location to store the error occuring, or NULL to ignore

rygel_transcoder_can_handle ()

gboolean            rygel_transcoder_can_handle         (RygelTranscoder *self,
                                                         const gchar *target);

Returns whether this trancoder can handle the specified DLNA profile. This is determined by the RygelTranscodeManager, which checks the suitability of each RygelTranscoder by calling rygel_transcoder_get_distance() with each RygelMediaItem, choosing one DLNA profile for each transcoder to handle.

self :

the RygelTranscoder instance

target :

A DLNA profile name as obtained from rygel_media_item_get_dlna_profile(). [in]

Returns :

True if the transcoder can handle the specified DLNA profile.

rygel_transcoder_get_distance ()

guint               rygel_transcoder_get_distance       (RygelTranscoder *self,
                                                         RygelMediaItem *item);

Gets a numeric value that gives an gives an estimate of how hard it would be for this transcoder to trancode item to the target profile of this transcoder.

self :

the RygelTranscoder instance

item :

the media item to calculate the distance for. [in]

Returns :

the distance from the item, uint.MIN if providing such a value is impossible or uint.MAX if it doesn't make any sense to use this transcoder for item

rygel_transcoder_mime_type_is_a ()

gboolean            rygel_transcoder_mime_type_is_a     (RygelTranscoder *self,
                                                         const gchar *mime_type1,
                                                         const gchar *mime_type2);

self :

the RygelTranscoder instance

rygel_transcoder_get_mime_type ()

const gchar *       rygel_transcoder_get_mime_type      (RygelTranscoder *self);

Get and return the current value of the "mime-type" property.

self :

the RygelTranscoder instance to query

Returns :

the value of the "mime-type" property

rygel_transcoder_set_mime_type ()

void                rygel_transcoder_set_mime_type      (RygelTranscoder *self,
                                                         const gchar *value);

Set the value of the "mime-type" property to value.

self :

the RygelTranscoder instance to modify

value :

the new value of the "mime-type" property

rygel_transcoder_get_dlna_profile ()

const gchar *       rygel_transcoder_get_dlna_profile   (RygelTranscoder *self);

Get and return the current value of the "dlna-profile" property.

self :

the RygelTranscoder instance to query

Returns :

the value of the "dlna-profile" property

rygel_transcoder_set_dlna_profile ()

void                rygel_transcoder_set_dlna_profile   (RygelTranscoder *self,
                                                         const gchar *value);

Set the value of the "dlna-profile" property to value.

self :

the RygelTranscoder instance to modify

value :

the new value of the "dlna-profile" property

rygel_transcoder_get_extension ()

const gchar *       rygel_transcoder_get_extension      (RygelTranscoder *self);

Get and return the current value of the "extension" property.

self :

the RygelTranscoder instance to query

Returns :

the value of the "extension" property

rygel_transcoder_set_extension ()

void                rygel_transcoder_set_extension      (RygelTranscoder *self,
                                                         const gchar *value);

Set the value of the "extension" property to value.

self :

the RygelTranscoder instance to modify

value :

the new value of the "extension" property

struct RygelTranscoder

struct RygelTranscoder;

The base Transcoder class. Each implementation derives from it and must implement create_source() and get_distance().

Transcoders are obtained from rygel_media_engine_get_transcoders() and are only expected to support the derived RygelDataSource types provided by the same media engine.


struct RygelTranscoderClass

struct RygelTranscoderClass {
	GObjectClass parent_class;
	RygelDataSource* (*create_source) (RygelTranscoder* self, RygelMediaItem* item, RygelDataSource* src, GError** error);
	GUPnPDIDLLiteResource* (*add_resource) (RygelTranscoder* self, GUPnPDIDLLiteItem* didl_item, RygelMediaItem* item, RygelTranscodeManager* manager, GError** error);
	guint (*get_distance) (RygelTranscoder* self, RygelMediaItem* item);
};

The class structure for RYGEL_TYPE_TRANSCODER. All the fields in this structure are private and should never be accessed directly.

GObjectClass parent_class;

the parent class structure

create_source ()

virtual method called by rygel_transcoder_create_source()

add_resource ()

virtual method called by rygel_transcoder_add_resource()

get_distance ()

virtual method called by rygel_transcoder_get_distance()

Property Details

The "dlna-profile" property

  "dlna-profile"             gchar*                : Read / Write

dlna-profile.

Default value: NULL


The "extension" property

  "extension"                gchar*                : Read / Write

extension.

Default value: NULL


The "mime-type" property

  "mime-type"                gchar*                : Read / Write

mime-type.

Default value: NULL