diff --git a/src/drivers/Qt/avi/avi-utils.cpp b/src/drivers/Qt/avi/avi-utils.cpp index e4aea34a..64f76c93 100644 --- a/src/drivers/Qt/avi/avi-utils.cpp +++ b/src/drivers/Qt/avi/avi-utils.cpp @@ -436,6 +436,7 @@ gwavi_t::write_index(FILE *out, int count, unsigned int *offsets) { long marker, t; unsigned int offset = 4; + unsigned int r; if (offsets == 0) return -1; @@ -465,7 +466,14 @@ gwavi_t::write_index(FILE *out, int count, unsigned int *offsets) if (write_int(out, offsets[t]) == -1) goto write_int_failed; - offset = offset + offsets[t] + 8; + r = offsets[t] % WORD_SIZE; + + if ( r > 0 ) + { + r = WORD_SIZE - r; + } + + offset = offset + offsets[t] + 8 + r; } if ((t = ftell(out)) == -1) { diff --git a/src/drivers/Qt/avi/gwavi.cpp b/src/drivers/Qt/avi/gwavi.cpp index a27089a8..80cf9f0d 100644 --- a/src/drivers/Qt/avi/gwavi.cpp +++ b/src/drivers/Qt/avi/gwavi.cpp @@ -331,7 +331,7 @@ gwavi_t::add_frame( unsigned char *buffer, size_t len) } } - offsets[offsets_ptr++] = (unsigned int)(len + maxi_pad); + offsets[offsets_ptr++] = (unsigned int)(len); if (write_chars_bin(out, "00dc", 4) == -1) { (void)fprintf(stderr, "gwavi_add_frame: write_chars_bin() " @@ -406,7 +406,7 @@ gwavi_t::add_audio( unsigned char *buffer, size_t len) } offsets[offsets_ptr++] = - (unsigned int)((len + maxi_pad) | 0x80000000); + (unsigned int)((len) | 0x80000000); if (write_chars_bin(out,"01wb",4) == -1) { (void)fprintf(stderr, "gwavi_add_audio: write_chars_bin() "