FFmpeg
libavcodec
adts_header.h
Go to the documentation of this file.
1
/*
2
* AAC ADTS header decoding prototypes and structures
3
* Copyright (c) 2003 Fabrice Bellard
4
* Copyright (c) 2003 Michael Niedermayer
5
*
6
* This file is part of FFmpeg.
7
*
8
* FFmpeg is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License as published by the Free Software Foundation; either
11
* version 2.1 of the License, or (at your option) any later version.
12
*
13
* FFmpeg is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* Lesser General Public License for more details.
17
*
18
* You should have received a copy of the GNU Lesser General Public
19
* License along with FFmpeg; if not, write to the Free Software
20
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*/
22
23
#ifndef AVCODEC_ADTS_HEADER_H
24
#define AVCODEC_ADTS_HEADER_H
25
26
#include "
get_bits.h
"
27
28
typedef
struct
AACADTSHeaderInfo
{
29
uint32_t
sample_rate
;
30
uint32_t
samples
;
31
uint32_t
bit_rate
;
32
uint8_t
crc_absent
;
33
uint8_t
object_type
;
34
uint8_t
sampling_index
;
35
uint8_t
chan_config
;
36
uint8_t
num_aac_frames
;
37
uint32_t
frame_length
;
38
}
AACADTSHeaderInfo
;
39
40
/**
41
* Parse the ADTS frame header to the end of the variable header, which is
42
* the first 54 bits.
43
* @param[in] gbc BitContext containing the first 54 bits of the frame.
44
* @param[out] hdr Pointer to struct where header info is written.
45
* @return Returns 0 on success, -1 if there is a sync word mismatch,
46
* -2 if the version element is invalid, -3 if the sample rate
47
* element is invalid, or -4 if the bit rate element is invalid.
48
*/
49
int
ff_adts_header_parse
(
GetBitContext
*gbc,
AACADTSHeaderInfo
*hdr);
50
51
/**
52
* Parse the ADTS frame header contained in the buffer, which is
53
* the first 54 bits.
54
* @param[in] buf Pointer to buffer containing the first 54 bits of the frame.
55
* @param[in] size Size of buffer containing the first 54 bits of the frame.
56
* @param[out] phdr Pointer to pointer to struct AACADTSHeaderInfo for which
57
* memory is allocated and header info is written into it. After using the header
58
* information, the allocated memory must be freed by using av_free.
59
* @return Returns 0 on success, -1 if there is a sync word mismatch,
60
* -2 if the version element is invalid, -3 if the sample rate
61
* element is invalid, or -4 if the bit rate element is invalid.
62
*/
63
int
avpriv_adts_header_parse
(
AACADTSHeaderInfo
**phdr,
const
uint8_t *buf,
size_t
size
);
64
65
#endif
/* AVCODEC_ADTS_HEADER_H */
AACADTSHeaderInfo::samples
uint32_t samples
Definition:
adts_header.h:30
AACADTSHeaderInfo::bit_rate
uint32_t bit_rate
Definition:
adts_header.h:31
GetBitContext
Definition:
get_bits.h:107
ff_adts_header_parse
int ff_adts_header_parse(GetBitContext *gbc, AACADTSHeaderInfo *hdr)
Parse the ADTS frame header to the end of the variable header, which is the first 54 bits.
Definition:
adts_header.c:30
AACADTSHeaderInfo::chan_config
uint8_t chan_config
Definition:
adts_header.h:35
get_bits.h
AACADTSHeaderInfo::num_aac_frames
uint8_t num_aac_frames
Definition:
adts_header.h:36
AACADTSHeaderInfo::sampling_index
uint8_t sampling_index
Definition:
adts_header.h:34
AACADTSHeaderInfo::frame_length
uint32_t frame_length
Definition:
adts_header.h:37
avpriv_adts_header_parse
int avpriv_adts_header_parse(AACADTSHeaderInfo **phdr, const uint8_t *buf, size_t size)
Parse the ADTS frame header contained in the buffer, which is the first 54 bits.
Definition:
adts_parser.c:46
size
int size
Definition:
twinvq_data.h:10344
AACADTSHeaderInfo::object_type
uint8_t object_type
Definition:
adts_header.h:33
AACADTSHeaderInfo::sample_rate
uint32_t sample_rate
Definition:
adts_header.h:29
AACADTSHeaderInfo::crc_absent
uint8_t crc_absent
Definition:
adts_header.h:32
AACADTSHeaderInfo
Definition:
adts_header.h:28
Generated on Tue Feb 28 2023 21:33:07 for FFmpeg by
1.8.17