Mercurial > mplayer.hg
comparison asfheader.c @ 432:5251b0c57e39
sh_audio->wf and sh_video->bih changed to dynamic (thanx to Jens Hoffmann)
author | arpi_esp |
---|---|
date | Sun, 15 Apr 2001 14:33:49 +0000 |
parents | 26e513f392b2 |
children | 8511095c5283 |
comparison
equal
deleted
inserted
replaced
431:c106cb97db06 | 432:5251b0c57e39 |
---|---|
127 // type-specific data: | 127 // type-specific data: |
128 stream_read(demuxer->stream,(char*) buffer,streamh.type_size); | 128 stream_read(demuxer->stream,(char*) buffer,streamh.type_size); |
129 switch(*((unsigned int*)&streamh.type)){ | 129 switch(*((unsigned int*)&streamh.type)){ |
130 case 0xF8699E40: { // guid_audio_stream | 130 case 0xF8699E40: { // guid_audio_stream |
131 sh_audio_t* sh_audio=new_sh_audio(streamh.stream_no & 0x7F); | 131 sh_audio_t* sh_audio=new_sh_audio(streamh.stream_no & 0x7F); |
132 memcpy(&sh_audio->wf,buffer,streamh.type_size<64?streamh.type_size:64); | 132 sh_audio->wf=calloc((streamh.type_size<sizeof(WAVEFORMATEX))?sizeof(WAVEFORMATEX):streamh.type_size,1); |
133 if(verbose>=1) print_wave_header((WAVEFORMATEX*)buffer); | 133 memcpy(sh_audio->wf,buffer,streamh.type_size); |
134 if(verbose>=1) print_wave_header(sh_audio->wf); | |
134 if((*((unsigned int*)&streamh.concealment))==0xbfc3cd50){ | 135 if((*((unsigned int*)&streamh.concealment))==0xbfc3cd50){ |
135 stream_read(demuxer->stream,(char*) buffer,streamh.stream_size); | 136 stream_read(demuxer->stream,(char*) buffer,streamh.stream_size); |
136 asf_scrambling_h=buffer[0]; | 137 asf_scrambling_h=buffer[0]; |
137 asf_scrambling_w=(buffer[2]<<8)|buffer[1]; | 138 asf_scrambling_w=(buffer[2]<<8)|buffer[1]; |
138 asf_scrambling_b=(buffer[4]<<8)|buffer[3]; | 139 asf_scrambling_b=(buffer[4]<<8)|buffer[3]; |
144 //if(demuxer->audio->id==-1) demuxer->audio->id=streamh.stream_no & 0x7F; | 145 //if(demuxer->audio->id==-1) demuxer->audio->id=streamh.stream_no & 0x7F; |
145 break; | 146 break; |
146 } | 147 } |
147 case 0xBC19EFC0: { // guid_video_stream | 148 case 0xBC19EFC0: { // guid_video_stream |
148 sh_video_t* sh_video=new_sh_video(streamh.stream_no & 0x7F); | 149 sh_video_t* sh_video=new_sh_video(streamh.stream_no & 0x7F); |
149 memcpy(&sh_video->bih,&buffer[4+4+1+2],sizeof(BITMAPINFOHEADER)); | 150 int len=streamh.type_size-(4+4+1+2); |
151 // sh_video->bih=malloc(chunksize); memset(sh_video->bih,0,chunksize); | |
152 sh_video->bih=calloc((len<sizeof(BITMAPINFOHEADER))?sizeof(BITMAPINFOHEADER):len,1); | |
153 memcpy(sh_video->bih,&buffer[4+4+1+2],len); | |
150 //sh_video->fps=(float)sh_video->video.dwRate/(float)sh_video->video.dwScale; | 154 //sh_video->fps=(float)sh_video->video.dwRate/(float)sh_video->video.dwScale; |
151 //sh_video->frametime=(float)sh_video->video.dwScale/(float)sh_video->video.dwRate; | 155 //sh_video->frametime=(float)sh_video->video.dwScale/(float)sh_video->video.dwRate; |
152 if(verbose>=1) print_video_header((BITMAPINFOHEADER*)&buffer[4+4+1+2]); | 156 if(verbose>=1) print_video_header(sh_video->bih); |
153 //asf_video_id=streamh.stream_no & 0x7F; | 157 //asf_video_id=streamh.stream_no & 0x7F; |
154 //if(demuxer->video->id==-1) demuxer->video->id=streamh.stream_no & 0x7F; | 158 //if(demuxer->video->id==-1) demuxer->video->id=streamh.stream_no & 0x7F; |
155 break; | 159 break; |
156 } | 160 } |
157 } | 161 } |