summaryrefslogtreecommitdiffstats
path: root/aviheader.c
diff options
context:
space:
mode:
authorarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-06-05 18:40:44 +0000
committerarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-06-05 18:40:44 +0000
commit5c50d3e7dd839be03468e5058ce7d5eb60dfe1d8 (patch)
tree5c630dd1bec808dfe785e27b47615982d84040ad /aviheader.c
parent49ea21d07367275022349403cb4a60f8316e5634 (diff)
downloadmpv-5c50d3e7dd839be03468e5058ce7d5eb60dfe1d8.tar.bz2
mpv-5c50d3e7dd839be03468e5058ce7d5eb60dfe1d8.tar.xz
applied solaris8/netbsd/other fixes patch by Jürgen Keil <jk@tools.de>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1039 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'aviheader.c')
-rw-r--r--aviheader.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/aviheader.c b/aviheader.c
index ab232d4166..702967b048 100644
--- a/aviheader.c
+++ b/aviheader.c
@@ -111,10 +111,15 @@ while(1){
}
} else
if(last_fccType==streamtypeAUDIO){
- sh_audio->wf=calloc((chunksize<sizeof(WAVEFORMATEX))?sizeof(WAVEFORMATEX):chunksize,1);
+ int wf_size = chunksize<sizeof(WAVEFORMATEX)?sizeof(WAVEFORMATEX):chunksize;
+ sh_audio->wf=calloc(wf_size,1);
// sh_audio->wf=malloc(chunksize); memset(sh_audio->wf,0,chunksize);
if(verbose>=1) printf("found 'wf', %d bytes of %d\n",chunksize,sizeof(WAVEFORMATEX));
stream_read(demuxer->stream,(char*) sh_audio->wf,chunksize);
+ if (sh_audio->wf->cbSize != 0 &&
+ wf_size < sizeof(WAVEFORMATEX)+sh_audio->wf->cbSize) {
+ sh_audio->wf=realloc(sh_audio->wf, sizeof(WAVEFORMATEX)+sh_audio->wf->cbSize);
+ }
chunksize=0;
if(verbose>=1) print_wave_header(sh_audio->wf);
// if(demuxer->audio->id==-1) demuxer->audio->id=stream_id;