From 9a9cbf10d1b4b7baabce0de67a33bda940d75f6f Mon Sep 17 00:00:00 2001 From: Thibaut Mattern Date: Wed, 2 Jun 2004 19:46:10 +0000 Subject: 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 --- src/xine-engine/video_out.c | 5 +++-- src/xine-engine/xine.c | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src') 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); -- cgit v1.2.3