1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

OGG: untypedef demuxer structs

Originally committed as revision 15784 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Måns Rullgård 2008-11-06 01:50:56 +00:00
parent d00e8b83f1
commit 77be08eeb1
7 changed files with 83 additions and 83 deletions

View File

@ -37,7 +37,7 @@
#define MAX_PAGE_SIZE 65307 #define MAX_PAGE_SIZE 65307
#define DECODER_BUFFER_SIZE MAX_PAGE_SIZE #define DECODER_BUFFER_SIZE MAX_PAGE_SIZE
static const ogg_codec_t * const ogg_codecs[] = { static const struct ogg_codec * const ogg_codecs[] = {
&ff_speex_codec, &ff_speex_codec,
&ff_vorbis_codec, &ff_vorbis_codec,
&ff_theora_codec, &ff_theora_codec,
@ -54,8 +54,8 @@ static const ogg_codec_t * const ogg_codecs[] = {
static int static int
ogg_save (AVFormatContext * s) ogg_save (AVFormatContext * s)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_state_t *ost = struct ogg_state *ost =
av_malloc(sizeof (*ost) + (ogg->nstreams-1) * sizeof (*ogg->streams)); av_malloc(sizeof (*ost) + (ogg->nstreams-1) * sizeof (*ogg->streams));
int i; int i;
ost->pos = url_ftell (s->pb); ost->pos = url_ftell (s->pb);
@ -65,7 +65,7 @@ ogg_save (AVFormatContext * s)
memcpy(ost->streams, ogg->streams, ogg->nstreams * sizeof(*ogg->streams)); memcpy(ost->streams, ogg->streams, ogg->nstreams * sizeof(*ogg->streams));
for (i = 0; i < ogg->nstreams; i++){ for (i = 0; i < ogg->nstreams; i++){
ogg_stream_t *os = ogg->streams + i; struct ogg_stream *os = ogg->streams + i;
os->buf = av_malloc (os->bufsize); os->buf = av_malloc (os->bufsize);
memset (os->buf, 0, os->bufsize); memset (os->buf, 0, os->bufsize);
memcpy (os->buf, ost->streams[i].buf, os->bufpos); memcpy (os->buf, ost->streams[i].buf, os->bufpos);
@ -79,9 +79,9 @@ ogg_save (AVFormatContext * s)
static int static int
ogg_restore (AVFormatContext * s, int discard) ogg_restore (AVFormatContext * s, int discard)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ByteIOContext *bc = s->pb; ByteIOContext *bc = s->pb;
ogg_state_t *ost = ogg->state; struct ogg_state *ost = ogg->state;
int i; int i;
if (!ost) if (!ost)
@ -106,12 +106,12 @@ ogg_restore (AVFormatContext * s, int discard)
} }
static int static int
ogg_reset (ogg_t * ogg) ogg_reset (struct ogg * ogg)
{ {
int i; int i;
for (i = 0; i < ogg->nstreams; i++){ for (i = 0; i < ogg->nstreams; i++){
ogg_stream_t *os = ogg->streams + i; struct ogg_stream *os = ogg->streams + i;
os->bufpos = 0; os->bufpos = 0;
os->pstart = 0; os->pstart = 0;
os->psize = 0; os->psize = 0;
@ -126,7 +126,7 @@ ogg_reset (ogg_t * ogg)
return 0; return 0;
} }
static const ogg_codec_t * static const struct ogg_codec *
ogg_find_codec (uint8_t * buf, int size) ogg_find_codec (uint8_t * buf, int size)
{ {
int i; int i;
@ -140,7 +140,7 @@ ogg_find_codec (uint8_t * buf, int size)
} }
static int static int
ogg_find_stream (ogg_t * ogg, int serial) ogg_find_stream (struct ogg * ogg, int serial)
{ {
int i; int i;
@ -155,10 +155,10 @@ static int
ogg_new_stream (AVFormatContext * s, uint32_t serial) ogg_new_stream (AVFormatContext * s, uint32_t serial)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
int idx = ogg->nstreams++; int idx = ogg->nstreams++;
AVStream *st; AVStream *st;
ogg_stream_t *os; struct ogg_stream *os;
ogg->streams = av_realloc (ogg->streams, ogg->streams = av_realloc (ogg->streams,
ogg->nstreams * sizeof (*ogg->streams)); ogg->nstreams * sizeof (*ogg->streams));
@ -179,9 +179,9 @@ ogg_new_stream (AVFormatContext * s, uint32_t serial)
} }
static int static int
ogg_new_buf(ogg_t *ogg, int idx) ogg_new_buf(struct ogg *ogg, int idx)
{ {
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
uint8_t *nb = av_malloc(os->bufsize); uint8_t *nb = av_malloc(os->bufsize);
int size = os->bufpos - os->pstart; int size = os->bufpos - os->pstart;
if(os->buf){ if(os->buf){
@ -199,8 +199,8 @@ static int
ogg_read_page (AVFormatContext * s, int *str) ogg_read_page (AVFormatContext * s, int *str)
{ {
ByteIOContext *bc = s->pb; ByteIOContext *bc = s->pb;
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os; struct ogg_stream *os;
int i = 0; int i = 0;
int flags, nsegs; int flags, nsegs;
uint64_t gp; uint64_t gp;
@ -302,9 +302,9 @@ ogg_read_page (AVFormatContext * s, int *str)
static int static int
ogg_packet (AVFormatContext * s, int *str, int *dstart, int *dsize) ogg_packet (AVFormatContext * s, int *str, int *dstart, int *dsize)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
int idx; int idx;
ogg_stream_t *os; struct ogg_stream *os;
int complete = 0; int complete = 0;
int segp = 0, psize = 0; int segp = 0, psize = 0;
@ -402,7 +402,7 @@ ogg_packet (AVFormatContext * s, int *str, int *dstart, int *dsize)
static int static int
ogg_get_headers (AVFormatContext * s) ogg_get_headers (AVFormatContext * s)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
do{ do{
if (ogg_packet (s, NULL, NULL, NULL) < 0) if (ogg_packet (s, NULL, NULL, NULL) < 0)
@ -419,8 +419,8 @@ ogg_get_headers (AVFormatContext * s)
static uint64_t static uint64_t
ogg_gptopts (AVFormatContext * s, int i, uint64_t gp) ogg_gptopts (AVFormatContext * s, int i, uint64_t gp)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os = ogg->streams + i; struct ogg_stream *os = ogg->streams + i;
uint64_t pts = AV_NOPTS_VALUE; uint64_t pts = AV_NOPTS_VALUE;
if(os->codec->gptopts){ if(os->codec->gptopts){
@ -436,7 +436,7 @@ ogg_gptopts (AVFormatContext * s, int i, uint64_t gp)
static int static int
ogg_get_length (AVFormatContext * s) ogg_get_length (AVFormatContext * s)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
int idx = -1, i; int idx = -1, i;
int64_t size, end; int64_t size, end;
@ -476,7 +476,7 @@ ogg_get_length (AVFormatContext * s)
static int static int
ogg_read_header (AVFormatContext * s, AVFormatParameters * ap) ogg_read_header (AVFormatContext * s, AVFormatParameters * ap)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg->curidx = -1; ogg->curidx = -1;
//linear headers seek from start //linear headers seek from start
if (ogg_get_headers (s) < 0){ if (ogg_get_headers (s) < 0){
@ -494,8 +494,8 @@ ogg_read_header (AVFormatContext * s, AVFormatParameters * ap)
static int static int
ogg_read_packet (AVFormatContext * s, AVPacket * pkt) ogg_read_packet (AVFormatContext * s, AVPacket * pkt)
{ {
ogg_t *ogg; struct ogg *ogg;
ogg_stream_t *os; struct ogg_stream *os;
int idx = -1; int idx = -1;
int pstart, psize; int pstart, psize;
@ -527,7 +527,7 @@ ogg_read_packet (AVFormatContext * s, AVPacket * pkt)
static int static int
ogg_read_close (AVFormatContext * s) ogg_read_close (AVFormatContext * s)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
int i; int i;
for (i = 0; i < ogg->nstreams; i++){ for (i = 0; i < ogg->nstreams; i++){
@ -543,7 +543,7 @@ static int64_t
ogg_read_timestamp (AVFormatContext * s, int stream_index, int64_t * pos_arg, ogg_read_timestamp (AVFormatContext * s, int stream_index, int64_t * pos_arg,
int64_t pos_limit) int64_t pos_limit)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ByteIOContext *bc = s->pb; ByteIOContext *bc = s->pb;
int64_t pts = AV_NOPTS_VALUE; int64_t pts = AV_NOPTS_VALUE;
int i; int i;
@ -575,7 +575,7 @@ static int ogg_probe(AVProbeData *p)
AVInputFormat ogg_demuxer = { AVInputFormat ogg_demuxer = {
"ogg", "ogg",
NULL_IF_CONFIG_SMALL("Ogg"), NULL_IF_CONFIG_SMALL("Ogg"),
sizeof (ogg_t), sizeof (struct ogg),
ogg_probe, ogg_probe,
ogg_read_header, ogg_read_header,
ogg_read_packet, ogg_read_packet,

View File

@ -27,16 +27,16 @@
#include "avformat.h" #include "avformat.h"
typedef struct ogg_codec { struct ogg_codec {
const int8_t *magic; const int8_t *magic;
uint8_t magicsize; uint8_t magicsize;
const int8_t *name; const int8_t *name;
int (*header)(AVFormatContext *, int); int (*header)(AVFormatContext *, int);
int (*packet)(AVFormatContext *, int); int (*packet)(AVFormatContext *, int);
uint64_t (*gptopts)(AVFormatContext *, int, uint64_t); uint64_t (*gptopts)(AVFormatContext *, int, uint64_t);
} ogg_codec_t; };
typedef struct ogg_stream { struct ogg_stream {
uint8_t *buf; uint8_t *buf;
unsigned int bufsize; unsigned int bufsize;
unsigned int bufpos; unsigned int bufpos;
@ -47,43 +47,43 @@ typedef struct ogg_stream {
uint32_t seq; uint32_t seq;
uint64_t granule, lastgp; uint64_t granule, lastgp;
int flags; int flags;
ogg_codec_t *codec; struct ogg_codec *codec;
int header; int header;
int nsegs, segp; int nsegs, segp;
uint8_t segments[255]; uint8_t segments[255];
void *private; void *private;
} ogg_stream_t; };
typedef struct ogg_state { struct ogg_state {
uint64_t pos; uint64_t pos;
int curidx; int curidx;
struct ogg_state *next; struct ogg_state *next;
int nstreams; int nstreams;
ogg_stream_t streams[1]; struct ogg_stream streams[1];
} ogg_state_t; };
typedef struct ogg { struct ogg {
ogg_stream_t *streams; struct ogg_stream *streams;
int nstreams; int nstreams;
int headers; int headers;
int curidx; int curidx;
uint64_t size; uint64_t size;
ogg_state_t *state; struct ogg_state *state;
} ogg_t; };
#define OGG_FLAG_CONT 1 #define OGG_FLAG_CONT 1
#define OGG_FLAG_BOS 2 #define OGG_FLAG_BOS 2
#define OGG_FLAG_EOS 4 #define OGG_FLAG_EOS 4
extern const ogg_codec_t ff_flac_codec; extern const struct ogg_codec ff_flac_codec;
extern const ogg_codec_t ff_ogm_audio_codec; extern const struct ogg_codec ff_ogm_audio_codec;
extern const ogg_codec_t ff_ogm_old_codec; extern const struct ogg_codec ff_ogm_old_codec;
extern const ogg_codec_t ff_ogm_text_codec; extern const struct ogg_codec ff_ogm_text_codec;
extern const ogg_codec_t ff_ogm_video_codec; extern const struct ogg_codec ff_ogm_video_codec;
extern const ogg_codec_t ff_old_flac_codec; extern const struct ogg_codec ff_old_flac_codec;
extern const ogg_codec_t ff_speex_codec; extern const struct ogg_codec ff_speex_codec;
extern const ogg_codec_t ff_theora_codec; extern const struct ogg_codec ff_theora_codec;
extern const ogg_codec_t ff_vorbis_codec; extern const struct ogg_codec ff_vorbis_codec;
extern int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size); extern int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size);

View File

@ -28,8 +28,8 @@
static int static int
flac_header (AVFormatContext * s, int idx) flac_header (AVFormatContext * s, int idx)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
AVStream *st = s->streams[idx]; AVStream *st = s->streams[idx];
GetBitContext gb; GetBitContext gb;
int mdt; int mdt;
@ -85,13 +85,13 @@ old_flac_header (AVFormatContext * s, int idx)
return 0; return 0;
} }
const ogg_codec_t ff_flac_codec = { const struct ogg_codec ff_flac_codec = {
.magic = "\177FLAC", .magic = "\177FLAC",
.magicsize = 5, .magicsize = 5,
.header = flac_header .header = flac_header
}; };
const ogg_codec_t ff_old_flac_codec = { const struct ogg_codec ff_old_flac_codec = {
.magic = "fLaC", .magic = "fLaC",
.magicsize = 4, .magicsize = 4,
.header = old_flac_header .header = old_flac_header

View File

@ -33,8 +33,8 @@
static int static int
ogm_header(AVFormatContext *s, int idx) ogm_header(AVFormatContext *s, int idx)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
AVStream *st = s->streams[idx]; AVStream *st = s->streams[idx];
const uint8_t *p = os->buf + os->pstart; const uint8_t *p = os->buf + os->pstart;
uint64_t time_unit; uint64_t time_unit;
@ -100,8 +100,8 @@ ogm_header(AVFormatContext *s, int idx)
static int static int
ogm_dshow_header(AVFormatContext *s, int idx) ogm_dshow_header(AVFormatContext *s, int idx)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
AVStream *st = s->streams[idx]; AVStream *st = s->streams[idx];
uint8_t *p = os->buf + os->pstart; uint8_t *p = os->buf + os->pstart;
uint32_t t; uint32_t t;
@ -134,8 +134,8 @@ ogm_dshow_header(AVFormatContext *s, int idx)
static int static int
ogm_packet(AVFormatContext *s, int idx) ogm_packet(AVFormatContext *s, int idx)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
uint8_t *p = os->buf + os->pstart; uint8_t *p = os->buf + os->pstart;
int lb; int lb;
@ -149,28 +149,28 @@ ogm_packet(AVFormatContext *s, int idx)
return 0; return 0;
} }
const ogg_codec_t ff_ogm_video_codec = { const struct ogg_codec ff_ogm_video_codec = {
.magic = "\001video", .magic = "\001video",
.magicsize = 6, .magicsize = 6,
.header = ogm_header, .header = ogm_header,
.packet = ogm_packet .packet = ogm_packet
}; };
const ogg_codec_t ff_ogm_audio_codec = { const struct ogg_codec ff_ogm_audio_codec = {
.magic = "\001audio", .magic = "\001audio",
.magicsize = 6, .magicsize = 6,
.header = ogm_header, .header = ogm_header,
.packet = ogm_packet .packet = ogm_packet
}; };
const ogg_codec_t ff_ogm_text_codec = { const struct ogg_codec ff_ogm_text_codec = {
.magic = "\001text", .magic = "\001text",
.magicsize = 5, .magicsize = 5,
.header = ogm_header, .header = ogm_header,
.packet = ogm_packet .packet = ogm_packet
}; };
const ogg_codec_t ff_ogm_old_codec = { const struct ogg_codec ff_ogm_old_codec = {
.magic = "\001Direct Show Samples embedded in Ogg", .magic = "\001Direct Show Samples embedded in Ogg",
.magicsize = 35, .magicsize = 35,
.header = ogm_dshow_header, .header = ogm_dshow_header,

View File

@ -31,8 +31,8 @@
#include "oggdec.h" #include "oggdec.h"
static int speex_header(AVFormatContext *s, int idx) { static int speex_header(AVFormatContext *s, int idx) {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
AVStream *st = s->streams[idx]; AVStream *st = s->streams[idx];
uint8_t *p = os->buf + os->pstart; uint8_t *p = os->buf + os->pstart;
@ -54,7 +54,7 @@ static int speex_header(AVFormatContext *s, int idx) {
return 0; return 0;
} }
const ogg_codec_t ff_speex_codec = { const struct ogg_codec ff_speex_codec = {
.magic = "Speex ", .magic = "Speex ",
.magicsize = 8, .magicsize = 8,
.header = speex_header .header = speex_header

View File

@ -28,18 +28,18 @@
#include "avformat.h" #include "avformat.h"
#include "oggdec.h" #include "oggdec.h"
typedef struct theora_params { struct theora_params {
int gpshift; int gpshift;
int gpmask; int gpmask;
} theora_params_t; };
static int static int
theora_header (AVFormatContext * s, int idx) theora_header (AVFormatContext * s, int idx)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
AVStream *st = s->streams[idx]; AVStream *st = s->streams[idx];
theora_params_t *thp = os->private; struct theora_params *thp = os->private;
int cds = st->codec->extradata_size + os->psize + 2; int cds = st->codec->extradata_size + os->psize + 2;
uint8_t *cdp; uint8_t *cdp;
@ -119,9 +119,9 @@ theora_header (AVFormatContext * s, int idx)
static uint64_t static uint64_t
theora_gptopts(AVFormatContext *ctx, int idx, uint64_t gp) theora_gptopts(AVFormatContext *ctx, int idx, uint64_t gp)
{ {
ogg_t *ogg = ctx->priv_data; struct ogg *ogg = ctx->priv_data;
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
theora_params_t *thp = os->private; struct theora_params *thp = os->private;
uint64_t iframe = gp >> thp->gpshift; uint64_t iframe = gp >> thp->gpshift;
uint64_t pframe = gp & thp->gpmask; uint64_t pframe = gp & thp->gpmask;
@ -131,7 +131,7 @@ theora_gptopts(AVFormatContext *ctx, int idx, uint64_t gp)
return iframe + pframe; return iframe + pframe;
} }
const ogg_codec_t ff_theora_codec = { const struct ogg_codec ff_theora_codec = {
.magic = "\200theora", .magic = "\200theora",
.magicsize = 7, .magicsize = 7,
.header = theora_header, .header = theora_header,

View File

@ -122,14 +122,14 @@ vorbis_comment(AVFormatContext * as, uint8_t *buf, int size)
* [framing_flag] = read one bit | Not Used * [framing_flag] = read one bit | Not Used
* */ * */
typedef struct { struct oggvorbis_private {
unsigned int len[3]; unsigned int len[3];
unsigned char *packet[3]; unsigned char *packet[3];
} oggvorbis_private_t; };
static unsigned int static unsigned int
fixup_vorbis_headers(AVFormatContext * as, oggvorbis_private_t *priv, fixup_vorbis_headers(AVFormatContext * as, struct oggvorbis_private *priv,
uint8_t **buf) uint8_t **buf)
{ {
int i,offset, len; int i,offset, len;
@ -154,16 +154,16 @@ fixup_vorbis_headers(AVFormatContext * as, oggvorbis_private_t *priv,
static int static int
vorbis_header (AVFormatContext * s, int idx) vorbis_header (AVFormatContext * s, int idx)
{ {
ogg_t *ogg = s->priv_data; struct ogg *ogg = s->priv_data;
ogg_stream_t *os = ogg->streams + idx; struct ogg_stream *os = ogg->streams + idx;
AVStream *st = s->streams[idx]; AVStream *st = s->streams[idx];
oggvorbis_private_t *priv; struct oggvorbis_private *priv;
if (os->seq > 2) if (os->seq > 2)
return 0; return 0;
if (os->seq == 0) { if (os->seq == 0) {
os->private = av_mallocz(sizeof(oggvorbis_private_t)); os->private = av_mallocz(sizeof(struct oggvorbis_private));
if (!os->private) if (!os->private)
return 0; return 0;
} }
@ -219,7 +219,7 @@ vorbis_header (AVFormatContext * s, int idx)
return os->seq < 3; return os->seq < 3;
} }
const ogg_codec_t ff_vorbis_codec = { const struct ogg_codec ff_vorbis_codec = {
.magic = "\001vorbis", .magic = "\001vorbis",
.magicsize = 7, .magicsize = 7,
.header = vorbis_header .header = vorbis_header