# GstEncodingProfile

Functions to create and handle encoding profiles.

Encoding profiles describe the media types and settings one wishes to use for an encoding process. The top-level profiles are commonly GstEncodingContainerProfile(s) (which contains a user-readable name and description along with which container format to use). These, in turn, reference one or more GstEncodingProfile(s) which indicate which encoding format should be used on each individual streams.

GstEncodingProfile(s) can be provided to the 'encodebin' element, which will take care of selecting and setting up the required elements to produce an output stream conforming to the specifications of the profile.

The encoding profiles do not necessarily specify which GstElement to use for the various encoding and muxing steps, as they allow to specifying the format one wishes to use.

Encoding profiles can be created at runtime by the application or loaded from (and saved to) file using the GstEncodingTarget API.

## The encoding profile serialization format

Encoding profiles can be serialized to be used in the command line tools or to set it on other other GObject-s using gst_util_set_object_arg for example.

The serialization format aims at being simple to understand although flexible enough to describe any possible encoding profile. There are several ways to describe the profile depending on the context but the general idea is that it is a colon separated list of EncodingProfiles descriptions, the first one needs to describe a GstEncodingContainerProfile and the following ones describe elementary streams.

### Using encoders and muxer element factory name

      muxer_factory_name:video_encoder_factory_name:audio_encoder_factory_name

For example to encode a stream into a WebM container, with an OGG audio stream and a VP8 video stream, the serialized GstEncodingProfile looks like:

      webmmux:vp8enc:vorbisenc

### Define the encoding profile in a generic way using caps:

      muxer_source_caps:video_encoder_source_caps:audio_encoder_source_caps

For example to encode a stream into a WebM container, with an OGG audio stream and a VP8 video stream, the serialized GstEncodingProfile looks like:

      video/webm:video/x-vp8:audio/x-vorbis

It is possible to mix caps and element type names so you can specify a specific video encoder while using caps for other encoders/muxer.

### Using preset

You can also set the preset name of the encoding profile using the caps+preset_name syntax as in:

      video/webm:video/x-vp8+youtube-preset:audio/x-vorbis

### Setting properties on muxers or on the encoding profile itself

Moreover, you can set the extra properties:

- `|element-properties,property1=true` (See gst_encoding_profile_set_element_properties)
- `|presence=true` (See See gst_encoding_profile_get_presence)
- `|single-segment=true` (See gst_encoding_profile_set_single_segment)
- `|single-segment=true` (See gst_encoding_video_profile_set_variableframerate)

for example:

      video/webm:video/x-vp8|presence=1|element-properties,target-bitrate=500000:audio/x-vorbis

### Enforcing properties to the stream itself (video size, number of audio channels, etc..)

You can also use the `restriction_caps->encoded_format_caps` syntax to specify the restriction caps to be set on a GstEncodingProfile

It corresponds to the restriction GstCaps to apply before the encoder that will be used in the profile (See gst_encoding_profile_get_restriction). The fields present in restriction caps are properties of the raw stream (that is, before encoding), such as height and width for video and depth and sampling rate for audio. This property does not make sense for muxers. See gst_encoding_profile_get_restriction for more details.

To force a video stream to be encoded with a Full HD resolution (using WebM as the container format, VP8 as the video codec and Vorbis as the audio codec), you should use:

      "video/webm:video/x-raw,width=1920,height=1080->video/x-vp8:audio/x-vorbis"

> NOTE: Make sure to enclose into quotes to avoid '>' to be reinterpreted by the shell.

In the case you are specifying encoders directly, the following is also possible:

      matroskamux:x264enc,width=1920,height=1080:audio/x-vorbis

## Some serialized encoding formats examples

### MP3 audio and H264 in MP4**

      video/quicktime,variant=iso:video/x-h264:audio/mpeg,mpegversion=1,layer=3

### Vorbis and theora in OGG

      application/ogg:video/x-theora:audio/x-vorbis

### AC3 and H264 in MPEG-TS

      video/mpegts:video/x-h264:audio/x-ac3

## Loading a profile from encoding targets

Anywhere you have to use a string to define a GstEncodingProfile, you can use load it from a GstEncodingTarget using the following syntaxes:

      target_name[/profilename/category]

or

      /path/to/target.gep:profilename

## Examples

### Creating a profile

    #include <gst/pbutils/encoding-profile.h>
    ...
    GstEncodingProfile *
    create_ogg_theora_profile(void)
    {
     GstEncodingContainerProfile *prof;
     GstCaps *caps;

     caps = gst_caps_from_string("application/ogg");
     prof = gst_encoding_container_profile_new("Ogg audio/video",
        "Standard OGG/THEORA/VORBIS",
        caps, NULL);
     gst_caps_unref (caps);

     caps = gst_caps_from_string("video/x-theora");
     gst_encoding_container_profile_add_profile(prof,
          (GstEncodingProfile*) gst_encoding_video_profile_new(caps, NULL, NULL, 0));
     gst_caps_unref (caps);

     caps = gst_caps_from_string("audio/x-vorbis");
     gst_encoding_container_profile_add_profile(prof,
          (GstEncodingProfile*) gst_encoding_audio_profile_new(caps, NULL, NULL, 0));
     gst_caps_unref (caps);

     return (GstEncodingProfile*) prof;
    }

### Example: Using an encoder preset with a profile

    #include <gst/pbutils/encoding-profile.h>
    ...
    GstEncodingProfile *
    create_ogg_theora_profile(void)
    {
     GstEncodingVideoProfile *v;
     GstEncodingAudioProfile *a;
     GstEncodingContainerProfile *prof;
     GstCaps *caps;
     GstPreset *preset;

     caps = gst_caps_from_string ("application/ogg");
     prof = gst_encoding_container_profile_new ("Ogg audio/video",
        "Standard OGG/THEORA/VORBIS",
        caps, NULL);
     gst_caps_unref (caps);

     preset = GST_PRESET (gst_element_factory_make ("theoraenc", "theorapreset"));
     g_object_set (preset, "bitrate", 1000, NULL);
     // The preset will be saved on the filesystem,
     // so try to use a descriptive name
     gst_preset_save_preset (preset, "theora_bitrate_preset");
     gst_object_unref (preset);

     caps = gst_caps_from_string ("video/x-theora");
     v = gst_encoding_video_profile_new (caps, "theora_bitrate_preset", NULL, 0);
     gst_encoding_container_profile_add_profile (prof, (GstEncodingProfile*) v);
     gst_caps_unref (caps);

     caps = gst_caps_from_string ("audio/x-vorbis");
     a = gst_encoding_audio_profile_new (caps, NULL, NULL, 0);
     gst_encoding_container_profile_add_profile (prof, (GstEncodingProfile*) a);
     gst_caps_unref (caps);

     return (GstEncodingProfile*) prof;
    }

### Listing categories, targets and profiles

    #include <gst/pbutils/encoding-profile.h>
    ...
    GstEncodingProfile *prof;
    GList *categories, *tmpc;
    GList *targets, *tmpt;
    ...
    categories = gst_encoding_list_available_categories ();

    ... Show available categories to user ...

    for (tmpc = categories; tmpc; tmpc = tmpc->next) {
      gchar *category = (gchar *) tmpc->data;

      ... and we can list all targets within that category ...

      targets = gst_encoding_list_all_targets (category);

      ... and show a list to our users ...

      g_list_foreach (targets, (GFunc) gst_encoding_target_unref, NULL);
      g_list_free (targets);
    }

    g_list_foreach (categories, (GFunc) g_free, NULL);
    g_list_free (categories);

    ...

## GstEncodingAudioProfile

    GObject
        ╰──GstEncodingProfile
            ╰──GstEncodingAudioProfile

Variant of GstEncodingProfile for audio streams.

### Class structure

#### GstEncodingAudioProfileClass

### GstPbutils.EncodingAudioProfileClass

## GstPbutils.EncodingAudioProfile

    GObject.Object
        ╰──GstPbutils.EncodingProfile
            ╰──GstPbutils.EncodingAudioProfile

