## OGMDvdTitle OGMDvdTitle — Structure describing a DVD title |

## Synopsis

    #include <ogmdvd-title.h>

    gboolean            ogmdvd_title_open                   (OGMDvdTitle *title,
                                                             GError **error);
    void                ogmdvd_title_close                  (OGMDvdTitle *title);
    gboolean            ogmdvd_title_is_open                (OGMDvdTitle *title);
    void                ogmdvd_title_ref                    (OGMDvdTitle *title);
    void                ogmdvd_title_unref                  (OGMDvdTitle *title);
    gboolean            ogmdvd_title_analyze                (OGMDvdTitle *title);
    OGMDvdDisc *        ogmdvd_title_get_disc               (OGMDvdTitle *title);
    gint64              ogmdvd_title_get_vts_size           (OGMDvdTitle *title);
    gint                ogmdvd_title_get_nr                 (OGMDvdTitle *title);
    gint                ogmdvd_title_get_ts_nr              (OGMDvdTitle *title);
    gdouble             ogmdvd_title_get_length             (OGMDvdTitle *title,
                                                             OGMDvdTime *length);
    gdouble             ogmdvd_title_get_chapters_length    (OGMDvdTitle *title,
                                                             guint start,
                                                             gint end,
                                                             OGMDvdTime *length);
    void                ogmdvd_title_get_framerate          (OGMDvdTitle *title,
                                                             guint *numerator,
                                                             guint *denominator);
    void                ogmdvd_title_get_size               (OGMDvdTitle *title,
                                                             guint *width,
                                                             guint *height);
    gint                ogmdvd_title_get_video_format       (OGMDvdTitle *title);
    gint                ogmdvd_title_get_display_aspect     (OGMDvdTitle *title);
    gint                ogmdvd_title_get_display_format     (OGMDvdTitle *title);
    const guint *       ogmdvd_title_get_palette            (OGMDvdTitle *title);
    gint                ogmdvd_title_get_n_angles           (OGMDvdTitle *title);
    gint                ogmdvd_title_get_n_chapters         (OGMDvdTitle *title);
    gint                ogmdvd_title_get_n_audio_streams    (OGMDvdTitle *title);
    OGMDvdAudioStream * ogmdvd_title_get_nth_audio_stream   (OGMDvdTitle *title,
                                                             guint nr);
    GSList *            ogmdvd_title_get_audio_streams      (OGMDvdTitle *title);
    gint                ogmdvd_title_get_n_subp_streams     (OGMDvdTitle *title);
    OGMDvdSubpStream *  ogmdvd_title_get_nth_subp_stream    (OGMDvdTitle *title,
                                                             guint nr);
    GSList *            ogmdvd_title_get_subp_streams       (OGMDvdTitle *title);
    void                ogmdvd_title_get_aspect_ratio       (OGMDvdTitle *title,
                                                             guint *numerator,
                                                             guint *denominator);
    OGMDvdAudioStream * ogmdvd_title_find_audio_stream      (OGMDvdTitle *title,
                                                             GCompareFunc func,
                                                             gpointer data);
    OGMDvdSubpStream *  ogmdvd_title_find_subp_stream       (OGMDvdTitle *title,
                                                             GCompareFunc func,
                                                             gpointer data);

## Description

## Details

### ogmdvd_title_open ()

    gboolean            ogmdvd_title_open                   (OGMDvdTitle *title,
                                                             GError **error);

Opens `title`, opening the disc if needed.

`title` : | An OGMDvdTitle
`error` : | Location to store the error occuring, or NULL to ignore errors.
Returns : | TRUE on success

### ogmdvd_title_close ()

    void                ogmdvd_title_close                  (OGMDvdTitle *title);

Closes `title`.

`title` : | A OGMDvdTitle

### ogmdvd_title_is_open ()

    gboolean            ogmdvd_title_is_open                (OGMDvdTitle *title);

Returns whether the title is open or not.

`title` : | An OGMDvdTitle
Returns : | TRUE if the title is open

### ogmdvd_title_ref ()

    void                ogmdvd_title_ref                    (OGMDvdTitle *title);

