diff aviobuf.c @ 6246:79fc252c65cd libavformat

move ff_get_v_length and ff_put_v from nutenc.c to internal.h/aviobuf.c patch by Micheal Chinen < mchinen gmail >
author janne
date Fri, 09 Jul 2010 12:14:33 +0000
parents 2842c3ff0e37
children 6eead40d46a7
line wrap: on
line diff
--- a/aviobuf.c	Fri Jul 09 12:10:47 2010 +0000
+++ b/aviobuf.c	Fri Jul 09 12:14:33 2010 +0000
@@ -23,6 +23,7 @@
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
 #include "avio.h"
+#include "internal.h"
 #include <stdarg.h>
 
 #define IO_BUFFER_SIZE 32768
@@ -248,6 +249,24 @@
         put_byte(s, 0);
 }
 
+int ff_get_v_length(uint64_t val){
+    int i=1;
+
+    while(val>>=7)
+        i++;
+
+    return i;
+}
+
+void ff_put_v(ByteIOContext *bc, uint64_t val){
+    int i= ff_get_v_length(val);
+
+    while(--i>0)
+        put_byte(bc, 128 | (val>>(7*i)));
+
+    put_byte(bc, val&127);
+}
+
 void put_le64(ByteIOContext *s, uint64_t val)
 {
     put_le32(s, (uint32_t)(val & 0xffffffff));