aboutsummaryrefslogtreecommitdiffstats
path: root/ffplay.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2010-02-04 01:54:24 +0000
committerMichael Niedermayer <michaelni@gmx.at>2010-02-04 01:54:24 +0000
commit2d1653b0658eb7d2f611b7449a660ab5ea3d2174 (patch)
tree5112960c7fc2b67b3aecdcc42e0d3e6ae9831845 /ffplay.c
parent8c3b161e9ea74013b38ea1985ffda07473978d16 (diff)
downloadffmpeg-2d1653b0658eb7d2f611b7449a660ab5ea3d2174.tar.gz
autoexit
implements issue1019 Originally committed as revision 21634 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffplay.c')
-rw-r--r--ffplay.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ffplay.c b/ffplay.c
index 7be73b06bd..dbe5001539 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -227,6 +227,7 @@ static enum AVDiscard skip_loop_filter= AVDISCARD_DEFAULT;
static int error_recognition = FF_ER_CAREFUL;
static int error_concealment = 3;
static int decoder_reorder_pts= -1;
+static int autoexit;
/* current context */
static int is_full_screen;
@@ -2102,6 +2103,10 @@ static int decode_thread(void *arg)
packet_queue_put(&is->videoq, pkt);
}
SDL_Delay(10);
+ if(autoexit && is->audioq.size + is->videoq.size + is->subtitleq.size ==0){
+ ret=AVERROR_EOF;
+ goto fail;
+ }
continue;
}
ret = av_read_frame(ic, pkt);
@@ -2557,6 +2562,7 @@ static const OptionDef options[] = {
{ "ec", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&error_concealment}, "set error concealment options", "bit_mask" },
{ "sync", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_sync}, "set audio-video sync. type (type=audio/video/ext)", "type" },
{ "threads", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_thread_count}, "thread count", "count" },
+ { "autoexit", OPT_BOOL | OPT_EXPERT, {(void*)&autoexit}, "exit at the end", "" },
{ "default", OPT_FUNC2 | HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT, {(void*)opt_default}, "generic catch all option", "" },
{ NULL, },
};