If width or height doesn't divide by 8, there are non-full blocks with
the remaining of pixels; but before this commit, RTP encoding procedure
assumed there's just w/8 by h/8 blocks.

Signed-off-by: Andrey Utkin <andrey.krieger.ut...@gmail.com>
---
 libavformat/rtpenc_jpeg.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/rtpenc_jpeg.c b/libavformat/rtpenc_jpeg.c
index c353329..a6f454b 100644
--- a/libavformat/rtpenc_jpeg.c
+++ b/libavformat/rtpenc_jpeg.c
@@ -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 = (s1->streams[0]->codec->width  >> 3) + (s1->streams[0]->codec->width  
% 7 ? 1 : 0);
+    h = (s1->streams[0]->codec->height >> 3) + (s1->streams[0]->codec->height 
% 7 ? 1 : 0);
 
     /* get the pixel format type or fail */
     if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ422P ||
-- 
2.2.0

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to