summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/post/planar/expand.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/post/planar/expand.c b/src/post/planar/expand.c
index a2d89aa22..51cc4eac2 100644
--- a/src/post/planar/expand.c
+++ b/src/post/planar/expand.c
@@ -106,6 +106,7 @@ static char *expand_get_help (void);
static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
uint32_t height, double ratio,
int format, int flags);
+static int expand_draw(vo_frame_t *frame, xine_stream_t *stream);
/* overlay manager intercept check */
static int expand_intercept_ovl(post_video_port_t *port);
@@ -155,6 +156,7 @@ static post_plugin_t *expand_open_plugin(post_class_t *class_gen, int inputs,
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->new_port.get_frame = expand_get_frame;
+ port->new_frame->draw = expand_draw;
port->intercept_ovl = expand_intercept_ovl;
port->new_manager->add_event = expand_overlay_add_event;
@@ -241,6 +243,20 @@ static char *expand_get_help(void) {
}
+static int expand_draw(vo_frame_t *frame, xine_stream_t *stream)
+{
+ post_video_port_t *port = (post_video_port_t *)frame->port;
+ post_expand_t *this = (post_expand_t *)port->post;
+ int skip;
+
+ frame->ratio = this->aspect;
+ _x_post_frame_copy_down(frame, frame->next);
+ skip = frame->next->draw(frame->next, stream);
+ _x_post_frame_copy_up(frame, frame->next);
+ return skip;
+}
+
+
static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
uint32_t height, double ratio,
int format, int flags)
@@ -275,7 +291,7 @@ static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
* from the decoders by modifying the pointers to and
* the size of the drawing area */
frame->height = height;
- frame->ratio = this->aspect;
+ frame->ratio = ratio;
switch (format) {
case XINE_IMGFMT_YV12:
/* paint top bar */