summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2003-01-11 15:31:45 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2003-01-11 15:31:45 +0000
commit7c68e9ee3f4faa5203cb35be04d58db68e3c82db (patch)
tree3edb187a115e8fa4890f39f40fd2b4906d94b965
parentf76958faa45ece3eb82dfed256ddf0c3badefeef (diff)
downloadxine-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.c22
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);
}