*
* 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., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
-#ifndef __GST_AACPARSE_H__
-#define __GST_AACPARSE_H__
+#ifndef __GST_AAC_PARSE_H__
+#define __GST_AAC_PARSE_H__
#include <gst/gst.h>
-#include <gst/baseparse/gstbaseparse.h>
+#include <gst/base/gstbaseparse.h>
G_BEGIN_DECLS
-#define GST_TYPE_AACPARSE \
- (gst_aacparse_get_type())
-#define GST_AACPARSE(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_AACPARSE, GstAacParse))
-#define GST_AACPARSE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_AACPARSE, GstAacParseClass))
-#define GST_IS_AACPARSE(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_AACPARSE))
-#define GST_IS_AACPARSE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_AACPARSE))
+#define GST_TYPE_AAC_PARSE \
+ (gst_aac_parse_get_type())
+#define GST_AAC_PARSE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_AAC_PARSE, GstAacParse))
+#define GST_AAC_PARSE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_AAC_PARSE, GstAacParseClass))
+#define GST_IS_AAC_PARSE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_AAC_PARSE))
+#define GST_IS_AAC_PARSE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_AAC_PARSE))
/**
* @DSPAAC_HEADER_UNKNOWN: Unknown (not recognized) header.
* @DSPAAC_HEADER_ADIF: ADIF header found.
* @DSPAAC_HEADER_ADTS: ADTS header found.
+ * @DSPAAC_HEADER_LOAS: LOAS header found.
* @DSPAAC_HEADER_NONE: Raw stream, no header.
*
* Type header enumeration set in #header_type.
DSPAAC_HEADER_UNKNOWN,
DSPAAC_HEADER_ADIF,
DSPAAC_HEADER_ADTS,
+ DSPAAC_HEADER_LOAS,
DSPAAC_HEADER_NONE
} GstAacHeaderType;
/**
* GstAacParse:
- * @element: the parent element.
- * @object_type: AAC object type of the stream.
- * @bitrate: Current media bitrate.
- * @sample_rate: Current media samplerate.
- * @channels: Current media channel count.
- * @frames_per_sec: FPS value of the current stream.
- * @header_type: #GstAacHeaderType indicating the current stream type.
- * @framecount: The amount of frames that has been processed this far.
- * @bytecount: The amount of bytes that has been processed this far.
- * @sync: Tells whether the parser is in sync (a.k.a. not searching for header)
- * @eos: End-of-Stream indicator. Set when EOS event arrives.
- * @duration: Duration of the current stream.
- * @ts: Current stream timestamp.
*
* The opaque GstAacParse data structure.
*/
gint sample_rate;
gint channels;
gint mpegversion;
+ gint frame_samples;
+
+#ifdef TIZEN_FEATURE_AACPARSE_MODIFICATION
+ gboolean first_frame; /* estimate duration once at the first time */
+ guint hdr_bitrate; /* estimated bitrate (bps) */
+ guint spf; /* samples per frame = frame_samples */
+ guint frame_duration; /* duration per frame (msec) */
+ guint frame_per_sec; /* frames per second (ea) */
+ guint bitstream_type; /* bitstream type - constant or variable */
+ guint adif_header_length;
+ guint num_program_config_elements;
+ guint read_bytes;
+ gint64 file_size;
+ guint frame_byte;
+#endif
GstAacHeaderType header_type;
+ GstAacHeaderType output_header_type;
+
+ gboolean sent_codec_tag;
+
+ gint last_parsed_sample_rate;
+ gint last_parsed_channels;
};
/**
GstBaseParseClass parent_class;
};
-GType gst_aacparse_get_type (void);
+GType gst_aac_parse_get_type (void);
G_END_DECLS
-#endif /* __GST_AACPARSE_H__ */
+#endif /* __GST_AAC_PARSE_H__ */