diff options
Diffstat (limited to 'src/xine-engine')
-rw-r--r-- | src/xine-engine/post.c | 12 | ||||
-rw-r--r-- | src/xine-engine/post.h | 4 | ||||
-rw-r--r-- | src/xine-engine/video_out.c | 4 | ||||
-rw-r--r-- | src/xine-engine/video_out.h | 13 |
4 files changed, 18 insertions, 15 deletions
diff --git a/src/xine-engine/post.c b/src/xine-engine/post.c index d060fefb1..8c247e706 100644 --- a/src/xine-engine/post.c +++ b/src/xine-engine/post.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: post.c,v 1.11 2003/02/06 00:09:20 miguelfreitas Exp $ + * $Id: post.c,v 1.12 2003/05/31 18:33:31 miguelfreitas Exp $ */ /* @@ -146,10 +146,10 @@ static int post_frame_draw(vo_frame_t *vo_img, xine_stream_t *stream) { return vo_img->draw(vo_img, stream); } -static void post_frame_displayed(vo_frame_t *vo_img) { +static void post_frame_lock(vo_frame_t *vo_img) { post_video_port_t *port = (post_video_port_t *)vo_img->port; post_restore_video_frame(vo_img, port); - vo_img->displayed(vo_img); + vo_img->lock(vo_img); } static void post_frame_dispose(vo_frame_t *vo_img) { @@ -165,7 +165,7 @@ void post_intercept_video_frame(vo_frame_t *frame, post_video_port_t *port) { port->original_frame.copy = frame->copy; port->original_frame.field = frame->field; port->original_frame.draw = frame->draw; - port->original_frame.displayed = frame->displayed; + port->original_frame.lock = frame->lock; port->original_frame.dispose = frame->dispose; frame->port = &port->port; @@ -173,7 +173,7 @@ void post_intercept_video_frame(vo_frame_t *frame, post_video_port_t *port) { frame->copy = frame->copy ? post_frame_copy : NULL; /* this one can be NULL */ frame->field = post_frame_field; frame->draw = post_frame_draw; - frame->displayed = post_frame_displayed; + frame->lock = post_frame_lock; frame->dispose = post_frame_dispose; } @@ -183,7 +183,7 @@ void post_restore_video_frame(vo_frame_t *frame, post_video_port_t *port) { frame->copy = port->original_frame.copy; frame->field = port->original_frame.field; frame->draw = port->original_frame.draw; - frame->displayed = port->original_frame.displayed; + frame->lock = port->original_frame.lock; frame->dispose = port->original_frame.dispose; } diff --git a/src/xine-engine/post.h b/src/xine-engine/post.h index f00b55f67..894ef9180 100644 --- a/src/xine-engine/post.h +++ b/src/xine-engine/post.h @@ -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: post.h,v 1.8 2003/05/28 12:20:16 miguelfreitas Exp $ + * $Id: post.h,v 1.9 2003/05/31 18:33:31 miguelfreitas Exp $ * * post plugin definitions * @@ -38,7 +38,7 @@ # include <xine/xineutils.h> #endif -#define POST_PLUGIN_IFACE_VERSION 2 +#define POST_PLUGIN_IFACE_VERSION 3 typedef struct post_class_s post_class_t; diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c index 360c383b9..fa4e80180 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.159 2003/05/11 12:59:38 tmattern Exp $ + * $Id: video_out.c,v 1.160 2003/05/31 18:33:31 miguelfreitas Exp $ * * frame allocation / queuing / scheduling / output functions */ @@ -1477,7 +1477,7 @@ xine_video_port_t *vo_new_port (xine_t *xine, vo_driver_t *driver, img->port = &this->vo; img->free = vo_frame_dec_lock; - img->displayed = vo_frame_dec_lock; + img->lock = vo_frame_inc_lock; img->draw = vo_frame_draw; img->extra_info = &this->extra_info_base[i]; diff --git a/src/xine-engine/video_out.h b/src/xine-engine/video_out.h index c8f06212a..faef454ea 100644 --- a/src/xine-engine/video_out.h +++ b/src/xine-engine/video_out.h @@ -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.h,v 1.87 2003/05/20 13:50:57 mroi Exp $ + * $Id: video_out.h,v 1.88 2003/05/31 18:33:32 miguelfreitas Exp $ * * * xine version of video_out.h @@ -75,7 +75,7 @@ struct vo_frame_s { * member functions */ - /* this frame is no longer used by the decoder */ + /* this frame is no longer used by the decoder, video driver, etc */ void (*free) (vo_frame_t *vo_img); /* tell video driver to copy/convert a slice of this frame, may be NULL */ @@ -89,8 +89,11 @@ struct vo_frame_s { returns number of frames to skip if decoder is late */ int (*draw) (vo_frame_t *vo_img, xine_stream_t *stream); - /* this frame is no longer used by the video driver */ - void (*displayed) (vo_frame_t *vo_img); + /* lock frame as reference, must be paired with free. + * most decoders/drivers do not need to call this function since + * newly allocated frames are already locked once. + */ + void (*lock) (vo_frame_t *vo_img); /* free memory/resources for this frame */ void (*dispose) (vo_frame_t *vo_img); @@ -280,7 +283,7 @@ struct xine_video_port_s { * from generic vo functions. */ -#define VIDEO_OUT_DRIVER_IFACE_VERSION 14 +#define VIDEO_OUT_DRIVER_IFACE_VERSION 15 struct vo_driver_s { |