aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/aviobuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/aviobuf.c')
-rw-r--r--libavformat/aviobuf.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index ebc2f74910..39f45495b6 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -48,7 +48,6 @@ int init_put_byte(ByteIOContext *s,
s->eof_reached = 0;
s->is_streamed = 0;
s->max_packet_size = 0;
- s->checksum_ptr= NULL;
s->update_checksum= NULL;
return 0;
}
@@ -60,7 +59,7 @@ static void flush_buffer(ByteIOContext *s)
if (s->buf_ptr > s->buffer) {
if (s->write_packet)
s->write_packet(s->opaque, s->buffer, s->buf_ptr - s->buffer);
- if(s->checksum_ptr){
+ if(s->update_checksum){
s->checksum= s->update_checksum(s->checksum, s->checksum_ptr, s->buf_ptr - s->checksum_ptr);
s->checksum_ptr= s->buffer;
}
@@ -250,7 +249,7 @@ static void fill_buffer(ByteIOContext *s)
if (s->eof_reached)
return;
- if(s->checksum_ptr){
+ if(s->update_checksum){
s->checksum= s->update_checksum(s->checksum, s->checksum_ptr, s->buf_end - s->checksum_ptr);
s->checksum_ptr= s->buffer;
}
@@ -269,14 +268,16 @@ static void fill_buffer(ByteIOContext *s)
unsigned long get_checksum(ByteIOContext *s){
s->checksum= s->update_checksum(s->checksum, s->checksum_ptr, s->buf_ptr - s->checksum_ptr);
- s->checksum_ptr= NULL;
+ s->update_checksum= NULL;
return s->checksum;
}
void init_checksum(ByteIOContext *s, unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), unsigned long checksum){
s->update_checksum= update_checksum;
- s->checksum= s->update_checksum(checksum, NULL, 0);
- s->checksum_ptr= s->buf_ptr;
+ if(s->update_checksum){
+ s->checksum= s->update_checksum(checksum, NULL, 0);
+ s->checksum_ptr= s->buf_ptr;
+ }
}
/* NOTE: return 0 if EOF, so you cannot use it if EOF handling is