summaryrefslogtreecommitdiff
path: root/src/xine-engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-engine')
-rw-r--r--src/xine-engine/post.c12
-rw-r--r--src/xine-engine/post.h4
-rw-r--r--src/xine-engine/video_out.c4
-rw-r--r--src/xine-engine/video_out.h13
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 {