|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef AVCODEC_AAC_AC3_PARSER_H |
|
#define AVCODEC_AAC_AC3_PARSER_H |
|
|
|
#include <stdint.h> |
|
#include "libavutil/crc.h" |
|
#include "avcodec.h" |
|
#include "parser.h" |
|
|
|
typedef enum { |
|
AAC_AC3_PARSE_ERROR_SYNC = -0x1030c0a, |
|
AAC_AC3_PARSE_ERROR_BSID = -0x2030c0a, |
|
AAC_AC3_PARSE_ERROR_SAMPLE_RATE = -0x3030c0a, |
|
AAC_AC3_PARSE_ERROR_FRAME_SIZE = -0x4030c0a, |
|
AAC_AC3_PARSE_ERROR_FRAME_TYPE = -0x5030c0a, |
|
AAC_AC3_PARSE_ERROR_CRC = -0x6030c0a, |
|
AAC_AC3_PARSE_ERROR_CHANNEL_CFG = -0x7030c0a, |
|
} AACAC3ParseError; |
|
|
|
typedef struct AACAC3ParseContext { |
|
ParseContext pc; |
|
int header_size; |
|
int (*sync)(uint64_t state, int *need_next_header, int *new_frame_start); |
|
|
|
const AVCRC *crc_ctx; |
|
int remaining_size; |
|
uint64_t state; |
|
|
|
int need_next_header; |
|
int frame_number; |
|
} AACAC3ParseContext; |
|
|
|
int ff_aac_ac3_parse(AVCodecParserContext *s1, |
|
AVCodecContext *avctx, |
|
const uint8_t **poutbuf, int *poutbuf_size, |
|
const uint8_t *buf, int buf_size); |
|
|
|
#endif |
|
|