From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id CD664485CC for ; Fri, 8 Dec 2023 15:59:01 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3183268D030; Fri, 8 Dec 2023 17:58:59 +0200 (EET) Received: from mail-oo1-f54.google.com (mail-oo1-f54.google.com [209.85.161.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1EAFD68CC6C for ; Fri, 8 Dec 2023 17:58:53 +0200 (EET) Received: by mail-oo1-f54.google.com with SMTP id 006d021491bc7-5906e03a7a4so1017235eaf.1 for ; Fri, 08 Dec 2023 07:58:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702051131; x=1702655931; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=26aUBmMFFs7OnQHO297b862gGWMeC3nl6xwmutYh2Iw=; b=UAq6SmwThd7jofrQ/a4hOYCcFA+vFkUIj0CgQwpS/14um89njSM6BiLosMnHayvfwL cJ5V7eFvesJsRMKBF9vtpKWncm3qDJQi3mroGvbM8dbX7GTeRh7jsGG49Zo2ooh41xv6 a8w1OfzWyp0eruZ7YrElCQV1MBUT1Rev0bkT5nyodK+zIigk9CFRcOAyjgtaGwymboU/ RLQdsLlVsEPdrwB4EXY7tgdQhiqbn1gNGSyKQhLUNJVYQhrTJC3XshhCALOCTZV++I1W knbGqjCZixCpWOMbtXQwka2SUhJ9omhU9UqHZCcQapt+nhdfXXD1TE3S9xQlTXp4f2zU OrNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702051131; x=1702655931; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=26aUBmMFFs7OnQHO297b862gGWMeC3nl6xwmutYh2Iw=; b=P92XrmqTD3GceyHhSXY3v9DtVI0+smRJD5jHOUWLmr7HLwNhvnF8vE8FdvHeIhlObS ElzkZyRhu8xH++qXe4HM4jDw3n0BHvgYG2Yb24PHAQdYre9Vnuua6gSRa8EF5JTzveQL Qx415BndyTmSV3Q35ARsJS/W1m79uF9DFDU2Pl42WKc95BzZwGrf8OGQy55uKg1Z9ZLp xqqSleaQ/WjTH7gJy1LBaSu9MjVyqou6GcPC4dMuqidmZln08x2k1ZzOKlM35+FPj0hV jk/Dnho+VoEDNGX9LrhebJ/5zRZzkznH9QRYY75X9yQzjbHlNbOLoYxoSg9/s9NsPmUe T2Cg== X-Gm-Message-State: AOJu0Yw6hdup7cleF6Do7lkLoAROYw00z8VPSO8PWUBV5vQ2VZ3ALkC7 EIwWeruAOMakCPm/ECP6XJgln+9kxP8= X-Google-Smtp-Source: AGHT+IHWtuAvNq65YBKckCbwBZkVet2O9Ug1DAxym2mLtLXQjcX7gHLQFxl55uPi8uC1SKNmC+WENQ== X-Received: by 2002:a05:6358:1aa0:b0:170:17eb:14b3 with SMTP id gm32-20020a0563581aa000b0017017eb14b3mr113670rwb.35.1702051130698; Fri, 08 Dec 2023 07:58:50 -0800 (PST) Received: from [192.168.0.16] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id y2-20020a655282000000b00588e8421fa8sm1491906pgp.84.2023.12.08.07.58.48 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 08 Dec 2023 07:58:49 -0800 (PST) Message-ID: <2200ce78-a8c3-47d0-b66a-75992747a2c2@gmail.com> Date: Fri, 8 Dec 2023 12:58:48 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20231208081536.14141-1-klember@redhat.com> Content-Language: en-US From: James Almer Autocrypt: addr=jamrial@gmail.com; keydata= xsBNBFjZtqABCADLW+vdEoZaJZDsIO6geYFTOcn1unsEHefj9zn+3oTHlDFFzO47mzHsSfbK 9JE2xpOJEVnC8FAF5Sayi/pVwV+mtQUV3n5dgVeVBYF9GUQwOGFCpK8X54RRqhkgknbunOEE 0CtgAJgmpFmmmHgq02GvEspx1h/rh4apqwQR6QX4Favb+x9+i9ytVpwVcBX94vo2toyP7h/K BWfadQmb8ltgE1kshfg+SQs/H5bTV5Z1DuEASf02ZL/1qYB/sdTgWPLv9XMUHHsRFmMY8TMx wJSkP+Af3AiYQPJYz1B1D4tt98T/NoiVdin10zATakPjV8hXaobuRmxgakkUASXudydDABEB AAHNH0phbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT7CwJIEEwEIADwCGwMGCwkIBwMC BhUIAgkKCwQWAgMBAh4BAheAFiEEd1EujP2UoWlX5pp6FGMBrXN2WeAFAmJoLUUCGQEACgkQ FGMBrXN2WeAFVQf9GtGhniRs1PzNUOgJktCnv6j4BbLieaIPYPEFXKDHOgjqQE2zVMYXnoXl Jam928ii902a8OY06r9ywn/R8ApD1/3NY/v64O71CY9scz5XyH2au8wIZ6HwFy3/f7sqjdGD uctY8Qs7rjT7NkoC5lmgMu2v2k03dGtM9AAf5AK5gU+H0EUw7vmKKiXzUqt5kvBuf4CEwXvH AQT1SMJ52rIlDWB7FQFyZeUbOAK2IgY/KNedfK6nsgd/eQVnlofPd2XoddE7kP6iys7jJefw DD3g3rZyDTq7in5dyk5glaNpWZpbHGBs+9SCYLnfQ8XvWqPFOD+gj0plamKANgOvavKTxM7A TQRY2bagAQgA69YtILj8kYxmqPr/M8+MXT7wVoOWVW9lvSmPquCELaDy/NIS7D06VC5EuE/6 JlJXZMTn37NLlyWhzwOgXuXw5w2tyoQQBuvqGiXJijuXwXH7HKdzrc6rpYtAqt5w05hzNrFS KrS0izG64VpWrfproy3BsL+8TBm9brLhhNPynVRqVukbbGzlATTzNQGZ14TTi2/dL6DkMQnM qn4jX9UEe4GdGQBP50bUJSSmeiIkyNLWA+znuN2PZEz930ZwNrF9GtDVw7mzcmpCZ7spldE2 tutbpy9D1bIqxyqBrYDSezyzL2adR1qgHyOTMCHg2AYNkrIQHrSyJxKTpZ1/hqOp8wARAQAB wsBfBBgBAgAJBQJY2bagAhsMAAoJEBRjAa1zdlnghekH/0Yb0iYJ74oID2f/Fj+AJKS2ekQF P2xOr8lpGzgp/+yWUvPtqbX0A33anBJdYwxaAC0NataX3tfZ+oJkzXqfmqhIHMPYHdZesJA2 Bk9hU/33mDl5s5U66/z0uelWzwKVHoQ2O6or4+qF3HJFSJLCe9uvWJ3zXf9F342Ftj73sfx+ 3xkw/IXsN1RqbYqDlzpoEQ99SIEfY/8Jjwnd3sIPfqkuyeaYfe6GJDqKawdCEP1oRRlbXEAp TJgYz8r3nPhGv9cdHNDCk44ISbsqVuxIEnLqi4fTPZaGupiQhT+srl268TTAp2TQW7+6Ce/b NPQorMquzS/LZoyALpmsYi/miMc= In-Reply-To: <20231208081536.14141-1-klember@redhat.com> Subject: Re: [FFmpeg-devel] [PATCH] lavc/libopenh264: Drop openh264 runtime version checks X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 12/8/2023 5:15 AM, Kalev Lember wrote: > Years ago, openh264 releases often changed their ABI without changing > the library soname. To avoid running into ABI issues, a version check > was added to lavc libopenh264 code to error out at runtime in case the > build time and runtime openh264 versions don't match. > > This should no longer be an issue with newer openh264 releases and we > can drop the runtime version check and rely on upstream doing the right > thing and bump the library soname if the ABI changes, similar to how > other libraries are consumed in ffmpeg. Does the configure check ensure a new enough openh264 version is the minimum supported? > > Almost all major distributions now include openh264 and this means there > are more eyes on ABI changes and issues are discovered and reported > quickly. See e.g. https://github.com/cisco/openh264/issues/3564 where an > ABI issue was quickly discovered and fixed. > > Relaxing the check allows downstream distributions to build ffmpeg > against e.g. openh264 2.3.1 and ship an update to ABI-compatible > openh264 2.4.0, without needing to coordinate a lock step update between > ffmpeg and openh264 (which can be difficult if openh264 is distributed > by Cisco and ffmpeg comes from the distro, such as is the case for > Fedora). > > Signed-off-by: Kalev Lember > --- > libavcodec/libopenh264.c | 15 --------------- > libavcodec/libopenh264.h | 2 -- > libavcodec/libopenh264dec.c | 4 ---- > libavcodec/libopenh264enc.c | 4 ---- > 4 files changed, 25 deletions(-) > > diff --git a/libavcodec/libopenh264.c b/libavcodec/libopenh264.c > index 0f6d28ed88..c80c85ea8b 100644 > --- a/libavcodec/libopenh264.c > +++ b/libavcodec/libopenh264.c > @@ -46,18 +46,3 @@ void ff_libopenh264_trace_callback(void *ctx, int level, const char *msg) > int equiv_ffmpeg_log_level = libopenh264_to_ffmpeg_log_level(level); > av_log(ctx, equiv_ffmpeg_log_level, "%s\n", msg); > } > - > -int ff_libopenh264_check_version(void *logctx) > -{ > - // Mingw GCC < 4.7 on x86_32 uses an incorrect/buggy ABI for the WelsGetCodecVersion > - // function (for functions returning larger structs), thus skip the check in those > - // configurations. > -#if !defined(_WIN32) || !defined(__GNUC__) || !ARCH_X86_32 || AV_GCC_VERSION_AT_LEAST(4, 7) > - OpenH264Version libver = WelsGetCodecVersion(); > - if (memcmp(&libver, &g_stCodecVersion, sizeof(libver))) { > - av_log(logctx, AV_LOG_ERROR, "Incorrect library version loaded\n"); > - return AVERROR(EINVAL); > - } > -#endif > - return 0; > -} > diff --git a/libavcodec/libopenh264.h b/libavcodec/libopenh264.h > index dbb9c5d429..0b462d6fdc 100644 > --- a/libavcodec/libopenh264.h > +++ b/libavcodec/libopenh264.h > @@ -34,6 +34,4 @@ > > void ff_libopenh264_trace_callback(void *ctx, int level, const char *msg); > > -int ff_libopenh264_check_version(void *logctx); > - > #endif /* AVCODEC_LIBOPENH264_H */ > diff --git a/libavcodec/libopenh264dec.c b/libavcodec/libopenh264dec.c > index 7d650ae03e..b6a9bba2dc 100644 > --- a/libavcodec/libopenh264dec.c > +++ b/libavcodec/libopenh264dec.c > @@ -52,13 +52,9 @@ static av_cold int svc_decode_init(AVCodecContext *avctx) > { > SVCContext *s = avctx->priv_data; > SDecodingParam param = { 0 }; > - int err; > int log_level; > WelsTraceCallback callback_function; > > - if ((err = ff_libopenh264_check_version(avctx)) < 0) > - return AVERROR_DECODER_NOT_FOUND; > - > if (WelsCreateDecoder(&s->decoder)) { > av_log(avctx, AV_LOG_ERROR, "Unable to create decoder\n"); > return AVERROR_UNKNOWN; > diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c > index f518d0894e..6f231d22b2 100644 > --- a/libavcodec/libopenh264enc.c > +++ b/libavcodec/libopenh264enc.c > @@ -110,14 +110,10 @@ static av_cold int svc_encode_init(AVCodecContext *avctx) > { > SVCContext *s = avctx->priv_data; > SEncParamExt param = { 0 }; > - int err; > int log_level; > WelsTraceCallback callback_function; > AVCPBProperties *props; > > - if ((err = ff_libopenh264_check_version(avctx)) < 0) > - return AVERROR_ENCODER_NOT_FOUND; > - > if (WelsCreateSVCEncoder(&s->encoder)) { > av_log(avctx, AV_LOG_ERROR, "Unable to create encoder\n"); > return AVERROR_UNKNOWN; _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".