RygelTranscoder

## RygelTranscoder RygelTranscoder — The base Transcoder class. Each implementation derives from it and must implement 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

## 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.

`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);

`self` : | the RygelTranscoder instance

### rygel_transcoder_get_distance ()

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

Gets the numeric value that gives an gives an estimate of how hard would it be to trancode `item` to 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 get_distance.

### 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