save/restore number of streams
authorMåns Rullgård <mans@mansr.com>
Mon, 15 Jan 2007 22:05:22 +0000 (22:05 +0000)
committerMåns Rullgård <mans@mansr.com>
Mon, 15 Jan 2007 22:05:22 +0000 (22:05 +0000)
Originally committed as revision 7535 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/ogg2.c
libavformat/ogg2.h

index 1e5d386..d630d4a 100644 (file)
@@ -90,6 +90,7 @@ ogg_save (AVFormatContext * s)
     ost->pos = url_ftell (&s->pb);;
     ost->curidx = ogg->curidx;
     ost->next = ogg->state;
+    ost->nstreams = ogg->nstreams;
     memcpy(ost->streams, ogg->streams, ogg->nstreams * sizeof(*ogg->streams));
 
     for (i = 0; i < ogg->nstreams; i++){
@@ -123,8 +124,9 @@ ogg_restore (AVFormatContext * s, int discard)
 
         url_fseek (bc, ost->pos, SEEK_SET);
         ogg->curidx = ost->curidx;
-        memcpy (ogg->streams, ost->streams,
-        ogg->nstreams * sizeof (*ogg->streams));
+        ogg->nstreams = ost->nstreams;
+        memcpy(ogg->streams, ost->streams,
+               ost->nstreams * sizeof(*ogg->streams));
     }
 
     av_free (ost);
index dd6f24a..6b7c6b2 100644 (file)
@@ -57,6 +57,7 @@ typedef struct ogg_state {
     uint64_t pos;
     int curidx;
     struct ogg_state *next;
+    int nstreams;
     ogg_stream_t streams[1];
 } ogg_state_t;