summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-04-20 18:28:13 +0000
committerarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-04-20 18:28:13 +0000
commit46075de1f579e4786ffad11bf786ae13d2d35f64 (patch)
tree9542ab250e556825e2f411a70947c140b7487d37
parent26c1bdbe2de8d1af62ee69f663e3430a826f2e53 (diff)
downloadmpv-46075de1f579e4786ffad11bf786ae13d2d35f64.tar.bz2
mpv-46075de1f579e4786ffad11bf786ae13d2d35f64.tar.xz
new options: -dumpaudio and -dumpvideo
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@550 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--cfg-mplayer.h5
-rw-r--r--mplayer.c20
2 files changed, 25 insertions, 0 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index 2f6fccd2a1..cbfa8a47d2 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -62,6 +62,11 @@ struct config conf[]={
{"noni", &force_ni, CONF_TYPE_FLAG, 0, 1, 0},
{"aid", &audio_id, CONF_TYPE_INT, CONF_RANGE, 0, 256},
{"vid", &video_id, CONF_TYPE_INT, CONF_RANGE, 0, 256},
+
+ {"dumpfile", &stream_dump_name, CONF_TYPE_STRING, 0, 0, 0},
+ {"dumpaudio", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 1},
+ {"dumpvideo", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 2},
+
// {"auds", &avi_header.audio_codec, CONF_TYPE_STRING, 0, 0, 0},
// {"vids", &avi_header.video_codec, CONF_TYPE_STRING, 0, 0, 0},
{"mc", &default_max_pts_correction, CONF_TYPE_FLOAT, CONF_RANGE, 0, 10},
diff --git a/mplayer.c b/mplayer.c
index 746cdcbf9b..3cd631de6b 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -497,6 +497,8 @@ char *sub_name=NULL;
float sub_delay=0;
float sub_fps=0;
int sub_auto = 1;
+char stream_dump_name=NULL;
+int stream_dump_type=0;
//int user_bpp=0;
#include "mixer.h"
@@ -929,6 +931,24 @@ printf("[V] filefmt:%d fourcc:0x%X size:%dx%d fps:%5.2f ftime:=%6.4f\n",
fflush(stdout);
+if(stream_dump_type){
+ FILE *f;
+ int len;
+ demux_stream_t *ds=(stream_dump_type==1)?d_audio:d_video;
+ demux_stream_t *ds2=(stream_dump_type!=1)?d_audio:d_video;
+ ds_free_packs(ds2); ds2->id=-2; // ignore this stream!
+ 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){
+ 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);
+}
+
//================== Init AUDIO (codec) ==========================
if(has_audio){
// Go through the codec.conf and find the best codec...