67 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /* Copyright (c) 2007 CSIRO
 | ||
|  |    Copyright (c) 2007-2008 Xiph.Org Foundation | ||
|  |    Written by Jean-Marc Valin */ | ||
|  | /*
 | ||
|  |    Redistribution and use in source and binary forms, with or without | ||
|  |    modification, are permitted provided that the following conditions | ||
|  |    are met: | ||
|  |     | ||
|  |    - Redistributions of source code must retain the above copyright | ||
|  |    notice, this list of conditions and the following disclaimer. | ||
|  |     | ||
|  |    - Redistributions in binary form must reproduce the above copyright | ||
|  |    notice, this list of conditions and the following disclaimer in the | ||
|  |    documentation and/or other materials provided with the distribution. | ||
|  |     | ||
|  |    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
|  |    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
|  |    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
|  |    A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR | ||
|  |    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
|  |    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||
|  |    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
|  |    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
|  |    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
|  |    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
|  |    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|  | */ | ||
|  | 
 | ||
|  | #ifndef CELT_HEADER_H
 | ||
|  | #define CELT_HEADER_H
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #include "celt.h"
 | ||
|  | #include "celt_types.h"
 | ||
|  | 
 | ||
|  | /** Header data to be used for Ogg files (or possibly other encapsulation) 
 | ||
|  |     @brief Header data  | ||
|  |  */ | ||
|  | typedef struct { | ||
|  |    char         codec_id[8];       /**< MUST be "CELT    " (four spaces) */ | ||
|  |    char         codec_version[20]; /**< Version used (as string) */ | ||
|  |    celt_int32 version_id;        /**< Version id (negative for until stream is frozen) */ | ||
|  |    celt_int32 header_size;       /**< Size of this header */ | ||
|  |    celt_int32 sample_rate;       /**< Sampling rate of the original audio */ | ||
|  |    celt_int32 nb_channels;       /**< Number of channels */ | ||
|  |    celt_int32 frame_size;        /**< Samples per frame (per channel) */ | ||
|  |    celt_int32 overlap;           /**< Overlapping samples (per channel) */ | ||
|  |    celt_int32 bytes_per_packet;  /**< Number of bytes per compressed packet (0 if unknown) */ | ||
|  |    celt_int32 extra_headers;     /**< Number of additional headers that follow this header */ | ||
|  | } CELTHeader; | ||
|  | 
 | ||
|  | /** Creates a basic header struct */ | ||
|  | EXPORT int celt_header_init(CELTHeader *header, const CELTMode *m, int frame_size, int channels); | ||
|  | 
 | ||
|  | EXPORT int celt_header_to_packet(const CELTHeader *header, unsigned char *packet, celt_uint32 size); | ||
|  | 
 | ||
|  | EXPORT int celt_header_from_packet(const unsigned char *packet, celt_uint32 size, CELTHeader *header); | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif /* CELT_HEADER_H */
 |