## OGMRipContainer OGMRipContainer — Base class for containers |

## Synopsis

    #include <ogmrip-container.h>

    void                (*OGMRipContainerCodecFunc)         (OGMRipContainer *container,
                                                             OGMRipCodec *codec,
                                                             guint demuxer,
                                                             gint language,
                                                             gpointer user_data);
    void                (*OGMRipContainerFileFunc)          (OGMRipContainer *container,
                                                             OGMRipFile *file,
                                                             gpointer user_data);
    struct              OGMRipContainer;
    struct              OGMRipContainerClass;
    void                ogmrip_container_set_options        (OGMRipContainer *container,
                                                             const gchar *section);
    const gchar *       ogmrip_container_get_output         (OGMRipContainer *container);
    void                ogmrip_container_set_output         (OGMRipContainer *container,
                                                             const gchar *output);
    const gchar *       ogmrip_container_get_label          (OGMRipContainer *container);
    void                ogmrip_container_set_label          (OGMRipContainer *container,
                                                             const gchar *label);
    const gchar *       ogmrip_container_get_fourcc         (OGMRipContainer *container);
    void                ogmrip_container_set_fourcc         (OGMRipContainer *container,
                                                             const gchar *fourcc);
    OGMRipVideoCodec *  ogmrip_container_get_video          (OGMRipContainer *container);
    void                ogmrip_container_set_video          (OGMRipContainer *container,
                                                             OGMRipVideoCodec *video);
    void                ogmrip_container_add_audio          (OGMRipContainer *container,
                                                             OGMRipAudioCodec *audio,
                                                             OGMRipAudioDemuxer demuxer,
                                                             gint language);
    GSList *            ogmrip_container_get_audio          (OGMRipContainer *container);
    OGMRipAudioCodec *  ogmrip_container_get_nth_audio      (OGMRipContainer *container,
                                                             gint n);
    gint                ogmrip_container_get_n_audio        (OGMRipContainer *container);
    void                ogmrip_container_foreach_audio      (OGMRipContainer *container,
                                                             OGMRipContainerCodecFunc func,
                                                             gpointer data);
    void                ogmrip_container_remove_audio       (OGMRipContainer *container,
                                                             OGMRipAudioCodec *audio);
    void                ogmrip_container_add_subp           (OGMRipContainer *container,
                                                             OGMRipSubpCodec *subp,
                                                             OGMRipSubpDemuxer demuxer,
                                                             gint language);
    GSList *            ogmrip_container_get_subp           (OGMRipContainer *container);
    gint                ogmrip_container_get_n_subp         (OGMRipContainer *container);
    OGMRipSubpCodec *   ogmrip_container_get_nth_subp       (OGMRipContainer *container,
                                                             gint n);
    void                ogmrip_container_foreach_subp       (OGMRipContainer *container,
                                                             OGMRipContainerCodecFunc func,
                                                             gpointer data);
    void                ogmrip_container_remove_subp        (OGMRipContainer *container,
                                                             OGMRipSubpCodec *subp);
    void                ogmrip_container_add_chapters       (OGMRipContainer *container,
                                                             OGMRipChapters *chapters,
                                                             gint language);
    GSList *            ogmrip_container_get_chapters       (OGMRipContainer *container);
    OGMRipChapters *    ogmrip_container_get_nth_chapters   (OGMRipContainer *container,
                                                             gint n);
    gint                ogmrip_container_get_n_chapters     (OGMRipContainer *container);
    void                ogmrip_container_foreach_chapters   (OGMRipContainer *container,
                                                             OGMRipContainerCodecFunc func,
                                                             gpointer data);
    void                ogmrip_container_remove_chapters    (OGMRipContainer *container,
                                                             OGMRipChapters *chapters);
    void                ogmrip_container_add_file           (OGMRipContainer *container,
                                                             OGMRipFile *file);
    GSList *            ogmrip_container_get_files          (OGMRipContainer *container);
    OGMRipFile *        ogmrip_container_get_nth_file       (OGMRipContainer *container,
                                                             gint n);
    gint                ogmrip_container_get_n_files        (OGMRipContainer *container);
    void                ogmrip_container_foreach_file       (OGMRipContainer *container,
                                                             OGMRipContainerFileFunc func,
                                                             gpointer data);
    void                ogmrip_container_remove_file        (OGMRipContainer *container,
                                                             OGMRipFile *file);
    void                ogmrip_container_set_split          (OGMRipContainer *container,
                                                             guint number,
                                                             guint size);
    void                ogmrip_container_get_split          (OGMRipContainer *container,
                                                             guint *number,
                                                             guint *size);
    gint                ogmrip_container_get_start_delay    (OGMRipContainer *container);
    void                ogmrip_container_set_start_delay    (OGMRipContainer *container,
                                                             guint start_delay);
    gint                ogmrip_container_get_overhead       (OGMRipContainer *container);
    gint64              ogmrip_container_get_overhead_size  (OGMRipContainer *container);
    gint64              ogmrip_container_get_nonvideo_size  (OGMRipContainer *container);

