1 /* GStreamer DCA parser 2 * Copyright (C) 2010 Tim-Philipp Müller <tim centricular net> 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 */ 19 20 #ifndef __GST_DCA_PARSE_H__ 21 #define __GST_DCA_PARSE_H__ 22 23 #include <gst/gst.h> 24 #include <gst/base/gstbaseparse.h> 25 26 G_BEGIN_DECLS 27 28 #define GST_TYPE_DCA_PARSE \ 29 (gst_dca_parse_get_type()) 30 #define GST_DCA_PARSE(obj) \ 31 (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_DCA_PARSE, GstDcaParse)) 32 #define GST_DCA_PARSE_CLASS(klass) \ 33 (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_DCA_PARSE, GstDcaParseClass)) 34 #define GST_IS_DCA_PARSE(obj) \ 35 (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_DCA_PARSE)) 36 #define GST_IS_DCA_PARSE_CLASS(klass) \ 37 (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_DCA_PARSE)) 38 39 #define DCA_MIN_FRAMESIZE 96 40 #define DCA_MAX_FRAMESIZE 18725 /* 16384*16/14 */ 41 42 typedef struct _GstDcaParse GstDcaParse; 43 typedef struct _GstDcaParseClass GstDcaParseClass; 44 45 /** 46 * GstDcaParse: 47 * 48 * The opaque GstDcaParse object 49 */ 50 struct _GstDcaParse { 51 GstBaseParse baseparse; 52 53 /*< private >*/ 54 gint rate; 55 gint channels; 56 gint depth; 57 gint endianness; 58 gint block_size; 59 gint frame_size; 60 61 gboolean sent_codec_tag; 62 63 guint32 last_sync; 64 65 GstPadChainFunction baseparse_chainfunc; 66 }; 67 68 /** 69 * GstDcaParseClass: 70 * @parent_class: Element parent class. 71 * 72 * The opaque GstDcaParseClass data structure. 73 */ 74 struct _GstDcaParseClass { 75 GstBaseParseClass baseparse_class; 76 }; 77 78 GType gst_dca_parse_get_type (void); 79 80 G_END_DECLS 81 82 #endif /* __GST_DCA_PARSE_H__ */ 83