#define AVFORMAT_OGGDEC_H
#include "avformat.h"
+#include "metadata.h"
struct ogg_codec {
const int8_t *magic;
int (*header)(AVFormatContext *, int);
int (*packet)(AVFormatContext *, int);
uint64_t (*gptopts)(AVFormatContext *, int, uint64_t);
+ /**
+ * 1 if granule is the start time of the associated packet.
+ * 0 if granule is the end time of the associated packet.
+ */
+ int granule_is_start;
};
struct ogg_stream {
unsigned int pstart;
unsigned int psize;
unsigned int pflags;
+ unsigned int pduration;
uint32_t serial;
uint32_t seq;
- uint64_t granule, lastgp;
+ uint64_t granule;
+ int64_t lastpts;
int flags;
- struct ogg_codec *codec;
+ const struct ogg_codec *codec;
int header;
int nsegs, segp;
uint8_t segments[255];
+ int page_end; ///< current packet is the last one completed in the page
void *private;
};
extern const struct ogg_codec ff_theora_codec;
extern const struct ogg_codec ff_vorbis_codec;
+extern const AVMetadataConv ff_vorbiscomment_metadata_conv[];
+
int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size);
#endif /* AVFORMAT_OGGDEC_H */