Commit a9f91660 authored by Tim-Philipp Müller's avatar Tim-Philipp Müller

rtpopusdepay: minor perf improvements

Use the ::process_rtp_packet() vfunc to avoid mapping the
RTP buffer twice.

gst_rtp_buffer_get_payload_buffer() returns a new sub-buffer
which will always be writable, so no need to make it writable.
parent f9a740b3
......@@ -52,7 +52,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
);
static GstBuffer *gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload,
GstBuffer * buf);
GstRTPBuffer * rtp_buffer);
static gboolean gst_rtp_opus_depay_setcaps (GstRTPBaseDepayload * depayload,
GstCaps * caps);
......@@ -77,7 +77,7 @@ gst_rtp_opus_depay_class_init (GstRTPOpusDepayClass * klass)
"Extracts Opus audio from RTP packets",
"Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>");
gstbasertpdepayload_class->process = gst_rtp_opus_depay_process;
gstbasertpdepayload_class->process_rtp_packet = gst_rtp_opus_depay_process;
gstbasertpdepayload_class->set_caps = gst_rtp_opus_depay_setcaps;
GST_DEBUG_CATEGORY_INIT (rtpopusdepay_debug, "rtpopusdepay", 0,
......@@ -140,16 +140,13 @@ gst_rtp_opus_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
}
static GstBuffer *
gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload,
GstRTPBuffer * rtp_buffer)
{
GstBuffer *outbuf;
GstRTPBuffer rtpbuf = { NULL, };
gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuf);
outbuf = gst_rtp_buffer_get_payload_buffer (&rtpbuf);
gst_rtp_buffer_unmap (&rtpbuf);
outbuf = gst_rtp_buffer_get_payload_buffer (rtp_buffer);
outbuf = gst_buffer_make_writable (outbuf);
gst_rtp_drop_non_audio_meta (depayload, outbuf);
return outbuf;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment