diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2003-01-11 15:31:45 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2003-01-11 15:31:45 +0000 |
commit | 7c68e9ee3f4faa5203cb35be04d58db68e3c82db (patch) | |
tree | 3edb187a115e8fa4890f39f40fd2b4906d94b965 | |
parent | f76958faa45ece3eb82dfed256ddf0c3badefeef (diff) | |
download | xine-lib-7c68e9ee3f4faa5203cb35be04d58db68e3c82db.tar.gz xine-lib-7c68e9ee3f4faa5203cb35be04d58db68e3c82db.tar.bz2 |
fast discarding when stopped
CVS patchset: 3873
CVS date: 2003/01/11 15:31:45
-rw-r--r-- | src/libsputext/xine_decoder.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/libsputext/xine_decoder.c b/src/libsputext/xine_decoder.c index 311f7e3dc..b1b368941 100644 --- a/src/libsputext/xine_decoder.c +++ b/src/libsputext/xine_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: xine_decoder.c,v 1.46 2003/01/11 12:52:03 miguelfreitas Exp $ + * $Id: xine_decoder.c,v 1.47 2003/01/11 15:31:45 miguelfreitas Exp $ * */ @@ -278,21 +278,23 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) { } } } - - xine_usec_sleep (50000); if( this->stream->master_stream ) - xine_get_current_info (this->stream->master_stream, &extra_info, sizeof(extra_info) ); + status = xine_get_status (this->stream->master_stream); else - xine_get_current_info (this->stream, &extra_info, sizeof(extra_info) ); + status = xine_get_status (this->stream); + + if( status == XINE_STATUS_QUIT || status == XINE_STATUS_STOP ) + return; + xine_usec_sleep (50000); + if( this->stream->master_stream ) - status = xine_get_status (this->stream->master_stream); + xine_get_current_info (this->stream->master_stream, &extra_info, sizeof(extra_info) ); else - status = xine_get_status (this->stream); - - } while(seek_count == extra_info.seek_count && status != XINE_STATUS_QUIT && - status != XINE_STATUS_STOP); + xine_get_current_info (this->stream, &extra_info, sizeof(extra_info) ); + + } while(seek_count == extra_info.seek_count); } |