mirror of https://github.com/FFmpeg/FFmpeg.git
This makes the currently semi-public avpriv_aac_parse_header() function private to libavcodec and adds a proper public API function to return the parts of the ADTS header required in libavformat.pull/272/head
parent
0ac1fec1c3
commit
b5f19f7478
12 changed files with 139 additions and 50 deletions
@ -0,0 +1,44 @@ |
||||
/*
|
||||
* This file is part of Libav. |
||||
* |
||||
* Libav is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU Lesser General Public |
||||
* License as published by the Free Software Foundation; either |
||||
* version 2.1 of the License, or (at your option) any later version. |
||||
* |
||||
* Libav is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||||
* Lesser General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Lesser General Public |
||||
* License along with Libav; if not, write to the Free Software |
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
||||
*/ |
||||
|
||||
#include "config.h" |
||||
|
||||
#include <stddef.h> |
||||
#include <stdint.h> |
||||
|
||||
#include "adts_header.h" |
||||
#include "adts_parser.h" |
||||
|
||||
int av_adts_header_parse(const uint8_t *buf, uint32_t *samples, uint8_t *frames) |
||||
{ |
||||
#if CONFIG_ADTS_HEADER |
||||
GetBitContext gb; |
||||
AACADTSHeaderInfo hdr; |
||||
int err = init_get_bits8(&gb, buf, AV_AAC_ADTS_HEADER_SIZE); |
||||
if (err < 0) |
||||
return err; |
||||
err = ff_adts_header_parse(&gb, &hdr); |
||||
if (err < 0) |
||||
return err; |
||||
*samples = hdr.samples; |
||||
*frames = hdr.num_aac_frames; |
||||
return 0; |
||||
#else |
||||
return AVERROR(ENOSYS); |
||||
#endif |
||||
} |
@ -0,0 +1,37 @@ |
||||
/*
|
||||
* This file is part of Libav. |
||||
* |
||||
* Libav is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU Lesser General Public |
||||
* License as published by the Free Software Foundation; either |
||||
* version 2.1 of the License, or (at your option) any later version. |
||||
* |
||||
* Libav is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||||
* Lesser General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Lesser General Public |
||||
* License along with Libav; if not, write to the Free Software |
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
||||
*/ |
||||
|
||||
#ifndef AVCODEC_ADTS_PARSER_H |
||||
#define AVCODEC_ADTS_PARSER_H |
||||
|
||||
#include <stddef.h> |
||||
#include <stdint.h> |
||||
|
||||
#define AV_AAC_ADTS_HEADER_SIZE 7 |
||||
|
||||
/**
|
||||
* Extract the number of samples and frames from AAC data. |
||||
* @param[in] buf pointer to AAC data buffer |
||||
* @param[out] samples Pointer to where number of samples is written |
||||
* @param[out] frames Pointer to where number of frames is written |
||||
* @return Returns 0 on success, error code on failure. |
||||
*/ |
||||
int av_adts_header_parse(const uint8_t *buf, uint32_t *samples, |
||||
uint8_t *frames); |
||||
|
||||
#endif /* AVCODEC_ADTS_PARSER_H */ |
Loading…
Reference in new issue