Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
stenzek
GitHub Repository: stenzek/duckstation
Path: blob/master/dep/ffmpeg/include/libavcodec/vorbis_parser.h
4216 views
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
/**
20
* @file
21
* A public API for Vorbis parsing
22
*
23
* Determines the duration for each packet.
24
*/
25
26
#ifndef AVCODEC_VORBIS_PARSER_H
27
#define AVCODEC_VORBIS_PARSER_H
28
29
#include <stdint.h>
30
31
typedef struct AVVorbisParseContext AVVorbisParseContext;
32
33
/**
34
* Allocate and initialize the Vorbis parser using headers in the extradata.
35
*/
36
AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata,
37
int extradata_size);
38
39
/**
40
* Free the parser and everything associated with it.
41
*/
42
void av_vorbis_parse_free(AVVorbisParseContext **s);
43
44
#define VORBIS_FLAG_HEADER 0x00000001
45
#define VORBIS_FLAG_COMMENT 0x00000002
46
#define VORBIS_FLAG_SETUP 0x00000004
47
48
/**
49
* Get the duration for a Vorbis packet.
50
*
51
* If @p flags is @c NULL,
52
* special frames are considered invalid.
53
*
54
* @param s Vorbis parser context
55
* @param buf buffer containing a Vorbis frame
56
* @param buf_size size of the buffer
57
* @param flags flags for special frames
58
*/
59
int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf,
60
int buf_size, int *flags);
61
62
/**
63
* Get the duration for a Vorbis packet.
64
*
65
* @param s Vorbis parser context
66
* @param buf buffer containing a Vorbis frame
67
* @param buf_size size of the buffer
68
*/
69
int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf,
70
int buf_size);
71
72
void av_vorbis_parse_reset(AVVorbisParseContext *s);
73
74
#endif /* AVCODEC_VORBIS_PARSER_H */
75
76