Increments the reference count of an OGMDvdTitle.

`title` : | An OGMDvdTitle

### ogmdvd_title_unref ()

    void                ogmdvd_title_unref                  (OGMDvdTitle *title);

Decrements the reference count of an OGMDvdTitle.

`title` : | An OGMDvdTitle

### ogmdvd_title_analyze ()

    gboolean            ogmdvd_title_analyze                (OGMDvdTitle *title);

Performs a depper analysis of the title to get more information about it and its audio and subtitle streams. This function should be called multiple times until the analysis is complete.

`title` : | An OGMDvdTitle
Returns : | FALSE if the analysis is complete, TRUE otherwise

### ogmdvd_title_get_disc ()

    OGMDvdDisc *        ogmdvd_title_get_disc               (OGMDvdTitle *title);

Returns the disc the OGMDvdTitle was open from.

`title` : | An OGMDvdTitle
Returns : | The OGMDvdDisc, or NULL

### ogmdvd_title_get_vts_size ()

    gint64              ogmdvd_title_get_vts_size           (OGMDvdTitle *title);

Returns the size of the video title set in bytes.

`title` : | An OGMDvdTitle
Returns : | The size in bytes, or -1

### ogmdvd_title_get_nr ()

    gint                ogmdvd_title_get_nr                 (OGMDvdTitle *title);

Returns the title number.

`title` : | An OGMDvdTitle
Returns : | The title number, or -1

### ogmdvd_title_get_ts_nr ()

    gint                ogmdvd_title_get_ts_nr              (OGMDvdTitle *title);

Returns the titleset number.

`title` : | An OGMDvdTitle
Returns : | The titleset number, or -1

### ogmdvd_title_get_length ()

    gdouble             ogmdvd_title_get_length             (OGMDvdTitle *title,
                                                             OGMDvdTime *length);

Returns the title length in seconds. If `length` is not NULL, the data structure will be filled with the length in hours, minutes seconds and frames.

`title` : | An OGMDvdTitle
`length` : | A pointer to set the OGMDvdTime, or NULL
Returns : | The length in seconds, or -1.0

### ogmdvd_title_get_chapters_length ()

    gdouble             ogmdvd_title_get_chapters_length    (OGMDvdTitle *title,
                                                             guint start,
                                                             gint end,
                                                             OGMDvdTime *length);

Returns the length in seconds between start and end chapters. If `length` is not NULL, the data structure will be filled with the length in hours, minutes seconds and frames.

`title` : | An OGMDvdTitle
`start` : | The start chapter
`end` : | The end chapter
`length` : | A pointer to set the OGMDvdTime, or NULL
Returns : | The length in seconds, or -1.0

### ogmdvd_title_get_framerate ()

    void                ogmdvd_title_get_framerate          (OGMDvdTitle *title,
                                                             guint *numerator,
                                                             guint *denominator);

Gets the framerate of the DVD title in the form of a fraction.

`title` : | An OGMDvdTitle
`numerator` : | A pointer to set the framerate numerator, or NULL
`denominator` : | A pointer to set the framerate denominator, or NULL

### ogmdvd_title_get_size ()

    void                ogmdvd_title_get_size               (OGMDvdTitle *title,
                                                             guint *width,
                                                             guint *height);

Gets the size of the picture.

`title` : | An OGMDvdTitle
`width` : | A pointer to set the width of the picture, or NULL
`height` : | A pointer to set the height of the picture, or NULL

### ogmdvd_title_get_video_format ()

    gint                ogmdvd_title_get_video_format       (OGMDvdTitle *title);

Returns the video format of the movie.

`title` : | An OGMDvdTitle
Returns : | OGMDvdVideoFormat, or -1

### ogmdvd_title_get_display_aspect ()

    gint                ogmdvd_title_get_display_aspect     (OGMDvdTitle *title);

Returns the display aspect of the movie.

`title` : | An OGMDvdTitle
Returns : | OGMDvdDisplayAspect, or -1

### ogmdvd_title_get_display_format ()

    gint                ogmdvd_title_get_display_format     (OGMDvdTitle *title);

