[FFmpeg-devel] [PATCH 3/3] lavc/libxvid: workaround for bug in libxvidcore

Michael Niedermayer michaelni at gmx.at
Fri Dec 5 03:48:39 CET 2014


On Thu, Dec 04, 2014 at 11:33:03PM +0100, Lukasz Marek wrote:
> On 04.12.2014 12:42, Clément Bœsch wrote:
> >On Thu, Dec 04, 2014 at 12:39:29AM +0100, Lukasz Marek wrote:
> >>On 24.11.2014 01:17, Lukasz Marek wrote:
> >>>libxvidcore calculate number of threads basing on video height.
> >>>If height is small enough it allocates 0 bytes long memory and
> >>>writes to it.
> >>>Setting thread_count to 0 uses 1 thread and skips bugged code.
> >>>
> >>>Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> >>>---
> >>>  libavcodec/libxvid.c | 11 +++++++++++
> >>>  1 file changed, 11 insertions(+)
> >>>
> >>>diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c
> >>>index 70d52b9..efe7b8a 100644
> >>>--- a/libavcodec/libxvid.c
> >>>+++ b/libavcodec/libxvid.c
> >>>@@ -471,6 +471,17 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx)
> >>>      xvid_enc_create.num_zones = 0;
> >>>
> >>>      xvid_enc_create.num_threads = avctx->thread_count;
> >>>+    /* workaround for a bug in libxvidcore */
> >>>+    if (avctx->height < 18) {
> >>>+        if (avctx->thread_count < 2) {
> >>>+            xvid_enc_create.num_threads = 0;
> >>>+        } else {
> >>>+            av_log(avctx, AV_LOG_ERROR,
> >>>+                   "Too small height for threads > 1.");
> >>>+            ret = AVERROR(EINVAL);
> >>>+            goto fail;
> >>>+        }
> >>>+    }
> >>>
> >>>      xvid_enc_create.plugins     = plugins;
> >>>      xvid_enc_create.num_plugins = 0;
> >>>
> >>
> >>Please comment this patch. xvid accepted fix for it.
> >
> >Can you add a version check, or at least a comment saying what versions
> >are affected by this?
> 
> Added a check. it was introduced in 1.3.0 and still present in
> 1.3.3. Next should be fixed.
> 

>  libxvid.c |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
> de82e17a2e509e21ce8384d913a9394f80b8537d  0001-lavc-libxvid-workaround-for-bug-in-libxvidcore.patch
> From 1bfe00284fdb3dba072147df1efce03c7d29dd35 Mon Sep 17 00:00:00 2001
> From: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> Date: Mon, 24 Nov 2014 01:12:06 +0100
> Subject: [PATCH] lavc/libxvid: workaround for bug in libxvidcore
> 
> libxvidcore calculate number of threads basing on video height.
> If height is small enough it allocates 0 bytes long memory and
> writes to it.
> Setting thread_count to 0 uses 1 thread and skips bugged code.
> 
> Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>

applied

thanks

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Observe your enemies, for they first find out your faults. -- Antisthenes
-------------- 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/20141205/ae1ff226/attachment.asc>


More information about the ffmpeg-devel mailing list