• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

libavcodec/aac_ac3_parser.h

Go to the documentation of this file.
00001 /*
00002  * Common AAC and AC-3 parser prototypes
00003  * Copyright (c) 2003 Fabrice Bellard
00004  * Copyright (c) 2003 Michael Niedermayer
00005  *
00006  * This file is part of FFmpeg.
00007  *
00008  * FFmpeg is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public
00010  * License as published by the Free Software Foundation; either
00011  * version 2.1 of the License, or (at your option) any later version.
00012  *
00013  * FFmpeg is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with FFmpeg; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00021  */
00022 
00023 #ifndef AVCODEC_AAC_AC3_PARSER_H
00024 #define AVCODEC_AAC_AC3_PARSER_H
00025 
00026 #include <stdint.h>
00027 #include "avcodec.h"
00028 #include "parser.h"
00029 
00030 typedef enum {
00031     AAC_AC3_PARSE_ERROR_SYNC        = -1,
00032     AAC_AC3_PARSE_ERROR_BSID        = -2,
00033     AAC_AC3_PARSE_ERROR_SAMPLE_RATE = -3,
00034     AAC_AC3_PARSE_ERROR_FRAME_SIZE  = -4,
00035     AAC_AC3_PARSE_ERROR_FRAME_TYPE  = -5,
00036     AAC_AC3_PARSE_ERROR_CRC         = -6,
00037     AAC_AC3_PARSE_ERROR_CHANNEL_CFG = -7,
00038 } AACAC3ParseError;
00039 
00040 typedef struct AACAC3ParseContext {
00041     ParseContext pc;
00042     int frame_size;
00043     int header_size;
00044     int (*sync)(uint64_t state, struct AACAC3ParseContext *hdr_info,
00045             int *need_next_header, int *new_frame_start);
00046 
00047     int channels;
00048     int sample_rate;
00049     int bit_rate;
00050     int samples;
00051     int64_t channel_layout;
00052 
00053     int remaining_size;
00054     uint64_t state;
00055 
00056     int need_next_header;
00057     enum CodecID codec_id;
00058 } AACAC3ParseContext;
00059 
00060 int ff_aac_ac3_parse(AVCodecParserContext *s1,
00061                      AVCodecContext *avctx,
00062                      const uint8_t **poutbuf, int *poutbuf_size,
00063                      const uint8_t *buf, int buf_size);
00064 
00065 #endif /* AVCODEC_AAC_AC3_PARSER_H */

Generated on Fri Sep 16 2011 17:17:32 for FFmpeg by  doxygen 1.7.1