Mercurial > libavformat.hg
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));