summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Raghavan <arun.raghavan@collabora.co.uk>2013-03-28 17:36:07 +0000
committerArun Raghavan <arun.raghavan@collabora.co.uk>2013-03-28 17:36:07 +0000
commit6adddc7c51d644b58021f9cc9d9bae3130ef4e62 (patch)
tree63e26a2f9c9f190b4226f55cf5b75a9c4a6b6c74
parenta3713f7be16ef1cc6d361419b3899d39beea996f (diff)
bluez: Remove a2dpsrc bin
This element isn't really useful. The original plan was to use this to eventually allow dynamically picking a format based on what we can support while negotiating with the source device. We can just plug in a decodebin downstream and it'll handle RTP depayloading and decoding of whatever format we negotiated with the source device.
-rw-r--r--sys/bluez/Makefile.am2
-rw-r--r--sys/bluez/bluez-plugin.c3
-rw-r--r--sys/bluez/gsta2dpsrc.c190
-rw-r--r--sys/bluez/gsta2dpsrc.h61
4 files changed, 0 insertions, 256 deletions
diff --git a/sys/bluez/Makefile.am b/sys/bluez/Makefile.am
index b52da99d7..599dd82d9 100644
--- a/sys/bluez/Makefile.am
+++ b/sys/bluez/Makefile.am
@@ -4,7 +4,6 @@ libgstbluez_la_SOURCES = \
bluez-plugin.c \
gsta2dpsink.c \
gstavdtpsink.c \
- gsta2dpsrc.c \
gstavdtpsrc.c \
gstavdtputil.c
@@ -27,6 +26,5 @@ noinst_HEADERS = \
a2dp-codecs.h \
gsta2dpsink.h \
gstavdtpsink.h \
- gsta2dpsrc.h \
gstavdtpsrc.h \
gstavdtputil.h
diff --git a/sys/bluez/bluez-plugin.c b/sys/bluez/bluez-plugin.c
index d1b6ec601..f7f7f2bf2 100644
--- a/sys/bluez/bluez-plugin.c
+++ b/sys/bluez/bluez-plugin.c
@@ -24,7 +24,6 @@
#include "gsta2dpsink.h"
#include "gstavdtpsink.h"
-#include "gsta2dpsrc.h"
#include "gstavdtpsrc.h"
#include <string.h>
@@ -36,8 +35,6 @@ plugin_init (GstPlugin * plugin)
gst_element_register (plugin, "avdtpsink",
GST_RANK_NONE, GST_TYPE_AVDTP_SINK);
- gst_element_register (plugin, "a2dpsrc", GST_RANK_NONE, GST_TYPE_A2DP_SRC);
-
gst_element_register (plugin, "avdtpsrc", GST_RANK_NONE, GST_TYPE_AVDTP_SRC);
return TRUE;
diff --git a/sys/bluez/gsta2dpsrc.c b/sys/bluez/gsta2dpsrc.c
deleted file mode 100644
index 183b56235..000000000
--- a/sys/bluez/gsta2dpsrc.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- *
- * BlueZ - Bluetooth protocol stack for Linux
- *
- * Copyright (C) 2012 Collabora Ltd.
- *
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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
- *
- */
-
-#include "gsta2dpsrc.h"
-#include "gstavdtputil.h"
-
-GST_DEBUG_CATEGORY (a2dpsrc_debug);
-#define GST_CAT_DEFAULT (a2dpsrc_debug)
-
-enum
-{
- PROP_0,
- PROP_TRANSPORT
-};
-
-#define parent_class gst_a2dp_src_parent_class
-G_DEFINE_TYPE (GstA2dpSrc, gst_a2dp_src, GST_TYPE_BIN);
-
-static void gst_a2dp_src_finalize (GObject * object);
-static void gst_a2dp_src_get_property (GObject * object, guint prop_id,
- GValue * value, GParamSpec * pspec);
-static void gst_a2dp_src_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec);
-
-static GstStaticPadTemplate gst_a2dp_src_template =
-GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("audio/x-sbc, "
- "rate = (int) { 16000, 32000, 44100, 48000 }, "
- "channels = (int) [ 1, 2 ], "
- "mode = (string) { \"mono\", \"dual\", "
- "\"stereo\", \"joint\" }, "
- "blocks = (int) { 4, 8, 12, 16 }, "
- "subbands = (int) { 4, 8 }, "
- "allocation = (string) { \"snr\", \"loudness\" }, "
- "bitpool = (int) [ 2, " TEMPLATE_MAX_BITPOOL_STR " ]"));
-
-static void
-gst_a2dp_src_class_init (GstA2dpSrcClass * klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-
- parent_class = g_type_class_peek_parent (klass);
-
- gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_a2dp_src_finalize);
- gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_a2dp_src_set_property);
- gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_a2dp_src_get_property);
-
- g_object_class_install_property (gobject_class, PROP_TRANSPORT,
- g_param_spec_string ("transport",
- "Transport", "Use configured transport", NULL, G_PARAM_READWRITE));
-
- gst_element_class_set_static_metadata (element_class,
- "Bluetooth A2DP Source",
- "Source/Audio/Network",
- "Receives and depayloads audio from an A2DP device",
- "Arun Raghavan <arun.raghavan@collabora.co.uk>");
-
- GST_DEBUG_CATEGORY_INIT (a2dpsrc_debug, "a2dpsrc", 0,
- "Bluetooth A2DP Source");
-
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_a2dp_src_template));
-}
-
-static void
-gst_a2dp_src_init (GstA2dpSrc * a2dpsrc)
-{
- GstBin *bin = GST_BIN (a2dpsrc);
- GstElement *depay = NULL;
- GstPad *srcpad = NULL, *depay_srcpad;
-
- /* FIXME: We can set up the bin elements here since we only support
- * SBC. When supporting more formats, we would need to only instantiate
- * an avdtpsrc here, wait for it to get to READY, query its srcpad caps
- * and attach the appropriate RTP depayloader. */
-
- a2dpsrc->avdtpsrc = gst_element_factory_make ("avdtpsrc", NULL);
- if (!a2dpsrc->avdtpsrc) {
- GST_ERROR_OBJECT (a2dpsrc, "Unable to instantiate avdtpsrc");
- goto fail;
- }
-
- depay = gst_element_factory_make ("rtpsbcdepay", NULL);
- if (!depay) {
- GST_ERROR_OBJECT (a2dpsrc, "Unable to instantiate rtpsbcdepay");
- goto fail;
- }
-
- if (!gst_bin_add (bin, a2dpsrc->avdtpsrc) || !gst_bin_add (bin, depay) ||
- !gst_element_link (a2dpsrc->avdtpsrc, depay)) {
- GST_ERROR_OBJECT (a2dpsrc, "Unable to add elements to bin");
- goto fail;
- }
-
- depay_srcpad = gst_element_get_static_pad (depay, "src");
- srcpad = gst_ghost_pad_new ("sink", depay_srcpad);
- gst_object_unref (depay_srcpad);
-
- if (!gst_element_add_pad (GST_ELEMENT (a2dpsrc), srcpad)) {
- GST_ERROR_OBJECT (a2dpsrc, "Could not add srcpad");
- goto fail;
- }
-
- /* We keep a copy for easy proxying of properties */
- gst_object_ref (a2dpsrc->avdtpsrc);
-
- return;
-
-fail:
- if (a2dpsrc->avdtpsrc)
- gst_object_unref (a2dpsrc->avdtpsrc);
- if (depay)
- gst_object_unref (depay);
- if (srcpad)
- gst_object_unref (srcpad);
-
- return;
-}
-
-static void
-gst_a2dp_src_finalize (GObject * object)
-{
- GstA2dpSrc *a2dpsrc = GST_A2DP_SRC (object);
-
- gst_object_unref (a2dpsrc->avdtpsrc);
-
- G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static void
-gst_a2dp_src_get_property (GObject * object, guint prop_id,
- GValue * value, GParamSpec * pspec)
-{
- GstA2dpSrc *a2dpsrc = GST_A2DP_SRC (object);
-
- switch (prop_id) {
- case PROP_TRANSPORT:
- g_object_get_property (G_OBJECT (a2dpsrc->avdtpsrc), "transport", value);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gst_a2dp_src_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec)
-{
- GstA2dpSrc *a2dpsrc = GST_A2DP_SRC (object);
-
- switch (prop_id) {
- case PROP_TRANSPORT:
- g_object_set_property (G_OBJECT (a2dpsrc->avdtpsrc), "transport", value);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-gboolean
-gst_a2dp_src_plugin_init (GstPlugin * plugin)
-{
- return gst_element_register (plugin, "a2dpsrc", GST_RANK_NONE,
- GST_TYPE_A2DP_SRC);
-}
diff --git a/sys/bluez/gsta2dpsrc.h b/sys/bluez/gsta2dpsrc.h
deleted file mode 100644
index 34eb8a0ed..000000000
--- a/sys/bluez/gsta2dpsrc.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *
- * BlueZ - Bluetooth protocol stack for Linux
- *
- * Copyright (C) 2012 Collabora Ltd.
- *
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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_A2DP_SRC_H
-#define __GST_A2DP_SRC_H
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-#define GST_TYPE_A2DP_SRC \
- (gst_a2dp_src_get_type())
-#define GST_A2DP_SRC(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_A2DP_SRC, GstA2dpSrc))
-#define GST_A2DP_SRC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_A2DP_SRC, GstA2dpSrc))
-#define GST_IS_A2DP_SRC(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_A2DP_SRC))
-#define GST_IS_A2DP_SRC_CLASS(obj) \
- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_A2DP_SRC))
-typedef struct _GstA2dpSrc GstA2dpSrc;
-typedef struct _GstA2dpSrcClass GstA2dpSrcClass;
-
-struct _GstA2dpSrcClass
-{
- GstBinClass parentclass;
-};
-
-struct _GstA2dpSrc
-{
- GstBin parent;
-
- GstElement *avdtpsrc;
- GstPad *srcpad;
-};
-
-GType gst_a2dp_src_get_type (void);
-
-gboolean gst_a2dp_src_plugin_init (GstPlugin * plugin);
-
-G_END_DECLS
-#endif