summaryrefslogtreecommitdiff
path: root/libavcodec/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/parser.h')
-rw-r--r--libavcodec/parser.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libavcodec/parser.h b/libavcodec/parser.h
index 9452a096c0..80a6007e80 100644
--- a/libavcodec/parser.h
+++ b/libavcodec/parser.h
@@ -23,6 +23,8 @@
#ifndef FFMPEG_PARSER_H
#define FFMPEG_PARSER_H
+#include "ac3.h"
+
typedef struct ParseContext{
uint8_t *buffer;
int index;
@@ -60,4 +62,16 @@ void ff_parse1_close(AVCodecParserContext *s);
/* h263dec.c */
int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size);
+/**
+ * Parses AC-3 frame header.
+ * Parses the header up to the lfeon element, which is the first 52 or 54 bits
+ * depending on the audio coding mode.
+ * @param buf[in] Array containing the first 7 bytes of the frame.
+ * @param hdr[out] Pointer to struct where header info is written.
+ * @return Returns 0 on success, -1 if there is a sync word mismatch,
+ * -2 if the bsid (version) element is invalid, -3 if the fscod (sample rate)
+ * element is invalid, or -4 if the frmsizecod (bit rate) element is invalid.
+ */
+int ff_ac3_parse_header(const uint8_t buf[7], AC3HeaderInfo *hdr);
+
#endif /* !FFMPEG_PARSER_H */