/** 
 * @file VorbisFramework.h
 * @author Dave Camp
 * @date Fri Oct 10 2003
 * @brief For the Macview project
 *
 * $LicenseInfo:firstyear=2003&license=viewerlgpl$
 * Second Life Viewer Source Code
 * Copyright (C) 2010, Linden Research, Inc.
 * 
 * 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;
 * version 2.1 of the License only.
 * 
 * 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
 * 
 * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
 * $/LicenseInfo$
 */

#ifdef __cplusplus
extern "C" {
#endif

#include "ogg/ogg.h"
#include "vorbis/codec.h"
#include "vorbis/vorbisenc.h"

extern int      mac_vorbis_analysis(vorbis_block *vb,ogg_packet *op);

extern int      mac_vorbis_analysis_headerout(vorbis_dsp_state *v,
					  vorbis_comment *vc,
					  ogg_packet *op,
					  ogg_packet *op_comm,
					  ogg_packet *op_code);

extern int mac_vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi);

extern int mac_vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);

extern int mac_vorbis_encode_setup_init(vorbis_info *vi);

extern int mac_vorbis_encode_setup_managed(vorbis_info *vi,
				       long channels,
				       long rate,
				       
				       long max_bitrate,
				       long nominal_bitrate,
				       long min_bitrate);

extern void     mac_vorbis_info_init(vorbis_info *vi);
extern void     mac_vorbis_info_clear(vorbis_info *vi);
extern void     mac_vorbis_comment_init(vorbis_comment *vc);
extern void     mac_vorbis_comment_clear(vorbis_comment *vc);
extern int      mac_vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
extern int      mac_vorbis_block_clear(vorbis_block *vb);
extern void     mac_vorbis_dsp_clear(vorbis_dsp_state *v);
extern float  **mac_vorbis_analysis_buffer(vorbis_dsp_state *v,int vals);
extern int      mac_vorbis_analysis_wrote(vorbis_dsp_state *v,int vals);
extern int      mac_vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb);

extern int		mac_ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op);
extern int      mac_ogg_stream_init(ogg_stream_state *os,int serialno);
extern int      mac_ogg_stream_flush(ogg_stream_state *os, ogg_page *og);
extern int      mac_ogg_stream_pageout(ogg_stream_state *os, ogg_page *og);
extern int      mac_ogg_page_eos(ogg_page *og);
extern int      mac_ogg_stream_clear(ogg_stream_state *os);


#ifdef __cplusplus
}
#endif