Top |
GObject ╰── GInitiallyUnowned ╰── GstObject ╰── GstElement ╰── GstRTPBasePayload ╰── GstRTPBaseAudioPayload
Provides a base class for audio RTP payloaders for frame or sample based audio codecs (constant bitrate)
This class derives from GstRTPBasePayload. It can be used for payloading audio codecs. It will only work with constant bitrate codecs. It supports both frame based and sample based codecs. It takes care of packing up the audio data into RTP packets and filling up the headers accordingly. The payloading is done based on the maximum MTU (mtu) and the maximum time per packet (max-ptime). The general idea is to divide large data buffers into smaller RTP packets. The RTP packet size is the minimum of either the MTU, max-ptime (if set) or available data. The RTP packet size is always larger or equal to min-ptime (if set). If min-ptime is not set, any residual data is sent in a last RTP packet. In the case of frame based codecs, the resulting RTP packets always contain full frames.
To use this base class, your child element needs to call either
gst_rtp_base_audio_payload_set_frame_based()
or
gst_rtp_base_audio_payload_set_sample_based()
. This is usually done in the
element's _init()
function. Then, the child element must call either
gst_rtp_base_audio_payload_set_frame_options()
,
gst_rtp_base_audio_payload_set_sample_options()
or
gst_rtp_base_audio_payload_set_samplebits_options. Since
GstRTPBaseAudioPayload derives from GstRTPBasePayload, the child element
must set any variables or call/override any functions required by that base
class. The child element does not need to override any other functions
specific to GstRTPBaseAudioPayload.
void
gst_rtp_base_audio_payload_set_frame_based
(GstRTPBaseAudioPayload *rtpbaseaudiopayload
);
Tells GstRTPBaseAudioPayload that the child element is for a frame based audio codec
void gst_rtp_base_audio_payload_set_frame_options (GstRTPBaseAudioPayload *rtpbaseaudiopayload
,gint frame_duration
,gint frame_size
);
Sets the options for frame based audio codecs.
void
gst_rtp_base_audio_payload_set_sample_based
(GstRTPBaseAudioPayload *rtpbaseaudiopayload
);
Tells GstRTPBaseAudioPayload that the child element is for a sample based audio codec
void gst_rtp_base_audio_payload_set_sample_options (GstRTPBaseAudioPayload *rtpbaseaudiopayload
,gint sample_size
);
Sets the options for sample based audio codecs.
GstAdapter *
gst_rtp_base_audio_payload_get_adapter
(GstRTPBaseAudioPayload *rtpbaseaudiopayload
);
Gets the internal adapter used by the depayloader.
GstFlowReturn gst_rtp_base_audio_payload_push (GstRTPBaseAudioPayload *baseaudiopayload
,const guint8 *data
,guint payload_len
,GstClockTime timestamp
);
Create an RTP buffer and store payload_len
bytes of data
as the
payload. Set the timestamp on the new buffer to timestamp
before pushing
the buffer downstream.
GstFlowReturn gst_rtp_base_audio_payload_flush (GstRTPBaseAudioPayload *baseaudiopayload
,guint payload_len
,GstClockTime timestamp
);
Create an RTP buffer and store payload_len
bytes of the adapter as the
payload. Set the timestamp on the new buffer to timestamp
before pushing
the buffer downstream.
If payload_len
is -1, all pending bytes will be flushed. If timestamp
is
-1, the timestamp will be calculated automatically.
void gst_rtp_base_audio_payload_set_samplebits_options (GstRTPBaseAudioPayload *rtpbaseaudiopayload
,gint sample_size
);
Sets the options for sample based audio codecs.
“buffer-list”
property“buffer-list” gboolean
Use Buffer Lists.
Flags: Read / Write
Default value: FALSE