diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index d97ffd5e62..9f1187efe7 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -23,6 +23,7 @@ #include "libavutil/intreadwrite.h" #include "avformat.h" #include "avio.h" +#include "internal.h" #include #define IO_BUFFER_SIZE 32768 @@ -248,6 +249,24 @@ void put_strz(ByteIOContext *s, const char *str) 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)); diff --git a/libavformat/internal.h b/libavformat/internal.h index 6ff28d3fad..9b68e9e49d 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -157,4 +157,14 @@ void ff_sdp_write_media(char *buff, int size, AVCodecContext *c, int ff_write_chained(AVFormatContext *dst, int dst_stream, AVPacket *pkt, AVFormatContext *src); +/** + * Get the length in bytes which is needed to store val as v. + */ +int ff_get_v_length(uint64_t val); + +/** + * Put val using a variable number of bytes. + */ +void ff_put_v(ByteIOContext *bc, uint64_t val); + #endif /* AVFORMAT_INTERNAL_H */ diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c index 082d6d5ecc..87a7900b4b 100644 --- a/libavformat/nutenc.c +++ b/libavformat/nutenc.c @@ -241,27 +241,6 @@ static void build_frame_code(AVFormatContext *s){ nut->frame_code['N'].flags= FLAG_INVALID; } -/** - * Get the length in bytes which is needed to store val as v. - */ -static int ff_get_v_length(uint64_t val){ - int i=1; - - while(val>>=7) - i++; - - return i; -} - -static 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); -} - static void put_tt(NUTContext *nut, StreamContext *nus, ByteIOContext *bc, uint64_t val){ val *= nut->time_base_count; val += nus->time_base - nut->time_base;