[FFmpeg-devel] [PATCH] rtpenc_jpeg: handle case of picture dimensions not dividing by 8

Michael Niedermayer michaelni at gmx.at
Sat Apr 11 02:13:20 CEST 2015


On Sat, Apr 11, 2015 at 02:02:39AM +0200, Thomas Volkert wrote:
> 
> 
> Am 10.04.2015 um 23:54 schrieb Andrey Utkin:
> >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.
> Maybe this is a clearer term:
> "This fixes the calculation of the number of needed blocks to make
> sure that ALL pixels are represented by the result."
> 
> >Signed-off-by: Andrey Utkin <andrey.krieger.utkin at 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..9a20cbc 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 = FF_CEIL_RSHIFT(s1->streams[0]->codec->width, 3);
> >+    h = FF_CEIL_RSHIFT(s1->streams[0]->codec->height, 3);
> >      /* get the pixel format type or fail */
> >      if (s1->streams[0]->codec->pix_fmt == AV_PIX_FMT_YUVJ422P ||
> LGTM.

applied with the suggested commit message

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

You can kill me, but you cannot change the truth.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150411/46aea788/attachment.asc>


More information about the ffmpeg-devel mailing list