rtpenc_jpeg: handle case of picture dimensions not dividing by 8
authorAndrey Utkin <andrey.krieger.utkin@gmail.com>
Fri, 10 Apr 2015 21:54:10 +0000 (00:54 +0300)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 10 Jun 2015 00:13:12 +0000 (02:13 +0200)
This fixes the calculation of the number of needed blocks to make
sure that ALL pixels are represented by the result.

Reviewed-by: Thomas Volkert <silvo@gmx.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7f64a7503b19b39f1251e4380987034c569bebf5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/rtpenc_jpeg.c

index 47898a3..5288283 100644 (file)
@@ -40,8 +40,8 @@ void ff_rtp_send_jpeg(AVFormatContext *s1, const uint8_t *buf, int size)
     s->timestamp = s->cur_timestamp;
 
     /* convert video pixel dimensions from pixels to blocks */
-    w = s1->streams[0]->codec->width  >> 3;
-    h = s1->streams[0]->codec->height >> 3;
+    w = FF_CEIL_RSHIFT(s1->streams[0]->codec->width, 3);
+    h = FF_CEIL_RSHIFT(s1->streams[0]->codec->height, 3);
 
     /* check if pixel format is not the normal 420 case */
     if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ422P) {