diff options
author | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-05-05 22:29:30 +0000 |
---|---|---|
committer | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-05-05 22:29:30 +0000 |
commit | 025dbb16539976d168f36055dbfcb35420fac6bf (patch) | |
tree | c350a50a7439d06ad38616cc1da1f9f5493c50fa | |
parent | 223bbf68ac4174c637462920c2b8b718b55f2d58 (diff) | |
download | xine-lib-025dbb16539976d168f36055dbfcb35420fac6bf.tar.gz xine-lib-025dbb16539976d168f36055dbfcb35420fac6bf.tar.bz2 |
Do not use pts from bad frames in the metronom and in the video_loop.
This prevents to drop 1-5 frames just after a seek.
Now seeking is really smooth and sync is allways perfect ;)
CVS patchset: 4775
CVS date: 2003/05/05 22:29:30
-rw-r--r-- | src/xine-engine/metronom.c | 7 | ||||
-rw-r--r-- | src/xine-engine/video_out.c | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/xine-engine/metronom.c b/src/xine-engine/metronom.c index b866efb6c..f129c36ee 100644 --- a/src/xine-engine/metronom.c +++ b/src/xine-engine/metronom.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: metronom.c,v 1.115 2003/04/07 01:28:43 miguelfreitas Exp $ + * $Id: metronom.c,v 1.116 2003/05/05 22:29:30 tmattern Exp $ */ #ifdef HAVE_CONFIG_H @@ -386,6 +386,11 @@ static void metronom_got_video_frame (metronom_t *this, vo_frame_t *img) { this->img_cpt++; + if (img->bad_frame) { + pthread_mutex_unlock (&this->lock); + return; + } + if (pts) { /* diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c index 55d2130a0..30c4d5197 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.155 2003/04/30 20:19:20 miguelfreitas Exp $ + * $Id: video_out.c,v 1.156 2003/05/05 22:29:31 tmattern Exp $ * * frame allocation / queuing / scheduling / output functions */ @@ -314,7 +314,7 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) { stream->metronom->got_video_frame (stream->metronom, img); this->current_duration = img->duration; - if (!this->grab_only) { + if (!this->grab_only && !img->bad_frame) { pic_vpts = img->vpts; img->extra_info->vpts = img->vpts; |