diff options
-rw-r--r-- | src/post/planar/expand.c | 18 |
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 */ |