Variant of GstPbutils.EncodingProfile for audio streams.

## GstPbutils.EncodingAudioProfile

    GObject.Object
        ╰──GstPbutils.EncodingProfile
            ╰──GstPbutils.EncodingAudioProfile

Variant of GstPbutils.EncodingProfile for audio streams.

### Constructors

#### gst_encoding_audio_profile_new

    GstEncodingAudioProfile *
    gst_encoding_audio_profile_new (GstCaps * format,
                                    const gchar * preset,
                                    GstCaps * restriction,
                                    guint presence)

Creates a new GstEncodingAudioProfile

All provided allocatable arguments will be internally copied, so can be safely freed/unreferenced after calling this method.

Parameters:

`format` ( [transfer: none]) –

the GstCaps

`preset` ( [allow-none]) –

the preset(s) to use on the encoder, can be NULL

`restriction` ( [allow-none]) –

the GstCaps used to restrict the input to the encoder, can be NULL. See gst_encoding_profile_get_restriction for more details.

`presence` –

the number of time this stream must be used. 0 means any number of times (including never)

Returns –

the newly created GstEncodingAudioProfile.

#### GstPbutils.EncodingAudioProfile.prototype.new

    function GstPbutils.EncodingAudioProfile.prototype.new(format: Gst.Caps, preset: String, restriction: Gst.Caps, presence: Number): {
        // javascript wrapper for 'gst_encoding_audio_profile_new'
    }

Creates a new GstPbutils.EncodingAudioProfile

All provided allocatable arguments will be internally copied, so can be safely freed/unreferenced after calling this method.

Parameters:

`format` (Gst.Caps) –

the Gst.Caps

`preset` (String) –

the preset(s) to use on the encoder, can be null

`restriction` (Gst.Caps) –

the Gst.Caps used to restrict the input to the encoder, can be NULL. See GstPbutils.EncodingProfile.prototype.get_restriction for more details.

`presence` (Number) –

the number of time this stream must be used. 0 means any number of times (including never)

Returns (GstPbutils.EncodingAudioProfile) –

the newly created GstPbutils.EncodingAudioProfile.

#### GstPbutils.EncodingAudioProfile.new

    def GstPbutils.EncodingAudioProfile.new (format, preset, restriction, presence):
        #python wrapper for 'gst_encoding_audio_profile_new'

Creates a new GstPbutils.EncodingAudioProfile

All provided allocatable arguments will be internally copied, so can be safely freed/unreferenced after calling this method.

Parameters:

`format` (Gst.Caps) –

the Gst.Caps

`preset` (str) –

the preset(s) to use on the encoder, can be None

`restriction` (Gst.Caps) –

the Gst.Caps used to restrict the input to the encoder, can be NULL. See GstPbutils.EncodingProfile.get_restriction for more details.

`presence` (int) –

the number of time this stream must be used. 0 means any number of times (including never)

Returns (GstPbutils.EncodingAudioProfile) –

the newly created GstPbutils.EncodingAudioProfile.

## GstEncodingContainerProfile

    GObject
        ╰──GstEncodingProfile
            ╰──GstEncodingContainerProfile

Encoding profiles for containers. Keeps track of a list of GstEncodingProfile

### Class structure

#### GstEncodingContainerProfileClass

### GstPbutils.EncodingContainerProfileClass

## GstPbutils.EncodingContainerProfile

    GObject.Object
        ╰──GstPbutils.EncodingProfile
            ╰──GstPbutils.EncodingContainerProfile

Encoding profiles for containers. Keeps track of a list of GstPbutils.EncodingProfile

## GstPbutils.EncodingContainerProfile

    GObject.Object
        ╰──GstPbutils.EncodingProfile
            ╰──GstPbutils.EncodingContainerProfile

Encoding profiles for containers. Keeps track of a list of GstPbutils.EncodingProfile

### Constructors

#### gst_encoding_container_profile_new

    GstEncodingContainerProfile *
    gst_encoding_container_profile_new (const gchar * name,
                                        const gchar * description,
                                        GstCaps * format,
                                        const gchar * preset)

Creates a new GstEncodingContainerProfile.

Parameters:

`name` ( [allow-none]) –

The name of the container profile, can be NULL

`description` ( [allow-none]) –

The description of the container profile, can be NULL

`format` ( [transfer: none]) –

The format to use for this profile

`preset` ( [allow-none]) –

The preset to use for this profile.

Returns –

The newly created GstEncodingContainerProfile.

#### GstPbutils.EncodingContainerProfile.prototype.new

    function GstPbutils.EncodingContainerProfile.prototype.new(name: String, description: String, format: Gst.Caps, preset: String): {
        // javascript wrapper for 'gst_encoding_container_profile_new'
    }

Creates a new GstPbutils.EncodingContainerProfile.

Parameters:

`name` (String) –

The name of the container profile, can be null

`description` (String) –

The description of the container profile, can be null

`format` (Gst.Caps) –

The format to use for this profile

`preset` (String) –

The preset to use for this profile.

Returns (GstPbutils.EncodingContainerProfile) –

The newly created GstPbutils.EncodingContainerProfile.

#### GstPbutils.EncodingContainerProfile.new

    def GstPbutils.EncodingContainerProfile.new (name, description, format, preset):
        #python wrapper for 'gst_encoding_container_profile_new'

Creates a new GstPbutils.EncodingContainerProfile.

Parameters:

`name` (str) –

The name of the container profile, can be None

`description` (str) –

The description of the container profile, can be None

`format` (Gst.Caps) –

The format to use for this profile

`preset` (str) –

The preset to use for this profile.

Returns (GstPbutils.EncodingContainerProfile) –

The newly created GstPbutils.EncodingContainerProfile.

### Methods

#### gst_encoding_container_profile_add_profile

    gboolean
    gst_encoding_container_profile_add_profile (GstEncodingContainerProfile * container,
                                                GstEncodingProfile * profile)

Add a GstEncodingProfile to the list of profiles handled by container.

No copy of profile will be made, if you wish to use it elsewhere after this method you should increment its reference count.

Parameters:

`container` –

the GstEncodingContainerProfile to use

`profile` ( [transfer: full]) –

the GstEncodingProfile to add.

Returns –

TRUE if the stream was properly added, else FALSE.

#### GstPbutils.EncodingContainerProfile.prototype.add_profile

    function GstPbutils.EncodingContainerProfile.prototype.add_profile(profile: GstPbutils.EncodingProfile): {
        // javascript wrapper for 'gst_encoding_container_profile_add_profile'
    }

Add a GstPbutils.EncodingProfile to the list of profiles handled by container.

No copy of profile will be made, if you wish to use it elsewhere after this method you should increment its reference count.

Parameters:

`container` (GstPbutils.EncodingContainerProfile) –

the GstPbutils.EncodingContainerProfile to use

`profile` (GstPbutils.EncodingProfile) –

the GstPbutils.EncodingProfile to add.

Returns (Number) –

true if the stream was properly added, else false.

#### GstPbutils.EncodingContainerProfile.add_profile

    def GstPbutils.EncodingContainerProfile.add_profile (self, profile):
        #python wrapper for 'gst_encoding_container_profile_add_profile'

Add a GstPbutils.EncodingProfile to the list of profiles handled by container.

No copy of profile will be made, if you wish to use it elsewhere after this method you should increment its reference count.

Parameters:

`container` (GstPbutils.EncodingContainerProfile) –

the GstPbutils.EncodingContainerProfile to use

`profile` (GstPbutils.EncodingProfile) –

the GstPbutils.EncodingProfile to add.

Returns (bool) –

True if the stream was properly added, else False.

#### gst_encoding_container_profile_contains_profile

    gboolean
    gst_encoding_container_profile_contains_profile (GstEncodingContainerProfile * container,
                                                     GstEncodingProfile * profile)

Checks if container contains a GstEncodingProfile identical to profile.

