]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/vorbis_parser.h
qtrle: Properly use AVFrame API
[ffmpeg] / libavcodec / vorbis_parser.h
index 480a918f7b86cb3e2a6759ef04942fddeeaf6552..9ae1630f9f0281bfebdc82a66f6b3538e5aaa207 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * Copyright (c) 2012 Justin Ruggles
  *
  * This file is part of Libav.
  *
 
 /**
  * @file
- * Vorbis audio parser
+ * A public API for Vorbis parsing
  *
  * Determines the duration for each packet.
  */
 
-#ifndef AVCODEC_VORBIS_PARSER_H
-#define AVCODEC_VORBIS_PARSER_H
+#ifndef AVCODEC_VORBIS_PARSE_H
+#define AVCODEC_VORBIS_PARSE_H
 
-#include "avcodec.h"
+#include <stdint.h>
 
-typedef struct VorbisParseContext {
-    AVCodecContext *avctx;      ///< codec context
-    int extradata_parsed;       ///< we have attempted to parse extradata
-    int valid_extradata;        ///< extradata is valid, so we can calculate duration
-    int blocksize[2];           ///< short and long window sizes
-    int previous_blocksize;     ///< previous window size
-    int mode_blocksize[64];     ///< window size mapping for each mode
-    int mode_count;             ///< number of modes
-    int mode_mask;              ///< bitmask used to get the mode in each packet
-    int prev_mask;              ///< bitmask used to get the previous mode flag in each packet
-} VorbisParseContext;
+typedef struct AVVorbisParseContext AVVorbisParseContext;
 
 /**
- * Initialize the Vorbis parser using headers in the extradata.
+ * Allocate and initialize the Vorbis parser using headers in the extradata.
  *
  * @param avctx codec context
  * @param s     Vorbis parser context
  */
-int avpriv_vorbis_parse_extradata(AVCodecContext *avctx, VorbisParseContext *s);
+AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata,
+                                           int extradata_size);
+
+/**
+ * Free the parser and everything associated with it.
+ */
+void av_vorbis_parse_free(AVVorbisParseContext **s);
 
 /**
  * Get the duration for a Vorbis packet.
  *
- * avpriv_vorbis_parse_extradata() must have been successfully called prior to
- * this in order for a correct duration to be returned.
- *
  * @param s        Vorbis parser context
  * @param buf      buffer containing a Vorbis frame
  * @param buf_size size of the buffer
  */
-int avpriv_vorbis_parse_frame(VorbisParseContext *s, const uint8_t *buf,
-                              int buf_size);
+int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf,
+                          int buf_size);
 
-void avpriv_vorbis_parse_reset(VorbisParseContext *s);
+void av_vorbis_parse_reset(AVVorbisParseContext *s);
 
-#endif /* AVCODEC_VORBIS_PARSER_H */
+#endif /* AVCODEC_VORBIS_PARSE_H */