libavcodec/xsubenc.c: Fix bounding box coordinates
authorErik Olofsson <eaj.olofsson@gmail.com>
Thu, 7 Nov 2013 20:07:10 +0000 (21:07 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 12 Nov 2013 02:15:33 +0000 (03:15 +0100)
Fix coordinates of the lower right corner of the text area.
Note that the coordinates are redundant as the size and
position of the text area are known.
Many decoders (including Sony Playstation 3, VLC and FFmpeg)
ignore the redundant coordinates.
Some hardware decoders need them for correct playback.

Verified on Philips DVD player models HTS7201 and DVP3380.

Fixes ticket #3031

Signed-off-by: Erik Olofsson <eaj.olofsson@gmail.com>
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/xsubenc.c

index 9dc80ee..bb2cdb0 100644 (file)
@@ -166,8 +166,8 @@ static int xsub_encode(AVCodecContext *avctx, unsigned char *buf,
     bytestream_put_le16(&hdr, height);
     bytestream_put_le16(&hdr, h->rects[0]->x);
     bytestream_put_le16(&hdr, h->rects[0]->y);
-    bytestream_put_le16(&hdr, h->rects[0]->x + width);
-    bytestream_put_le16(&hdr, h->rects[0]->y + height);
+    bytestream_put_le16(&hdr, h->rects[0]->x + width -1);
+    bytestream_put_le16(&hdr, h->rects[0]->y + height -1);
 
     rlelenptr = hdr; // Will store length of first field here later.
     hdr+=2;