Bug fix for Qt AVI encoding of idx1 chunk sizes.
This commit is contained in:
parent
04aa7afb1f
commit
a47fd82334
|
@ -436,6 +436,7 @@ gwavi_t::write_index(FILE *out, int count, unsigned int *offsets)
|
||||||
{
|
{
|
||||||
long marker, t;
|
long marker, t;
|
||||||
unsigned int offset = 4;
|
unsigned int offset = 4;
|
||||||
|
unsigned int r;
|
||||||
|
|
||||||
if (offsets == 0)
|
if (offsets == 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -465,7 +466,14 @@ gwavi_t::write_index(FILE *out, int count, unsigned int *offsets)
|
||||||
if (write_int(out, offsets[t]) == -1)
|
if (write_int(out, offsets[t]) == -1)
|
||||||
goto write_int_failed;
|
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) {
|
if ((t = ftell(out)) == -1) {
|
||||||
|
|
|
@ -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) {
|
if (write_chars_bin(out, "00dc", 4) == -1) {
|
||||||
(void)fprintf(stderr, "gwavi_add_frame: write_chars_bin() "
|
(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++] =
|
offsets[offsets_ptr++] =
|
||||||
(unsigned int)((len + maxi_pad) | 0x80000000);
|
(unsigned int)((len) | 0x80000000);
|
||||||
|
|
||||||
if (write_chars_bin(out,"01wb",4) == -1) {
|
if (write_chars_bin(out,"01wb",4) == -1) {
|
||||||
(void)fprintf(stderr, "gwavi_add_audio: write_chars_bin() "
|
(void)fprintf(stderr, "gwavi_add_audio: write_chars_bin() "
|
||||||
|
|
Loading…
Reference in New Issue