summaryrefslogtreecommitdiff
path: root/src/xine-engine
diff options
context:
space:
mode:
authorChristophe Thommeret <hftom@free.fr>2008-12-29 01:38:20 +0000
committerChristophe Thommeret <hftom@free.fr>2008-12-29 01:38:20 +0000
commit862354fcea8351ddf7b6745a1d5bf559e37d2d32 (patch)
tree5e2bd064b7b3b455304d9725448a8174a2ec0c7d /src/xine-engine
parent5c9bcbcefee17fdd254bcecd3865cd1a5202134b (diff)
downloadxine-lib-862354fcea8351ddf7b6745a1d5bf559e37d2d32.tar.gz
xine-lib-862354fcea8351ddf7b6745a1d5bf559e37d2d32.tar.bz2
Add future frame.
Diffstat (limited to 'src/xine-engine')
-rw-r--r--src/xine-engine/video_out.c7
-rw-r--r--src/xine-engine/video_out.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c
index be062cc5d..6b0353bee 100644
--- a/src/xine-engine/video_out.c
+++ b/src/xine-engine/video_out.c
@@ -931,7 +931,7 @@ static vo_frame_t *get_next_frame (vos_t *this, int64_t cur_vpts,
/* extra info of the backup is thrown away, because it is not up to date */
_x_extra_info_reset(img->extra_info);
}
-
+ img->future_frame = NULL;
return img;
} else {
@@ -989,6 +989,11 @@ static vo_frame_t *get_next_frame (vos_t *this, int64_t cur_vpts,
/*
* remove frame from display queue and show it
*/
+
+ if ( img->next )
+ img->future_frame = img->next;
+ else
+ img->future_frame = NULL;
img = vo_remove_from_img_buf_queue_int (this->display_img_buf_queue, 1, 0, 0, 0, 0, 0);
pthread_mutex_unlock(&this->display_img_buf_queue->mutex);
diff --git a/src/xine-engine/video_out.h b/src/xine-engine/video_out.h
index 7fa34ac8b..76b347a41 100644
--- a/src/xine-engine/video_out.h
+++ b/src/xine-engine/video_out.h
@@ -149,6 +149,9 @@ struct vo_frame_s {
/* displacement for overlays */
int overlay_offset_x, overlay_offset_y;
+
+ /* pointer to the next frame in display order, used by some vo deint */
+ struct vo_frame_s *future_frame;
/*
* that part is used only by video_out.c for frame management