FFmpeg
1.2.4
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavformat
oggdec.h
Go to the documentation of this file.
1
25
#ifndef AVFORMAT_OGGDEC_H
26
#define AVFORMAT_OGGDEC_H
27
28
#include "
avformat.h
"
29
#include "
metadata.h
"
30
31
struct
ogg_codec
{
32
const
int8_t *
magic
;
33
uint8_t
magicsize
;
34
const
int8_t *
name
;
41
int (*
header
)(
AVFormatContext
*, int);
42
int (*
packet
)(
AVFormatContext
*, int);
48
uint64_t (*
gptopts
)(
AVFormatContext
*, int, uint64_t, int64_t *dts);
53
int
granule_is_start
;
57
int
nb_header
;
58
void
(*
cleanup
)(
AVFormatContext
*s,
int
idx);
59
};
60
61
struct
ogg_stream
{
62
uint8_t
*
buf
;
63
unsigned
int
bufsize
;
64
unsigned
int
bufpos
;
65
unsigned
int
pstart
;
66
unsigned
int
psize
;
67
unsigned
int
pflags
;
68
unsigned
int
pduration
;
69
uint32_t
serial
;
70
uint64_t
granule
;
71
uint64_t
start_granule
;
72
int64_t
lastpts
;
73
int64_t
lastdts
;
74
int64_t
sync_pos
;
75
int64_t
page_pos
;
76
int
flags
;
77
const
struct
ogg_codec
*
codec
;
78
int
header
;
79
int
nsegs
,
segp
;
80
uint8_t
segments
[255];
81
int
incomplete
;
82
int
page_end
;
83
int
keyframe_seek
;
84
int
got_start
;
85
int
got_data
;
86
int
nb_header
;
87
void
*
private
;
88
};
89
90
struct
ogg_state
{
91
uint64_t
pos
;
92
int
curidx
;
93
struct
ogg_state
*
next
;
94
int
nstreams
;
95
struct
ogg_stream
streams
[1];
96
};
97
98
struct
ogg
{
99
struct
ogg_stream
*
streams
;
100
int
nstreams
;
101
int
headers
;
102
int
curidx
;
103
int64_t
page_pos
;
104
struct
ogg_state
*
state
;
105
};
106
107
#define OGG_FLAG_CONT 1
108
#define OGG_FLAG_BOS 2
109
#define OGG_FLAG_EOS 4
110
111
#define OGG_NOGRANULE_VALUE (-1ull)
112
113
extern
const
struct
ogg_codec
ff_celt_codec
;
114
extern
const
struct
ogg_codec
ff_dirac_codec
;
115
extern
const
struct
ogg_codec
ff_flac_codec
;
116
extern
const
struct
ogg_codec
ff_ogm_audio_codec
;
117
extern
const
struct
ogg_codec
ff_ogm_old_codec
;
118
extern
const
struct
ogg_codec
ff_ogm_text_codec
;
119
extern
const
struct
ogg_codec
ff_ogm_video_codec
;
120
extern
const
struct
ogg_codec
ff_old_dirac_codec
;
121
extern
const
struct
ogg_codec
ff_old_flac_codec
;
122
extern
const
struct
ogg_codec
ff_opus_codec
;
123
extern
const
struct
ogg_codec
ff_skeleton_codec
;
124
extern
const
struct
ogg_codec
ff_speex_codec
;
125
extern
const
struct
ogg_codec
ff_theora_codec
;
126
extern
const
struct
ogg_codec
ff_vorbis_codec
;
127
128
int
ff_vorbis_comment
(
AVFormatContext
*ms,
AVDictionary
**
m
,
const
uint8_t
*buf,
int
size
);
129
130
static
inline
int
131
ogg_find_stream
(
struct
ogg
*
ogg
,
int
serial)
132
{
133
int
i;
134
135
for
(i = 0; i < ogg->
nstreams
; i++)
136
if
(ogg->
streams
[i].
serial
== serial)
137
return
i;
138
139
return
-1;
140
}
141
142
static
inline
uint64_t
143
ogg_gptopts
(
AVFormatContext
* s,
int
i, uint64_t
gp
, int64_t *dts)
144
{
145
struct
ogg
*
ogg
= s->
priv_data
;
146
struct
ogg_stream
*os = ogg->
streams
+ i;
147
uint64_t pts =
AV_NOPTS_VALUE
;
148
149
if
(os->
codec
&& os->
codec
->
gptopts
){
150
pts = os->
codec
->
gptopts
(s, i, gp, dts);
151
}
else
{
152
pts =
gp
;
153
if
(dts)
154
*dts = pts;
155
}
156
157
return
pts;
158
}
159
160
#endif
/* AVFORMAT_OGGDEC_H */
Generated on Fri Nov 29 2013 19:15:19 for FFmpeg by
1.8.1.2