[FFmpeg-soc] [soc]: r5844 - seek2010/moving_put_v_r23893.patch
mchinen
subversion at mplayerhq.hu
Wed Jun 30 02:35:26 CEST 2010
Author: mchinen
Date: Wed Jun 30 02:35:26 2010
New Revision: 5844
Log:
Moving put_v and get_length (which put_v uses) to aviobuf.c and avio.h as public functions.
put_v used to be static in nutenc.c, but it is a general purpose tool that can be useful for saving the index table to a file.
get_length is also made public because it is used within nutenc.c as well.
Unlike my previous patch commits, I hope this one can be reviewed and commited soon since it is independent of seeking api changes.
Patch is against most current revision (23893)
Added:
seek2010/moving_put_v_r23893.patch
Added: seek2010/moving_put_v_r23893.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ seek2010/moving_put_v_r23893.patch Wed Jun 30 02:35:26 2010 (r5844)
@@ -0,0 +1,83 @@
+Index: libavformat/avio.h
+===================================================================
+--- libavformat/avio.h (revision 23893)
++++ libavformat/avio.h (working copy)
+@@ -348,8 +348,12 @@
+ void put_tag(ByteIOContext *s, const char *tag);
+
+ void put_strz(ByteIOContext *s, const char *buf);
+-
++void put_v(ByteIOContext *bc, uint64_t val);
+ /**
++ * Gets the length in bytes which is needed to store val as v.
++ */
++int get_length(uint64_t val);
++/**
+ * fseek() equivalent for ByteIOContext.
+ * @return new position or AVERROR.
+ */
+Index: libavformat/aviobuf.c
+===================================================================
+--- libavformat/aviobuf.c (revision 23893)
++++ libavformat/aviobuf.c (working copy)
+@@ -284,6 +284,28 @@
+ put_byte(s, val);
+ }
+
++/**
++ * Gets the length in bytes which is needed to store val as v.
++ */
++int get_length(uint64_t val){
++ int i=1;
++
++ while(val>>=7)
++ i++;
++
++ return i;
++}
++
++void put_v(ByteIOContext *bc, uint64_t val){
++ int i= get_length(val);
++
++ while(--i>0)
++ put_byte(bc, 128 | (val>>(7*i)));
++
++ put_byte(bc, val&127);
++}
++
++
+ void put_tag(ByteIOContext *s, const char *tag)
+ {
+ while (*tag) {
+Index: libavformat/nutenc.c
+===================================================================
+--- libavformat/nutenc.c (revision 23893)
++++ libavformat/nutenc.c (working copy)
+@@ -241,27 +241,6 @@
+ nut->frame_code['N'].flags= FLAG_INVALID;
+ }
+
+-/**
+- * Gets the length in bytes which is needed to store val as v.
+- */
+-static int get_length(uint64_t val){
+- int i=1;
+-
+- while(val>>=7)
+- i++;
+-
+- return i;
+-}
+-
+-static void put_v(ByteIOContext *bc, uint64_t val){
+- int i= get_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;
More information about the FFmpeg-soc
mailing list