avifil32: Remove the 1024 frame limit when recording AVI files.
This commit is contained in:
parent
89837cb04e
commit
d28c40da3b
|
@ -1424,12 +1424,22 @@ static HRESULT AVIFILE_AddRecord(IAVIFileImpl *This)
|
|||
/* pre-conditions */
|
||||
assert(This != NULL && This->ppStreams[0] != NULL);
|
||||
|
||||
if (This->idxRecords == NULL || This->cbIdxRecords == 0) {
|
||||
This->cbIdxRecords += 1024 * sizeof(AVIINDEXENTRY);
|
||||
This->idxRecords = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->cbIdxRecords);
|
||||
if (This->idxRecords == NULL)
|
||||
if (This->idxRecords == NULL || This->cbIdxRecords / sizeof(AVIINDEXENTRY) <= This->nIdxRecords) {
|
||||
DWORD new_count = This->cbIdxRecords + 1024 * sizeof(AVIINDEXENTRY);
|
||||
void *mem;
|
||||
if (!This->idxRecords)
|
||||
mem = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, new_count);
|
||||
else
|
||||
mem = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->idxRecords, new_count);
|
||||
if (mem) {
|
||||
This->cbIdxRecords = new_count;
|
||||
This->idxRecords = mem;
|
||||
} else {
|
||||
HeapFree(GetProcessHeap(), 0, This->idxRecords);
|
||||
This->idxRecords = NULL;
|
||||
return AVIERR_MEMORY;
|
||||
}
|
||||
}
|
||||
|
||||
assert(This->nIdxRecords < This->cbIdxRecords/sizeof(AVIINDEXENTRY));
|
||||
|
||||
|
|
Loading…
Reference in New Issue