/usr/include/aften/aften.h is in libaften-dev 0.0.8+git20100105-0ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | /**
* Aften: A/52 audio encoder
* Copyright (c) 2006-2007 Justin Ruggles
* 2006-2007 Prakash Punnoor <prakash@punnoor.de>
*
* Based on "The simplest AC3 encoder" from FFmpeg
* Copyright (c) 2000 Fabrice Bellard.
*
* 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; 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
* 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
*/
/**
* @file aften.h
* libaften public header for function declarations
*/
#ifndef AFTEN_H
#define AFTEN_H
#ifdef __cplusplus
extern "C" {
#endif
#include "aften-types.h"
#if defined(_WIN32) && !defined(_XBOX)
#if defined(AFTEN_BUILD_LIBRARY)
#define AFTEN_API __declspec(dllexport)
#else
#define AFTEN_API __declspec(dllimport)
#endif
#else
#if defined(AFTEN_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY)
#define AFTEN_API __attribute__((visibility("default")))
#else
#define AFTEN_API extern
#endif
#endif
/**
* @defgroup encoding Main encoding functions
* @{
*/
/**
* Gets the libaften version string.
*/
AFTEN_API const char *aften_get_version(void);
/**
* Sets the parameters for an encoding context to their default values.
* @param s The encoding context
*/
AFTEN_API void aften_set_defaults(AftenContext *s);
/**
* Initializes an encoding context.
* This must be called before any calls to @c aften_encode_frame
* @param s The encoding context
* @return Returns 0 on success, non-zero on failure.
*/
AFTEN_API int aften_encode_init(AftenContext *s);
/**
* Encodes a single AC-3 frame.
* @param s The encoding context
* @param[out] frame_buffer Pointer to output frame data
* @param[in] samples Pointer to input audio samples
* @param[in] count Number of input audio samples (per channel);
* must be equal to A52_SAMPLES_PER_FRAME, less than A52_SAMPLES_PER_FRAME
* for the last frame, and equal to 0 while flushing
* @return Returns the number of bytes written to @p frame_buffer, or returns
* a negative value on error.
*/
AFTEN_API int aften_encode_frame(AftenContext *s, unsigned char *frame_buffer,
const void *samples, int count);
/**
* Sets the parameters in the context @p s to their default values.
* @param s The encoding context
* @return Returns a negative value on error.
*/
AFTEN_API int aften_encode_close(AftenContext *s);
/** @} end encoding functions */
/**
* @defgroup utility Utility functions
* @{
*/
/**
* Determines the proper A/52 acmod and lfe parameters based on the
* number of channels and the WAVE_FORMAT_EXTENSIBLE channel mask. If the
* chmask value has the high bit set to 1 (e.g. 0xFFFFFFFF), then the default
* plain WAVE channel selection is assumed.
* @param[in] ch number of channels
* @param[in] chmask channel mask
* @param[out] acmod pointer to audio coding mode
* @param[out] lfe pointer to LFE flag
* @return On error, the @p acmod and @p lfe output params are set to -1 and
* the function returns -1; on success, the @p acmod and @p lfe params are set
* to appropriate values and the function returns 0.
*/
AFTEN_API int aften_wav_channels_to_acmod(int ch, unsigned int chmask,
int *acmod, int *lfe);
/**
* Takes a channel-interleaved array of audio samples, where the channel order
* is the default WAV order. The samples are rearranged to the proper A/52
* channel order based on the @p acmod and @p lfe parameters.
* @param samples array of interleaved audio samples
* @param[in] n number of samples in the array
* @param[in] ch number of channels
* @param[in] fmt sample format
* @param[in] acmod audio coding mode
*/
AFTEN_API void aften_remap_wav_to_a52(void *samples, int n, int ch,
A52SampleFormat fmt, int acmod);
/**
* Takes a channel-interleaved array of audio samples, where the channels are
* in MPEG order. The samples are rearranged to the proper A/52 channel order
* based on the @p acmod parameter.
* @param samples array of interleaved audio samples
* @param[in] n number of samples in the array
* @param[in] ch number of channels
* @param[in] fmt sample format
* @param[in] acmod audio coding mode
*/
AFTEN_API void aften_remap_mpeg_to_a52(void *samples, int n, int ch,
A52SampleFormat fmt, int acmod);
/**
* Tells whether libaften was configured to use floats or doubles
*/
AFTEN_API FloatType aften_get_float_type(void);
/** @} end utility functions */
#undef AFTEN_API
#if defined(__cplusplus)
}
#endif
#endif /* AFTEN_H */
|