summaryrefslogtreecommitdiff
path: root/ext/avtp/gstavtpaafdepay.h
diff options
context:
space:
mode:
authorAndre Guedes <andre.guedes@intel.com>2019-01-23 16:20:27 -0800
committerEderson de Souza <ederson.desouza@intel.com>2019-07-03 09:59:35 -0700
commit6477884a56fb9bf59b2f13d8b0c6244d8ce32039 (patch)
treebf8a8b5ec619006c32ab885e85066eba3894cea8 /ext/avtp/gstavtpaafdepay.h
parent1e985f02f49881637dca9eeea6c3b560737551fe (diff)
downloadgstreamer-plugins-bad-6477884a56fb9bf59b2f13d8b0c6244d8ce32039.tar.gz
avtp: Introduce AAF depayloader element
This patch introduces the AAF depayloader element, the counterpart from the AAF payloader. As expected, this element inputs AVTPDUs and outputs audio raw data and supports AAF PCM encapsulation only. The AAF depayloader srcpad produces a fixed format that is encoded within the AVTPDU. Once the first AVTPDU is received by the element, the audio features e.g. sample format, rate, number of channels, are decoded and the srcpad caps are set accordingly. Also, at this point, the element pushes a SEGMENT event downstream defining the segment according to the AVTP presentation time. All AVTP depayloaders will share some common code. For that reason, this patch introduces the GstAvtpBaseDepayload abstract class that implements common depayloader functionalities. AAF-specific functionalities are implemented in the derived class GstAvtpAafDepay.
Diffstat (limited to 'ext/avtp/gstavtpaafdepay.h')
-rw-r--r--ext/avtp/gstavtpaafdepay.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/ext/avtp/gstavtpaafdepay.h b/ext/avtp/gstavtpaafdepay.h
new file mode 100644
index 000000000..ef639b70e
--- /dev/null
+++ b/ext/avtp/gstavtpaafdepay.h
@@ -0,0 +1,65 @@
+/*
+ * GStreamer AVTP Plugin
+ * Copyright (C) 2019 Intel Corporation
+ *
+ * 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 Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef __GST_AVTP_AAF_DEPAY_H__
+#define __GST_AVTP_AAF_DEPAY_H__
+
+#include <gst/gst.h>
+
+#include "gstavtpbasedepayload.h"
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_AVTP_AAF_DEPAY (gst_avtp_aaf_depay_get_type())
+#define GST_AVTP_AAF_DEPAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AVTP_AAF_DEPAY,GstAvtpAafDepay))
+#define GST_AVTP_AAF_DEPAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AVTP_AAF_DEPAY,GstAvtpAafDepayClass))
+#define GST_IS_AVTP_AAF_DEPAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AVTP_AAF_DEPAY))
+#define GST_IS_AVTP_AAF_DEPAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AVTP_AAF_DEPAY))
+
+typedef struct _GstAvtpAafDepay GstAvtpAafDepay;
+typedef struct _GstAvtpAafDepayClass GstAvtpAafDepayClass;
+
+struct _GstAvtpAafDepay
+{
+ GstAvtpBaseDepayload depayload;
+
+ gint channels;
+ gint depth;
+ gint rate;
+ gint format;
+};
+
+struct _GstAvtpAafDepayClass
+{
+ GstAvtpBaseDepayloadClass parent_class;
+};
+
+GType gst_avtp_aaf_depay_get_type (void);
+
+gboolean gst_avtp_aaf_depay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* __GST_AVTP_AAF_DEPAY_H__ */