# HG changeset patch # User arpi_esp # Date 989793921 0 # Node ID 62d7f36e612743cb73731156f2d826e3f85fd77b # Parent d84618453249c30c8976fed39b6bae08e7eb5e30 dump stuff moved before header parsing diff -r d84618453249 -r 62d7f36e6127 mplayer.c --- a/mplayer.c Sun May 13 22:38:35 2001 +0000 +++ b/mplayer.c Sun May 13 22:45:21 2001 +0000 @@ -914,6 +914,39 @@ } } // switch(file_format) +// DUMP STREAMS: +if(stream_dump_type){ + FILE *f; + int len; + demux_stream_t *ds=NULL; + // select stream to dump + switch(stream_dump_type){ + case 1: ds=d_audio;break; + case 2: ds=d_video;break; + case 3: ds=d_dvdsub;break; + } + if(!ds){ + printf("dump: FATAL: selected stream missing!\n"); + exit(1); + } + // disable other streams: + if(d_audio && d_audio!=ds) {ds_free_packs(d_audio); d_audio->id=-2; } + if(d_video && d_video!=ds) {ds_free_packs(d_video); d_video->id=-2; } + if(d_dvdsub && d_dvdsub!=ds) {ds_free_packs(d_dvdsub); d_dvdsub->id=-2; } + // let's dump it! + f=fopen(stream_dump_name?stream_dump_name:"stream.dump","wb"); + if(!f){ printf("Can't open dump file!!!\n");exit(1); } + while(!ds->eof){ + unsigned char* start; + int in_size=ds_get_packet(ds,&start); + if(in_size>0) fwrite(start,in_size,1,f); + } + fclose(f); + printf("core dumped :)\n"); + exit(1); +} + + // Determine image properties: switch(file_format){ case DEMUXER_TYPE_AVI: @@ -1011,37 +1044,6 @@ fflush(stdout); -if(stream_dump_type){ - FILE *f; - int len; - demux_stream_t *ds=NULL; - // select stream to dump - switch(stream_dump_type){ - case 1: ds=d_audio;break; - case 2: ds=d_video;break; - case 3: ds=d_dvdsub;break; - } - if(!ds){ - printf("dump: FATAL: selected stream missing!\n"); - exit(1); - } - // disable other streams: - if(d_audio && d_audio!=ds) {ds_free_packs(d_audio); d_audio->id=-2; } - if(d_video && d_video!=ds) {ds_free_packs(d_video); d_video->id=-2; } - if(d_dvdsub && d_dvdsub!=ds) {ds_free_packs(d_dvdsub); d_dvdsub->id=-2; } - // let's dump it! - f=fopen(stream_dump_name?stream_dump_name:"stream.dump","wb"); - if(!f){ printf("Can't open dump file!!!\n");exit(1); } - while(!ds->eof){ - unsigned char* start; - int in_size=ds_get_packet(ds,&start); - if(in_size>0) fwrite(start,in_size,1,f); - } - fclose(f); - printf("core dumped :)\n"); - exit(1); -} - if(!sh_video){ printf("Sorry, no video stream... it's unplayable yet\n"); exit(1);