diff -r 71e347f905f2 -r 4a7fac7dd34a gst_nokia_speech/gstaacenc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gst_nokia_speech/gstaacenc.h Fri Apr 16 15:15:52 2010 +0300 @@ -0,0 +1,92 @@ +/* GStreamer AAC encoder + * Copyright 2009 Collabora Multimedia, + * Copyright 2009 Nokia Corporation + * @author: Mark Nauwelaerts . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * 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. + */ + +/* TODO non-GPL license */ + +#ifndef __GST_AAC_ENC_H__ +#define __GST_AAC_ENC_H__ + +#include + +#include + +#include "gstframedaudioenc.h" + +G_BEGIN_DECLS + +/* #define's don't like whitespacey bits */ +#define GST_TYPE_AAC_ENC \ + (gst_aac_enc_get_type()) +#define GST_AAC_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AAC_ENC,GstAACEnc)) +#define GST_AAC_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AAC_ENC,GstAACEncClass)) +#define GST_IS_AAC_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AAC_ENC)) +#define GST_IS_AAC_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AAC_ENC)) +#define GST_AAC_ENC_CAST(obj) ((GstAACEnc*)(obj)) + + +typedef struct _GstNokiaAACEnc GstNokiaAACEnc; +typedef struct _GstNokiaAACEncClass GstNokiaAACEncClass; + +typedef GstNokiaAACEnc GstAACEnc; +typedef GstNokiaAACEncClass GstAACEncClass; + +struct _GstNokiaAACEnc +{ + GstElement element; + + GstPad *sinkpad, *srcpad, *cnpad; + + GstFramedAudioEnc enc; + HANDLE_AACPLUS_ENC encoder; + AACPLUS_ENC_INFO info; + + /* mode selection */ + GstClockTime frame_duration; + gint raw_frame_size; + gint codec_frame_size; + + /* optional helper (history) buffer */ + guint8 *buffer; + + /* stream description */ + gint rate; + gint channels; + + /* properties */ + gint bitrate; + guint profile; + guint format; +}; + +struct _GstNokiaAACEncClass +{ + GstElementClass parent_class; +}; + +GType gst_aac_enc_get_type (void); + +G_END_DECLS + +#endif /* __GST_AAC_ENC_H__ */