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);
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;
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)