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 }