annotate mlp_parser.h @ 10483:afad312b9989 libavcodec

Implement AMR gain function that is used by both AMR and SIPR. Based on AMR SoC code by Robert Swain and Colin McQuillan.
author vitor
date Sat, 31 Oct 2009 02:02:30 +0000
parents 0dce4fe6e6f3
children 7dd2a45249a9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5954
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
1 /*
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
2 * MLP parser prototypes
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
3 * Copyright (c) 2007 Ian Caulfield
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
4 *
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
5 * This file is part of FFmpeg.
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
6 *
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
11 *
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
15 * Lesser General Public License for more details.
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
16 *
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
20 */
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
21
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
22 /**
8718
e9d9d946f213 Use full internal pathname in doxygen @file directives.
diego
parents: 7760
diff changeset
23 * @file libavcodec/mlp_parser.h
5954
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
24 * MLP parser prototypes
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
25 */
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
26
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 7200
diff changeset
27 #ifndef AVCODEC_MLP_PARSER_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 7200
diff changeset
28 #define AVCODEC_MLP_PARSER_H
5954
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
29
9428
0dce4fe6e6f3 Rename bitstream.h to get_bits.h.
stefano
parents: 8718
diff changeset
30 #include "get_bits.h"
5956
99aba24ddc6c Fix make checkheaders, #include <inttypes.h> was missing.
diego
parents: 5954
diff changeset
31
5954
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
32 typedef struct MLPHeaderInfo
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
33 {
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
34 int stream_type; ///< 0xBB for MLP, 0xBA for TrueHD
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
35
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
36 int group1_bits; ///< The bit depth of the first substream
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
37 int group2_bits; ///< Bit depth of the second substream (MLP only)
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
38
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
39 int group1_samplerate; ///< Sample rate of first substream
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
40 int group2_samplerate; ///< Sample rate of second substream (MLP only)
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
41
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
42 int channels_mlp; ///< Channel arrangement for MLP streams
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
43 int channels_thd_stream1; ///< Channel arrangement for substream 1 of TrueHD streams (5.1)
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
44 int channels_thd_stream2; ///< Channel arrangement for substream 2 of TrueHD streams (7.1)
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
45
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
46 int access_unit_size; ///< Number of samples per coded frame
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
47 int access_unit_size_pow2; ///< Next power of two above number of samples per frame
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
48
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
49 int is_vbr; ///< Stream is VBR instead of CBR
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
50 int peak_bitrate; ///< Peak bitrate for VBR, actual bitrate (==peak) for CBR
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
51
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
52 int num_substreams; ///< Number of substreams within stream
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
53 } MLPHeaderInfo;
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
54
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
55
7176
ae78650d4ac8 Make ff_mlp_read_major_sync() take a GetBitContext instead of buffers.
ramiro
parents: 5956
diff changeset
56 int ff_mlp_read_major_sync(void *log, MLPHeaderInfo *mh, GetBitContext *gb);
5954
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
57
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 7200
diff changeset
58 #endif /* AVCODEC_MLP_PARSER_H */
5954
aafe67fa196f MLP/TrueHD parser
cehoyos
parents:
diff changeset
59