Display subtitles within the display area.
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 3 Jan 2009 17:50:00 +0000 (17:50 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 3 Jan 2009 17:50:00 +0000 (17:50 +0000)
Fixes dvd-subtitle-problem.vob. (problem likely is that the video
resolution is smaller than what the subtitles expect)

Originally committed as revision 16411 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffplay.c

index a802cc1..69b1fa1 100644 (file)
--- a/ffplay.c
+++ b/ffplay.c
@@ -441,10 +441,10 @@ static void blend_subrect(AVPicture *dst, const AVSubtitleRect *rect, int imgw,
     const uint32_t *pal;
     int dstx, dsty, dstw, dsth;
 
     const uint32_t *pal;
     int dstx, dsty, dstw, dsth;
 
-    dstx = FFMIN(FFMAX(rect->x, 0), imgw);
-    dstw = FFMIN(FFMAX(rect->w, 0), imgw - dstx);
-    dsty = FFMIN(FFMAX(rect->y, 0), imgh);
-    dsth = FFMIN(FFMAX(rect->h, 0), imgh - dsty);
+    dstw = av_clip(rect->w, 0, imgw);
+    dsth = av_clip(rect->h, 0, imgh);
+    dstx = av_clip(rect->x, 0, imgw - dstw);
+    dsty = av_clip(rect->y, 0, imgh - dsth);
     lum = dst->data[0] + dsty * dst->linesize[0];
     cb = dst->data[1] + (dsty >> 1) * dst->linesize[1];
     cr = dst->data[2] + (dsty >> 1) * dst->linesize[2];
     lum = dst->data[0] + dsty * dst->linesize[0];
     cb = dst->data[1] + (dsty >> 1) * dst->linesize[1];
     cr = dst->data[2] + (dsty >> 1) * dst->linesize[2];