diff aviobuf.c @ 6209:71862ed5b874 libavformat

Pad the buffer in url_close_dyn_buf, for buffers opened with url_open_dyn_buf Patch by Josh Allmann, joshua dot allmann at gmail
author mstorsjo
date Thu, 01 Jul 2010 20:15:49 +0000
parents 6eada15742a7
children 2842c3ff0e37
line wrap: on
line diff
--- a/aviobuf.c	Thu Jul 01 20:12:58 2010 +0000
+++ b/aviobuf.c	Thu Jul 01 20:15:49 2010 +0000
@@ -894,6 +894,14 @@
 {
     DynBuffer *d = s->opaque;
     int size;
+    static const char padbuf[FF_INPUT_BUFFER_PADDING_SIZE] = {0};
+    int padding = 0;
+
+    /* don't attempt to pad fixed-size packet buffers */
+    if (!s->max_packet_size) {
+        put_buffer(s, padbuf, sizeof(padbuf));
+        padding = FF_INPUT_BUFFER_PADDING_SIZE;
+    }
 
     put_flush_packet(s);
 
@@ -901,6 +909,6 @@
     size = d->size;
     av_free(d);
     av_free(s);
-    return size;
+    return size - padding;
 }
 #endif /* CONFIG_MUXERS || CONFIG_NETWORK */