10a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann/*
20a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *
30a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  BlueZ - Bluetooth protocol stack for Linux
40a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *
59184e2eeb7b97371c6b83b747c8984e2340d2b47Marcel Holtmann *  Copyright (C) 2004-2010  Marcel Holtmann <marcel@holtmann.org>
60a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *
70a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *
80a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  This library is free software; you can redistribute it and/or
90a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  modify it under the terms of the GNU Lesser General Public
100a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  License as published by the Free Software Foundation; either
110a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  version 2.1 of the License, or (at your option) any later version.
120a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *
130a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  This library is distributed in the hope that it will be useful,
140a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  but WITHOUT ANY WARRANTY; without even the implied warranty of
150a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
160a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  Lesser General Public License for more details.
170a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *
180a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  You should have received a copy of the GNU Lesser General Public
190a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  License along with this library; if not, write to the Free Software
200a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
210a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann *
220a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann */
230a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
240a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann#include <gst/gst.h>
2596d6078ada20a76f885ea04893aac5f0ca5fe48dLuiz Augusto von Dentz#include <gst/base/gstadapter.h>
260a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
27d542fb37a81d1d96604d41b36a6d6b11087ba2daMarcel Holtmann#include "sbc.h"
28d542fb37a81d1d96604d41b36a6d6b11087ba2daMarcel Holtmann
290a527f667ae62ac335f22d1d053179b20ff26e94Marcel HoltmannG_BEGIN_DECLS
300a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
310a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann#define GST_TYPE_SBC_ENC \
320a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	(gst_sbc_enc_get_type())
330a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann#define GST_SBC_ENC(obj) \
340a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SBC_ENC,GstSbcEnc))
350a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann#define GST_SBC_ENC_CLASS(klass) \
360a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SBC_ENC,GstSbcEncClass))
370a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann#define GST_IS_SBC_ENC(obj) \
380a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SBC_ENC))
390a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann#define GST_IS_SBC_ENC_CLASS(obj) \
400a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SBC_ENC))
410a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
420a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmanntypedef struct _GstSbcEnc GstSbcEnc;
430a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmanntypedef struct _GstSbcEncClass GstSbcEncClass;
440a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
450a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmannstruct _GstSbcEnc {
460a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	GstElement element;
470a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
480a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	GstPad *sinkpad;
490a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	GstPad *srcpad;
5096d6078ada20a76f885ea04893aac5f0ca5fe48dLuiz Augusto von Dentz	GstAdapter *adapter;
51d542fb37a81d1d96604d41b36a6d6b11087ba2daMarcel Holtmann
52d4e24bf6a3d8af6479abce92fbbf1869a59669aaLuiz Augusto von Dentz	gint rate;
53d4e24bf6a3d8af6479abce92fbbf1869a59669aaLuiz Augusto von Dentz	gint channels;
540551d4b78641ad4cc286d3e69c3268a27f5e9647Marcel Holtmann	gint mode;
555dee78747cac71ad970b513dc229712be1348290Luiz Augusto von Dentz	gint blocks;
565dee78747cac71ad970b513dc229712be1348290Luiz Augusto von Dentz	gint allocation;
575dee78747cac71ad970b513dc229712be1348290Luiz Augusto von Dentz	gint subbands;
58ae689c59cc62acc9f160afe6beb6ccc07b6c6f55Luiz Augusto von Dentz	gint bitpool;
59ae689c59cc62acc9f160afe6beb6ccc07b6c6f55Luiz Augusto von Dentz
600260a8613bd992b596dfa0f2b69ecfbba33c9bcaMarcel Holtmann	guint codesize;
61d509d4960ff6fb74bf86bf2791067197d3795440Luiz Augusto von Dentz	gint frame_length;
62d509d4960ff6fb74bf86bf2791067197d3795440Luiz Augusto von Dentz	gint frame_duration;
630551d4b78641ad4cc286d3e69c3268a27f5e9647Marcel Holtmann
64d542fb37a81d1d96604d41b36a6d6b11087ba2daMarcel Holtmann	sbc_t sbc;
650a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann};
660a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
670a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmannstruct _GstSbcEncClass {
680a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann	GstElementClass parent_class;
690a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann};
700a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
71cc04c6a2f7500f3d29d56634e645130ff3bd80fbMarcel HoltmannGType gst_sbc_enc_get_type(void);
720a527f667ae62ac335f22d1d053179b20ff26e94Marcel Holtmann
73a0af7ee44534dad8f35a4142c6a22177e54ffc57Luiz Augusto von Dentzgboolean gst_sbc_enc_plugin_init(GstPlugin *plugin);
74a0af7ee44534dad8f35a4142c6a22177e54ffc57Luiz Augusto von Dentz
750a527f667ae62ac335f22d1d053179b20ff26e94Marcel HoltmannG_END_DECLS
76