]> granicus.if.org Git - libass/commitdiff
With pan-and-scan, keep positioned events in their original positions
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Sun, 1 Mar 2009 16:01:24 +0000 (16:01 +0000)
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Sun, 1 Mar 2009 16:01:24 +0000 (16:01 +0000)
relative to video.

Patch by Grigori Goronzy (greg chown ath cx).

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28783 b3059339-0415-0410-9bf9-f77b7e298cf2

libass/ass_render.c

index ead118dddef74abc0cc32048b01dabc63001b146..a40adec505154f7d9ef01684c58c0b1a03841d9f 100644 (file)
@@ -467,6 +467,10 @@ static int x2scr(double x) {
        return x*frame_context.orig_width_nocrop / frame_context.track->PlayResX +
                FFMAX(global_settings->left_margin, 0);
 }
+static int x2scr_pos(double x) {
+       return x*frame_context.orig_width / frame_context.track->PlayResX +
+               global_settings->left_margin;
+}
 /**
  * \brief Mapping between script and screen coordinates
  */
@@ -2014,7 +2018,7 @@ static int ass_render_event(ass_event_t* event, event_images_t* event_images)
                int base_y = 0;
                mp_msg(MSGT_ASS, MSGL_DBG2, "positioned event at %f, %f\n", render_context.pos_x, render_context.pos_y);
                get_base_point(bbox, alignment, &base_x, &base_y);
-               device_x = x2scr(render_context.pos_x) - base_x;
+               device_x = x2scr_pos(render_context.pos_x) - base_x;
                device_y = y2scr(render_context.pos_y) - base_y;
        }