summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2007-08-09 12:48:52 +0000
committerMichael Niedermayer <michaelni@gmx.at>2007-08-09 12:48:52 +0000
commit6c666941eb2904d7c33fe91495d1ca47be92f2a7 (patch)
treee381965a79747afc4d26623a51ba64f5a59ef857
parent8d9a3f7e21435ddf47635909c90f56f8c966397b (diff)
forw_ptr CRC
Originally committed as revision 10016 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavformat/nutenc.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index 9ce92d93a8..05f94285a6 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -180,8 +180,14 @@ static inline void put_s_trace(ByteIOContext *bc, int64_t v, char *file, char *f
static void put_packet(NUTContext *nut, ByteIOContext *bc, ByteIOContext *dyn_bc, int calculate_checksum){
uint8_t *dyn_buf=NULL;
int dyn_size= url_close_dyn_buf(dyn_bc, &dyn_buf);
+ int forw_ptr= dyn_size + 4*calculate_checksum;
+
+ if(forw_ptr > 4096)
+ init_checksum(bc, av_crc04C11DB7_update, 0);
+ put_v(bc, forw_ptr);
+ if(forw_ptr > 4096)
+ put_le32(bc, get_checksum(bc));
- put_v(bc, dyn_size + 4*calculate_checksum);
if(calculate_checksum)
init_checksum(bc, av_crc04C11DB7_update, 0);
put_buffer(bc, dyn_buf, dyn_size);
@@ -350,7 +356,7 @@ static int write_header(AVFormatContext *s){
put_flush_packet(bc);
- //FIXME info header, header repeation, header packet CRC, ...
+ //FIXME info header, header repeation, ...
return 0;
}