]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/oggenc.c
Merge commit '41776ba9c0ebbb71394cefdf7dd1b243e6c852d5'
[ffmpeg] / libavformat / oggenc.c
index 375abadd445bfd96833c591b9b2533ed67ed6f57..bec3917a219ef3aaa38bdb0fafe027558df2aaa3 100644 (file)
@@ -277,18 +277,17 @@ static uint8_t *ogg_write_vorbiscomment(int offset, int bitexact,
     const char *vendor = bitexact ? "ffmpeg" : LIBAVFORMAT_IDENT;
     int size;
     uint8_t *p, *p0;
-    unsigned int count;
 
     ff_metadata_conv(m, ff_vorbiscomment_metadata_conv, NULL);
 
-    size = offset + ff_vorbiscomment_length(*m, vendor, &count) + framing_bit;
+    size = offset + ff_vorbiscomment_length(*m, vendor) + framing_bit;
     p = av_mallocz(size);
     if (!p)
         return NULL;
     p0 = p;
 
     p += offset;
-    ff_vorbiscomment_write(&p, m, vendor, count);
+    ff_vorbiscomment_write(&p, m, vendor);
     if (framing_bit)
         bytestream_put_byte(&p, 1);
 
@@ -392,6 +391,28 @@ static int ogg_build_opus_headers(AVCodecContext *avctx,
     return 0;
 }
 
+static void ogg_write_pages(AVFormatContext *s, int flush)
+{
+    OGGContext *ogg = s->priv_data;
+    OGGPageList *next, *p;
+
+    if (!ogg->page_list)
+        return;
+
+    for (p = ogg->page_list; p; ) {
+        OGGStreamContext *oggstream =
+            s->streams[p->page.stream_index]->priv_data;
+        if (oggstream->page_count < 2 && !flush)
+            break;
+        ogg_write_page(s, &p->page,
+                       flush == 1 && oggstream->page_count == 1 ? 4 : 0); // eos
+        next = p->next;
+        av_freep(&p);
+        p = next;
+    }
+    ogg->page_list = p;
+}
+
 static int ogg_write_header(AVFormatContext *s)
 {
     OGGContext *ogg = s->priv_data;
@@ -528,29 +549,9 @@ static int ogg_write_header(AVFormatContext *s)
 
     oggstream->page.start_granule = AV_NOPTS_VALUE;
 
-    return 0;
-}
-
-static void ogg_write_pages(AVFormatContext *s, int flush)
-{
-    OGGContext *ogg = s->priv_data;
-    OGGPageList *next, *p;
+    ogg_write_pages(s, 2);
 
-    if (!ogg->page_list)
-        return;
-
-    for (p = ogg->page_list; p; ) {
-        OGGStreamContext *oggstream =
-            s->streams[p->page.stream_index]->priv_data;
-        if (oggstream->page_count < 2 && !flush)
-            break;
-        ogg_write_page(s, &p->page,
-                       flush && oggstream->page_count == 1 ? 4 : 0); // eos
-        next = p->next;
-        av_freep(&p);
-        p = next;
-    }
-    ogg->page_list = p;
+    return 0;
 }
 
 static int ogg_write_packet(AVFormatContext *s, AVPacket *pkt)