Returns the display format of the movie.

`title` : | An OGMDvdTitle
Returns : | OGMDvdDisplayFormat, or -1

### ogmdvd_title_get_palette ()

    const guint *       ogmdvd_title_get_palette            (OGMDvdTitle *title);

Returns the palette of the movie.

`title` : | An OGMDvdTitle
Returns : | a constant array of 16 integers, or NULL

### ogmdvd_title_get_n_angles ()

    gint                ogmdvd_title_get_n_angles           (OGMDvdTitle *title);

Returns the number of angles of the video title.

`title` : | An OGMDvdTitle
Returns : | The number of angles, or -1

### ogmdvd_title_get_n_chapters ()

    gint                ogmdvd_title_get_n_chapters         (OGMDvdTitle *title);

Returns the number of chapters of the video title.

`title` : | An OGMDvdTitle
Returns : | The number of chapters, or -1

### ogmdvd_title_get_n_audio_streams ()

    gint                ogmdvd_title_get_n_audio_streams    (OGMDvdTitle *title);

Returns the number of audio streams of the video title.

`title` : | An OGMDvdTitle
Returns : | The number of audio streams, or -1

### ogmdvd_title_get_nth_audio_stream ()

    OGMDvdAudioStream * ogmdvd_title_get_nth_audio_stream   (OGMDvdTitle *title,
                                                             guint nr);

Returns the audio stream at position nr. The first nr is 0.

`title` : | An OGMDvdTitle
`nr` : | The audio stream number
Returns : | The OGMDvdAudioStream, or NULL

### ogmdvd_title_get_audio_streams ()

    GSList *            ogmdvd_title_get_audio_streams      (OGMDvdTitle *title);

Returns a list of audio stream.

`title` : | An OGMDvdTitle
Returns : | The GSList, or NULL

### ogmdvd_title_get_n_subp_streams ()

    gint                ogmdvd_title_get_n_subp_streams     (OGMDvdTitle *title);

Returns the number of subtitles streams of the video title.

`title` : | An OGMDvdTitle
Returns : | The number of subtitles streams, or -1

### ogmdvd_title_get_nth_subp_stream ()

    OGMDvdSubpStream *  ogmdvd_title_get_nth_subp_stream    (OGMDvdTitle *title,
                                                             guint nr);

Returns the subtitles stream at position nr. The first nr is 0.

`title` : | An OGMDvdTitle
`nr` : | The subtitles stream number
Returns : | The OGMDvdSubpStream, or NULL

### ogmdvd_title_get_subp_streams ()

    GSList *            ogmdvd_title_get_subp_streams       (OGMDvdTitle *title);

Returns a list of subp stream.

`title` : | An OGMDvdTitle
Returns : | The GSList, or NULL

### ogmdvd_title_get_aspect_ratio ()

    void                ogmdvd_title_get_aspect_ratio       (OGMDvdTitle *title,
                                                             guint *numerator,
                                                             guint *denominator);

Gets the aspect ratio of the DVD title in the form of a fraction.

`title` : | An OGMDvdTitle
`numerator` : | A pointer to set the aspect ratio numerator, or NULL
`denominator` : | A pointer to set the aspect ratio denominator, or NULL

### ogmdvd_title_find_audio_stream ()

    OGMDvdAudioStream * ogmdvd_title_find_audio_stream      (OGMDvdTitle *title,
                                                             GCompareFunc func,
                                                             gpointer data);

Searches for an audio stream with custom criteria.

`title` : | An OGMDvdTitle
`func` : | A GCompareFunc
`data` : | The data to pass to `func`
Returns : | An OGMDvdAudioStream, or NULL

### ogmdvd_title_find_subp_stream ()

    OGMDvdSubpStream *  ogmdvd_title_find_subp_stream       (OGMDvdTitle *title,
                                                             GCompareFunc func,
                                                             gpointer data);

Searches for a subp stream with custom criteria.

`title` : | An OGMDvdTitle
`func` : | A GCompareFunc
`data` : | The data to pass to `func`
Returns : | An OGMDvdSubpStream, or NULL