Parameters:

`container` –

a GstEncodingContainerProfile

`profile` –

a GstEncodingProfile

Returns –

TRUE if container contains a GstEncodingProfile identical to profile, else FALSE.

#### GstPbutils.EncodingContainerProfile.prototype.contains_profile

    function GstPbutils.EncodingContainerProfile.prototype.contains_profile(profile: GstPbutils.EncodingProfile): {
        // javascript wrapper for 'gst_encoding_container_profile_contains_profile'
    }

Checks if container contains a GstPbutils.EncodingProfile identical to profile.

Parameters:

`container` (GstPbutils.EncodingContainerProfile) –

a GstPbutils.EncodingContainerProfile

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Number) –

true if container contains a GstPbutils.EncodingProfile identical to profile, else false.

#### GstPbutils.EncodingContainerProfile.contains_profile

    def GstPbutils.EncodingContainerProfile.contains_profile (self, profile):
        #python wrapper for 'gst_encoding_container_profile_contains_profile'

Checks if container contains a GstPbutils.EncodingProfile identical to profile.

Parameters:

`container` (GstPbutils.EncodingContainerProfile) –

a GstPbutils.EncodingContainerProfile

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (bool) –

True if container contains a GstPbutils.EncodingProfile identical to profile, else False.

#### gst_encoding_container_profile_get_profiles

    const GList *
    gst_encoding_container_profile_get_profiles (GstEncodingContainerProfile * profile)

Parameters:

`profile` –

a GstEncodingContainerProfile

Returns –

(element-type GstPbutils.EncodingProfile) (transfer none): the list of contained GstEncodingProfile.

#### GstPbutils.EncodingContainerProfile.prototype.get_profiles

    function GstPbutils.EncodingContainerProfile.prototype.get_profiles(): {
        // javascript wrapper for 'gst_encoding_container_profile_get_profiles'
    }

Parameters:

`profile` (GstPbutils.EncodingContainerProfile) –

a GstPbutils.EncodingContainerProfile

Returns ([ GstPbutils.EncodingProfile ]) –

(element-type GstPbutils.EncodingProfile) (transfer none): the list of contained GstPbutils.EncodingProfile.

#### GstPbutils.EncodingContainerProfile.get_profiles

    def GstPbutils.EncodingContainerProfile.get_profiles (self):
        #python wrapper for 'gst_encoding_container_profile_get_profiles'

Parameters:

`profile` (GstPbutils.EncodingContainerProfile) –

a GstPbutils.EncodingContainerProfile

Returns ([ GstPbutils.EncodingProfile ]) –

(element-type GstPbutils.EncodingProfile) (transfer none): the list of contained GstPbutils.EncodingProfile.

## GstEncodingProfile

    GObject
        ╰──GstEncodingProfile
            ╰──GstEncodingAudioProfile
            ╰──GstEncodingContainerProfile
            ╰──GstEncodingVideoProfile

The opaque base class object for all encoding profiles. This contains generic information like name, description, format and preset.

### Class structure

#### GstEncodingProfileClass

### GstPbutils.EncodingProfileClass

## GstPbutils.EncodingProfile

    GObject.Object
        ╰──GstPbutils.EncodingProfile
            ╰──GstPbutils.EncodingAudioProfile
            ╰──GstPbutils.EncodingContainerProfile
            ╰──GstPbutils.EncodingVideoProfile

The opaque base class object for all encoding profiles. This contains generic information like name, description, format and preset.

## GstPbutils.EncodingProfile

    GObject.Object
        ╰──GstPbutils.EncodingProfile
            ╰──GstPbutils.EncodingAudioProfile
            ╰──GstPbutils.EncodingContainerProfile
            ╰──GstPbutils.EncodingVideoProfile

The opaque base class object for all encoding profiles. This contains generic information like name, description, format and preset.

### Methods

#### gst_encoding_profile_copy

    GstEncodingProfile *
    gst_encoding_profile_copy (GstEncodingProfile * self)

Makes a deep copy of self

Parameters:

`self` –

The GstEncodingProfile to copy

Returns ( [transfer: full]) –

The copy of self

Since : 1.12

#### GstPbutils.EncodingProfile.prototype.copy

    function GstPbutils.EncodingProfile.prototype.copy(): {
        // javascript wrapper for 'gst_encoding_profile_copy'
    }

Makes a deep copy of self

Parameters:

`self` (GstPbutils.EncodingProfile) –

The GstPbutils.EncodingProfile to copy

Returns (GstPbutils.EncodingProfile) –

The copy of self

Since : 1.12

#### GstPbutils.EncodingProfile.copy

    def GstPbutils.EncodingProfile.copy (self):
        #python wrapper for 'gst_encoding_profile_copy'

Makes a deep copy of self

Parameters:

`self` (GstPbutils.EncodingProfile) –

The GstPbutils.EncodingProfile to copy

Returns (GstPbutils.EncodingProfile) –

The copy of self

Since : 1.12

#### gst_encoding_profile_get_allow_dynamic_output

    gboolean
    gst_encoding_profile_get_allow_dynamic_output (GstEncodingProfile * profile)

Get whether the format that has been negotiated in at some point can be renegotiated later during the encoding.

Parameters:

`profile` –

a GstEncodingProfile

Returns –
No description available

#### GstPbutils.EncodingProfile.prototype.get_allow_dynamic_output

    function GstPbutils.EncodingProfile.prototype.get_allow_dynamic_output(): {
        // javascript wrapper for 'gst_encoding_profile_get_allow_dynamic_output'
    }

Get whether the format that has been negotiated in at some point can be renegotiated later during the encoding.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Number) –
No description available

#### GstPbutils.EncodingProfile.get_allow_dynamic_output

    def GstPbutils.EncodingProfile.get_allow_dynamic_output (self):
        #python wrapper for 'gst_encoding_profile_get_allow_dynamic_output'

Get whether the format that has been negotiated in at some point can be renegotiated later during the encoding.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (bool) –
No description available

#### gst_encoding_profile_get_description

    const gchar *
    gst_encoding_profile_get_description (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns –

the description of the profile, can be NULL.

#### GstPbutils.EncodingProfile.prototype.get_description

    function GstPbutils.EncodingProfile.prototype.get_description(): {
        // javascript wrapper for 'gst_encoding_profile_get_description'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (String) –

the description of the profile, can be null.

#### GstPbutils.EncodingProfile.get_description

    def GstPbutils.EncodingProfile.get_description (self):
        #python wrapper for 'gst_encoding_profile_get_description'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (str) –

the description of the profile, can be None.

#### gst_encoding_profile_get_element_properties

    GstStructure *
    gst_encoding_profile_get_element_properties (GstEncodingProfile * self)

Parameters:

`self` –

a GstEncodingProfile

Returns ( [transfer: full][nullable]) –

The properties that are going to be set on the underlying element

Since : 1.20

#### GstPbutils.EncodingProfile.prototype.get_element_properties

    function GstPbutils.EncodingProfile.prototype.get_element_properties(): {
        // javascript wrapper for 'gst_encoding_profile_get_element_properties'
    }

Parameters:

`self` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Gst.Structure) –

The properties that are going to be set on the underlying element

Since : 1.20

#### GstPbutils.EncodingProfile.get_element_properties

    def GstPbutils.EncodingProfile.get_element_properties (self):
        #python wrapper for 'gst_encoding_profile_get_element_properties'

Parameters:

`self` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Gst.Structure) –

The properties that are going to be set on the underlying element

Since : 1.20

