Merge branch 't/oggdec_cleanups'
[paraslash.git] / ogg_afh.c
index 2837db61c7de43a732564c8d46fec14ef6b4331e..46c7b084c0ba7b8aaf22683ba5897f94532f9db2 100644 (file)
--- a/ogg_afh.c
+++ b/ogg_afh.c
@@ -116,8 +116,8 @@ static int vorbis_get_header_callback(ogg_packet *packet, int packet_num,
                return 1;
        }
        if (packet_num == 1) {
-               PARA_INFO_LOG("replacing metadata packet\n");
                ogg_packet replacement = *packet;
+               PARA_INFO_LOG("replacing metadata packet\n");
                replacement.packet = dummy_packet;
                replacement.bytes = sizeof(dummy_packet);
                ret = ogg_stream_packetin(&vghd->os, &replacement);
@@ -129,10 +129,8 @@ static int vorbis_get_header_callback(ogg_packet *packet, int packet_num,
        ret = -E_OGG_PACKET_IN;
        if (ogg_stream_packetin(&vghd->os, packet) < 0)
                goto out;
-       ret = -E_OGG_STREAM_FLUSH;
-       if (ogg_stream_flush(&vghd->os, &og) == 0)
-               goto out;
-       add_ogg_page(&og, vghd);
+       while (ogg_stream_flush(&vghd->os, &og))
+               add_ogg_page(&og, vghd);
        ret = 0;
 out:
        ogg_stream_clear(&vghd->os);