>From 12e629c4228074ff293ba136746610b267e9c477 Mon Sep 17 00:00:00 2001 From: greg Date: Wed, 18 Feb 2009 02:25:41 +0100 Subject: [PATCH 06/12] Support one of these braindead vsfilter special cases: If PlayResX or Y is 1280/1024 respectively and the other PlayRes attribute isn't provided, use 1280/1024 for it. --- libass/ass_render.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/libass/ass_render.c b/libass/ass_render.c index eb07821..75963a4 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -224,9 +224,15 @@ static void ass_lazy_track_init(void) } else { double orig_aspect = (global_settings->aspect * frame_context.height * frame_context.orig_width) / frame_context.orig_height / frame_context.width; - if (!track->PlayResY) { + if (!track->PlayResY && track->PlayResX == 1280) { + track->PlayResY = 1024; + mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_PlayResYUndefinedSettingY, track->PlayResY); + } else if (!track->PlayResY) { track->PlayResY = track->PlayResX / orig_aspect + .5; mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_PlayResYUndefinedSettingY, track->PlayResY); + } else if (!track->PlayResX && track->PlayResY == 1024) { + track->PlayResX = 1280; + mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_PlayResXUndefinedSettingX, track->PlayResX); } else if (!track->PlayResX) { track->PlayResX = track->PlayResY * orig_aspect + .5; mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_PlayResXUndefinedSettingX, track->PlayResX); -- 1.5.4.3