Top |
Functions
Description
Provides codec-specific ulility functions such as functions to provide the codec profile and level in human-readable string form from header data.
Functions
gst_codec_utils_aac_get_sample_rate_from_index ()
guint
gst_codec_utils_aac_get_sample_rate_from_index
(guint sr_idx
);
Translates the sample rate index found in AAC headers to the actual sample rate.
gst_codec_utils_aac_get_index_from_sample_rate ()
gint
gst_codec_utils_aac_get_index_from_sample_rate
(guint rate
);
Translates the sample rate to the index corresponding to it in AAC spec.
gst_codec_utils_aac_get_profile ()
const gchar * gst_codec_utils_aac_get_profile (const guint8 *audio_config
,guint len
);
Returns the profile of the given AAC stream as a string. The profile is
determined using the AudioObjectType field which is in the first 5 bits of
audio_config
.
HE-AAC support has not yet been implemented.
gst_codec_utils_aac_get_level ()
const gchar * gst_codec_utils_aac_get_level (const guint8 *audio_config
,guint len
);
Determines the level of a stream as defined in ISO/IEC 14496-3. For AAC LC streams, the constraints from the AAC audio profile are applied. For AAC Main, LTP, SSR and others, the Main profile is used.
The audio_config
parameter follows the following format, starting from the
most significant bit of the first byte:
Bit 0:4 contains the AudioObjectType
Bit 5:8 contains the sample frequency index (if this is 0xf, then the next 24 bits define the actual sample frequency, and subsequent fields are appropriately shifted).
Bit 9:12 contains the channel configuration
HE-AAC support has not yet been implemented.
gst_codec_utils_aac_get_channels ()
guint gst_codec_utils_aac_get_channels (const guint8 *audio_config
,guint len
);
Returns the channels of the given AAC stream.
gst_codec_utils_aac_get_sample_rate ()
guint gst_codec_utils_aac_get_sample_rate (const guint8 *audio_config
,guint len
);
Translates the sample rate index found in AAC headers to the actual sample rate.
gst_codec_utils_aac_caps_set_level_and_profile ()
gboolean gst_codec_utils_aac_caps_set_level_and_profile (GstCaps *caps
,const guint8 *audio_config
,guint len
);
Sets the level and profile on caps
if it can be determined from
audio_config
. See gst_codec_utils_aac_get_level()
and
gst_codec_utils_aac_get_profile()
for more details on the parameters.
caps
must be audio/mpeg caps with an "mpegversion" field of either 2 or 4.
If mpegversion is 4, the "base-profile" field is also set in caps
.
Parameters
caps |
the GstCaps to which level and profile fields are to be added |
|
audio_config |
a pointer to the AudioSpecificConfig as specified in the Elementary Stream Descriptor (esds) in ISO/IEC 14496-1. (See below for more details). |
[array length=len] |
len |
Length of |
gst_codec_utils_h264_get_profile ()
const gchar * gst_codec_utils_h264_get_profile (const guint8 *sps
,guint len
);
Converts the profile indication (profile_idc) in the stream's sequence parameter set into a string. The SPS is expected to have the following format, as defined in the H.264 specification. The SPS is viewed as a bitstream here, with bit 0 being the most significant bit of the first byte.
Bit 0:7 - Profile indication
Bit 8 - constraint_set0_flag
Bit 9 - constraint_set1_flag
Bit 10 - constraint_set2_flag
Bit 11 - constraint_set3_flag
Bit 12 - constraint_set3_flag
Bit 13:15 - Reserved
Bit 16:24 - Level indication
gst_codec_utils_h264_get_level ()
const gchar * gst_codec_utils_h264_get_level (const guint8 *sps
,guint len
);
Converts the level indication (level_idc) in the stream's
sequence parameter set into a string. The SPS is expected to have the
same format as for gst_codec_utils_h264_get_profile()
.
gst_codec_utils_h264_caps_set_level_and_profile ()
gboolean gst_codec_utils_h264_caps_set_level_and_profile (GstCaps *caps
,const guint8 *sps
,guint len
);
Sets the level and profile in caps
if it can be determined from sps
. See
gst_codec_utils_h264_get_level()
and gst_codec_utils_h264_get_profile()
for more details on the parameters.
Parameters
caps |
the GstCaps to which the level and profile are to be added |
|
sps |
Pointer to the sequence parameter set for the stream. |
[array length=len] |
len |
Length of the data available in |
gst_codec_utils_h264_get_level_idc ()
guint8
gst_codec_utils_h264_get_level_idc (const gchar *level
);
Transform a level string from the caps into the level_idc
gst_codec_utils_h265_get_profile ()
const gchar * gst_codec_utils_h265_get_profile (const guint8 *profile_tier_level
,guint len
);
Converts the profile indication (general_profile_idc) in the stream's profile_level_tier structure into a string. The profile_tier_level is expected to have the following format, as defined in the H.265 specification. The profile_tier_level is viewed as a bitstream here, with bit 0 being the most significant bit of the first byte.
Bit 0:1 - general_profile_space
Bit 2 - general_tier_flag
Bit 3:7 - general_profile_idc
Bit 8:39 - gernal_profile_compatibility_flags
Bit 40 - general_progressive_source_flag
Bit 41 - general_interlaced_source_flag
Bit 42 - general_non_packed_constraint_flag
Bit 43 - general_frame_only_constraint_flag
Bit 44:87 - general_reserved_zero_44bits
Bit 88:95 - general_level_idc
gst_codec_utils_h265_get_tier ()
const gchar * gst_codec_utils_h265_get_tier (const guint8 *profile_tier_level
,guint len
);
Converts the tier indication (general_tier_flag) in the stream's
profile_tier_level structure into a string. The profile_tier_level
is expected to have the same format as for gst_codec_utils_h264_get_profile()
.
gst_codec_utils_h265_get_level ()
const gchar * gst_codec_utils_h265_get_level (const guint8 *profile_tier_level
,guint len
);
Converts the level indication (general_level_idc) in the stream's
profile_tier_level structure into a string. The profiel_tier_level is
expected to have the same format as for gst_codec_utils_h264_get_profile()
.
gst_codec_utils_h265_get_level_idc ()
guint8
gst_codec_utils_h265_get_level_idc (const gchar *level
);
Transform a level string from the caps into the level_idc
gst_codec_utils_h265_caps_set_level_tier_and_profile ()
gboolean gst_codec_utils_h265_caps_set_level_tier_and_profile (GstCaps *caps
,const guint8 *profile_tier_level
,guint len
);
Sets the level, tier and profile in caps
if it can be determined from
profile_tier_level
. See gst_codec_utils_h265_get_level()
,
gst_codec_utils_h265_get_tier()
and gst_codec_utils_h265_get_profile()
for more details on the parameters.
Parameters
caps |
the GstCaps to which the level, tier and profile are to be added |
|
profile_tier_level |
Pointer to the profile_tier_level struct. |
[array length=len] |
len |
Length of the data available in |
gst_codec_utils_mpeg4video_get_profile ()
const gchar * gst_codec_utils_mpeg4video_get_profile (const guint8 *vis_obj_seq
,guint len
);
Converts the profile indication in the stream's visual object sequence into
a string. vis_obj_seq
is expected to be the data following the visual
object sequence start code. Only the first byte
(profile_and_level_indication) is used.
gst_codec_utils_mpeg4video_get_level ()
const gchar * gst_codec_utils_mpeg4video_get_level (const guint8 *vis_obj_seq
,guint len
);
Converts the level indication in the stream's visual object sequence into
a string. vis_obj_seq
is expected to be the data following the visual
object sequence start code. Only the first byte
(profile_and_level_indication) is used.
gst_codec_utils_mpeg4video_caps_set_level_and_profile ()
gboolean gst_codec_utils_mpeg4video_caps_set_level_and_profile (GstCaps *caps
,const guint8 *vis_obj_seq
,guint len
);
Sets the level and profile in caps
if it can be determined from
vis_obj_seq
. See gst_codec_utils_mpeg4video_get_level()
and
gst_codec_utils_mpeg4video_get_profile()
for more details on the
parameters.
Parameters
caps |
the GstCaps to which the level and profile are to be added |
|
vis_obj_seq |
Pointer to the visual object sequence for the stream. |
[array length=len] |
len |
Length of the data available in |
gst_codec_utils_opus_create_caps ()
GstCaps * gst_codec_utils_opus_create_caps (guint32 rate
,guint8 channels
,guint8 channel_mapping_family
,guint8 stream_count
,guint8 coupled_count
,const guint8 *channel_mapping
);
Creates Opus caps from the given parameters.
Parameters
rate |
the sample rate |
|
channels |
the number of channels |
|
channel_mapping_family |
the channel mapping family |
|
stream_count |
the number of independent streams |
|
coupled_count |
the number of stereo streams |
|
channel_mapping |
the mapping between the streams. |
[allow-none][array] |
Since: 1.8
gst_codec_utils_opus_create_caps_from_header ()
GstCaps * gst_codec_utils_opus_create_caps_from_header (GstBuffer *header
,GstBuffer *comments
);
Creates Opus caps from the given OpusHead header
and comment header
comments
.
Since: 1.8
gst_codec_utils_opus_parse_caps ()
gboolean gst_codec_utils_opus_parse_caps (GstCaps *caps
,guint32 *rate
,guint8 *channels
,guint8 *channel_mapping_family
,guint8 *stream_count
,guint8 *coupled_count
,guint8 channel_mapping[256]
);
Parses Opus caps and fills the different fields with defaults if possible.
Parameters
caps |
the GstCaps to parse the data from |
|
rate |
the sample rate. |
[out] |
channels |
the number of channels. |
[out] |
channel_mapping_family |
the channel mapping family. |
[out] |
stream_count |
the number of independent streams. |
[out] |
coupled_count |
the number of stereo streams. |
[out] |
channel_mapping |
the mapping between the streams. |
[out][array] |
Since: 1.8
gst_codec_utils_opus_create_header ()
GstBuffer * gst_codec_utils_opus_create_header (guint32 rate
,guint8 channels
,guint8 channel_mapping_family
,guint8 stream_count
,guint8 coupled_count
,const guint8 *channel_mapping
,guint16 pre_skip
,gint16 output_gain
);
Creates OpusHead header from the given parameters.
Parameters
rate |
the sample rate |
|
channels |
the number of channels |
|
channel_mapping_family |
the channel mapping family |
|
stream_count |
the number of independent streams |
|
coupled_count |
the number of stereo streams |
|
channel_mapping |
the mapping between the streams. |
[allow-none][array] |
pre_skip |
Pre-skip in 48kHz samples or 0 |
|
output_gain |
Output gain or 0 |
Since: 1.8
gst_codec_utils_opus_parse_header ()
gboolean gst_codec_utils_opus_parse_header (GstBuffer *header
,guint32 *rate
,guint8 *channels
,guint8 *channel_mapping_family
,guint8 *stream_count
,guint8 *coupled_count
,guint8 channel_mapping[256]
,guint16 *pre_skip
,gint16 *output_gain
);
Parses the OpusHead header.
Parameters
header |
the OpusHead GstBuffer |
|
rate |
the sample rate. |
[out] |
channels |
the number of channels. |
[out] |
channel_mapping_family |
the channel mapping family. |
[out] |
stream_count |
the number of independent streams. |
[out] |
coupled_count |
the number of stereo streams. |
[out] |
channel_mapping |
the mapping between the streams. |
[out][array] |
pre_skip |
Pre-skip in 48kHz samples or 0. |
[out] |
output_gain |
Output gain or 0. |
[out] |
Since: 1.8