summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2016-02-17 15:20:47 +0000
committerTim-Philipp Müller <tim@centricular.com>2016-02-25 22:56:38 +0000
commita50e4bcadffe4b815d0754f68e240a3aa20556eb (patch)
tree28da79544d0b56677a2f6db21b8bc0b7290948d0
parent35e00becfe63f2d726e66f92145cbf6a2f3cae87 (diff)
opus: remove Opus RTP elements, they have moved to -good
https://bugzilla.gnome.org/show_bug.cgi?id=756282
-rw-r--r--docs/plugins/gst-plugins-bad-plugins-docs.sgml2
-rw-r--r--docs/plugins/gst-plugins-bad-plugins-sections.txt26
-rw-r--r--docs/plugins/gst-plugins-bad-plugins.hierarchy3
-rw-r--r--docs/plugins/inspect/plugin-opus.xml48
-rw-r--r--ext/opus/Makefile.am6
-rw-r--r--ext/opus/gstopus.c11
-rw-r--r--ext/opus/gstrtpopusdepay.c175
-rw-r--r--ext/opus/gstrtpopusdepay.h57
-rw-r--r--ext/opus/gstrtpopuspay.c278
-rw-r--r--ext/opus/gstrtpopuspay.h58
10 files changed, 6 insertions, 658 deletions
diff --git a/docs/plugins/gst-plugins-bad-plugins-docs.sgml b/docs/plugins/gst-plugins-bad-plugins-docs.sgml
index 4d7fc353a..57dac6418 100644
--- a/docs/plugins/gst-plugins-bad-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-bad-plugins-docs.sgml
@@ -76,8 +76,6 @@
<xi:include href="xml/element-opusdec.xml" />
<xi:include href="xml/element-opusenc.xml" />
<xi:include href="xml/element-opusparse.xml" />
- <xi:include href="xml/element-rtpopuspay.xml" />
- <xi:include href="xml/element-rtpopusdepay.xml" />
<xi:include href="xml/element-pcapparse.xml" />
<xi:include href="xml/element-pinch.xml" />
<xi:include href="xml/element-pyramidsegment.xml" />
diff --git a/docs/plugins/gst-plugins-bad-plugins-sections.txt b/docs/plugins/gst-plugins-bad-plugins-sections.txt
index 17f74a612..3b47c167f 100644
--- a/docs/plugins/gst-plugins-bad-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-bad-plugins-sections.txt
@@ -1141,32 +1141,6 @@ GST_IS_OPUS_PARSE
GST_IS_OPUS_PARSE_CLASS
</SECTION>
-<FILE>element-rtpopusdepay</FILE>
-<TITLE>rtpopusdepay</TITLE>
-GstRTPOpusDepay
-<SUBSECTION Standard>
-GstRTPOpusDepayClass
-gst_rtp_opus_depay_get_type
-GST_TYPE_RTP_OPUS_DEPAY
-GST_RTP_OPUS_DEPAY
-GST_RTP_OPUS_DEPAY_CLASS
-GST_IS_RTP_OPUS_DEPAY
-GST_IS_RTP_OPUS_DEPAY_CLASS
-</SECTION>
-
-<FILE>element-rtpopuspay</FILE>
-<TITLE>rtpopuspay</TITLE>
-GstRtpOPUSPay
-<SUBSECTION Standard>
-GstRtpOPUSPayClass
-gst_rtp_opus_pay_get_type
-GST_TYPE_RTP_OPUS_PAY
-GST_RTP_OPUS_PAY
-GST_RTP_OPUS_PAY_CLASS
-GST_IS_RTP_OPUS_PAY
-GST_IS_RTP_OPUS_PAY_CLASS
-</SECTION>
-
<SECTION>
<FILE>element-pcapparse</FILE>
<TITLE>pcapparse</TITLE>
diff --git a/docs/plugins/gst-plugins-bad-plugins.hierarchy b/docs/plugins/gst-plugins-bad-plugins.hierarchy
index c43c7b792..2350f52a5 100644
--- a/docs/plugins/gst-plugins-bad-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-bad-plugins.hierarchy
@@ -303,11 +303,8 @@ GObject
GstNetSim
GstPcapParse
GstPitch
- GstRTPBaseDepayload
- GstRTPOpusDepay
GstRTPBasePayload
GstRtpAsfPay
- GstRtpOPUSPay
GstRawParse
GstAudioParse
GstVideoParse
diff --git a/docs/plugins/inspect/plugin-opus.xml b/docs/plugins/inspect/plugin-opus.xml
index 36542b430..7f9053a87 100644
--- a/docs/plugins/inspect/plugin-opus.xml
+++ b/docs/plugins/inspect/plugin-opus.xml
@@ -3,10 +3,10 @@
<description>OPUS plugin library</description>
<filename>../../ext/opus/.libs/libgstopus.so</filename>
<basename>libgstopus.so</basename>
- <version>1.7.2</version>
+ <version>1.7.2.1</version>
<license>LGPL</license>
<source>gst-plugins-bad</source>
- <package>GStreamer Bad Plug-ins source release</package>
+ <package>GStreamer Bad Plug-ins git</package>
<origin>Unknown package origin</origin>
<elements>
<element>
@@ -68,49 +68,7 @@
<name>src</name>
<direction>source</direction>
<presence>always</presence>
- <details>audio/x-opus, framed=(boolean)true</details>
- </caps>
- </pads>
- </element>
- <element>
- <name>rtpopusdepay</name>
- <longname>RTP Opus packet depayloader</longname>
- <class>Codec/Depayloader/Network/RTP</class>
- <description>Extracts Opus audio from RTP packets</description>
- <author>Danilo Cesar Lemes de Paula &lt;danilo.cesar@collabora.co.uk&gt;</author>
- <pads>
- <caps>
- <name>sink</name>
- <direction>sink</direction>
- <presence>always</presence>
- <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)48000, encoding-name=(string){ OPUS, X-GST-OPUS-DRAFT-SPITTKA-00 }</details>
- </caps>
- <caps>
- <name>src</name>
- <direction>source</direction>
- <presence>always</presence>
- <details>audio/x-opus, channel-mapping-family=(int)0</details>
- </caps>
- </pads>
- </element>
- <element>
- <name>rtpopuspay</name>
- <longname>RTP Opus payloader</longname>
- <class>Codec/Payloader/Network/RTP</class>
- <description>Puts Opus audio in RTP packets</description>
- <author>Danilo Cesar Lemes de Paula &lt;danilo.cesar@collabora.co.uk&gt;</author>
- <pads>
- <caps>
- <name>sink</name>
- <direction>sink</direction>
- <presence>always</presence>
- <details>audio/x-opus, channels=(int)[ 1, 2 ], channel-mapping-family=(int)0</details>
- </caps>
- <caps>
- <name>src</name>
- <direction>source</direction>
- <presence>always</presence>
- <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)48000, encoding-params=(string)2, encoding-name=(string){ OPUS, X-GST-OPUS-DRAFT-SPITTKA-00 }</details>
+ <details>audio/x-opus</details>
</caps>
</pads>
</element>
diff --git a/ext/opus/Makefile.am b/ext/opus/Makefile.am
index c64369252..aa0d4388e 100644
--- a/ext/opus/Makefile.am
+++ b/ext/opus/Makefile.am
@@ -1,6 +1,6 @@
plugin_LTLIBRARIES = libgstopus.la
-libgstopus_la_SOURCES = gstopus.c gstopusdec.c gstopusenc.c gstopusparse.c gstopusheader.c gstopuscommon.c gstrtpopuspay.c gstrtpopusdepay.c
+libgstopus_la_SOURCES = gstopus.c gstopusdec.c gstopusenc.c gstopusparse.c gstopusheader.c gstopuscommon.c
libgstopus_la_CFLAGS = \
-DGST_USE_UNSTABLE_API \
$(GST_PLUGINS_BAD_CFLAGS) \
@@ -9,7 +9,7 @@ libgstopus_la_CFLAGS = \
$(OPUS_CFLAGS)
libgstopus_la_LIBADD = \
$(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
- -lgsttag-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) \
+ -lgsttag-$(GST_API_VERSION) \
-lgstpbutils-$(GST_API_VERSION) \
$(GST_BASE_LIBS) \
$(GST_LIBS) \
@@ -17,4 +17,4 @@ libgstopus_la_LIBADD = \
libgstopus_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM)
libgstopus_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-noinst_HEADERS = gstopusenc.h gstopusdec.h gstopusparse.h gstopusheader.h gstopuscommon.h gstrtpopuspay.h gstrtpopusdepay.h
+noinst_HEADERS = gstopusenc.h gstopusdec.h gstopusparse.h gstopusheader.h gstopuscommon.h
diff --git a/ext/opus/gstopus.c b/ext/opus/gstopus.c
index a3427b284..63d50ef3e 100644
--- a/ext/opus/gstopus.c
+++ b/ext/opus/gstopus.c
@@ -25,9 +25,6 @@
#include "gstopusenc.h"
#include "gstopusparse.h"
-#include "gstrtpopuspay.h"
-#include "gstrtpopusdepay.h"
-
#include <gst/tag/tag.h>
static gboolean
@@ -46,14 +43,6 @@ plugin_init (GstPlugin * plugin)
GST_TYPE_OPUS_PARSE))
return FALSE;
- if (!gst_element_register (plugin, "rtpopusdepay", GST_RANK_SECONDARY,
- GST_TYPE_RTP_OPUS_DEPAY))
- return FALSE;
-
- if (!gst_element_register (plugin, "rtpopuspay", GST_RANK_SECONDARY,
- GST_TYPE_RTP_OPUS_PAY))
- return FALSE;
-
gst_tag_register_musicbrainz_tags ();
return TRUE;
diff --git a/ext/opus/gstrtpopusdepay.c b/ext/opus/gstrtpopusdepay.c
deleted file mode 100644
index 8152cd57f..000000000
--- a/ext/opus/gstrtpopusdepay.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Opus Depayloader Gst Element
- *
- * @author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <string.h>
-#include <stdlib.h>
-#include <gst/rtp/gstrtpbuffer.h>
-#include <gst/audio/audio.h>
-#include "gstrtpopusdepay.h"
-
-GST_DEBUG_CATEGORY_STATIC (rtpopusdepay_debug);
-#define GST_CAT_DEFAULT (rtpopusdepay_debug)
-
-static GstStaticPadTemplate gst_rtp_opus_depay_sink_template =
-GST_STATIC_PAD_TEMPLATE ("sink",
- GST_PAD_SINK,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("application/x-rtp, "
- "media = (string) \"audio\", "
- "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ","
- "clock-rate = (int) 48000, "
- "encoding-name = (string) { \"OPUS\", \"X-GST-OPUS-DRAFT-SPITTKA-00\" }")
- );
-
-static GstStaticPadTemplate gst_rtp_opus_depay_src_template =
-GST_STATIC_PAD_TEMPLATE ("src",
- GST_PAD_SRC,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("audio/x-opus, channel-mapping-family = (int) 0")
- );
-
-static GstBuffer *gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload,
- GstBuffer * buf);
-static gboolean gst_rtp_opus_depay_setcaps (GstRTPBaseDepayload * depayload,
- GstCaps * caps);
-
-G_DEFINE_TYPE (GstRTPOpusDepay, gst_rtp_opus_depay,
- GST_TYPE_RTP_BASE_DEPAYLOAD);
-
-static void
-gst_rtp_opus_depay_class_init (GstRTPOpusDepayClass * klass)
-{
- GstRTPBaseDepayloadClass *gstbasertpdepayload_class;
- GstElementClass *element_class;
-
- element_class = GST_ELEMENT_CLASS (klass);
- gstbasertpdepayload_class = (GstRTPBaseDepayloadClass *) klass;
-
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_rtp_opus_depay_src_template));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_rtp_opus_depay_sink_template));
- gst_element_class_set_static_metadata (element_class,
- "RTP Opus packet depayloader", "Codec/Depayloader/Network/RTP",
- "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->set_caps = gst_rtp_opus_depay_setcaps;
-
- GST_DEBUG_CATEGORY_INIT (rtpopusdepay_debug, "rtpopusdepay", 0,
- "Opus RTP Depayloader");
-}
-
-static void
-gst_rtp_opus_depay_init (GstRTPOpusDepay * rtpopusdepay)
-{
-
-}
-
-static gboolean
-gst_rtp_opus_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
-{
- GstCaps *srccaps;
- GstStructure *s;
- gboolean ret;
- const gchar *sprop_stereo, *sprop_maxcapturerate;
-
- srccaps =
- gst_caps_new_simple ("audio/x-opus", "channel-mapping-family", G_TYPE_INT,
- 0, NULL);
-
- s = gst_caps_get_structure (caps, 0);
- if ((sprop_stereo = gst_structure_get_string (s, "sprop-stereo"))) {
- if (strcmp (sprop_stereo, "0") == 0)
- gst_caps_set_simple (srccaps, "channels", G_TYPE_INT, 1, NULL);
- else if (strcmp (sprop_stereo, "1") == 0)
- gst_caps_set_simple (srccaps, "channels", G_TYPE_INT, 2, NULL);
- else
- GST_WARNING_OBJECT (depayload, "Unknown sprop-stereo value '%s'",
- sprop_stereo);
- }
-
- if ((sprop_maxcapturerate =
- gst_structure_get_string (s, "sprop-maxcapturerate"))) {
- gulong rate;
- gchar *tailptr;
-
- rate = strtoul (sprop_maxcapturerate, &tailptr, 10);
- if (rate > INT_MAX || *tailptr != '\0') {
- GST_WARNING_OBJECT (depayload,
- "Failed to parse sprop-maxcapturerate value '%s'",
- sprop_maxcapturerate);
- } else {
- gst_caps_set_simple (srccaps, "rate", G_TYPE_INT, rate, NULL);
- }
- }
-
- ret = gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (depayload), srccaps);
-
- GST_DEBUG_OBJECT (depayload,
- "set caps on source: %" GST_PTR_FORMAT " (ret=%d)", srccaps, ret);
- gst_caps_unref (srccaps);
-
- depayload->clock_rate = 48000;
-
- return ret;
-}
-
-static gboolean
-foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
-{
- GstRTPOpusDepay *depay = user_data;
- const GstMetaInfo *info = (*meta)->info;
- const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
-
- if (!tags || (g_strv_length ((gchar **) tags) == 1
- && gst_meta_api_type_has_tag (info->api,
- g_quark_from_string (GST_META_TAG_AUDIO_STR)))) {
- GST_DEBUG_OBJECT (depay, "keeping metadata %s", g_type_name (info->api));
- } else {
- GST_DEBUG_OBJECT (depay, "dropping metadata %s", g_type_name (info->api));
- *meta = NULL;
- }
-
- return TRUE;
-}
-
-static GstBuffer *
-gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
-{
- 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_buffer_make_writable (outbuf);
- /* Filter away all metas that are not sensible to copy */
- gst_buffer_foreach_meta (outbuf, foreach_metadata, depayload);
-
- return outbuf;
-}
diff --git a/ext/opus/gstrtpopusdepay.h b/ext/opus/gstrtpopusdepay.h
deleted file mode 100644
index 7890eb19d..000000000
--- a/ext/opus/gstrtpopusdepay.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Opus Depayloader Gst Element
- *
- * @author: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef __GST_RTP_OPUS_DEPAY_H__
-#define __GST_RTP_OPUS_DEPAY_H__
-
-#include <gst/gst.h>
-#include <gst/rtp/gstrtpbasedepayload.h>
-
-G_BEGIN_DECLS typedef struct _GstRTPOpusDepay GstRTPOpusDepay;
-typedef struct _GstRTPOpusDepayClass GstRTPOpusDepayClass;
-
-#define GST_TYPE_RTP_OPUS_DEPAY \
- (gst_rtp_opus_depay_get_type())
-#define GST_RTP_OPUS_DEPAY(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_OPUS_DEPAY,GstRTPOpusDepay))
-#define GST_RTP_OPUS_DEPAY_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_OPUS_DEPAY,GstRTPOpusDepayClass))
-#define GST_IS_RTP_OPUS_DEPAY(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_OPUS_DEPAY))
-#define GST_IS_RTP_OPUS_DEPAY_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_OPUS_DEPAY))
-
-
-struct _GstRTPOpusDepay
-{
- GstRTPBaseDepayload depayload;
-
-};
-
-struct _GstRTPOpusDepayClass
-{
- GstRTPBaseDepayloadClass parent_class;
-};
-
-GType gst_rtp_opus_depay_get_type (void);
-
-G_END_DECLS
-#endif /* __GST_RTP_OPUS_DEPAY_H__ */
diff --git a/ext/opus/gstrtpopuspay.c b/ext/opus/gstrtpopuspay.c
deleted file mode 100644
index 5038028b1..000000000
--- a/ext/opus/gstrtpopuspay.c
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Opus Payloader Gst Element
- *
- * @author: Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <string.h>
-
-#include <gst/rtp/gstrtpbuffer.h>
-#include <gst/audio/audio.h>
-
-#include "gstrtpopuspay.h"
-
-GST_DEBUG_CATEGORY_STATIC (rtpopuspay_debug);
-#define GST_CAT_DEFAULT (rtpopuspay_debug)
-
-
-static GstStaticPadTemplate gst_rtp_opus_pay_sink_template =
-GST_STATIC_PAD_TEMPLATE ("sink",
- GST_PAD_SINK,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS
- ("audio/x-opus, channels = (int) [1, 2], channel-mapping-family = (int) 0")
- );
-
-static GstStaticPadTemplate gst_rtp_opus_pay_src_template =
-GST_STATIC_PAD_TEMPLATE ("src",
- GST_PAD_SRC,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("application/x-rtp, "
- "media = (string) \"audio\", "
- "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
- "clock-rate = (int) 48000, "
- "encoding-params = (string) \"2\", "
- "encoding-name = (string) { \"OPUS\", \"X-GST-OPUS-DRAFT-SPITTKA-00\" }")
- );
-
-static gboolean gst_rtp_opus_pay_setcaps (GstRTPBasePayload * payload,
- GstCaps * caps);
-static GstCaps *gst_rtp_opus_pay_getcaps (GstRTPBasePayload * payload,
- GstPad * pad, GstCaps * filter);
-static GstFlowReturn gst_rtp_opus_pay_handle_buffer (GstRTPBasePayload *
- payload, GstBuffer * buffer);
-
-G_DEFINE_TYPE (GstRtpOPUSPay, gst_rtp_opus_pay, GST_TYPE_RTP_BASE_PAYLOAD);
-
-static void
-gst_rtp_opus_pay_class_init (GstRtpOPUSPayClass * klass)
-{
- GstRTPBasePayloadClass *gstbasertppayload_class;
- GstElementClass *element_class;
-
- gstbasertppayload_class = (GstRTPBasePayloadClass *) klass;
- element_class = GST_ELEMENT_CLASS (klass);
-
- gstbasertppayload_class->set_caps = gst_rtp_opus_pay_setcaps;
- gstbasertppayload_class->get_caps = gst_rtp_opus_pay_getcaps;
- gstbasertppayload_class->handle_buffer = gst_rtp_opus_pay_handle_buffer;
-
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_rtp_opus_pay_src_template));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_rtp_opus_pay_sink_template));
-
- gst_element_class_set_static_metadata (element_class,
- "RTP Opus payloader",
- "Codec/Payloader/Network/RTP",
- "Puts Opus audio in RTP packets",
- "Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>");
-
- GST_DEBUG_CATEGORY_INIT (rtpopuspay_debug, "rtpopuspay", 0,
- "Opus RTP Payloader");
-}
-
-static void
-gst_rtp_opus_pay_init (GstRtpOPUSPay * rtpopuspay)
-{
-}
-
-static gboolean
-gst_rtp_opus_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
-{
- gboolean res;
- GstCaps *src_caps;
- GstStructure *s;
- char *encoding_name;
- gint channels, rate;
- const char *sprop_stereo = NULL;
- char *sprop_maxcapturerate = NULL;
-
- src_caps = gst_pad_get_allowed_caps (GST_RTP_BASE_PAYLOAD_SRCPAD (payload));
- if (src_caps) {
- src_caps = gst_caps_make_writable (src_caps);
- src_caps = gst_caps_truncate (src_caps);
- s = gst_caps_get_structure (src_caps, 0);
- gst_structure_fixate_field_string (s, "encoding-name", "OPUS");
- encoding_name = g_strdup (gst_structure_get_string (s, "encoding-name"));
- gst_caps_unref (src_caps);
- } else {
- encoding_name = g_strdup ("X-GST-OPUS-DRAFT-SPITTKA-00");
- }
-
- s = gst_caps_get_structure (caps, 0);
- if (gst_structure_get_int (s, "channels", &channels)) {
- if (channels > 2) {
- GST_ERROR_OBJECT (payload,
- "More than 2 channels with channel-mapping-family=0 is invalid");
- return FALSE;
- } else if (channels == 2) {
- sprop_stereo = "1";
- } else {
- sprop_stereo = "0";
- }
- }
-
- if (gst_structure_get_int (s, "rate", &rate)) {
- sprop_maxcapturerate = g_strdup_printf ("%d", rate);
- }
-
- gst_rtp_base_payload_set_options (payload, "audio", FALSE,
- encoding_name, 48000);
- g_free (encoding_name);
-
- if (sprop_maxcapturerate && sprop_stereo) {
- res =
- gst_rtp_base_payload_set_outcaps (payload, "sprop-maxcapturerate",
- G_TYPE_STRING, sprop_maxcapturerate, "sprop-stereo", G_TYPE_STRING,
- sprop_stereo, NULL);
- } else if (sprop_maxcapturerate) {
- res =
- gst_rtp_base_payload_set_outcaps (payload, "sprop-maxcapturerate",
- G_TYPE_STRING, sprop_maxcapturerate, NULL);
- } else if (sprop_stereo) {
- res =
- gst_rtp_base_payload_set_outcaps (payload, "sprop-stereo",
- G_TYPE_STRING, sprop_stereo, NULL);
- } else {
- res = gst_rtp_base_payload_set_outcaps (payload, NULL);
- }
-
- g_free (sprop_maxcapturerate);
-
- return res;
-}
-
-typedef struct
-{
- GstRtpOPUSPay *pay;
- GstBuffer *outbuf;
-} CopyMetaData;
-
-static gboolean
-foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
-{
- CopyMetaData *data = user_data;
- GstRtpOPUSPay *pay = data->pay;
- GstBuffer *outbuf = data->outbuf;
- const GstMetaInfo *info = (*meta)->info;
- const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
-
- if (!tags || (g_strv_length ((gchar **) tags) == 1
- && gst_meta_api_type_has_tag (info->api,
- g_quark_from_string (GST_META_TAG_AUDIO_STR)))) {
- GstMetaTransformCopy copy_data = { FALSE, 0, -1 };
- GST_DEBUG_OBJECT (pay, "copy metadata %s", g_type_name (info->api));
- /* simply copy then */
- info->transform_func (outbuf, *meta, inbuf,
- _gst_meta_transform_copy, &copy_data);
- } else {
- GST_DEBUG_OBJECT (pay, "not copying metadata %s", g_type_name (info->api));
- }
-
- return TRUE;
-}
-
-static GstFlowReturn
-gst_rtp_opus_pay_handle_buffer (GstRTPBasePayload * basepayload,
- GstBuffer * buffer)
-{
- GstBuffer *outbuf;
- GstClockTime pts, dts, duration;
- CopyMetaData data;
-
- pts = GST_BUFFER_PTS (buffer);
- dts = GST_BUFFER_DTS (buffer);
- duration = GST_BUFFER_DURATION (buffer);
-
- outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
- data.pay = GST_RTP_OPUS_PAY (basepayload);
- data.outbuf = outbuf;
- gst_buffer_foreach_meta (buffer, foreach_metadata, &data);
- outbuf = gst_buffer_append (outbuf, buffer);
-
- GST_BUFFER_PTS (outbuf) = pts;
- GST_BUFFER_DTS (outbuf) = dts;
- GST_BUFFER_DURATION (outbuf) = duration;
-
- /* Push out */
- return gst_rtp_base_payload_push (basepayload, outbuf);
-}
-
-static GstCaps *
-gst_rtp_opus_pay_getcaps (GstRTPBasePayload * payload,
- GstPad * pad, GstCaps * filter)
-{
- GstCaps *caps, *peercaps, *tcaps;
- GstStructure *s;
- const gchar *stereo;
-
- if (pad == GST_RTP_BASE_PAYLOAD_SRCPAD (payload))
- return
- GST_RTP_BASE_PAYLOAD_CLASS (gst_rtp_opus_pay_parent_class)->get_caps
- (payload, pad, filter);
-
- tcaps = gst_pad_get_pad_template_caps (GST_RTP_BASE_PAYLOAD_SRCPAD (payload));
- peercaps = gst_pad_peer_query_caps (GST_RTP_BASE_PAYLOAD_SRCPAD (payload),
- tcaps);
- gst_caps_unref (tcaps);
- if (!peercaps)
- return
- GST_RTP_BASE_PAYLOAD_CLASS (gst_rtp_opus_pay_parent_class)->get_caps
- (payload, pad, filter);
-
- if (gst_caps_is_empty (peercaps))
- return peercaps;
-
- caps = gst_pad_get_pad_template_caps (GST_RTP_BASE_PAYLOAD_SINKPAD (payload));
-
- s = gst_caps_get_structure (peercaps, 0);
- stereo = gst_structure_get_string (s, "stereo");
- if (stereo != NULL) {
- caps = gst_caps_make_writable (caps);
-
- if (!strcmp (stereo, "1")) {
- GstCaps *caps2 = gst_caps_copy (caps);
-
- gst_caps_set_simple (caps, "channels", G_TYPE_INT, 2, NULL);
- gst_caps_set_simple (caps2, "channels", G_TYPE_INT, 1, NULL);
- caps = gst_caps_merge (caps, caps2);
- } else if (!strcmp (stereo, "0")) {
- GstCaps *caps2 = gst_caps_copy (caps);
-
- gst_caps_set_simple (caps, "channels", G_TYPE_INT, 1, NULL);
- gst_caps_set_simple (caps2, "channels", G_TYPE_INT, 2, NULL);
- caps = gst_caps_merge (caps, caps2);
- }
- }
- gst_caps_unref (peercaps);
-
- if (filter) {
- GstCaps *tmp = gst_caps_intersect_full (caps, filter,
- GST_CAPS_INTERSECT_FIRST);
- gst_caps_unref (caps);
- caps = tmp;
- }
-
- GST_DEBUG_OBJECT (payload, "Returning caps: %" GST_PTR_FORMAT, caps);
- return caps;
-}
diff --git a/ext/opus/gstrtpopuspay.h b/ext/opus/gstrtpopuspay.h
deleted file mode 100644
index e21bbe3c3..000000000
--- a/ext/opus/gstrtpopuspay.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Opus Payloader Gst Element
- *
- * @author: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef __GST_RTP_OPUS_PAY_H__
-#define __GST_RTP_OPUS_PAY_H__
-
-#include <gst/gst.h>
-#include <gst/rtp/gstrtpbasepayload.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_RTP_OPUS_PAY \
- (gst_rtp_opus_pay_get_type())
-#define GST_RTP_OPUS_PAY(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_OPUS_PAY,GstRtpOPUSPay))
-#define GST_RTP_OPUS_PAY_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_OPUS_PAY,GstRtpOPUSPayClass))
-#define GST_IS_RTP_OPUS_PAY(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_OPUS_PAY))
-#define GST_IS_RTP_OPUS_PAY_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_OPUS_PAY))
-
-typedef struct _GstRtpOPUSPay GstRtpOPUSPay;
-typedef struct _GstRtpOPUSPayClass GstRtpOPUSPayClass;
-
-struct _GstRtpOPUSPay
-{
- GstRTPBasePayload payload;
-};
-
-struct _GstRtpOPUSPayClass
-{
- GstRTPBasePayloadClass parent_class;
-};
-
-GType gst_rtp_opus_pay_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GST_RTP_OPUS_PAY_H__ */