]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/parser.h
make some parser parameters const to avoid casting const to non-const
[ffmpeg] / libavcodec / parser.h
index 9452a096c097b14b1a0590d62d2fa7e00251f76c..baa2c6363f51d84e71001724015c8c1e4eab8b06 100644 (file)
@@ -23,6 +23,9 @@
 #ifndef FFMPEG_PARSER_H
 #define FFMPEG_PARSER_H
 
+#include "avcodec.h"
+#include "ac3.h"
+
 typedef struct ParseContext{
     uint8_t *buffer;
     int index;
@@ -51,7 +54,7 @@ typedef struct ParseContext1{
 
 #define END_NOT_FOUND (-100)
 
-int ff_combine_frame(ParseContext *pc, int next, uint8_t **buf, int *buf_size);
+int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_size);
 int ff_mpeg4video_split(AVCodecContext *avctx, const uint8_t *buf,
                         int buf_size);
 void ff_parse_close(AVCodecParserContext *s);
@@ -60,4 +63,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 */