## Object Hierarchy

      GObject
       +----OGMJobSpawn
             +----OGMJobContainer
                   +----OGMJobBin
                         +----OGMRipContainer

## Properties

      "fourcc"                   gchar*                : Read / Write
      "label"                    gchar*                : Read / Write
      "output"                   gchar*                : Read / Write
      "overhead"                 guint                 : Read
      "start-delay"              guint                 : Read / Write
      "target-number"            guint                 : Read / Write
      "target-size"              guint                 : Read / Write

## Description

## Details

### OGMRipContainerCodecFunc ()

    void                (*OGMRipContainerCodecFunc)         (OGMRipContainer *container,
                                                             OGMRipCodec *codec,
                                                             guint demuxer,
                                                             gint language,
                                                             gpointer user_data);

Specifies the type of functions passed to `ogmrip_container_foreach_audio()`, `ogmrip_container_foreach_subp()`, and `ogmrip_container_foreach_chapters()`.

`container` : | An OGMRipContainer
`codec` : | An OGMRipCodec
`demuxer` : | The demuxer to be used
`language` : | The language of the stream
`user_data` : | The user data

### OGMRipContainerFileFunc ()

    void                (*OGMRipContainerFileFunc)          (OGMRipContainer *container,
                                                             OGMRipFile *file,
                                                             gpointer user_data);

Specifies the type of functions passed to `ogmrip_container_foreach_file()`.

`container` : | An OGMRipContainer
`file` : | An OGMRipFile
`user_data` : | The user data

### struct OGMRipContainer

    struct OGMRipContainer;

### struct OGMRipContainerClass

    struct OGMRipContainerClass {
      OGMJobBinClass parent_class;

      /* vtable */
      gint (* get_overhead) (OGMRipContainer *container);
      void (* set_options)  (OGMRipContainer *container,
                             const gchar     *section);
    };

### ogmrip_container_set_options ()

    void                ogmrip_container_set_options        (OGMRipContainer *container,
                                                             const gchar *section);

Sets container specific options from the specified profile.

`container` : | An OGMRipContainer
`section` : | A profile

### ogmrip_container_get_output ()

    const gchar *       ogmrip_container_get_output         (OGMRipContainer *container);

Gets the name of the output file.

`container` : | An OGMRipContainer
Returns : | The filename, or NULL

### ogmrip_container_set_output ()

    void                ogmrip_container_set_output         (OGMRipContainer *container,
                                                             const gchar *output);

Sets the name of the output file.

`container` : | an OGMRipContainer
`output` : | the name of the output file

### ogmrip_container_get_label ()

    const gchar *       ogmrip_container_get_label          (OGMRipContainer *container);

Gets the label of the rip.

`container` : | An OGMRipContainer
Returns : | The label, or NULL

### ogmrip_container_set_label ()

    void                ogmrip_container_set_label          (OGMRipContainer *container,
                                                             const gchar *label);

Sets the label of the rip.

`container` : | An OGMRipContainer
`label` : | the label

### ogmrip_container_get_fourcc ()

    const gchar *       ogmrip_container_get_fourcc         (OGMRipContainer *container);

Gets the FourCC of the rip.

`container` : | An OGMRipContainer
Returns : | The FourCC, or NULL

### ogmrip_container_set_fourcc ()

    void                ogmrip_container_set_fourcc         (OGMRipContainer *container,
                                                             const gchar *fourcc);

Sets the FourCC of the rip.

`container` : | An OGMRipContainer
`fourcc` : | the FourCC

### ogmrip_container_get_video ()

    OGMRipVideoCodec *  ogmrip_container_get_video          (OGMRipContainer *container);

Gets the video codec of the rip.

`container` : | An OGMRipContainer
Returns : | An OGMRipVideoCodec, or NULL

### ogmrip_container_set_video ()

    void                ogmrip_container_set_video          (OGMRipContainer *container,
                                                             OGMRipVideoCodec *video);

Sets the video codec of the rip.

`container` : | An OGMRipContainer
`video` : | An OGMRipVideoCodec

### ogmrip_container_add_audio ()

    void                ogmrip_container_add_audio          (OGMRipContainer *container,
                                                             OGMRipAudioCodec *audio,
                                                             OGMRipAudioDemuxer demuxer,
                                                             gint language);

Adds an audio codec to the rip.

`container` : | An OGMRipContainer
`audio` : | An OGMRipAudioCodec
`demuxer` : | The demuxer to be used
`language` : | The language of the stream