#### gst_encoding_profile_get_file_extension

    const gchar *
    gst_encoding_profile_get_file_extension (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns –

a suitable file extension for profile, or NULL.

#### GstPbutils.EncodingProfile.prototype.get_file_extension

    function GstPbutils.EncodingProfile.prototype.get_file_extension(): {
        // javascript wrapper for 'gst_encoding_profile_get_file_extension'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (String) –

a suitable file extension for profile, or NULL.

#### GstPbutils.EncodingProfile.get_file_extension

    def GstPbutils.EncodingProfile.get_file_extension (self):
        #python wrapper for 'gst_encoding_profile_get_file_extension'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (str) –

a suitable file extension for profile, or NULL.

#### gst_encoding_profile_get_format

    GstCaps *
    gst_encoding_profile_get_format (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns ( [transfer: full]) –

the GstCaps corresponding to the media format used in the profile. Unref after usage.

#### GstPbutils.EncodingProfile.prototype.get_format

    function GstPbutils.EncodingProfile.prototype.get_format(): {
        // javascript wrapper for 'gst_encoding_profile_get_format'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Gst.Caps) –

the Gst.Caps corresponding to the media format used in the profile. Unref after usage.

#### GstPbutils.EncodingProfile.get_format

    def GstPbutils.EncodingProfile.get_format (self):
        #python wrapper for 'gst_encoding_profile_get_format'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Gst.Caps) –

the Gst.Caps corresponding to the media format used in the profile. Unref after usage.

#### gst_encoding_profile_get_input_caps

    GstCaps *
    gst_encoding_profile_get_input_caps (GstEncodingProfile * profile)

Computes the full output caps that this profile will be able to consume.

Parameters:

`profile` –

a GstEncodingProfile

Returns ( [transfer: full]) –

The full caps the given profile can consume. Call gst_caps_unref when you are done with the caps.

#### GstPbutils.EncodingProfile.prototype.get_input_caps

    function GstPbutils.EncodingProfile.prototype.get_input_caps(): {
        // javascript wrapper for 'gst_encoding_profile_get_input_caps'
    }

Computes the full output caps that this profile will be able to consume.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Gst.Caps) –

The full caps the given profile can consume. Call gst_caps_unref (not introspectable) when you are done with the caps.

#### GstPbutils.EncodingProfile.get_input_caps

    def GstPbutils.EncodingProfile.get_input_caps (self):
        #python wrapper for 'gst_encoding_profile_get_input_caps'

Computes the full output caps that this profile will be able to consume.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Gst.Caps) –

The full caps the given profile can consume. Call gst_caps_unref (not introspectable) when you are done with the caps.

#### gst_encoding_profile_get_name

    const gchar *
    gst_encoding_profile_get_name (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns –

the name of the profile, can be NULL.

#### GstPbutils.EncodingProfile.prototype.get_name

    function GstPbutils.EncodingProfile.prototype.get_name(): {
        // javascript wrapper for 'gst_encoding_profile_get_name'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (String) –

the name of the profile, can be null.

#### GstPbutils.EncodingProfile.get_name

    def GstPbutils.EncodingProfile.get_name (self):
        #python wrapper for 'gst_encoding_profile_get_name'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (str) –

the name of the profile, can be None.

#### gst_encoding_profile_get_presence

    guint
    gst_encoding_profile_get_presence (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns –

The number of times the profile is used in its parent container profile. If 0, it is not a mandatory stream.

#### GstPbutils.EncodingProfile.prototype.get_presence

    function GstPbutils.EncodingProfile.prototype.get_presence(): {
        // javascript wrapper for 'gst_encoding_profile_get_presence'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Number) –

The number of times the profile is used in its parent container profile. If 0, it is not a mandatory stream.

#### GstPbutils.EncodingProfile.get_presence

    def GstPbutils.EncodingProfile.get_presence (self):
        #python wrapper for 'gst_encoding_profile_get_presence'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (int) –

The number of times the profile is used in its parent container profile. If 0, it is not a mandatory stream.

#### gst_encoding_profile_get_preset

    const gchar *
    gst_encoding_profile_get_preset (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns –

the name of the GstPreset to be used in the profile. This is the name that has been set when saving the preset.

#### GstPbutils.EncodingProfile.prototype.get_preset

    function GstPbutils.EncodingProfile.prototype.get_preset(): {
        // javascript wrapper for 'gst_encoding_profile_get_preset'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (String) –

the name of the Gst.Preset to be used in the profile. This is the name that has been set when saving the preset.

#### GstPbutils.EncodingProfile.get_preset

    def GstPbutils.EncodingProfile.get_preset (self):
        #python wrapper for 'gst_encoding_profile_get_preset'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (str) –

the name of the Gst.Preset to be used in the profile. This is the name that has been set when saving the preset.

#### gst_encoding_profile_get_preset_name

    const gchar *
    gst_encoding_profile_get_preset_name (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns –

the name of the GstPreset factory to be used in the profile.

#### GstPbutils.EncodingProfile.prototype.get_preset_name

    function GstPbutils.EncodingProfile.prototype.get_preset_name(): {
        // javascript wrapper for 'gst_encoding_profile_get_preset_name'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (String) –

the name of the Gst.Preset factory to be used in the profile.

#### GstPbutils.EncodingProfile.get_preset_name

    def GstPbutils.EncodingProfile.get_preset_name (self):
        #python wrapper for 'gst_encoding_profile_get_preset_name'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (str) –

the name of the Gst.Preset factory to be used in the profile.

#### gst_encoding_profile_get_restriction

    GstCaps *
    gst_encoding_profile_get_restriction (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns ( [transfer: full]) –

The restriction GstCaps to apply before the encoder that will be used in the profile. The fields present in restriction caps are properties of the raw stream (that is before encoding), such as height and width for video and depth and sampling rate for audio. Does not apply to GstEncodingContainerProfile (since there is no corresponding raw stream). Can be NULL. Unref after usage.

#### GstPbutils.EncodingProfile.prototype.get_restriction

    function GstPbutils.EncodingProfile.prototype.get_restriction(): {
        // javascript wrapper for 'gst_encoding_profile_get_restriction'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Gst.Caps) –

The restriction Gst.Caps to apply before the encoder that will be used in the profile. The fields present in restriction caps are properties of the raw stream (that is before encoding), such as height and width for video and depth and sampling rate for audio. Does not apply to GstPbutils.EncodingContainerProfile (since there is no corresponding raw stream). Can be null. Unref after usage.

#### GstPbutils.EncodingProfile.get_restriction

    def GstPbutils.EncodingProfile.get_restriction (self):
        #python wrapper for 'gst_encoding_profile_get_restriction'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Gst.Caps) –

The restriction Gst.Caps to apply before the encoder that will be used in the profile. The fields present in restriction caps are properties of the raw stream (that is before encoding), such as height and width for video and depth and sampling rate for audio. Does not apply to GstPbutils.EncodingContainerProfile (since there is no corresponding raw stream). Can be None. Unref after usage.

#### gst_encoding_profile_get_single_segment

    gboolean
    gst_encoding_profile_get_single_segment (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns –

TRUE if the stream represented by profile should use a single segment before the encoder, FALSE otherwise. This means that buffers will be retimestamped and segments will be eat so as to appear as one segment.

Since : 1.18

#### GstPbutils.EncodingProfile.prototype.get_single_segment

    function GstPbutils.EncodingProfile.prototype.get_single_segment(): {
        // javascript wrapper for 'gst_encoding_profile_get_single_segment'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Number) –

true if the stream represented by profile should use a single segment before the encoder, false otherwise. This means that buffers will be retimestamped and segments will be eat so as to appear as one segment.

Since : 1.18

#### GstPbutils.EncodingProfile.get_single_segment

    def GstPbutils.EncodingProfile.get_single_segment (self):
        #python wrapper for 'gst_encoding_profile_get_single_segment'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (bool) –

True if the stream represented by profile should use a single segment before the encoder, False otherwise. This means that buffers will be retimestamped and segments will be eat so as to appear as one segment.

Since : 1.18

#### gst_encoding_profile_get_type_nick

    const gchar *
    gst_encoding_profile_get_type_nick (GstEncodingProfile * profile)

Parameters:

`profile` –

a GstEncodingProfile

Returns –

the human-readable name of the type of profile.

#### GstPbutils.EncodingProfile.prototype.get_type_nick

    function GstPbutils.EncodingProfile.prototype.get_type_nick(): {
        // javascript wrapper for 'gst_encoding_profile_get_type_nick'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (String) –

the human-readable name of the type of profile.

#### GstPbutils.EncodingProfile.get_type_nick

    def GstPbutils.EncodingProfile.get_type_nick (self):
        #python wrapper for 'gst_encoding_profile_get_type_nick'

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (str) –

the human-readable name of the type of profile.

#### gst_encoding_profile_is_enabled

    gboolean
    gst_encoding_profile_is_enabled (GstEncodingProfile * profile)

Parameters:

`profile` –
No description available
Returns –
No description available

#### GstPbutils.EncodingProfile.prototype.is_enabled

    function GstPbutils.EncodingProfile.prototype.is_enabled(): {
        // javascript wrapper for 'gst_encoding_profile_is_enabled'
    }

Parameters:

`profile` (GstPbutils.EncodingProfile) –
No description available
Returns (Number) –
No description available

#### GstPbutils.EncodingProfile.is_enabled

    def GstPbutils.EncodingProfile.is_enabled (self):
        #python wrapper for 'gst_encoding_profile_is_enabled'

Parameters:

`profile` (GstPbutils.EncodingProfile) –
No description available
Returns (bool) –
No description available

#### gst_encoding_profile_is_equal

    gboolean
    gst_encoding_profile_is_equal (GstEncodingProfile * a,
                                   GstEncodingProfile * b)

Checks whether the two GstEncodingProfile are equal

Parameters:

`a` –

a GstEncodingProfile

`b` –

a GstEncodingProfile

Returns –

TRUE if a and b are equal, else FALSE.

#### GstPbutils.EncodingProfile.prototype.is_equal

    function GstPbutils.EncodingProfile.prototype.is_equal(b: GstPbutils.EncodingProfile): {
        // javascript wrapper for 'gst_encoding_profile_is_equal'
    }

Checks whether the two GstPbutils.EncodingProfile are equal

Parameters:

`a` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`b` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (Number) –

true if a and b are equal, else false.

#### GstPbutils.EncodingProfile.is_equal

    def GstPbutils.EncodingProfile.is_equal (self, b):
        #python wrapper for 'gst_encoding_profile_is_equal'

Checks whether the two GstPbutils.EncodingProfile are equal

Parameters:

`a` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`b` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

Returns (bool) –

True if a and b are equal, else False.

#### gst_encoding_profile_set_allow_dynamic_output

    gst_encoding_profile_set_allow_dynamic_output (GstEncodingProfile * profile,
                                                   gboolean allow_dynamic_output)

Sets whether the format that has been negotiated in at some point can be renegotiated later during the encoding.

Parameters:

`profile` –

a GstEncodingProfile

`allow_dynamic_output` –

Whether the format that has been negotiated first can be renegotiated during the encoding

#### GstPbutils.EncodingProfile.prototype.set_allow_dynamic_output

    function GstPbutils.EncodingProfile.prototype.set_allow_dynamic_output(allow_dynamic_output: Number): {
        // javascript wrapper for 'gst_encoding_profile_set_allow_dynamic_output'
    }

Sets whether the format that has been negotiated in at some point can be renegotiated later during the encoding.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`allow_dynamic_output` (Number) –

Whether the format that has been negotiated first can be renegotiated during the encoding

#### GstPbutils.EncodingProfile.set_allow_dynamic_output

    def GstPbutils.EncodingProfile.set_allow_dynamic_output (self, allow_dynamic_output):
        #python wrapper for 'gst_encoding_profile_set_allow_dynamic_output'

Sets whether the format that has been negotiated in at some point can be renegotiated later during the encoding.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`allow_dynamic_output` (bool) –

Whether the format that has been negotiated first can be renegotiated during the encoding

#### gst_encoding_profile_set_description

    gst_encoding_profile_set_description (GstEncodingProfile * profile,
                                          const gchar * description)

Set description as the given description for the profile. A copy of description will be made internally.

Parameters:

`profile` –

a GstEncodingProfile

`description` ( [allow-none]) –

the description to set on the profile

#### GstPbutils.EncodingProfile.prototype.set_description

    function GstPbutils.EncodingProfile.prototype.set_description(description: String): {
        // javascript wrapper for 'gst_encoding_profile_set_description'
    }

Set description as the given description for the profile. A copy of description will be made internally.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`description` (String) –

the description to set on the profile

#### GstPbutils.EncodingProfile.set_description

    def GstPbutils.EncodingProfile.set_description (self, description):
        #python wrapper for 'gst_encoding_profile_set_description'

Set description as the given description for the profile. A copy of description will be made internally.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`description` (str) –

the description to set on the profile

#### gst_encoding_profile_set_element_properties

    gst_encoding_profile_set_element_properties (GstEncodingProfile * self,
                                                 GstStructure * element_properties)

This allows setting the muxing/encoding element properties.

Set properties generically

     [element-properties, boolean-prop=true, string-prop="hi"]

Mapping properties with well known element factories

    element-properties-map, map = {
         [openh264enc, gop-size=32, ],
         [x264enc, key-int-max=32, tune=zerolatency],
     }

Parameters:

`self` –

a GstEncodingProfile

`element_properties` ( [transfer: full]) –

A GstStructure defining the properties to be set to the element the profile represents.

Since : 1.20

#### GstPbutils.EncodingProfile.prototype.set_element_properties

    function GstPbutils.EncodingProfile.prototype.set_element_properties(element_properties: Gst.Structure): {
        // javascript wrapper for 'gst_encoding_profile_set_element_properties'
    }

This allows setting the muxing/encoding element properties.

Set properties generically

     [element-properties, boolean-prop=true, string-prop="hi"]

Mapping properties with well known element factories

    element-properties-map, map = {
         [openh264enc, gop-size=32, ],
         [x264enc, key-int-max=32, tune=zerolatency],
     }

Parameters:

`self` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`element_properties` (Gst.Structure) –

A Gst.Structure defining the properties to be set to the element the profile represents.

Since : 1.20

#### GstPbutils.EncodingProfile.set_element_properties

    def GstPbutils.EncodingProfile.set_element_properties (self, element_properties):
        #python wrapper for 'gst_encoding_profile_set_element_properties'

This allows setting the muxing/encoding element properties.

Set properties generically

     [element-properties, boolean-prop=true, string-prop="hi"]

Mapping properties with well known element factories

    element-properties-map, map = {
         [openh264enc, gop-size=32, ],
         [x264enc, key-int-max=32, tune=zerolatency],
     }

Parameters:

`self` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`element_properties` (Gst.Structure) –

A Gst.Structure defining the properties to be set to the element the profile represents.

Since : 1.20

#### gst_encoding_profile_set_enabled

    gst_encoding_profile_set_enabled (GstEncodingProfile * profile,
                                      gboolean enabled)

Set whether the profile should be used or not.

Parameters:

`profile` –

a GstEncodingProfile

`enabled` –

FALSE to disable profile, TRUE to enable it

Since : 1.6

#### GstPbutils.EncodingProfile.prototype.set_enabled

    function GstPbutils.EncodingProfile.prototype.set_enabled(enabled: Number): {
        // javascript wrapper for 'gst_encoding_profile_set_enabled'
    }

Set whether the profile should be used or not.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`enabled` (Number) –

false to disable profile, true to enable it

Since : 1.6

#### GstPbutils.EncodingProfile.set_enabled

    def GstPbutils.EncodingProfile.set_enabled (self, enabled):
        #python wrapper for 'gst_encoding_profile_set_enabled'

Set whether the profile should be used or not.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`enabled` (bool) –

False to disable profile, True to enable it

Since : 1.6

#### gst_encoding_profile_set_format

    gst_encoding_profile_set_format (GstEncodingProfile * profile,
                                     GstCaps * format)

Sets the media format used in the profile.

Parameters:

`profile` –

a GstEncodingProfile

`format` ( [transfer: none]) –

the media format to use in the profile.

#### GstPbutils.EncodingProfile.prototype.set_format

    function GstPbutils.EncodingProfile.prototype.set_format(format: Gst.Caps): {
        // javascript wrapper for 'gst_encoding_profile_set_format'
    }

Sets the media format used in the profile.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`format` (Gst.Caps) –

the media format to use in the profile.

#### GstPbutils.EncodingProfile.set_format

    def GstPbutils.EncodingProfile.set_format (self, format):
        #python wrapper for 'gst_encoding_profile_set_format'

Sets the media format used in the profile.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`format` (Gst.Caps) –

the media format to use in the profile.

#### gst_encoding_profile_set_name

    gst_encoding_profile_set_name (GstEncodingProfile * profile,
                                   const gchar * name)

Set name as the given name for the profile. A copy of name will be made internally.

Parameters:

`profile` –

a GstEncodingProfile

`name` ( [allow-none]) –

the name to set on the profile

#### GstPbutils.EncodingProfile.prototype.set_name

    function GstPbutils.EncodingProfile.prototype.set_name(name: String): {
        // javascript wrapper for 'gst_encoding_profile_set_name'
    }

Set name as the given name for the profile. A copy of name will be made internally.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`name` (String) –

the name to set on the profile

#### GstPbutils.EncodingProfile.set_name

    def GstPbutils.EncodingProfile.set_name (self, name):
        #python wrapper for 'gst_encoding_profile_set_name'

Set name as the given name for the profile. A copy of name will be made internally.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`name` (str) –

the name to set on the profile

#### gst_encoding_profile_set_presence

    gst_encoding_profile_set_presence (GstEncodingProfile * profile,
                                       guint presence)

Set the number of time the profile is used in its parent container profile. If 0, it is not a mandatory stream

Parameters:

`profile` –

a GstEncodingProfile

`presence` –

the number of time the profile can be used

#### GstPbutils.EncodingProfile.prototype.set_presence

    function GstPbutils.EncodingProfile.prototype.set_presence(presence: Number): {
        // javascript wrapper for 'gst_encoding_profile_set_presence'
    }

Set the number of time the profile is used in its parent container profile. If 0, it is not a mandatory stream

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`presence` (Number) –

the number of time the profile can be used

#### GstPbutils.EncodingProfile.set_presence

    def GstPbutils.EncodingProfile.set_presence (self, presence):
        #python wrapper for 'gst_encoding_profile_set_presence'

Set the number of time the profile is used in its parent container profile. If 0, it is not a mandatory stream

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`presence` (int) –

the number of time the profile can be used

#### gst_encoding_profile_set_preset

    gst_encoding_profile_set_preset (GstEncodingProfile * profile,
                                     const gchar * preset)

Sets the name of the GstElement that implements the GstPreset interface to use for the profile. This is the name that has been set when saving the preset.

Parameters:

`profile` –

a GstEncodingProfile

`preset` ( [nullable]) –

the element preset to use

#### GstPbutils.EncodingProfile.prototype.set_preset

    function GstPbutils.EncodingProfile.prototype.set_preset(preset: String): {
        // javascript wrapper for 'gst_encoding_profile_set_preset'
    }

Sets the name of the Gst.Element that implements the Gst.Preset interface to use for the profile. This is the name that has been set when saving the preset.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`preset` (String) –

the element preset to use

#### GstPbutils.EncodingProfile.set_preset

    def GstPbutils.EncodingProfile.set_preset (self, preset):
        #python wrapper for 'gst_encoding_profile_set_preset'

Sets the name of the Gst.Element that implements the Gst.Preset interface to use for the profile. This is the name that has been set when saving the preset.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`preset` (str) –

the element preset to use

#### gst_encoding_profile_set_preset_name

    gst_encoding_profile_set_preset_name (GstEncodingProfile * profile,
                                          const gchar * preset_name)

Sets the name of the GstPreset's factory to be used in the profile.

Parameters:

`profile` –

a GstEncodingProfile

`preset_name` ( [allow-none]) –

The name of the preset to use in this profile.

#### GstPbutils.EncodingProfile.prototype.set_preset_name

    function GstPbutils.EncodingProfile.prototype.set_preset_name(preset_name: String): {
        // javascript wrapper for 'gst_encoding_profile_set_preset_name'
    }

Sets the name of the Gst.Preset's factory to be used in the profile.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`preset_name` (String) –

The name of the preset to use in this profile.

#### GstPbutils.EncodingProfile.set_preset_name

    def GstPbutils.EncodingProfile.set_preset_name (self, preset_name):
        #python wrapper for 'gst_encoding_profile_set_preset_name'

Sets the name of the Gst.Preset's factory to be used in the profile.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`preset_name` (str) –

The name of the preset to use in this profile.

#### gst_encoding_profile_set_restriction

    gst_encoding_profile_set_restriction (GstEncodingProfile * profile,
                                          GstCaps * restriction)

Set the restriction GstCaps to apply before the encoder that will be used in the profile. See gst_encoding_profile_get_restriction for more about restrictions. Does not apply to GstEncodingContainerProfile.

Parameters:

`profile` –

a GstEncodingProfile

`restriction` ( [allow-none][transfer: full]) –

the restriction to apply

#### GstPbutils.EncodingProfile.prototype.set_restriction

    function GstPbutils.EncodingProfile.prototype.set_restriction(restriction: Gst.Caps): {
        // javascript wrapper for 'gst_encoding_profile_set_restriction'
    }

Set the restriction Gst.Caps to apply before the encoder that will be used in the profile. See GstPbutils.EncodingProfile.prototype.get_restriction for more about restrictions. Does not apply to GstPbutils.EncodingContainerProfile.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`restriction` (Gst.Caps) –

the restriction to apply

#### GstPbutils.EncodingProfile.set_restriction

    def GstPbutils.EncodingProfile.set_restriction (self, restriction):
        #python wrapper for 'gst_encoding_profile_set_restriction'

Set the restriction Gst.Caps to apply before the encoder that will be used in the profile. See GstPbutils.EncodingProfile.get_restriction for more about restrictions. Does not apply to GstPbutils.EncodingContainerProfile.

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`restriction` (Gst.Caps) –

the restriction to apply

#### gst_encoding_profile_set_single_segment

    gst_encoding_profile_set_single_segment (GstEncodingProfile * profile,
                                             gboolean single_segment)

If using a single segment, buffers will be retimestamped and segments will be eat so as to appear as one segment.

> NOTE: Single segment is not property supported when using encodebin:avoid-reencoding

Parameters:

`profile` –

a GstEncodingProfile

`single_segment` –

TRUE if the stream represented by profile should use a single segment before the encoder, FALSE otherwise.

Since : 1.18

#### GstPbutils.EncodingProfile.prototype.set_single_segment

    function GstPbutils.EncodingProfile.prototype.set_single_segment(single_segment: Number): {
        // javascript wrapper for 'gst_encoding_profile_set_single_segment'
    }

If using a single segment, buffers will be retimestamped and segments will be eat so as to appear as one segment.

> NOTE: Single segment is not property supported when using avoid-reencoding (not introspectable)

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`single_segment` (Number) –

true if the stream represented by profile should use a single segment before the encoder, false otherwise.

Since : 1.18

#### GstPbutils.EncodingProfile.set_single_segment

    def GstPbutils.EncodingProfile.set_single_segment (self, single_segment):
        #python wrapper for 'gst_encoding_profile_set_single_segment'

If using a single segment, buffers will be retimestamped and segments will be eat so as to appear as one segment.

> NOTE: Single segment is not property supported when using avoid-reencoding (not introspectable)

Parameters:

`profile` (GstPbutils.EncodingProfile) –

a GstPbutils.EncodingProfile

`single_segment` (bool) –

True if the stream represented by profile should use a single segment before the encoder, False otherwise.

Since : 1.18

### Functions

#### gst_encoding_profile_find

    GstEncodingProfile *
    gst_encoding_profile_find (const gchar * targetname,
                               const gchar * profilename,
                               const gchar * category)

Find the GstEncodingProfile with the specified name and category.

Parameters:

`targetname` ( [transfer: none]) –

The name of the target

`profilename` ( [transfer: none][allow-none]) –

The name of the profile, if NULL provided, it will default to the encoding profile called `default`.

`category` ( [transfer: none][allow-none]) –

The target category. Can be NULL

Returns ( [transfer: full]) –

The matching GstEncodingProfile or NULL.

#### GstPbutils.EncodingProfile.prototype.find

    function GstPbutils.EncodingProfile.prototype.find(targetname: String, profilename: String, category: String): {
        // javascript wrapper for 'gst_encoding_profile_find'
    }

Find the GstPbutils.EncodingProfile with the specified name and category.

Parameters:

`targetname` (String) –

The name of the target

`profilename` (String) –

The name of the profile, if null provided, it will default to the encoding profile called `default`.

`category` (String) –

The target category. Can be null

Returns (GstPbutils.EncodingProfile) –

The matching GstPbutils.EncodingProfile or null.

#### GstPbutils.EncodingProfile.find

    def GstPbutils.EncodingProfile.find (targetname, profilename, category):
        #python wrapper for 'gst_encoding_profile_find'

Find the GstPbutils.EncodingProfile with the specified name and category.

Parameters:

`targetname` (str) –

The name of the target

`profilename` (str) –

The name of the profile, if None provided, it will default to the encoding profile called `default`.

`category` (str) –

The target category. Can be None

Returns (GstPbutils.EncodingProfile) –

The matching GstPbutils.EncodingProfile or None.

#### gst_encoding_profile_from_discoverer

    GstEncodingProfile *
    gst_encoding_profile_from_discoverer (GstDiscovererInfo * info)

Creates a GstEncodingProfile matching the formats from the given GstDiscovererInfo. Streams other than audio or video (eg, subtitles), are currently ignored.

Parameters:

`info` ( [transfer: none]) –

The GstDiscovererInfo to read from

Returns ( [transfer: full]) –

The new GstEncodingProfile or NULL.

#### GstPbutils.EncodingProfile.prototype.from_discoverer

    function GstPbutils.EncodingProfile.prototype.from_discoverer(info: GstPbutils.DiscovererInfo): {
        // javascript wrapper for 'gst_encoding_profile_from_discoverer'
    }

Creates a GstPbutils.EncodingProfile matching the formats from the given GstPbutils.DiscovererInfo. Streams other than audio or video (eg, subtitles), are currently ignored.

Parameters:

`info` (GstPbutils.DiscovererInfo) –

The GstPbutils.DiscovererInfo to read from

Returns (GstPbutils.EncodingProfile) –

The new GstPbutils.EncodingProfile or null.

#### GstPbutils.EncodingProfile.from_discoverer

    def GstPbutils.EncodingProfile.from_discoverer (info):
        #python wrapper for 'gst_encoding_profile_from_discoverer'

Creates a GstPbutils.EncodingProfile matching the formats from the given GstPbutils.DiscovererInfo. Streams other than audio or video (eg, subtitles), are currently ignored.

Parameters:

`info` (GstPbutils.DiscovererInfo) –

The GstPbutils.DiscovererInfo to read from

Returns (GstPbutils.EncodingProfile) –

The new GstPbutils.EncodingProfile or None.

### Properties

#### element-properties

    “element-properties” GstStructure *

A GstStructure defining the properties to be set to the element the profile represents.

For example for `av1enc`:

    element-properties,row-mt=true, end-usage=vbr

Flags : Read / Write

#### element-properties

    “element-properties” Gst.Structure

A Gst.Structure defining the properties to be set to the element the profile represents.

For example for `av1enc`:

    element-properties,row-mt=true, end-usage=vbr

Flags : Read / Write

#### element_properties

    “self.props.element_properties” Gst.Structure

A Gst.Structure defining the properties to be set to the element the profile represents.

For example for `av1enc`:

    element-properties,row-mt=true, end-usage=vbr

Flags : Read / Write

#### restriction-caps

    “restriction-caps” GstCaps *

Flags : Read / Write

#### restriction-caps

    “restriction-caps” Gst.Caps

Flags : Read / Write

#### restriction_caps

    “self.props.restriction_caps” Gst.Caps

Flags : Read / Write

## GstEncodingVideoProfile

    GObject
        ╰──GstEncodingProfile
            ╰──GstEncodingVideoProfile

Variant of GstEncodingProfile for video streams, allows specifying the pass.

### Class structure

#### GstEncodingVideoProfileClass

### GstPbutils.EncodingVideoProfileClass

## GstPbutils.EncodingVideoProfile

    GObject.Object
        ╰──GstPbutils.EncodingProfile
            ╰──GstPbutils.EncodingVideoProfile

Variant of GstPbutils.EncodingProfile for video streams, allows specifying the pass.

## GstPbutils.EncodingVideoProfile

    GObject.Object
        ╰──GstPbutils.EncodingProfile
            ╰──GstPbutils.EncodingVideoProfile

Variant of GstPbutils.EncodingProfile for video streams, allows specifying the pass.

### Constructors

#### gst_encoding_video_profile_new

    GstEncodingVideoProfile *
    gst_encoding_video_profile_new (GstCaps * format,
                                    const gchar * preset,
                                    GstCaps * restriction,
                                    guint presence)

Creates a new GstEncodingVideoProfile

All provided allocatable arguments will be internally copied, so can be safely freed/unreferenced after calling this method.

If you wish to control the pass number (in case of multi-pass scenarios), please refer to the gst_encoding_video_profile_set_pass documentation.

If you wish to use/force a constant framerate please refer to the gst_encoding_video_profile_set_variableframerate documentation.

Parameters:

`format` ( [transfer: none]) –

the GstCaps

`preset` ( [allow-none]) –

the preset(s) to use on the encoder, can be NULL

`restriction` ( [allow-none]) –

the GstCaps used to restrict the input to the encoder, can be NULL. See gst_encoding_profile_get_restriction for more details.

`presence` –

the number of time this stream must be used. 0 means any number of times (including never)

Returns –

the newly created GstEncodingVideoProfile.

#### GstPbutils.EncodingVideoProfile.prototype.new

    function GstPbutils.EncodingVideoProfile.prototype.new(format: Gst.Caps, preset: String, restriction: Gst.Caps, presence: Number): {
        // javascript wrapper for 'gst_encoding_video_profile_new'
    }

Creates a new GstPbutils.EncodingVideoProfile

All provided allocatable arguments will be internally copied, so can be safely freed/unreferenced after calling this method.

If you wish to control the pass number (in case of multi-pass scenarios), please refer to the GstPbutils.EncodingVideoProfile.prototype.set_pass documentation.

If you wish to use/force a constant framerate please refer to the GstPbutils.EncodingVideoProfile.prototype.set_variableframerate documentation.

Parameters:

`format` (Gst.Caps) –

the Gst.Caps

`preset` (String) –

the preset(s) to use on the encoder, can be null

`restriction` (Gst.Caps) –

the Gst.Caps used to restrict the input to the encoder, can be NULL. See GstPbutils.EncodingProfile.prototype.get_restriction for more details.

`presence` (Number) –

the number of time this stream must be used. 0 means any number of times (including never)

Returns (GstPbutils.EncodingVideoProfile) –

the newly created GstPbutils.EncodingVideoProfile.

#### GstPbutils.EncodingVideoProfile.new

    def GstPbutils.EncodingVideoProfile.new (format, preset, restriction, presence):
        #python wrapper for 'gst_encoding_video_profile_new'

Creates a new GstPbutils.EncodingVideoProfile

All provided allocatable arguments will be internally copied, so can be safely freed/unreferenced after calling this method.

If you wish to control the pass number (in case of multi-pass scenarios), please refer to the GstPbutils.EncodingVideoProfile.set_pass documentation.

If you wish to use/force a constant framerate please refer to the GstPbutils.EncodingVideoProfile.set_variableframerate documentation.

Parameters:

`format` (Gst.Caps) –

the Gst.Caps

`preset` (str) –

the preset(s) to use on the encoder, can be None

`restriction` (Gst.Caps) –

the Gst.Caps used to restrict the input to the encoder, can be NULL. See GstPbutils.EncodingProfile.get_restriction for more details.

`presence` (int) –

the number of time this stream must be used. 0 means any number of times (including never)

Returns (GstPbutils.EncodingVideoProfile) –

the newly created GstPbutils.EncodingVideoProfile.

### Methods

#### gst_encoding_video_profile_get_pass

    guint
    gst_encoding_video_profile_get_pass (GstEncodingVideoProfile * prof)

Get the pass number if this is part of a multi-pass profile.

Parameters:

`prof` –

a GstEncodingVideoProfile

Returns –

The pass number. Starts at 1 for multi-pass. 0 if this is not a multi-pass profile

#### GstPbutils.EncodingVideoProfile.prototype.get_pass

    function GstPbutils.EncodingVideoProfile.prototype.get_pass(): {
        // javascript wrapper for 'gst_encoding_video_profile_get_pass'
    }

Get the pass number if this is part of a multi-pass profile.

Parameters:

`prof` (GstPbutils.EncodingVideoProfile) –

a GstPbutils.EncodingVideoProfile

Returns (Number) –

The pass number. Starts at 1 for multi-pass. 0 if this is not a multi-pass profile

#### GstPbutils.EncodingVideoProfile.get_pass

    def GstPbutils.EncodingVideoProfile.get_pass (self):
        #python wrapper for 'gst_encoding_video_profile_get_pass'

Get the pass number if this is part of a multi-pass profile.

Parameters:

`prof` (GstPbutils.EncodingVideoProfile) –

a GstPbutils.EncodingVideoProfile

Returns (int) –

The pass number. Starts at 1 for multi-pass. 0 if this is not a multi-pass profile

#### gst_encoding_video_profile_get_variableframerate

    gboolean
    gst_encoding_video_profile_get_variableframerate (GstEncodingVideoProfile * prof)

> NOTE: Fixed framerate won't be enforced when encodebin:avoid-reencoding is set.

Parameters:

`prof` –

a GstEncodingVideoProfile

Returns –

Whether non-constant video framerate is allowed for encoding.

#### GstPbutils.EncodingVideoProfile.prototype.get_variableframerate

    function GstPbutils.EncodingVideoProfile.prototype.get_variableframerate(): {
        // javascript wrapper for 'gst_encoding_video_profile_get_variableframerate'
    }

> NOTE: Fixed framerate won't be enforced when avoid-reencoding (not introspectable) is set.

Parameters:

`prof` (GstPbutils.EncodingVideoProfile) –

a GstPbutils.EncodingVideoProfile

Returns (Number) –

Whether non-constant video framerate is allowed for encoding.

#### GstPbutils.EncodingVideoProfile.get_variableframerate

    def GstPbutils.EncodingVideoProfile.get_variableframerate (self):
        #python wrapper for 'gst_encoding_video_profile_get_variableframerate'

> NOTE: Fixed framerate won't be enforced when avoid-reencoding (not introspectable) is set.

Parameters:

`prof` (GstPbutils.EncodingVideoProfile) –

a GstPbutils.EncodingVideoProfile

Returns (bool) –

Whether non-constant video framerate is allowed for encoding.

#### gst_encoding_video_profile_set_pass

    gst_encoding_video_profile_set_pass (GstEncodingVideoProfile * prof,
                                         guint pass)

Sets the pass number of this video profile. The first pass profile should have this value set to 1. If this video profile isn't part of a multi-pass profile, you may set it to 0 (the default value).

Parameters:

`prof` –

a GstEncodingVideoProfile

`pass` –

the pass number for this profile

#### GstPbutils.EncodingVideoProfile.prototype.set_pass

    function GstPbutils.EncodingVideoProfile.prototype.set_pass(pass: Number): {
        // javascript wrapper for 'gst_encoding_video_profile_set_pass'
    }

Sets the pass number of this video profile. The first pass profile should have this value set to 1. If this video profile isn't part of a multi-pass profile, you may set it to 0 (the default value).

Parameters:

`prof` (GstPbutils.EncodingVideoProfile) –

a GstPbutils.EncodingVideoProfile

`pass` (Number) –

the pass number for this profile

#### GstPbutils.EncodingVideoProfile.set_pass

    def GstPbutils.EncodingVideoProfile.set_pass (self, pass):
        #python wrapper for 'gst_encoding_video_profile_set_pass'

Sets the pass number of this video profile. The first pass profile should have this value set to 1. If this video profile isn't part of a multi-pass profile, you may set it to 0 (the default value).

Parameters:

`prof` (GstPbutils.EncodingVideoProfile) –

a GstPbutils.EncodingVideoProfile

`pass` (int) –

the pass number for this profile

#### gst_encoding_video_profile_set_variableframerate

    gst_encoding_video_profile_set_variableframerate (GstEncodingVideoProfile * prof,
                                                      gboolean variableframerate)

If set to TRUE, then the incoming stream will be allowed to have non-constant framerate. If set to FALSE (default value), then the incoming stream will be normalized by dropping/duplicating frames in order to produce a constance framerate.

Parameters:

`prof` –

a GstEncodingVideoProfile

`variableframerate` –

a boolean

#### GstPbutils.EncodingVideoProfile.prototype.set_variableframerate

    function GstPbutils.EncodingVideoProfile.prototype.set_variableframerate(variableframerate: Number): {
        // javascript wrapper for 'gst_encoding_video_profile_set_variableframerate'
    }

If set to true, then the incoming stream will be allowed to have non-constant framerate. If set to false (default value), then the incoming stream will be normalized by dropping/duplicating frames in order to produce a constance framerate.

Parameters:

`prof` (GstPbutils.EncodingVideoProfile) –

a GstPbutils.EncodingVideoProfile

`variableframerate` (Number) –

a boolean

#### GstPbutils.EncodingVideoProfile.set_variableframerate

    def GstPbutils.EncodingVideoProfile.set_variableframerate (self, variableframerate):
        #python wrapper for 'gst_encoding_video_profile_set_variableframerate'

If set to True, then the incoming stream will be allowed to have non-constant framerate. If set to False (default value), then the incoming stream will be normalized by dropping/duplicating frames in order to produce a constance framerate.

Parameters:

`prof` (GstPbutils.EncodingVideoProfile) –

a GstPbutils.EncodingVideoProfile

`variableframerate` (bool) –

a boolean

## Function Macros

### gst_encoding_profile_ref

    #define gst_encoding_profile_ref(profile) (g_object_ref ((GObject*) profile))

Increases the reference count of the profile.

Parameters:

`profile` –

a GstEncodingProfile

### gst_encoding_profile_unref

    #define gst_encoding_profile_unref(profile) (g_object_unref ((GObject*) profile))

Decreases the reference count of the profile, possibly freeing the profile.

Parameters:

`profile` –

a GstEncodingProfile

## Constants

### GST_TYPE_ENCODING_AUDIO_PROFILE

    #define GST_TYPE_ENCODING_AUDIO_PROFILE                 \
      (gst_encoding_audio_profile_get_type ())

### GST_TYPE_ENCODING_CONTAINER_PROFILE

    #define GST_TYPE_ENCODING_CONTAINER_PROFILE                     \
      (gst_encoding_container_profile_get_type ())

### GST_TYPE_ENCODING_PROFILE

    #define GST_TYPE_ENCODING_PROFILE                       \
      (gst_encoding_profile_get_type ())

### GST_TYPE_ENCODING_VIDEO_PROFILE

    #define GST_TYPE_ENCODING_VIDEO_PROFILE                 \
      (gst_encoding_video_profile_get_type ())

The results of the search are