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;