### ogmrip_container_get_audio ()

    GSList *            ogmrip_container_get_audio          (OGMRipContainer *container);

Gets a list of the audio codecs of the rip.

`container` : | An OGMRipContainer
Returns : | A GSList, or NULL

### ogmrip_container_get_nth_audio ()

    OGMRipAudioCodec *  ogmrip_container_get_nth_audio      (OGMRipContainer *container,
                                                             gint n);

Gets the audio codec at the given position.

`container` : | an OGMRipContainer
`n` : | The index of the audio codec
Returns : | An OGMRipAudioCodec, or NULL

### ogmrip_container_get_n_audio ()

    gint                ogmrip_container_get_n_audio        (OGMRipContainer *container);

Gets the number of audio codecs.

`container` : | an OGMRipContainer
Returns : | the number of audio codecs

### ogmrip_container_foreach_audio ()

    void                ogmrip_container_foreach_audio      (OGMRipContainer *container,
                                                             OGMRipContainerCodecFunc func,
                                                             gpointer data);

Calls a function for each audio codec

`container` : | an OGMRipContainer
`func` : | The function to call with each audio codec
`data` : | User data to pass to the function

### ogmrip_container_remove_audio ()

    void                ogmrip_container_remove_audio       (OGMRipContainer *container,
                                                             OGMRipAudioCodec *audio);

Removes the audio codec from the rip.

`container` : | An OGMRipContainer
`audio` : | An OGMRipAudioCodec

### ogmrip_container_add_subp ()

    void                ogmrip_container_add_subp           (OGMRipContainer *container,
                                                             OGMRipSubpCodec *subp,
                                                             OGMRipSubpDemuxer demuxer,
                                                             gint language);

Adds a subtitle codec to the rip.

`container` : | An OGMRipContainer
`subp` : | An OGMRipSubpCodec
`demuxer` : | The demuxer to be used
`language` : | The language of the stream

### ogmrip_container_get_subp ()

    GSList *            ogmrip_container_get_subp           (OGMRipContainer *container);

Gets a list of the subtitle codecs of the rip.

`container` : | An OGMRipContainer
Returns : | A GSList, or NULL

### ogmrip_container_get_n_subp ()

    gint                ogmrip_container_get_n_subp         (OGMRipContainer *container);

Gets the number of subtitle codecs.

`container` : | an OGMRipContainer
Returns : | the number of subtitle codecs

### ogmrip_container_get_nth_subp ()

    OGMRipSubpCodec *   ogmrip_container_get_nth_subp       (OGMRipContainer *container,
                                                             gint n);

Gets the subtitle codec at the given position.

`container` : | an OGMRipContainer
`n` : | The index of the subtitle codec
Returns : | An OGMRipSubpCodec, or NULL

### ogmrip_container_foreach_subp ()

    void                ogmrip_container_foreach_subp       (OGMRipContainer *container,
                                                             OGMRipContainerCodecFunc func,
                                                             gpointer data);

Calls a function for each subtitle codec

`container` : | An OGMRipContainer
`func` : | The function to call with each subtitle codec
`data` : | User data to pass to the function

### ogmrip_container_remove_subp ()

    void                ogmrip_container_remove_subp        (OGMRipContainer *container,
                                                             OGMRipSubpCodec *subp);

Removes the subp codec from the rip.

`container` : | An OGMRipContainer
`subp` : | An OGMRipSubpCodec

### ogmrip_container_add_chapters ()

    void                ogmrip_container_add_chapters       (OGMRipContainer *container,
                                                             OGMRipChapters *chapters,
                                                             gint language);

Adds a chapters codec to the rip.

`container` : | An OGMRipContainer
`chapters` : | An OGMRipChapters
`language` : | The language of the chapters

### ogmrip_container_get_chapters ()

    GSList *            ogmrip_container_get_chapters       (OGMRipContainer *container);

Gets a list of the chapters codecs of the rip.

`container` : | An OGMRipContainer
Returns : | A GSList, or NULL

### ogmrip_container_get_nth_chapters ()

    OGMRipChapters *    ogmrip_container_get_nth_chapters   (OGMRipContainer *container,
                                                             gint n);

Gets the chapters codec at the given position.

`container` : | an OGMRipContainer
`n` : | The index of the chapters codec
Returns : | An OGMRipChapters, or NULL

### ogmrip_container_get_n_chapters ()

    gint                ogmrip_container_get_n_chapters     (OGMRipContainer *container);

Gets the number of chapters codecs.

`container` : | an OGMRipContainer
Returns : | the number of chapters codecs

### ogmrip_container_foreach_chapters ()

    void                ogmrip_container_foreach_chapters   (OGMRipContainer *container,
                                                             OGMRipContainerCodecFunc func,
                                                             gpointer data);

