diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2005-10-30 02:18:35 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2005-10-30 02:18:35 +0000 |
commit | 5fd98dc3451215272aadbe93dbb7e43805050fc3 (patch) | |
tree | 14768677bdde796f8b26e4ff9dd60643bf96d5d9 /src/xine-engine/video_decoder.c | |
parent | f32c34a198bb2f407b6ceb1157e7239d1c2f6d79 (diff) | |
download | xine-lib-5fd98dc3451215272aadbe93dbb7e43805050fc3.tar.gz xine-lib-5fd98dc3451215272aadbe93dbb7e43805050fc3.tar.bz2 |
gapless playback stream switching support
CVS patchset: 7784
CVS date: 2005/10/30 02:18:35
Diffstat (limited to 'src/xine-engine/video_decoder.c')
-rw-r--r-- | src/xine-engine/video_decoder.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/xine-engine/video_decoder.c b/src/xine-engine/video_decoder.c index edec3a00c..061962d4a 100644 --- a/src/xine-engine/video_decoder.c +++ b/src/xine-engine/video_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_decoder.c,v 1.159 2005/08/25 15:36:30 valtri Exp $ + * $Id: video_decoder.c,v 1.160 2005/10/30 02:18:35 miguelfreitas Exp $ * */ @@ -153,8 +153,9 @@ static void *video_decoder_loop (void *stream_gen) { running_ticket->release(running_ticket, 0); - stream->metronom->handle_video_discontinuity (stream->metronom, - DISC_STREAMSTART, 0); + if( !stream->gapless_switch ) + stream->metronom->handle_video_discontinuity (stream->metronom, + DISC_STREAMSTART, 0); buftype_unknown = 0; break; @@ -189,7 +190,7 @@ static void *video_decoder_loop (void *stream_gen) { stream->video_decoder_plugin->flush (stream->video_decoder_plugin); running_ticket->release(running_ticket, 0); } - + /* * wait the output fifos to run dry before sending the notification event * to the frontend. this test is only valid if there is only a single @@ -203,7 +204,7 @@ static void *video_decoder_loop (void *stream_gen) { num_streams = stream->video_out->get_property(stream->video_out, VO_PROP_NUM_STREAMS); running_ticket->release(running_ticket, 0); - if( num_bufs > 0 && num_streams == 1 ) + if( num_bufs > 0 && num_streams == 1 && !stream->early_finish_event ) xine_usec_sleep (10000); else break; |