/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleTransform.h is in libinstpatch-dev 1.0.0-6.
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 | /*
* libInstPatch
* Copyright (C) 1999-2010 Joshua "Element" Green <jgreen@users.sourceforge.net>
*
* This program 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 program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA or on the web at http://www.gnu.org.
*/
/**
* SECTION: IpatchSampleTransform
* @short_description: Audio format conversion instance
* @see_also:
* @stability: Stable
*
* A structure for converting between audio formats (for example the bit width
* or number of channels). This structure is initialized with the source and
* destination audio formats, multi-channel mapping and conversion buffers.
*/
#ifndef __IPATCH_SAMPLE_TRANSFORM_H__
#define __IPATCH_SAMPLE_TRANSFORM_H__
#include <stdio.h>
#include <glib.h>
typedef struct _IpatchSampleTransform IpatchSampleTransform;
/**
* IpatchSampleTransformFunc:
* @transform: Sample transform object
*
* Audio conversion handler prototype. Handler will modify
* <structfield>samples</structfield> of @transform if number of samples
* changes (a change in the number of channels occurs).
*/
typedef void (*IpatchSampleTransformFunc)(IpatchSampleTransform *transform);
#include <libinstpatch/sample.h>
/* sample transform object */
struct _IpatchSampleTransform
{
guint16 src_format; /* source sample format */
guint16 dest_format; /* destination sample format */
guint8 channel_map[8]; /* channel mapping for multi-channel audio */
guint8 buf1_max_frame; /* max bytes per frame for buf1 */
guint8 buf2_max_frame; /* max bytes per frame for buf2 */
guint8 func_count; /* number of functions in funcs array */
guint8 free_buffers; /* set to TRUE if buffers need to be freed */
guint max_frames; /* max frames that can be converted in batch */
guint frames; /* number of frames to transform */
guint samples; /* # of samples for current transform func (not frames!)*/
gpointer buf1; /* buffer 1 (first input) */
gpointer buf2; /* buffer 2 */
guint combined_size; /* size in bytes of both buffers (if combined) */
gpointer reserved1; /* Reserved field */
gpointer reserved2; /* Reserved field */
/* array of transform funcs */
IpatchSampleTransformFunc funcs[IPATCH_SAMPLE_MAX_TRANSFORM_FUNCS];
};
IpatchSampleTransform *ipatch_sample_transform_new
(int src_format, int dest_format, guint32 channel_map);
void ipatch_sample_transform_free (IpatchSampleTransform *transform);
void ipatch_sample_transform_init (IpatchSampleTransform *transform);
IpatchSampleTransform *ipatch_sample_transform_pool_acquire
(int src_format, int dest_format, guint32 channel_map);
void ipatch_sample_transform_pool_release (IpatchSampleTransform *transform);
void ipatch_sample_transform_set_formats (IpatchSampleTransform *transform,
int src_format, int dest_format,
guint32 channel_map);
void ipatch_sample_transform_alloc (IpatchSampleTransform *transform,
guint frames);
int ipatch_sample_transform_alloc_size (IpatchSampleTransform *transform,
guint size);
void ipatch_sample_transform_free_buffers (IpatchSampleTransform *transform);
guint ipatch_sample_transform_set_buffers_size (IpatchSampleTransform *transform,
gpointer buf, guint size);
void ipatch_sample_transform_get_buffers (IpatchSampleTransform *transform,
gpointer *buf1, gpointer *buf2);
void ipatch_sample_transform_get_frame_sizes (IpatchSampleTransform *transform,
guint *buf1_size,
guint *buf2_size);
guint ipatch_sample_transform_get_max_frames (IpatchSampleTransform *transform);
gpointer ipatch_sample_transform_convert (IpatchSampleTransform *transform,
gconstpointer src, gpointer dest,
guint frames);
gpointer ipatch_sample_transform_convert_single (IpatchSampleTransform *transform,
guint frames);
#endif
|