]> granicus.if.org Git - libass/commitdiff
ass_lazy_track_init: handle negative PlayResX/PlayResY
authorOleg Oshmyan <chortos@inbox.lv>
Fri, 3 Feb 2017 23:53:43 +0000 (01:53 +0200)
committerOleg Oshmyan <chortos@inbox.lv>
Tue, 14 Feb 2017 17:43:37 +0000 (19:43 +0200)
Like VSFilter, treat negative values the same as missing values.

libass/ass.c

index 93376d292d51ee9d175d3c42ed652ccabb39d0c8..d99498ec0d69cd1f5afee14942645360b45d872a 100644 (file)
@@ -1343,27 +1343,27 @@ ASS_Track *ass_new_track(ASS_Library *library)
  */
 void ass_lazy_track_init(ASS_Library *lib, ASS_Track *track)
 {
-    if (track->PlayResX && track->PlayResY)
+    if (track->PlayResX > 0 && track->PlayResY > 0)
         return;
-    if (!track->PlayResX && !track->PlayResY) {
+    if (track->PlayResX <= 0 && track->PlayResY <= 0) {
         ass_msg(lib, MSGL_WARN,
                "Neither PlayResX nor PlayResY defined. Assuming 384x288");
         track->PlayResX = 384;
         track->PlayResY = 288;
     } else {
-        if (!track->PlayResY && track->PlayResX == 1280) {
+        if (track->PlayResY <= 0 && track->PlayResX == 1280) {
             track->PlayResY = 1024;
             ass_msg(lib, MSGL_WARN,
                    "PlayResY undefined, setting to %d", track->PlayResY);
-        } else if (!track->PlayResY) {
+        } else if (track->PlayResY <= 0) {
             track->PlayResY = track->PlayResX * 3 / 4;
             ass_msg(lib, MSGL_WARN,
                    "PlayResY undefined, setting to %d", track->PlayResY);
-        } else if (!track->PlayResX && track->PlayResY == 1024) {
+        } else if (track->PlayResX <= 0 && track->PlayResY == 1024) {
             track->PlayResX = 1280;
             ass_msg(lib, MSGL_WARN,
                    "PlayResX undefined, setting to %d", track->PlayResX);
-        } else if (!track->PlayResX) {
+        } else if (track->PlayResX <= 0) {
             track->PlayResX = track->PlayResY * 4 / 3;
             ass_msg(lib, MSGL_WARN,
                    "PlayResX undefined, setting to %d", track->PlayResX);