[FFmpeg-devel] [PATCH] rtpenc_jpeg: handle case of picture dimensions not dividing by 8
Thomas Volkert
silvo at gmx.net
Sat Apr 11 02:02:39 CEST 2015
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.
BR,
Thomas.
More information about the ffmpeg-devel
mailing list