diff options
author | Thibaut Mattern <tmattern@users.sourceforge.net> | 2004-06-02 19:46:10 +0000 |
---|---|---|
committer | Thibaut Mattern <tmattern@users.sourceforge.net> | 2004-06-02 19:46:10 +0000 |
commit | 9a9cbf10d1b4b7baabce0de67a33bda940d75f6f (patch) | |
tree | 1f0eaab3cd3979d1fcc07b3dc9f477e4754480e1 /src | |
parent | e5e8788f9ab6eedee28f48f26c2ee3b2e446825c (diff) | |
download | xine-lib-9a9cbf10d1b4b7baabce0de67a33bda940d75f6f.tar.gz xine-lib-9a9cbf10d1b4b7baabce0de67a33bda940d75f6f.tar.bz2 |
Do not loop in __wait_first_frame.
Copy is_frame value in duplicate_frame vo function.
Fix the bug i've reported here:
http://news.gmane.org/navbar.php?group=gmane.comp.video.xine.devel&article=9301&next=9322&prev=9310&newsrc=,9301,9322
CVS patchset: 6631
CVS date: 2004/06/02 19:46:10
Diffstat (limited to 'src')
-rw-r--r-- | src/xine-engine/video_out.c | 5 | ||||
-rw-r--r-- | src/xine-engine/xine.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c index 6995b1f46..f3a566934 100644 --- a/src/xine-engine/video_out.c +++ b/src/xine-engine/video_out.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_out.c,v 1.196 2004/05/30 21:33:39 mroi Exp $ + * $Id: video_out.c,v 1.197 2004/06/02 19:46:11 tmattern Exp $ * * frame allocation / queuing / scheduling / output functions */ @@ -618,6 +618,7 @@ static vo_frame_t * duplicate_frame( vos_t *this, vo_frame_t *img ) { dupl->proc_called = 0; dupl->duration = img->duration; + dupl->is_first = img->is_first; dupl->stream = img->stream; memcpy( dupl->extra_info, img->extra_info, sizeof(extra_info_t) ); @@ -681,7 +682,7 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) { diff = cur_vpts - pts; if (diff > duration || this->discard_frames) { - + if( !this->discard_frames ) { xine_log(this->xine, XINE_LOG_MSG, _("video_out: throwing away image with pts %" PRId64 " because it's too old (diff : %" PRId64 ").\n"), pts, diff); diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c index 4d01f77ad..efc12a68d 100644 --- a/src/xine-engine/xine.c +++ b/src/xine-engine/xine.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.c,v 1.293 2004/05/23 18:47:02 tmattern Exp $ + * $Id: xine.c,v 1.294 2004/06/02 19:46:10 tmattern Exp $ */ /* @@ -1070,7 +1070,7 @@ int xine_open (xine_stream_t *stream, const char *mrl) { static void __wait_first_frame (xine_stream_t *stream) { if (stream->video_decoder_plugin) { pthread_mutex_lock (&stream->first_frame_lock); - while (stream->first_frame_flag > 0) { + if (stream->first_frame_flag > 0) { struct timeval tv; struct timespec ts; gettimeofday(&tv, NULL); |