Initialize structs for mmioDescend and FindChunkAndKeepExtras - fixes

AVI file recognition.
This commit is contained in:
Alex Villacís Lasso 2005-09-12 20:14:49 +00:00 committed by Alexandre Julliard
parent d026458860
commit 3f05998c6a
1 changed files with 4 additions and 0 deletions

View File

@ -1612,6 +1612,7 @@ static HRESULT AVIFILE_LoadFile(IAVIFileImpl *This)
memset(This->ppStreams, 0, sizeof(This->ppStreams)); memset(This->ppStreams, 0, sizeof(This->ppStreams));
/* try to get "RIFF" chunk -- must not be at beginning of file! */ /* try to get "RIFF" chunk -- must not be at beginning of file! */
memset(&ckRIFF, 0, sizeof(ckRIFF));
ckRIFF.fccType = formtypeAVI; ckRIFF.fccType = formtypeAVI;
if (mmioDescend(This->hmmio, &ckRIFF, NULL, MMIO_FINDRIFF) != S_OK) { if (mmioDescend(This->hmmio, &ckRIFF, NULL, MMIO_FINDRIFF) != S_OK) {
ERR(": not an AVI!\n"); ERR(": not an AVI!\n");
@ -1619,12 +1620,14 @@ static HRESULT AVIFILE_LoadFile(IAVIFileImpl *This)
} }
/* get "LIST" "hdrl" */ /* get "LIST" "hdrl" */
memset(&ckLIST1, 0, sizeof(ckLIST1));
ckLIST1.fccType = listtypeAVIHEADER; ckLIST1.fccType = listtypeAVIHEADER;
hr = FindChunkAndKeepExtras(&This->fileextra, This->hmmio, &ckLIST1, &ckRIFF, MMIO_FINDLIST); hr = FindChunkAndKeepExtras(&This->fileextra, This->hmmio, &ckLIST1, &ckRIFF, MMIO_FINDLIST);
if (FAILED(hr)) if (FAILED(hr))
return hr; return hr;
/* get "avih" chunk */ /* get "avih" chunk */
memset(&ck, 0, sizeof(ck));
ck.ckid = ckidAVIMAINHDR; ck.ckid = ckidAVIMAINHDR;
hr = FindChunkAndKeepExtras(&This->fileextra, This->hmmio, &ck, &ckLIST1, MMIO_FINDCHUNK); hr = FindChunkAndKeepExtras(&This->fileextra, This->hmmio, &ck, &ckLIST1, MMIO_FINDCHUNK);
if (FAILED(hr)) if (FAILED(hr))
@ -1669,6 +1672,7 @@ static HRESULT AVIFILE_LoadFile(IAVIFileImpl *This)
return AVIERR_FILEREAD; return AVIERR_FILEREAD;
/* foreach stream exists a "LIST","strl" chunk */ /* foreach stream exists a "LIST","strl" chunk */
memset(&ckLIST2, 0, sizeof(ckLIST2));
for (nStream = 0; nStream < This->fInfo.dwStreams; nStream++) { for (nStream = 0; nStream < This->fInfo.dwStreams; nStream++) {
/* get next nested chunk in this "LIST","strl" */ /* get next nested chunk in this "LIST","strl" */
if (mmioDescend(This->hmmio, &ckLIST2, &ckLIST1, 0) != S_OK) if (mmioDescend(This->hmmio, &ckLIST2, &ckLIST1, 0) != S_OK)