FFmpeg  4.0
adts_parser.c
Go to the documentation of this file.
1 /*
2  * This file is part of FFmpeg.
3  *
4  * FFmpeg is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * FFmpeg is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with FFmpeg; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #include "config.h"
20 
21 #include <stddef.h>
22 #include <stdint.h>
23 
24 #include "adts_header.h"
25 #include "adts_parser.h"
26 
27 int av_adts_header_parse(const uint8_t *buf, uint32_t *samples, uint8_t *frames)
28 {
29 #if CONFIG_ADTS_HEADER
30  GetBitContext gb;
32  int err = init_get_bits8(&gb, buf, AV_AAC_ADTS_HEADER_SIZE);
33  if (err < 0)
34  return err;
35  err = ff_adts_header_parse(&gb, &hdr);
36  if (err < 0)
37  return err;
38  *samples = hdr.samples;
39  *frames = hdr.num_aac_frames;
40  return 0;
41 #else
42  return AVERROR(ENOSYS);
43 #endif
44 }
int av_adts_header_parse(const uint8_t *buf, uint32_t *samples, uint8_t *frames)
Extract the number of samples and frames from AAC data.
Definition: adts_parser.c:27
uint8_t
#define AVERROR(e)
Definition: error.h:43
#define AV_AAC_ADTS_HEADER_SIZE
Definition: adts_parser.h:25
uint8_t num_aac_frames
Definition: adts_header.h:36
uint32_t samples
Definition: adts_header.h:30
int frames
Definition: movenc.c:65
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
static int init_get_bits8(GetBitContext *s, const uint8_t *buffer, int byte_size)
Initialize GetBitContext.
Definition: get_bits.h:464
void * buf
Definition: avisynth_c.h:690