diff options
author | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-04-15 14:33:49 +0000 |
---|---|---|
committer | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-04-15 14:33:49 +0000 |
commit | 415c45924b85bd3e733dbb87393bd1a425eadd4a (patch) | |
tree | 0dc6b4d31ea8d0b7fcff807d56292815c15dfbc2 /asfheader.c | |
parent | 89e6a6f68e023823017b424df936d7086faa96d6 (diff) | |
download | mpv-415c45924b85bd3e733dbb87393bd1a425eadd4a.tar.bz2 mpv-415c45924b85bd3e733dbb87393bd1a425eadd4a.tar.xz |
sh_audio->wf and sh_video->bih changed to dynamic (thanx to Jens Hoffmann)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@433 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'asfheader.c')
-rw-r--r-- | asfheader.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/asfheader.c b/asfheader.c index e1c4ef1e83..6f2d3bb708 100644 --- a/asfheader.c +++ b/asfheader.c @@ -129,8 +129,9 @@ if(verbose){ switch(*((unsigned int*)&streamh.type)){ case 0xF8699E40: { // guid_audio_stream sh_audio_t* sh_audio=new_sh_audio(streamh.stream_no & 0x7F); - memcpy(&sh_audio->wf,buffer,streamh.type_size<64?streamh.type_size:64); - if(verbose>=1) print_wave_header((WAVEFORMATEX*)buffer); + sh_audio->wf=calloc((streamh.type_size<sizeof(WAVEFORMATEX))?sizeof(WAVEFORMATEX):streamh.type_size,1); + memcpy(sh_audio->wf,buffer,streamh.type_size); + if(verbose>=1) print_wave_header(sh_audio->wf); if((*((unsigned int*)&streamh.concealment))==0xbfc3cd50){ stream_read(demuxer->stream,(char*) buffer,streamh.stream_size); asf_scrambling_h=buffer[0]; @@ -146,10 +147,13 @@ if(verbose){ } case 0xBC19EFC0: { // guid_video_stream sh_video_t* sh_video=new_sh_video(streamh.stream_no & 0x7F); - memcpy(&sh_video->bih,&buffer[4+4+1+2],sizeof(BITMAPINFOHEADER)); + int len=streamh.type_size-(4+4+1+2); +// sh_video->bih=malloc(chunksize); memset(sh_video->bih,0,chunksize); + sh_video->bih=calloc((len<sizeof(BITMAPINFOHEADER))?sizeof(BITMAPINFOHEADER):len,1); + memcpy(sh_video->bih,&buffer[4+4+1+2],len); //sh_video->fps=(float)sh_video->video.dwRate/(float)sh_video->video.dwScale; //sh_video->frametime=(float)sh_video->video.dwScale/(float)sh_video->video.dwRate; - if(verbose>=1) print_video_header((BITMAPINFOHEADER*)&buffer[4+4+1+2]); + if(verbose>=1) print_video_header(sh_video->bih); //asf_video_id=streamh.stream_no & 0x7F; //if(demuxer->video->id==-1) demuxer->video->id=streamh.stream_no & 0x7F; break; |