FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
adx.h
Go to the documentation of this file.
1
/*
2
* ADX ADPCM codecs
3
* Copyright (c) 2001,2003 BERO
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
/**
23
* @file
24
* SEGA CRI adx codecs.
25
*
26
* Reference documents:
27
* http://ku-www.ss.titech.ac.jp/~yatsushi/adx.html
28
* adx2wav & wav2adx http://www.geocities.co.jp/Playtown/2004/
29
*/
30
31
#ifndef AVCODEC_ADX_H
32
#define AVCODEC_ADX_H
33
34
#include <stdint.h>
35
36
#include "
avcodec.h
"
37
38
typedef
struct
ADXChannelState
{
39
int
s1
,
s2
;
40
}
ADXChannelState
;
41
42
typedef
struct
ADXContext
{
43
int
channels
;
44
ADXChannelState
prev
[2];
45
int
header_parsed
;
46
int
eof
;
47
int
cutoff
;
48
int
coeff
[2];
49
}
ADXContext
;
50
51
#define COEFF_BITS 12
52
53
#define BLOCK_SIZE 18
54
#define BLOCK_SAMPLES 32
55
56
/**
57
* Calculate LPC coefficients based on cutoff frequency and sample rate.
58
*
59
* @param cutoff cutoff frequency
60
* @param sample_rate sample rate
61
* @param bits number of bits used to quantize coefficients
62
* @param[out] coeff 2 quantized LPC coefficients
63
*/
64
void
ff_adx_calculate_coeffs
(
int
cutoff,
int
sample_rate
,
int
bits
,
int
*
coeff
);
65
66
/**
67
* Decode ADX stream header.
68
* Sets avctx->channels and avctx->sample_rate.
69
*
70
* @param avctx codec context
71
* @param buf header data
72
* @param bufsize data size, should be at least 24 bytes
73
* @param[out] header_size size of ADX header
74
* @param[out] coeff 2 LPC coefficients, can be NULL
75
* @return data offset or negative error code if header is invalid
76
*/
77
int
ff_adx_decode_header
(
AVCodecContext
*avctx,
const
uint8_t
*
buf
,
78
int
bufsize,
int
*header_size,
int
*
coeff
);
79
80
#if LIBAVCODEC_VERSION_MAJOR < 56
81
int
avpriv_adx_decode_header
(
AVCodecContext
*avctx,
const
uint8_t
*
buf
,
82
int
bufsize,
int
*header_size,
int
*
coeff
);
83
#endif
84
85
#endif
/* AVCODEC_ADX_H */
Generated on Sun Jul 20 2014 23:05:43 for FFmpeg by
1.8.2