Mercurial > libavformat.hg
comparison ogg2.c @ 1657:a472266b5d39 libavformat
save/restore number of streams
author | mru |
---|---|
date | Mon, 15 Jan 2007 22:05:22 +0000 |
parents | 21755fe31dd7 |
children | 2400a22af998 |
comparison
equal
deleted
inserted
replaced
1656:184229324f14 | 1657:a472266b5d39 |
---|---|
88 av_malloc(sizeof (*ost) + (ogg->nstreams-1) * sizeof (*ogg->streams)); | 88 av_malloc(sizeof (*ost) + (ogg->nstreams-1) * sizeof (*ogg->streams)); |
89 int i; | 89 int i; |
90 ost->pos = url_ftell (&s->pb);; | 90 ost->pos = url_ftell (&s->pb);; |
91 ost->curidx = ogg->curidx; | 91 ost->curidx = ogg->curidx; |
92 ost->next = ogg->state; | 92 ost->next = ogg->state; |
93 ost->nstreams = ogg->nstreams; | |
93 memcpy(ost->streams, ogg->streams, ogg->nstreams * sizeof(*ogg->streams)); | 94 memcpy(ost->streams, ogg->streams, ogg->nstreams * sizeof(*ogg->streams)); |
94 | 95 |
95 for (i = 0; i < ogg->nstreams; i++){ | 96 for (i = 0; i < ogg->nstreams; i++){ |
96 ogg_stream_t *os = ogg->streams + i; | 97 ogg_stream_t *os = ogg->streams + i; |
97 os->buf = av_malloc (os->bufsize); | 98 os->buf = av_malloc (os->bufsize); |
121 for (i = 0; i < ogg->nstreams; i++) | 122 for (i = 0; i < ogg->nstreams; i++) |
122 av_free (ogg->streams[i].buf); | 123 av_free (ogg->streams[i].buf); |
123 | 124 |
124 url_fseek (bc, ost->pos, SEEK_SET); | 125 url_fseek (bc, ost->pos, SEEK_SET); |
125 ogg->curidx = ost->curidx; | 126 ogg->curidx = ost->curidx; |
126 memcpy (ogg->streams, ost->streams, | 127 ogg->nstreams = ost->nstreams; |
127 ogg->nstreams * sizeof (*ogg->streams)); | 128 memcpy(ogg->streams, ost->streams, |
129 ost->nstreams * sizeof(*ogg->streams)); | |
128 } | 130 } |
129 | 131 |
130 av_free (ost); | 132 av_free (ost); |
131 | 133 |
132 return 0; | 134 return 0; |