FFmpeg
Loading...
Searching...
No Matches
mpeg4audio.h
Go to the documentation of this file.
1/*
2 * MPEG-4 Audio common header
3 * Copyright (c) 2008 Baptiste Coudurier <baptiste.coudurier@free.fr>
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#ifndef AVCODEC_MPEG4AUDIO_H
23#define AVCODEC_MPEG4AUDIO_H
24
25#include <stdint.h>
26
27#include "get_bits.h"
28
29typedef struct MPEG4AudioConfig {
34 int sbr; ///< -1 implicit, 1 presence
40 int ps; ///< -1 implicit, 1 presence
42 int frame_length; ///< derived value
44
45extern const int ff_mpeg4audio_sample_rates[16];
46extern const uint8_t ff_mpeg4audio_channels[15];
47
48/**
49 * Parse MPEG-4 systems extradata from a potentially unaligned GetBitContext to retrieve audio configuration.
50 * @param[in] c MPEG4AudioConfig structure to fill.
51 * @param[in] gb Extradata from container.
52 * @param[in] sync_extension look for a sync extension after config if true.
53 * @param[in] logctx opaque struct starting with an AVClass element, used for logging.
54 * @return negative AVERROR code on error, on success AudioSpecificConfig bit index in extradata.
55 */
57 int sync_extension, void *logctx);
58
59/**
60 * Parse MPEG-4 systems extradata from a raw buffer to retrieve audio configuration.
61 * @param[in] c MPEG4AudioConfig structure to fill.
62 * @param[in] buf Extradata from container.
63 * @param[in] size Extradata size in bytes.
64 * @param[in] sync_extension look for a sync extension after config if true.
65 * @param[in] logctx opaque struct starting with an AVClass element, used for logging.
66 * @return negative AVERROR code on error, AudioSpecificConfig bit index in extradata on success.
67 */
68int avpriv_mpeg4audio_get_config2(MPEG4AudioConfig *c, const uint8_t *buf,
69 int size, int sync_extension, void *logctx);
70
73 // Support? Name
74 AOT_AAC_MAIN = 1, ///< Y Main
75 AOT_AAC_LC = 2, ///< Y Low Complexity
76 AOT_AAC_SSR = 3, ///< N (code in SoC repo) Scalable Sample Rate
77 AOT_AAC_LTP = 4, ///< Y Long Term Prediction
78 AOT_SBR = 5, ///< Y Spectral Band Replication
79 AOT_AAC_SCALABLE = 6, ///< N Scalable
80 AOT_TWINVQ = 7, ///< N Twin Vector Quantizer
81 AOT_CELP = 8, ///< N Code Excited Linear Prediction
82 AOT_HVXC = 9, ///< N Harmonic Vector eXcitation Coding
83
84 AOT_TTSI = 12, ///< N Text-To-Speech Interface
85 AOT_MAINSYNTH = 13, ///< N Main Synthesis
86 AOT_WAVESYNTH = 14, ///< N Wavetable Synthesis
87 AOT_MIDI = 15, ///< N General MIDI
88 AOT_SAFX = 16, ///< N Algorithmic Synthesis and Audio Effects
89 AOT_ER_AAC_LC = 17, ///< N Error Resilient Low Complexity
90
91 AOT_ER_AAC_LTP = 19, ///< N Error Resilient Long Term Prediction
92 AOT_ER_AAC_SCALABLE = 20, ///< N Error Resilient Scalable
93 AOT_ER_TWINVQ = 21, ///< N Error Resilient Twin Vector Quantizer
94 AOT_ER_BSAC = 22, ///< N Error Resilient Bit-Sliced Arithmetic Coding
95 AOT_ER_AAC_LD = 23, ///< N Error Resilient Low Delay
96 AOT_ER_CELP = 24, ///< N Error Resilient Code Excited Linear Prediction
97 AOT_ER_HVXC = 25, ///< N Error Resilient Harmonic Vector eXcitation Coding
98 AOT_ER_HILN = 26, ///< N Error Resilient Harmonic and Individual Lines plus Noise
99 AOT_ER_PARAM = 27, ///< N Error Resilient Parametric
100 AOT_SSC = 28, ///< N SinuSoidal Coding
101 AOT_PS = 29, ///< N Parametric Stereo
102 AOT_SURROUND = 30, ///< N MPEG Surround
103 AOT_ESCAPE = 31, ///< Y Escape Value
104 AOT_L1 = 32, ///< Y Layer 1
105 AOT_L2 = 33, ///< Y Layer 2
106 AOT_L3 = 34, ///< Y Layer 3
107 AOT_DST = 35, ///< N Direct Stream Transfer
108 AOT_ALS = 36, ///< Y Audio LosslesS
109 AOT_SLS = 37, ///< N Scalable LosslesS
110 AOT_SLS_NON_CORE = 38, ///< N Scalable LosslesS (non core)
111 AOT_ER_AAC_ELD = 39, ///< N Error Resilient Enhanced Low Delay
112 AOT_SMR_SIMPLE = 40, ///< N Symbolic Music Representation Simple
113 AOT_SMR_MAIN = 41, ///< N Symbolic Music Representation Main
114 AOT_USAC = 42, ///< Y Unified Speech and Audio Coding
115 AOT_SAOC = 43, ///< N Spatial Audio Object Coding
116 AOT_LD_SURROUND = 44, ///< N Low Delay MPEG Surround
117};
118
119#define MAX_PCE_SIZE 320 ///<Maximum size of a PCE including the 3-bit ID_PCE
120 ///<marker and the comment
121
122#endif /* AVCODEC_MPEG4AUDIO_H */
bitstream reader API header.
const uint8_t ff_mpeg4audio_channels[15]
Definition mpeg4audio.c:59
const int ff_mpeg4audio_sample_rates[16]
AudioObjectType
Definition mpeg4audio.h:71
@ AOT_SLS
N Scalable LosslesS.
Definition mpeg4audio.h:109
@ AOT_ALS
Y Audio LosslesS.
Definition mpeg4audio.h:108
@ AOT_L3
Y Layer 3.
Definition mpeg4audio.h:106
@ AOT_AAC_LTP
Y Long Term Prediction.
Definition mpeg4audio.h:77
@ AOT_ESCAPE
Y Escape Value.
Definition mpeg4audio.h:103
@ AOT_ER_AAC_LD
N Error Resilient Low Delay.
Definition mpeg4audio.h:95
@ AOT_ER_CELP
N Error Resilient Code Excited Linear Prediction.
Definition mpeg4audio.h:96
@ AOT_SAOC
N Spatial Audio Object Coding.
Definition mpeg4audio.h:115
@ AOT_SMR_MAIN
N Symbolic Music Representation Main.
Definition mpeg4audio.h:113
@ AOT_TTSI
N Text-To-Speech Interface.
Definition mpeg4audio.h:84
@ AOT_HVXC
N Harmonic Vector eXcitation Coding.
Definition mpeg4audio.h:82
@ AOT_ER_AAC_ELD
N Error Resilient Enhanced Low Delay.
Definition mpeg4audio.h:111
@ AOT_ER_AAC_LC
N Error Resilient Low Complexity.
Definition mpeg4audio.h:89
@ AOT_DST
N Direct Stream Transfer.
Definition mpeg4audio.h:107
@ AOT_SLS_NON_CORE
N Scalable LosslesS (non core)
Definition mpeg4audio.h:110
@ AOT_SAFX
N Algorithmic Synthesis and Audio Effects.
Definition mpeg4audio.h:88
@ AOT_MIDI
N General MIDI.
Definition mpeg4audio.h:87
@ AOT_MAINSYNTH
N Main Synthesis.
Definition mpeg4audio.h:85
@ AOT_L2
Y Layer 2.
Definition mpeg4audio.h:105
@ AOT_SSC
N SinuSoidal Coding.
Definition mpeg4audio.h:100
@ AOT_ER_HVXC
N Error Resilient Harmonic Vector eXcitation Coding.
Definition mpeg4audio.h:97
@ AOT_ER_TWINVQ
N Error Resilient Twin Vector Quantizer.
Definition mpeg4audio.h:93
@ AOT_USAC
Y Unified Speech and Audio Coding.
Definition mpeg4audio.h:114
@ AOT_SURROUND
N MPEG Surround.
Definition mpeg4audio.h:102
@ AOT_WAVESYNTH
N Wavetable Synthesis.
Definition mpeg4audio.h:86
@ AOT_AAC_SCALABLE
N Scalable.
Definition mpeg4audio.h:79
@ AOT_SBR
Y Spectral Band Replication.
Definition mpeg4audio.h:78
@ AOT_TWINVQ
N Twin Vector Quantizer.
Definition mpeg4audio.h:80
@ AOT_ER_PARAM
N Error Resilient Parametric.
Definition mpeg4audio.h:99
@ AOT_L1
Y Layer 1.
Definition mpeg4audio.h:104
@ AOT_LD_SURROUND
N Low Delay MPEG Surround.
Definition mpeg4audio.h:116
@ AOT_SMR_SIMPLE
N Symbolic Music Representation Simple.
Definition mpeg4audio.h:112
@ AOT_CELP
N Code Excited Linear Prediction.
Definition mpeg4audio.h:81
@ AOT_ER_BSAC
N Error Resilient Bit-Sliced Arithmetic Coding.
Definition mpeg4audio.h:94
@ AOT_AAC_SSR
N (code in SoC repo) Scalable Sample Rate.
Definition mpeg4audio.h:76
@ AOT_AAC_LC
Y Low Complexity.
Definition mpeg4audio.h:75
@ AOT_ER_AAC_LTP
N Error Resilient Long Term Prediction.
Definition mpeg4audio.h:91
@ AOT_ER_AAC_SCALABLE
N Error Resilient Scalable.
Definition mpeg4audio.h:92
@ AOT_ER_HILN
N Error Resilient Harmonic and Individual Lines plus Noise.
Definition mpeg4audio.h:98
@ AOT_NULL
Definition mpeg4audio.h:72
@ AOT_PS
N Parametric Stereo.
Definition mpeg4audio.h:101
@ AOT_AAC_MAIN
Y Main.
Definition mpeg4audio.h:74
int ff_mpeg4audio_get_config_gb(MPEG4AudioConfig *c, GetBitContext *gb, int sync_extension, void *logctx)
Parse MPEG-4 systems extradata from a potentially unaligned GetBitContext to retrieve audio configura...
Definition mpeg4audio.c:92
int avpriv_mpeg4audio_get_config2(MPEG4AudioConfig *c, const uint8_t *buf, int size, int sync_extension, void *logctx)
Parse MPEG-4 systems extradata from a raw buffer to retrieve audio configuration.
Definition mpeg4audio.c:212
int frame_length
derived value
Definition mpeg4audio.h:42
int sbr
-1 implicit, 1 presence
Definition mpeg4audio.h:34
int ps
-1 implicit, 1 presence
Definition mpeg4audio.h:40
int size
static double c[64]