Calls a function for each chapters codec

`container` : | An OGMRipContainer
`func` : | The function to call with each chapters codec
`data` : | User data to pass to the function

### ogmrip_container_remove_chapters ()

    void                ogmrip_container_remove_chapters    (OGMRipContainer *container,
                                                             OGMRipChapters *chapters);

Removes the chapters from the rip.

`container` : | An OGMRipContainer
`chapters` : | An OGMRipChaptersCodec

### ogmrip_container_add_file ()

    void                ogmrip_container_add_file           (OGMRipContainer *container,
                                                             OGMRipFile *file);

Adds a file to the rip.

`container` : | An OGMRipContainer
`file` : | An OOGMRipFile

### ogmrip_container_get_files ()

    GSList *            ogmrip_container_get_files          (OGMRipContainer *container);

Gets a list of the files of the rip.

`container` : | An OGMRipContainer
Returns : | A GSList, or NULL

### ogmrip_container_get_nth_file ()

    OGMRipFile *        ogmrip_container_get_nth_file       (OGMRipContainer *container,
                                                             gint n);

Gets the file at the given position.

`container` : | an OGMRipContainer
`n` : | The index of the file
Returns : | An OGMRipFile, or NULL

### ogmrip_container_get_n_files ()

    gint                ogmrip_container_get_n_files        (OGMRipContainer *container);

Gets the number of files.

`container` : | an OGMRipContainer
Returns : | the number of files

### ogmrip_container_foreach_file ()

    void                ogmrip_container_foreach_file       (OGMRipContainer *container,
                                                             OGMRipContainerFileFunc func,
                                                             gpointer data);

Calls a function for each file

`container` : | An OGMRipContainer
`func` : | The function to call with each file
`data` : | User data to pass to the function

### ogmrip_container_remove_file ()

    void                ogmrip_container_remove_file        (OGMRipContainer *container,
                                                             OGMRipFile *file);

Removes the file from the rip.

`container` : | An OGMRipContainer
`file` : | An OGMRipFile

### ogmrip_container_set_split ()

    void                ogmrip_container_set_split          (OGMRipContainer *container,
                                                             guint number,
                                                             guint size);

Sets the number of output files and the maximum size of each one.

`container` : | An OGMRipContainer
`number` : | The number of file
`size` : | The size of each file

### ogmrip_container_get_split ()

    void                ogmrip_container_get_split          (OGMRipContainer *container,
                                                             guint *number,
                                                             guint *size);

Gets the number of output files and the maximum size of each one.

`container` : | An OGMRipContainer
`number` : | A pointer to store the number of file
`size` : | A pointer to store the size of each file

### ogmrip_container_get_start_delay ()

    gint                ogmrip_container_get_start_delay    (OGMRipContainer *container);

Gets the start delay of the audio tracks.

`container` : | An OGMRipContainer
Returns : | The start delay, or -1

### ogmrip_container_set_start_delay ()

    void                ogmrip_container_set_start_delay    (OGMRipContainer *container,
                                                             guint start_delay);

Sets the start delay of the audio tracks

`container` : | An OGMRipContainer
`start_delay` : | the start delay

### ogmrip_container_get_overhead ()

    gint                ogmrip_container_get_overhead       (OGMRipContainer *container);

Gets the overhead of the container.

`container` : | An OGMRipContainer
Returns : | The overhead, or -1

### ogmrip_container_get_overhead_size ()

    gint64              ogmrip_container_get_overhead_size  (OGMRipContainer *container);

Returns the size of the overhead generated by the video, audio and subtitle stream, the chapters information and the files in bytes.

`container` : | An OGMRipContainer
Returns : | The overhead size

### ogmrip_container_get_nonvideo_size ()

    gint64              ogmrip_container_get_nonvideo_size  (OGMRipContainer *container);

Returns the size of the audio and subtitle streams, the chapters information and the files in bytes.

`container` : | An OGMRipContainer
Returns : | The nonvideo size

## Property Details

### The `"fourcc"` property

      "fourcc"                   gchar*                : Read / Write

Set fourcc.

Default value: NULL

### The `"label"` property

      "label"                    gchar*                : Read / Write

Set label.

Default value: NULL

### The `"output"` property

      "output"                   gchar*                : Read / Write

Set output file.

Default value: NULL

### The `"overhead"` property

      "overhead"                 guint                 : Read

Get overhead.

Default value: 6

### The `"start-delay"` property

      "start-delay"              guint                 : Read / Write

Set start delay.

Allowed values: <= G_MAXLONG

Default value: 0

### The `"target-number"` property

      "target-number"            guint                 : Read / Write

Set target number.

Default value: 1

### The `"target-size"` property

      "target-size"              guint                 : Read / Write

Set target size.

Default value: 0