summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@symbol.nonexistent.invalid>2008-06-04 08:10:48 +0300
committerUoti Urpala <uau@symbol.nonexistent.invalid>2008-06-04 08:10:48 +0300
commitd5c868325cefcd5fad53361d1dfdc9757674eb70 (patch)
treea838e509fdc2468220466e6337097b3ef590b00c /mplayer.c
parent0cb5123c8f65b3d7715deb22ce8430eccc21996e (diff)
parent5b3834c5d1033f05d798278c33782c5563247062 (diff)
downloadmpv-d5c868325cefcd5fad53361d1dfdc9757674eb70.tar.bz2
mpv-d5c868325cefcd5fad53361d1dfdc9757674eb70.tar.xz
Merge svn changes up to r26979
Most of the conflicts are trivial. Conflicts: Makefile cfg-mplayer.h input/input.c libmenu/vf_menu.c libmpcodecs/dec_video.c libmpcodecs/vf_expand.c libmpcodecs/vf_vo.c libmpdemux/demux_mkv.c libmpdemux/demuxer.c libmpdemux/demuxer.h libvo/vo_directfb2.c libvo/vo_gl.c libvo/vo_winvidix.c libvo/vo_xv.c libvo/vo_xvidix.c libvo/vo_xvmc.c libvo/x11_common.c mplayer.c osdep/timer-linux.c stream/cache2.c
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/mplayer.c b/mplayer.c
index 65de54f309..0a2a0e3a12 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -3200,6 +3200,10 @@ if(stream_dump_type==5){
mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_CantOpenDumpfile);
exit_player(mpctx, MSGTR_Exit_error);
}
+ if (dvd_chapter > 1) {
+ int chapter = dvd_chapter - 1;
+ stream_control(mpctx->stream, STREAM_CTRL_SEEK_TO_CHAPTER, &chapter);
+ }
while(!mpctx->stream->eof){
len=stream_read(mpctx->stream,buf,4096);
if(len>0) {
@@ -3722,7 +3726,9 @@ if (mpctx->sh_audio)
if(!mpctx->sh_video) {
// handle audio-only case:
double a_pos=0;
- if(!quiet || end_at.type == END_AT_TIME )
+ // sh_audio can be NULL due to video stream switching
+ // TODO: handle this better
+ if(!quiet || end_at.type == END_AT_TIME && mpctx->sh_audio)
a_pos = playing_audio_pts(mpctx);
if(!quiet)
@@ -4022,6 +4028,9 @@ if(mpctx->eof == PT_NEXT_ENTRY || mpctx->eof == PT_PREV_ENTRY) {
mpctx->playtree_iter = NULL;
}
}
+} else if (mpctx->eof == PT_STOP) {
+ play_tree_iter_free(mpctx->playtree_iter);
+ mpctx->playtree_iter = NULL;
} else { // NEXT PREV SRC
mpctx->eof = mpctx->eof == PT_PREV_SRC ? -1 : 1;
}