annotate aacsbr.h @ 12530:63edd10ad4bc libavcodec tip

Try to fix crashes introduced by r25218 r25218 made assumptions about the existence of past reference frames that weren't necessarily true.
author darkshikari
date Tue, 28 Sep 2010 09:06:22 +0000
parents 6818ea5a25a2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11401
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
1 /*
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
2 * AAC Spectral Band Replication function declarations
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
3 * Copyright (c) 2008-2009 Robert Swain ( rob opendot cl )
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
4 * Copyright (c) 2010 Alex Converse <alex.converse@gmail.com>
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
5 *
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
6 * This file is part of FFmpeg.
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
7 *
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
8 * FFmpeg is free software; you can redistribute it and/or
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
10 * License as published by the Free Software Foundation; either
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
11 * version 2.1 of the License, or (at your option) any later version.
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
12 *
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
13 * FFmpeg is distributed in the hope that it will be useful,
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
16 * Lesser General Public License for more details.
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
17 *
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
18 * You should have received a copy of the GNU Lesser General Public
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
19 * License along with FFmpeg; if not, write to the Free Software
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
21 */
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
22
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
23 /**
11644
7dd2a45249a9 Remove explicit filename from Doxygen @file commands.
diego
parents: 11401
diff changeset
24 * @file
11401
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
25 * AAC Spectral Band Replication function declarations
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
26 * @author Robert Swain ( rob opendot cl )
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
27 */
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
28
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
29 #ifndef AVCODEC_AACSBR_H
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
30 #define AVCODEC_AACSBR_H
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
31
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
32 #include "get_bits.h"
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
33 #include "aac.h"
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
34 #include "sbr.h"
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
35
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
36 /** Initialize SBR. */
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
37 av_cold void ff_aac_sbr_init(void);
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
38 /** Initialize one SBR context. */
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
39 av_cold void ff_aac_sbr_ctx_init(SpectralBandReplication *sbr);
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
40 /** Close one SBR context. */
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
41 av_cold void ff_aac_sbr_ctx_close(SpectralBandReplication *sbr);
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
42 /** Decode one SBR element. */
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
43 int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
44 GetBitContext *gb, int crc, int cnt, int id_aac);
11667
6818ea5a25a2 Rewrite ff_sbr_apply in a manner more friendly to PS.
alexc
parents: 11644
diff changeset
45 /** Apply one SBR element to one AAC element. */
6818ea5a25a2 Rewrite ff_sbr_apply in a manner more friendly to PS.
alexc
parents: 11644
diff changeset
46 void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac,
6818ea5a25a2 Rewrite ff_sbr_apply in a manner more friendly to PS.
alexc
parents: 11644
diff changeset
47 float* L, float *R);
11401
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
48
e340262ba532 Add an HE-AAC v1 decoder.
alexc
parents:
diff changeset
49 #endif /* AVCODEC_AACSBR_H */