summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2003-05-05 22:29:30 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2003-05-05 22:29:30 +0000
commit025dbb16539976d168f36055dbfcb35420fac6bf (patch)
treec350a50a7439d06ad38616cc1da1f9f5493c50fa
parent223bbf68ac4174c637462920c2b8b718b55f2d58 (diff)
downloadxine-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.c7
-rw-r--r--src/xine-engine/video_out.c4
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;