From patchwork Fri May 17 15:23:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48957 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2957412pzb; Fri, 17 May 2024 08:37:52 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWC7CtImKicwOHJNPcl436VLuEF4XgdeFvdJg10IKsbN0hPU9N11sdGbP7V2nAsC34j9R7SIAt7dhMJMLKWkwSDdWOAJ1WgvJeB0w== X-Google-Smtp-Source: AGHT+IGWYZhoN7Oq2FmWEMKozJeqI5n2IrTEMOxhfwulPqMxhdULRsAw2jiQX6YMsyNPEGbaEzdQ X-Received: by 2002:a50:a6dc:0:b0:574:ebfb:6d8d with SMTP id 4fb4d7f45d1cf-574ebfb6dcbmr7570808a12.2.1715960272517; Fri, 17 May 2024 08:37:52 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-57509572b40si2187666a12.357.2024.05.17.08.37.51; Fri, 17 May 2024 08:37:52 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=eGU0erGP; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B309468D280; Fri, 17 May 2024 18:37:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2101.outbound.protection.outlook.com [40.92.89.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7AF2168CC49 for ; Fri, 17 May 2024 18:37:41 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SKg6HXEqWq5ThJcd9vSyO2ub0bjNbaidCbU8lTPpJIaduDbCaxjj8i5CFh0rXhHPp2Re2DMvO6FeY8xYQVANqyk5c1IPS9TC6pfAiLktokN+HMZ0FnzKtyF5itvtnJn3BmbH7c6iY88JSlESTqCnlmGmgF41W2q8it0d2tJPWVVdkmrRnb6nJQcmQeNZ/rhlMFl/vfVV1/rNZnKG264OddvK2LDeLWLpIgvSgxNMaP+k0bbIONrZ4aDgy9O6krwhx2OVPb1x9NXpyuGguOJ+8HxfexvujqZaoR7NxIYSQnPgIy/giOMgHr/JhnLZAYi3+N0h1wovLOt8Ib1VETwWQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BHW/P/7NqmV9DWvpoUy4p2iLFY3C7twvYyXRGQS/Myw=; b=EHZM4riroPqvwDgW4QxTbdEO2aIsae1aLxRAN4WNr3xAwvoci924L57EpONqE5lcetGvcRALsDTmjYZL/UL7rB6Aog2w7RrQnf00G+3KnVukSOuIwHTdDwmtspOANyS2E+278ziau8NlYuZffTaaoK9Wuj63JgtefkOpogdFaL7yl8g0C8b4GbREBC9DFQzXA0oJ0sWi+rJeSFAghvf3MU2qWes3Fmnbs7Cx56oYUCYVJ67SUnjoyOlfkafQAAqj31VxK0LsCCqkdYY+6O4ZKtInRaexwtXETeugKNOyY2mBMY85ObrXb2ZHDfrzTmSxT5piRvwBT8+5a7lCGRn/3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BHW/P/7NqmV9DWvpoUy4p2iLFY3C7twvYyXRGQS/Myw=; b=eGU0erGP4rOyXvAHPnagTyd9AhkdPYTYT27EdV9ugz7PdN8uGjXHqhjGNFqgZ/DDQyGkdPA4Ar2DX/hQN8TmvBTN5T80ZdUrPACbXNl+f0q6z7jk9QozFyVa7dN6HBMhyCPccw0h7QYygFCVkDqmlhfU5cRzybTCWEHesrZyQa3/L76gtFvGpN1cYFsF3LwPjctB6b1ScCFoApOyEhNEl3R6XnqGMPA7ibeCr7eB0N8T+H7dA5qw8C5ZPoRwHQyzLEbu+ywJdbWCNYafU+ex4LTeK0/OHQURMrmMwbfhdfUpSTxdpnt4IAVe8UadUL1y6BRxtRHlvIUZDf7ZDO8+Gg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PRAP250MB0490.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:290::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.55; Fri, 17 May 2024 15:23:17 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7544.052; Fri, 17 May 2024 15:23:17 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 17 May 2024 17:23:05 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [iBT37rdTyvBvqeqDOBYaOsoB05yKZdyQa5q2/Bgstz8=] X-ClientProxiedBy: ZR0P278CA0084.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::17) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240517152310.3794014-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PRAP250MB0490:EE_ X-MS-Office365-Filtering-Correlation-Id: 121a85d3-151c-4392-73a0-08dc768546d8 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: Gguv6NE+i4AxUGpIBSgTRIzHrGcMeFeynXsTLmcSCv64UuGn+eo2k8i6XtwuNFrWWdbHkC6vv++eUgPwAkVcAnPIXDwPAR1PbMQeLjLTBRzQPTT5OzDtp9tL5eBq0JFdB+wFSuMWgB3PTO/CNmSJSexWleB/yFFshTbeferHoy9gcg384K2fmRlrWdSlkjdzkVXj1r5iWnxG/35fnZ+ChenPFTZ1Hm+6f6ykzXl3Tdzc/dfUzGIH3+HWBPn9qLk7QMn5cUqzNIrFphD2nAqadsgOURPYW4qBFEcxBdJhZQdzcaBnxMkpKb0vWR0Ez0Pzs2pDIIMHVmC8nWhfdchJIH9UGTioVCvYNzYaBdsj/tD69Qgk6bWNjSSE3y/vRDXt+jDWRzbpS64g9W1IkCxZ5nUzCNKwwOT96tYvbZnrgGlJSueAPzJh/8NSvgK2LIvNm42QvgcjC3edfD1HvhzC2nCOpHJm1GZEnMq9ZSH6KNG9KfG8KeYgkfQjQPzXbB6GNw9zAuy0pLxv9hWNGyDDag5vW/paoovTWtWG8AmJHR31YfEZklhc8r1ROhGdM6+/EGBa9URpqwotdMvz0PMDx/EdrlufeVQesQBp87ZO5g4e/gLb8tL2ud9cypquX2Nj X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tqarD5LEbkGkZwzmL9Dor0FJgTbUh1kHYFgAWD2TiBAoKnn5vMEBDgUjRwk7tJKZ3tGXG6kCXNWtCjD9l9myZHF/7LVwk+Tf3Hxs94dS4CST6wdeif9Sd5ZKMAsrLqa0ES61RCuCMW6TpAkSn2TZAC5aOwnqYbxrsNfMCrj9FIpUagUSC0UnMekHza++GpdEYlQKvtWmvnb/lhXyW6R6H8BAQoMOG89P5e/+qMF5MYpYTDUCSogMLKB7ISj3seLniRxL7lz5tU/wST+LgftQeTwbIj5mnAVKAVk5TG8VZIsVGulIgDZ0KPsiE531kXzW/at4qT7IsxFQ2UfADx2bycPu5rFNskeTdymqI4q0DewckHDfdHzZt4nPYI+TY+NEDtSW/xs+TCynErs8/UelKsqKd4083Ml3eYsCZ8DUBFZYiMFmsBTDFMbRyDgw8MOp1O0afUuWbmXREYYrPUxKPUH4Fiu60YJN4kLhZ4S0v9yJXbUmFby/9pXEGNq2FtM+6kpF/z3tSJfRcD8btTRd/YhqV9+PL4JnraJZ1TJ7VSXrj46M0Ulh/M3OhMpg8mkrWfHy+CqrTe/vS+5p99qfmmFwHPinOYL8hIXHQb/0EIGbR9wVe1R/8HkoliO2O1IXLa+FsDGCfYm2CDJ459Vuek6Q5GWerpoOzK8u/itb3LRE8qUSJcvn+VlL/4ScooVDscI+iULC+F+g3er5K2xBxGBacB8x2fWQvUJ+H+UjS7PdM24eaJaIKtUFFRTz3LrrZj3Up1W2/r6dE++/NbLGlHau0sVgNvFDXQ+1L1OBrUqr5pdidPrUiWjNf5qx+t31LoIKj66y46ZUNimUExmUKI/6nnuRqxzG6M7UX8DVFnyU+iOYkjdQwY2lPcRWPXyCBKzQ3L10+uZ5OejfIzDGeyL+vXBneTRf3zKaOyb5/mNM68vTByxK334JCpxqSx4e295zPvhA5DR72MuwAMScNNTjUQ3tDQtpWPC+NkCiepnIfvuvE+9mIBfJcF9QFKMVmqz6M6qtUw3NZdB0v7dXq20q20ka+w5/TyfpP25uBsZBI8/uSvHLba3Jjs2kOJUo0gUbbjDmCmR+uTJ+oa707XyMXNEjMlF9PNpIDaYpegYfabg3nBiuUKWHg65EcvuJpOt87LvIy4+kof+EOFoKxLTmE8/IcwUzBFwLlJqnpCONizPn8UccZQnH77DniETqsno2BOt8LGly9Quh63G8qkERWWapaIPEr3AFXfMMShoXUpsiLvPILe286JeIKQLNr/V4Zehv26Zh3d2oKW8WwQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 121a85d3-151c-4392-73a0-08dc768546d8 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2024 15:23:17.4213 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PRAP250MB0490 Subject: [FFmpeg-devel] [PATCH 1/6] avformat/utils: Use static mutexes instead of ff_lock_avformat() 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ui2n6PIMlmcV Its existence is a remnant of (libavcodec's) lock-manager API which has been removed in a04c2c707de2ce850f79870e84ac9d7ec7aa9143. There is no need to use the same lock for avisynth, chromaprint or tls, so switch to ordinary static mutexes instead. Signed-off-by: Andreas Rheinhardt --- libavformat/avisynth.c | 15 +++++++++------ libavformat/chromaprint.c | 12 +++++++----- libavformat/internal.h | 3 --- libavformat/tls_gnutls.c | 16 +++++++--------- libavformat/tls_openssl.c | 17 +++++++---------- libavformat/utils.c | 13 ------------- 6 files changed, 30 insertions(+), 46 deletions(-) diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c index 1709bf4051..625bdf7e3a 100644 --- a/libavformat/avisynth.c +++ b/libavformat/avisynth.c @@ -23,6 +23,7 @@ #include "libavutil/internal.h" #include "libavutil/mem.h" #include "libavutil/opt.h" +#include "libavutil/thread.h" #include "avformat.h" #include "demux.h" @@ -130,6 +131,8 @@ static const int avs_planes_yuva[4] = { AVS_PLANAR_Y, AVS_PLANAR_U, static const int avs_planes_rgba[4] = { AVS_PLANAR_G, AVS_PLANAR_B, AVS_PLANAR_R, AVS_PLANAR_A }; +static AVMutex avisynth_mutex = AV_MUTEX_INITIALIZER; + /* A conflict between C++ global objects, atexit, and dynamic loading requires * us to register our own atexit handler to prevent double freeing. */ static AviSynthLibrary avs_library; @@ -1083,15 +1086,15 @@ static av_cold int avisynth_read_header(AVFormatContext *s) int ret; // Calling library must implement a lock for thread-safe opens. - if (ret = ff_lock_avformat()) - return ret; + if (ff_mutex_lock(&avisynth_mutex)) + return AVERROR_UNKNOWN; if (ret = avisynth_open_file(s)) { - ff_unlock_avformat(); + ff_mutex_unlock(&avisynth_mutex); return ret; } - ff_unlock_avformat(); + ff_mutex_unlock(&avisynth_mutex); return 0; } @@ -1127,11 +1130,11 @@ static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt) static av_cold int avisynth_read_close(AVFormatContext *s) { - if (ff_lock_avformat()) + if (ff_mutex_lock(&avisynth_mutex)) return AVERROR_UNKNOWN; avisynth_context_destroy(s->priv_data); - ff_unlock_avformat(); + ff_mutex_unlock(&avisynth_mutex); return 0; } diff --git a/libavformat/chromaprint.c b/libavformat/chromaprint.c index 1cdca47ea5..eae233a651 100644 --- a/libavformat/chromaprint.c +++ b/libavformat/chromaprint.c @@ -20,15 +20,17 @@ */ #include "avformat.h" -#include "internal.h" #include "mux.h" #include "libavutil/opt.h" +#include "libavutil/thread.h" #include #define CPR_VERSION_INT AV_VERSION_INT(CHROMAPRINT_VERSION_MAJOR, \ CHROMAPRINT_VERSION_MINOR, \ CHROMAPRINT_VERSION_PATCH) +static AVMutex chromaprint_mutex = AV_MUTEX_INITIALIZER; + typedef enum FingerprintFormat { FINGERPRINT_RAW, FINGERPRINT_COMPRESSED, @@ -52,9 +54,9 @@ static void deinit(AVFormatContext *s) ChromaprintMuxContext *const cpr = s->priv_data; if (cpr->ctx) { - ff_lock_avformat(); + ff_mutex_lock(&chromaprint_mutex); chromaprint_free(cpr->ctx); - ff_unlock_avformat(); + ff_mutex_unlock(&chromaprint_mutex); } } @@ -63,9 +65,9 @@ static av_cold int init(AVFormatContext *s) ChromaprintMuxContext *cpr = s->priv_data; AVStream *st; - ff_lock_avformat(); + ff_mutex_lock(&chromaprint_mutex); cpr->ctx = chromaprint_new(cpr->algorithm); - ff_unlock_avformat(); + ff_mutex_unlock(&chromaprint_mutex); if (!cpr->ctx) { av_log(s, AV_LOG_ERROR, "Failed to create chromaprint context.\n"); diff --git a/libavformat/internal.h b/libavformat/internal.h index 7f3d1c0086..6bad4fd119 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -727,9 +727,6 @@ struct AVBPrint; */ int ff_bprint_to_codecpar_extradata(AVCodecParameters *par, struct AVBPrint *buf); -int ff_lock_avformat(void); -int ff_unlock_avformat(void); - /** * Set AVFormatContext url field to the provided pointer. The pointer must * point to a valid string. The existing url field is freed if necessary. Also diff --git a/libavformat/tls_gnutls.c b/libavformat/tls_gnutls.c index 2ab38a199b..df251ad79c 100644 --- a/libavformat/tls_gnutls.c +++ b/libavformat/tls_gnutls.c @@ -25,15 +25,12 @@ #include #include "avformat.h" -#include "internal.h" #include "network.h" #include "os_support.h" #include "url.h" #include "tls.h" -#include "libavcodec/internal.h" -#include "libavutil/avstring.h" #include "libavutil/opt.h" -#include "libavutil/parseutils.h" +#include "libavutil/thread.h" #ifndef GNUTLS_VERSION_NUMBER #define GNUTLS_VERSION_NUMBER LIBGNUTLS_VERSION_NUMBER @@ -41,7 +38,6 @@ #if HAVE_THREADS && GNUTLS_VERSION_NUMBER <= 0x020b00 #include -#include "libavutil/thread.h" GCRY_THREAD_OPTION_PTHREAD_IMPL; #endif @@ -54,22 +50,24 @@ typedef struct TLSContext { int io_err; } TLSContext; +static AVMutex gnutls_mutex = AV_MUTEX_INITIALIZER; + void ff_gnutls_init(void) { - ff_lock_avformat(); + ff_mutex_lock(&gnutls_mutex); #if HAVE_THREADS && GNUTLS_VERSION_NUMBER < 0x020b00 if (gcry_control(GCRYCTL_ANY_INITIALIZATION_P) == 0) gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); #endif gnutls_global_init(); - ff_unlock_avformat(); + ff_mutex_unlock(&gnutls_mutex); } void ff_gnutls_deinit(void) { - ff_lock_avformat(); + ff_mutex_lock(&gnutls_mutex); gnutls_global_deinit(); - ff_unlock_avformat(); + ff_mutex_unlock(&gnutls_mutex); } static int print_tls_error(URLContext *h, int ret) diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c index b875be32f0..89d7c6e1ea 100644 --- a/libavformat/tls_openssl.c +++ b/libavformat/tls_openssl.c @@ -19,17 +19,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "avformat.h" -#include "internal.h" #include "network.h" #include "os_support.h" #include "url.h" #include "tls.h" -#include "libavutil/avstring.h" -#include "libavutil/avutil.h" #include "libavutil/mem.h" #include "libavutil/opt.h" -#include "libavutil/parseutils.h" #include "libavutil/thread.h" #include @@ -49,6 +44,8 @@ typedef struct TLSContext { int io_err; } TLSContext; +static AVMutex openssl_mutex = AV_MUTEX_INITIALIZER; + #if HAVE_THREADS && OPENSSL_VERSION_NUMBER < 0x10100000L #include pthread_mutex_t *openssl_mutexes; @@ -69,7 +66,7 @@ static unsigned long openssl_thread_id(void) int ff_openssl_init(void) { - ff_lock_avformat(); + ff_mutex_lock(&openssl_mutex); if (!openssl_init) { /* OpenSSL 1.0.2 or below, then you would use SSL_library_init. If you are * using OpenSSL 1.1.0 or above, then the library will initialize @@ -85,7 +82,7 @@ int ff_openssl_init(void) int i; openssl_mutexes = av_malloc_array(sizeof(pthread_mutex_t), CRYPTO_num_locks()); if (!openssl_mutexes) { - ff_unlock_avformat(); + ff_mutex_unlock(&openssl_mutex); return AVERROR(ENOMEM); } @@ -99,14 +96,14 @@ int ff_openssl_init(void) #endif } openssl_init++; - ff_unlock_avformat(); + ff_mutex_unlock(&openssl_mutex); return 0; } void ff_openssl_deinit(void) { - ff_lock_avformat(); + ff_mutex_lock(&openssl_mutex); openssl_init--; if (!openssl_init) { #if HAVE_THREADS && OPENSSL_VERSION_NUMBER < 0x10100000L @@ -119,7 +116,7 @@ void ff_openssl_deinit(void) } #endif } - ff_unlock_avformat(); + ff_mutex_unlock(&openssl_mutex); } static int print_tls_error(URLContext *h, int ret) diff --git a/libavformat/utils.c b/libavformat/utils.c index 4dded7aea4..e9ded627ad 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -27,7 +27,6 @@ #include "libavutil/bprint.h" #include "libavutil/internal.h" #include "libavutil/mem.h" -#include "libavutil/thread.h" #include "libavutil/time.h" #include "libavcodec/internal.h" @@ -40,23 +39,11 @@ #endif #include "os_support.h" -static AVMutex avformat_mutex = AV_MUTEX_INITIALIZER; - /** * @file * various utility functions for use within FFmpeg */ -int ff_lock_avformat(void) -{ - return ff_mutex_lock(&avformat_mutex) ? -1 : 0; -} - -int ff_unlock_avformat(void) -{ - return ff_mutex_unlock(&avformat_mutex) ? -1 : 0; -} - /* an arbitrarily chosen "sane" max packet size -- 50M */ #define SANE_CHUNK_SIZE (50000000) From patchwork Fri May 17 15:25:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48953 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2950774pzb; Fri, 17 May 2024 08:26:01 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWPmUxF8w5LfygKO0R0mzQN37ZQym8hxHXGdkyhhJsGK1MXd2jHrFPopNSaWhSCx9sf2iz+C7H+L9wVpYhJZwMin7du2TzIsIfVPg== X-Google-Smtp-Source: AGHT+IFzBGov3qLeQYYIKKVbRVN0KaEs6Uf/c2lKTzVBTIscZfG/7gqVD98P+bViY2kLeiVUHXka X-Received: by 2002:a50:cc48:0:b0:573:5c4c:a87a with SMTP id 4fb4d7f45d1cf-5735c4ca8b7mr13588674a12.27.1715959560999; Fri, 17 May 2024 08:26:00 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5733bec0a35si9610072a12.141.2024.05.17.08.26.00; Fri, 17 May 2024 08:26:00 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=fmGWcwnV; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DC93468CEDC; Fri, 17 May 2024 18:25:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2028.outbound.protection.outlook.com [40.92.90.28]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DED2268D274 for ; Fri, 17 May 2024 18:25:49 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kclgro7Srv4ngXo22+ZlUDUIfzFa9Wlflcc3gbh3WckmFXwfADkWkfGOsKgU27DQ6xY3JaZc4g8bIHRrD6ll7RBYW06u2YMbrqjfy6Z9bfIj0q3Al4OYEAW4VcHKLGdy7mAdAeV+UbFq9KMM3xmitCIgA2moaxf6aKA/HR1R085TqhmwQBM4LzfI3I0E0m9DkIPH07kLgn6RYudnvgjPevnc5UjDIHnCE+yo6FLhtNDvv2uVof+dZxds37JAXFsIdXSx6LE7z7e0q9wcG6hjpY6UBT0Q9+8NqfwWmXK1IX41CVAP3u1IW9WZDBVoJpB/Z3BPlQNxU0zoc0rLebrBbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=llYIvgdfzGl4vWafeSQoG6cTuAxNk6cwttcRz9nx6qA=; b=lEZk+tC9jVHAyWBmo6ZcK5UKTxutglzLbmqYs9ixMCxOCWS85H5seyumn08ejVyg+QDoXGqQCYVvwzDqitndRZlD2dL2tpUyLzoHTD0QbxSRjoc1ZCoSKz78sqlRFmmjEESzVWje36lPcqaU15l+EguTnBt2goM04kj9qAB5TUxmKGz62mVuT9f00H4Z0ZoGwE2hPSbKeIFRz4X+wTHEK7S9eg7NSixglIRYaYyi9Wu5x6tCdcpS98YB7wMxcR9SA++dKplFp1JlZD6VW4zvuEsRa7+YvCV1M7bg8YN6LCqlhurjqGtBvnujG/fDX0n4t5dYsebNgyM6eqNMsafOog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=llYIvgdfzGl4vWafeSQoG6cTuAxNk6cwttcRz9nx6qA=; b=fmGWcwnVFtbM5Tlwud8VDnTOVNSkKq0i7ynaQ2nHVg6Jp7xHEzLXkeUk5VscgV4yrlpg0t03EFNzQhpexsNfxOKVHeZpCRxCl1bq29TuYixoT/KlH5hylsGJB8NTKGXTFnJB+yR186VdlCLuHIT1IvjFXnrvLpem0eJ+IAEwND09UpmcYl2H3j1Y60t9UzkruEOlWEUVQbNHepMxE7d3TPxTHj3XX3vtaB42yGWK02Re0vwSSzVVWppJuFIr59K63Pg3gG2zhAmFTNj5gLZy2sAA/M/6pwESybhOrwH+hmCw3S/8bBvA2kwjlDeQ8nteDthbObnA3LpuIaiqd11pCw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0048.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:23b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Fri, 17 May 2024 15:25:47 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7544.052; Fri, 17 May 2024 15:25:47 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 17 May 2024 17:25:36 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [LzH2P5x1wlvGijwRDtdWb+e72gdMUWGGY6kg2tYRtR0=] X-ClientProxiedBy: FR0P281CA0269.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240517152540.3794055-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0048:EE_ X-MS-Office365-Filtering-Correlation-Id: 1975b701-390f-4280-fa28-08dc7685a03e X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1602099003|1710799017; X-Microsoft-Antispam-Message-Info: jLPF7L2pULagAm8/CY9H6fzEs13LiHrRLyVWLO7T1HuazW0QuLpnr+XqOH8VLExiGqPa5LUECYxnzI773BgyxKha7ygNCV5z5MVhNWcQzNeIhrMC+Ze2dFuAm15AxhwLGIXsLNpqqgXQmEiMXIJIEqYwKbmya9HG+IjOpwCFw4L5MiEg9O18ONYfPVpzA7SqpgE8N/qzP0ahihOn3s56snNYc/7JDMIWmJcdar8XdG/N0IvNag2R134YbbDwxf3XdMyOLQRg3zC0cA4OJJvTa0npMCHRw7EjL6H9zpxMlYtPoxMTJGzVsyhRwIEQ60KpleCudUY+D5XKnFuHg8U7xyR+GCb3OerifMv3H6h1Qrj/nWv338yRbH8XQnMNxxObqawD2x5K4vkIR+fWLLQPOUcodpUucpOgzwvqYjZBfOO8sghIPQ9rWLhhhdDN7UHlZYVuzB8lRcDGcsRBuKo+uVv+wywP39d68O2SYcfGW3srY9aYaaMLZ7gIP3EIc69Xg42ntNqStoFmYdA7Ejsl+bpHiSIhLhIAZfrryKsrlK0Gq7wE6o7WKr3hso5FF2YZ6etOgmT+9N0ALaxUfEzG7AlqutMioCJG1l1DFV9LLGAb9OPjhondQ7VZ8squUFAsDgYeo91wriOAtLiOEXsT/yWYLz+b6mcnt3n+pKIL5F4zqZ7/wgiIE9dhkT0rrhdV X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LFxgurJCnoLSMmTkHh7wdMnp7LWfyeut3VjPZtytd0Fzs2WcWTcbbTQT6Mdb7wrPdiASzOSkMlfTBoPjPOJ4ssl3kucyPK0wtjXh9QVPix+xRwwrTfyDSmlFreDTSPj3BYrhwAY7X5kcEpF5AtSqr3AahLof4f648y3c6JOWQsJhM6qG7GIRP5ibt0++ZFIZ7DwbRa3vUUWDf0F14E2P/t1dn5GdrX+/SyjQZTJteyD2TVWWB1K7cciijmztjIEPJOxFig7McZsNqOr1UJOrckNZWkxSSpxWXe2Miyx04ieAezhYWkDTUelZzeNZoRaQ2Y3xC7oAWlMdtV9nC6TOGBM6z8Mc2AvKKJFD6kv9BXoHMunK8HS4kXaBWwDcRfpwMYx8Od/207kx5z4uU2EeBimk5z26cCO3ZEy5LcwkNNZpzLAKBMM9XEuPiTQGIMxizkmmhioUTfHVaa4kErOTa/zoauQFuqyzjlYSmnzwHyaMXGy07LRB6izTKHpFjOz8gTeudggU2OxQOKhoXX8APM5L3BXLEuf0l+aP32dJMPaR2xavV2RApn2kHMwQ/LgUFFu7aQRyF5IzoAbIMvH8kgHVfHjfWfOQeGZiejeIcmOgUj5Hc7WjiSOYF1uD8PjbPI+fIbIN5MhV4YDMEPBALUxirldjYCaPqHFvYJir/ohDlbBzYfIb9cVhYWKIPEPsdTS9s6P5sPaf9QoysSg7aqAffxPN8rcLkhW322USitoPqEaa6bEIwRDPowuGs2jArAuATFds+cQZtPI5RQHHE8RoZMER+wp6ZgHIOu2hEPbcSIvTpesBAy0IXXsNjY4ZzKU5cEr1wRnQ34TQ0m2qiRGq/09Gv1DwugfKlKpgBf13kOiwwe9I8R4fxA0I0ZTgu05tvN11nQvicSvwZHUtQBAM59tQBUm6msY0ecO2/d54HRxdqLQVELI6p4Wv5FhkLCmvxNwYySWpXUwaWIHsIOoYCq9a/wv2+6mhSsgmE4W8z63Y5oLCTVL0x+0SSQIO7ZArnQnCiRWJ0d345xBpVcWcvBy94LuKNCFRBwpMZ5ApKKj6bEMdt08Nm2xJSGvfjHGzvUyKRQ9M8NU2CEgBFDQpZv/+LS7FKyWUYehLtXTrhB/pm18xTUKa77Cw8Ruq42I/kTDVgfRUg346aB/Ox6aO0roMhkVf3+XzF0AdBC9z5avBnmXxpjIGfURDI7LILwSV07RjFYydvOTVvZMP5dq9o4npboPdGYMz/YKiZMIEPVBMRco0nIK1UWQESVW/oe3b6me/CnhgZF1RgoE7hg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1975b701-390f-4280-fa28-08dc7685a03e X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2024 15:25:47.2860 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0048 Subject: [FFmpeg-devel] [PATCH 2/6] avformat/tls_openssl: #if ff_openssl_init/deinit() away if possible 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: aCK9jxAYGi7l These functions do nothing useful when used with a non-ancient version of openssl (namely 1.1.0 or above). Signed-off-by: Andreas Rheinhardt --- libavformat/network.c | 9 +++++++-- libavformat/tls_openssl.c | 34 ++++++++++++++++++++-------------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/libavformat/network.c b/libavformat/network.c index f752efc411..6db82b6d26 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -18,8 +18,13 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "config.h" #include "config_components.h" +#if CONFIG_TLS_PROTOCOL && CONFIG_OPENSSL +#include +#endif + #include #include "network.h" #include "tls.h" @@ -31,7 +36,7 @@ int ff_tls_init(void) { #if CONFIG_TLS_PROTOCOL -#if CONFIG_OPENSSL +#if CONFIG_OPENSSL && OPENSSL_VERSION_NUMBER < 0x10100000L int ret; if ((ret = ff_openssl_init()) < 0) return ret; @@ -46,7 +51,7 @@ int ff_tls_init(void) void ff_tls_deinit(void) { #if CONFIG_TLS_PROTOCOL -#if CONFIG_OPENSSL +#if CONFIG_OPENSSL && OPENSSL_VERSION_NUMBER < 0x10100000L ff_openssl_deinit(); #endif #if CONFIG_GNUTLS diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c index 89d7c6e1ea..8b0cf9efb2 100644 --- a/libavformat/tls_openssl.c +++ b/libavformat/tls_openssl.c @@ -23,16 +23,12 @@ #include "os_support.h" #include "url.h" #include "tls.h" -#include "libavutil/mem.h" #include "libavutil/opt.h" -#include "libavutil/thread.h" #include #include #include -static int openssl_init; - typedef struct TLSContext { const AVClass *class; TLSShared tls_shared; @@ -44,10 +40,22 @@ typedef struct TLSContext { int io_err; } TLSContext; +/* OpenSSL 1.0.2 or below, then you would use SSL_library_init. If you are + * using OpenSSL 1.1.0 or above, then the library will initialize + * itself automatically. + * https://wiki.openssl.org/index.php/Library_Initialization + */ +#if OPENSSL_VERSION_NUMBER < 0x10100000L +#include "libavutil/thread.h" + static AVMutex openssl_mutex = AV_MUTEX_INITIALIZER; -#if HAVE_THREADS && OPENSSL_VERSION_NUMBER < 0x10100000L +static int openssl_init; + +#if HAVE_THREADS #include +#include "libavutil/mem.h" + pthread_mutex_t *openssl_mutexes; static void openssl_lock(int mode, int type, const char *file, int line) { @@ -68,16 +76,9 @@ int ff_openssl_init(void) { ff_mutex_lock(&openssl_mutex); if (!openssl_init) { - /* OpenSSL 1.0.2 or below, then you would use SSL_library_init. If you are - * using OpenSSL 1.1.0 or above, then the library will initialize - * itself automatically. - * https://wiki.openssl.org/index.php/Library_Initialization - */ -#if OPENSSL_VERSION_NUMBER < 0x10100000L SSL_library_init(); SSL_load_error_strings(); -#endif -#if HAVE_THREADS && OPENSSL_VERSION_NUMBER < 0x10100000L +#if HAVE_THREADS if (!CRYPTO_get_locking_callback()) { int i; openssl_mutexes = av_malloc_array(sizeof(pthread_mutex_t), CRYPTO_num_locks()); @@ -106,7 +107,7 @@ void ff_openssl_deinit(void) ff_mutex_lock(&openssl_mutex); openssl_init--; if (!openssl_init) { -#if HAVE_THREADS && OPENSSL_VERSION_NUMBER < 0x10100000L +#if HAVE_THREADS if (CRYPTO_get_locking_callback() == openssl_lock) { int i; CRYPTO_set_locking_callback(NULL); @@ -118,6 +119,7 @@ void ff_openssl_deinit(void) } ff_mutex_unlock(&openssl_mutex); } +#endif static int print_tls_error(URLContext *h, int ret) { @@ -157,7 +159,9 @@ static int tls_close(URLContext *h) if (c->url_bio_method) BIO_meth_free(c->url_bio_method); #endif +#if OPENSSL_VERSION_NUMBER < 0x10100000L ff_openssl_deinit(); +#endif return 0; } @@ -253,8 +257,10 @@ static int tls_open(URLContext *h, const char *uri, int flags, AVDictionary **op BIO *bio; int ret; +#if OPENSSL_VERSION_NUMBER < 0x10100000L if ((ret = ff_openssl_init()) < 0) return ret; +#endif if ((ret = ff_tls_open_underlying(c, h, uri, options)) < 0) goto fail; From patchwork Fri May 17 15:25:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48954 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2950866pzb; Fri, 17 May 2024 08:26:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUpK5Yh8N7FaQbvFCrx6cGhoFasUimLq2F9zVOdTx+JT7KO4zEBfxytRy2L4OKuEVKuFmqxQM9UVl37goONa6wNoholBx2qIDPkCA== X-Google-Smtp-Source: AGHT+IEw21lJKQhrK8nGXpa/bO+YXSW263BGc/Yx4dMGyfBjDykjTXuoSEo9eFIHcvCQHQCPQaIB X-Received: by 2002:a05:6512:3b20:b0:51d:2eba:614 with SMTP id 2adb3069b0e04-5220fe7a025mr17495397e87.53.1715959571017; Fri, 17 May 2024 08:26:11 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5ce0c58a16si240139566b.759.2024.05.17.08.26.10; Fri, 17 May 2024 08:26:10 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=IzPJnfQl; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4A99768D319; Fri, 17 May 2024 18:26:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2084.outbound.protection.outlook.com [40.92.74.84]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7111C68D1C4 for ; Fri, 17 May 2024 18:26:00 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ztm3CHnHgkk2XpPQnaI086U5MAUlccH2ggz+6ehUJZtOj0/OhD2xEPWKN0Go+ujow3xnLus4ESWvJufWtOQbPbceQs0jeDeTajtw+hWO1wXOp3hPrmymq1Dskp/lCYlueeDC4fln/NUZHOnkQ2vrTDZ32A+07GhMae7cU+REcRYSB67tEU4Fgzlm1oISt+ecCvUZ4TvexyCO+akLg3O/EXciJGG65nixXIfllpUIgfaI8A8f6VTCN8yrwaPCdrHSkG8LEqh9s/7e8+XHvBbA5s3YmIGp3Zuy8bfXpD1g7x2aRqha9FeFYlWNcoMdJLv1KmqIFKlK0B9H+Ky967wlZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ua6YVIOdLS0SOtXImDBvGxvd3dixAfACgAIQTmEsOTM=; b=UXTC6ySUrAs/Gmngnl+9oyrhKlq5RV7YwIw28Seku7YMbjXvPEj1Uj3sGI9NlKN4G9mupz4cQilHCtmxW2ZTY8jXRYvz3qYr7NGjt8/l7et4Yz7Juizhoq0U/NW+D05qxUC17h5FVlFywRuiDr7yCwz2/SJzES0wwaiW2b5mwkUsQGUGEyn/JO3li79M+3PlZZAWGn6rMcxYRrRLRDbks2IijW15XANpCJXyKkCHgkRiiNoh5Fya3B+vCA+6lkFq3xQgclBay20AspPcisYPO4gv2DTrIAy8zqzh5aSpwa0etiNsFXy7ZlgyP2gEWAG4nalsoDN6KUZJBywyZuzsHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ua6YVIOdLS0SOtXImDBvGxvd3dixAfACgAIQTmEsOTM=; b=IzPJnfQlIs1NhhFqvBshKmBdsZ4nBDjxrAECvHKAKNbCztluI5gE2bomS0OGnqknHjVemih8QmfzeO7PtYuUMDkf9Vkbw6L/v6hCcMd0ev7Ru2JRm3QYHRdSVqRPWDhiXtwtNBSt928EXG00GJjE8J20MToChN8pnZ6glihUcHH3p0QNhUvQOi4+d+X2SNob1lrYt9Teue9tbyetHT5i/7sfhX4qlOTyYteIHyu2A3SCpfeLTsKjMzi5ntxyLtdtsY1e7MCObdNDUkqUnvuMBeMNC4iznpRLhPxXKm5HXwVcDJovq1Dbw0fLp+CWD95LC3eyjPre1oMTKeOmdN0hwQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0048.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:23b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Fri, 17 May 2024 15:25:58 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7544.052; Fri, 17 May 2024 15:25:58 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 17 May 2024 17:25:37 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [ntwBic46SvXnuSHvm2nMZBDOtTb9I0pYvWCR6KWYepk=] X-ClientProxiedBy: FR0P281CA0269.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240517152540.3794055-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0048:EE_ X-MS-Office365-Filtering-Correlation-Id: 5584b28e-c687-4c27-09d7-08dc7685a72b X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: zIvEY10LDpvZU7zQdh2ObWqbEs0zw+fy8N0tfeWGKn3R6WLdRhlT92js3gHNKsEde2J/j6Q83/2BkmTZl8QDbm5K4ipykP0rzVGF+NBMD8XNn+xLs3bLeFb1yTK7LDWwbO1acxLWZbqEmj5WZjLvE9LPKAoXJxtqma6g1L+lJrXL3v3LGp6gEWOO8tbNbFitXdTIR6/GdRQy4OmCfOJVZ0yDojSCeg2bAU28QHV19NFhP8PWXPENzbiZA0/phs7tdQpKEm9dMrfmaMg4ctlw74bgMfhKT7gfcCP9Z4JxrToindcH/QX74VXCARU3DOVcRdKuGDzHyuOD58/3vIE57VdzGpKxEVyORdzct83kQCl95953n7tfgm65dxHEiQF19iEEN0rIwVAuob6pMU6PSFbmDwVNZkQJgcsGq5r3LIQUCp7Lh+HG3IxmxNjNEEqMDa09yeqH5/IBglMpNywHafFHLqUL+nRrgBQEM030ciHvqok0rsvfad1DM3y7h5vRAtLvgxZmCIL0GXeVD0kj8wA3B2fVtP7t1DPuwLjkoIqsbdP97CLgcJC/dgmg8PqFD4mLmcSFQ43S4q2s+2FKSUNxqjOZ6Ld1gtITXyxUL0tv7KSteqwBpKk0TXQgUwnj X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: F5T1ytrHwuIFTtQ2vXFX5HK8El6KeZFjVTAUs8N4YR/HODAy4KRgU/RPNR1pA7ngsNpiqRc+XtHCz+yp15YdzXNgit7l9iWbCF6EIlrYZsgw7ccb4beHXGn/vSckmV6sf0fzyIimHxDBWTN+xQK7DAtH/KuBZeuPW953XTGmZSsexcTSQBm/lIaCyCzdx3ItuFpjjiadr292RtKGnpa2veAbzlHnEQHss2sfdc1io+FtN2nnk267UoJA6+gc0dAOfCjdNRozx6/MYQKcmpE0xFeQNcURnaWj1MmAx3YF3J1oH8cqYbgqzoOwrL6yA0Ch8SrMmIwRmST/u/3DHylwTC7jQHb1FWTGhDvglhkSidW78utJvT5gA4FPwEd+lusdBo6KLfRXwBVZ7f6fqUTpTHq98MzGqqx67kothaigP7C3doYpWNJz/NNYiHMb22MjNr6JELU8tqvouOMj9AVqdgW81zv891/tNksEDF+r2BgmjWsV8QGhuOeStySPYhX83UGkGOcVVMOW2nYtbW7pEI844w1iZt0IqkxCZbxjzR29aJ6mMIuBG8yyWoUtkttm6XFjc9SNm0tzYGN2JqH5ir3frXnVF5K4Kd72SymXSG3OkrtFfnVFDez7dxki9BradBpMyrbBXON7iY2ks6c29katTG2oMMeVlfu8HdnJdr0+eGjxFDQSp09kF85R9U6Hc46epUOZJrEMDDMW9fXD6+0UFPZsnYpXcy/eIpUUM0JzAuFZegBULFG8OwH0QCppebU78UDOMhDjisyul+UeSaLf7pSghD3sCCgx3TWqN3SXinf3R2xC4vLD17oaBBOva7kaZsydzjCiUudLHb6qrM5YVA4JB/UF5pBEuOA0lmha0KmZsC5n/Wyh78Vgrb1M718CP0kbz5icKV7d9ZO4YekQmkesGdgxW87Flnf//J6ImBQJajuBqgLdoCcXd7nkLfloZ+D/8Lq+pSQVfZolQpfeTm8xBPGSCuKGbh3UkxOOX+7aNgxz4v3Rjn6yqiqGWWFI07JSONoQsjZBTRV16Z4xwuUJV2emQPadI8V3lQFtMDmgPvqUWTqpNu9/Hgd4GHcVY5L+um11dwY9RmOGVtdPnt7b4uUvdiFlGl5Dj3kEF4ImI2hB62BHchsAUH4saC9lvbxb/ePh/8CS9U/4Gj3W38RWzKx2NwdqRLIv9kiPepxypVF60MsD9E0dMFkS3aHmhIplNDnbF0txSo49D0Dx9YmwAmVFcdpCpQq0f76XKIzsNC71icWwmxfomd/KGmKu/Z1SLKr//8f96ZW2aQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5584b28e-c687-4c27-09d7-08dc7685a72b X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2024 15:25:58.8789 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0048 Subject: [FFmpeg-devel] [PATCH 3/6] avformat/tee: Constify AVDictionaryEntry* pointee where possible 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 3/8niwZaEIW7 This is in preparation for using av_dict_iterate(). Signed-off-by: Andreas Rheinhardt --- libavformat/tee.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/tee.c b/libavformat/tee.c index 1cbbb80dbb..87159681ed 100644 --- a/libavformat/tee.c +++ b/libavformat/tee.c @@ -158,7 +158,7 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) { int i, ret; AVDictionary *options = NULL, *bsf_options = NULL; - AVDictionaryEntry *entry; + const AVDictionaryEntry *entry; char *filename; char *format = NULL, *select = NULL, *on_fail = NULL; char *use_fifo = NULL, *fifo_options_str = NULL; @@ -172,8 +172,9 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) return ret; #define CONSUME_OPTION(option, field, action) do { \ - if ((entry = av_dict_get(options, option, NULL, 0))) { \ - field = entry->value; \ + AVDictionaryEntry *en = av_dict_get(options, option, NULL, 0); \ + if (en) { \ + field = en->value; \ { action } \ av_dict_set(&options, option, NULL, 0); \ } \ From patchwork Fri May 17 15:25:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48955 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2950964pzb; Fri, 17 May 2024 08:26:21 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWCRv7LSET4y5l7ewpDi3gT1BTjZyDb+QR+k2xbmkXsvyGPkyXGrRsimoxQh2ihdIgFTG5AvSjQ/wlc+XXmyThmi/sCO3FX2aGpJA== X-Google-Smtp-Source: AGHT+IGRuLVWI0jHht4kY3YS8KmfBy6KCxjr+BQjqyG7dNx7bm9fTG1m7FFr02VrO+XkSXDkv6j0 X-Received: by 2002:a2e:908e:0:b0:2e7:c23:48ef with SMTP id 38308e7fff4ca-2e70c234b6cmr24395471fa.12.1715959581475; Fri, 17 May 2024 08:26:21 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 38308e7fff4ca-2e4d0bbd5a8si52804911fa.90.2024.05.17.08.26.20; Fri, 17 May 2024 08:26:21 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b="ev6OuS6/"; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C77AC68D2E3; Fri, 17 May 2024 18:26:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2084.outbound.protection.outlook.com [40.92.74.84]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8E09C68D32A for ; Fri, 17 May 2024 18:26:05 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SFVPainJs7JZcSE+Dc1WDUNN1/cIZCh+pjsdBPoDSRVlrEUGI1YbMGdi3+KUtw//Cz+ZN1iZcWWpXfwKUM/39S0NaZcuJMJkschFCQ0JwATjZfEh0ff71ZrWupUGqj8z6jqQjnoiCm8NM8TpgheAJYHHna0v9tqWiFFtmQuKEAh0rcnAiPDdmdenn/nCs4IhfvX+gCfj4I0ha2nF+IGodghDYrl6UwexY8hbEzNuQq1zx9vt1y68OmJB9lJ25vteAAh3NuBKGkX/IjyShTwWvXoRy2BDRZnZs7mrXaD49qq4JU/XHsImnHQwzVBts6c0UURjC1hflL44GP/4QlQrEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Jr977efLWp89ATVeuRb4Gp7wPAI2N+y5LHc3r1KABLY=; b=aFKquxtbpVD9mVuoXVb9vN25uAxhbjJqsU8ZFDT+RVRHwZbu/pvejoR3m57VXNZUKA0zKFtYkB0jJG/liUMQPj2Xar/kGjKOW3IeTWR5CyzzvBX0LKZK45Lq5iTQLVQmh+ccwumgPcAlQI2zuAzS6wcrpejlzlMPnLqQ29OOBVXJVXv0Plc0Trjw5NBlP036M0HDy0c7bRPObLkgm1As0FR7oaFo1XNPtd6L1Ub7d8/ngR2m2u8GhdNn8IO+3ZL3kHTgcNzvJ9k2zZ/k+NKs3ATKGUwZVfb2gjAsDOAbxv82RWwU4XMvEz6XzpESaLYNbsmAT8Ri4+osd8z6lYyNTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jr977efLWp89ATVeuRb4Gp7wPAI2N+y5LHc3r1KABLY=; b=ev6OuS6/5qEBYH473aKMj0acjpi1yiBKdJKl3sMrSguMDSaoI59dXbr9BPt8Th+6d9EL3hzXmbbePHUjzVM2lVvaID7o0ZN/oZl58zpXebkP5bonhBsU7mmPTn1T2uHKc36aPzn+blpYqJhCmPxUB3+lj7rK1LrWPKbb+Ku7TNryspYW3zdxb/KMp1xGGtOO0AH0TTyVetJ/1y0XS57/cDVlUU1x/6Rr5jF9f4T7tB7QW5slMpnHFyz6mo7jJQ/jVwa39YxHqQKOaQYr0J3zrV8XgE1NVhkeRzGVrYbZJ9vKfcCzsxtvX9O3ZdtZ/bLla3Xgbv3P4l7rrpvc/H9vIg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0048.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:23b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Fri, 17 May 2024 15:26:00 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7544.052; Fri, 17 May 2024 15:26:00 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 17 May 2024 17:25:38 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [T3gve+cIPj7mJPxONuEBa3ALKMifMgZW1YfKbJ0YVeU=] X-ClientProxiedBy: FR0P281CA0269.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240517152540.3794055-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0048:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ed60b8c-86c7-470f-b7f9-08dc7685a81a X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: ln8WKPt71HANAT5WRf1eIFQo3qkE0J6Yoiav9LaAqrrKktk6A2UiH5loSYmKCk2CvWPjyT8IrEr45OZtZeLOra4n/9LBubXAiYk7o5N1999Hz2LBe1bQ/0dq2YL0tJG7PBvYEf91YXmv3laU6CWQGWWGBpCGD5XHYsUIRqiB2/pC0AcVy8PFNo+PPTK5MhtT09bwP9Sc8vQ069C3rrynkzIRTlSwL2SIc12VzPblvoKKHpItzhLXEYhwz1ECdgDZXbJGa54CqsBPSgQgJ2/uVDHFTJ0wJE7JN4m6bLic2aU7jupYpUETSS2HVx9vw9h5xguHGThk3yFDrIMGvtgEG2zkiUr1CbdodFJEiq2rLGw5EPPvGkXrTjjJIITiMRydwyJP3ISNq8at+mJ+CQNcisUa4QU3vTnw9+OE0vIOcSwSE81ruXor7PbNhIDQi8KSStylTxhwiQB5rEVPl3zJg1QFYYJMicby7freuxaFzKyka1UL5lNGX3HSKVrAzvw2kgyhLjUmYl3DsOl+ROZrCdToBHEzQ9T69X6KM4j50SKug8g7lYHkjH1SM3RMS3EouWJRPq7DeFqEpErptPG1VvIaGzNvsKdZWduY1bJS167bQyXR9n4rx11JnZ2XPASm X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 05GBlpH1IFNbNx11I8qylP6vWXN4ZTNHPKoaKgpomEwnssaEP2laDAg4pkLEETXCyvWGqIMeEuH3xuIiZTceXi7e/F+T5DuAleGIm26xYdSlSuQvrRGsvyeA9TAQZEGdhdPaXIyX1nGN01nAwmTjMA+7LeFNubQQUMkdZHq96bk4ahyiYQsPa1nnpdaNv6W5wwrieu4GRj/Q8SITwyzM72SM1uuFF6atPNj0NbMdVrTxn88vMOXneeUFtWPrZbaqsEe3Jl+RKvZesKUwQF4xxfyLuEV3QVAwsEoniuYbeMsHtNikm8fp1hFFwZNQ3ChgwXtuwwYSCboJU7AYrl+gYr+BwbNhv1wXfrrw20vIO3f6Uk/58cm8xphH89a1eBQZJ8E6O6HBxaY1dd03XTHY11gpWMKkkjQoKwN7CfCf2weOszEfWotXDL6sVUjH0vYhydSVkKunwXobC/fIOmcqFv0Z0xibMUahYgf8InNztx2B4ZSxpTgDGB7CJcX8/rK2aqAdOXCqo4JQRJj2VM8GdgLKgoBinXVhLU536gT6JCjlTJzey3VWWaA8WNv9nySLjN8fypTdvhcgMiNVPbRYNm7utjGJIpM/1A0xE4cmrHckRJFUIytH/s0sM5KuZRqWolJIsJ5p2V0KpezSwR6yZAjKNT9eE/3+fFxHj8yF564x2Wf96LU6S9GcuRqZwrsv9m4pHzReSm4BoOCUJtMnsvxZdCgkKIYKwEdh1Lcfngl75K7kOUUlaizo/yh0DFPssejWPnI96cB9rZEe+921FeJgpr9MDjWejyy5WuiUMlXvUh2fZ7583r4UaeEDA/bJsJp+nZzAjvV7QKiX4t2Yp5OwwdKNdIw/HEv72Hf/ysehs7IbwxBh67Gy9SRSRjEwDwSm0wdZvjz1VGGqd052mlJ0U4BmuWqOq3gZ6kV7/7LpsEV9k6ojYwqIe+KXEIMZPx8DGeffWhRTEswWfQK9R9XMsC9Fxfo7X/wKNIegX7aNDyxm/O+b8eVuCjvU6VvAU1jGXXOzInnDL2omcVPY1ggNCurCWVnuv7rBcIS8ywisDfLW6cHiXQisXM0WQanu8u0F7a722/VRD0H6K6zrGXRWVOHrdUeef1pNZAbJip8QVIGue+DrZlgnscNN+2X/KydBaYtduV7gOMUtlEcKP0Sf78hFymVG0m3sP5+6XvmW2KKR3WZQWmrjpeJm5d4LmmF8ys/P/bTm8UJMSb29tqv/rZRZrfGoCZ/FujAtB/AW0zT6eRV22tOCORgTLSClSZLugPBLVVv1Xl6XALBumQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ed60b8c-86c7-470f-b7f9-08dc7685a81a X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2024 15:26:00.4460 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0048 Subject: [FFmpeg-devel] [PATCH 4/6] avformat/tee: Use smaller scope for variables 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: w6XqscWzd82w Signed-off-by: Andreas Rheinhardt --- libavformat/tee.c | 71 +++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/libavformat/tee.c b/libavformat/tee.c index 87159681ed..0c0543fa65 100644 --- a/libavformat/tee.c +++ b/libavformat/tee.c @@ -119,7 +119,6 @@ static int parse_slave_fifo_options(const char *fifo_options, TeeSlave *tee_slav static int close_slave(TeeSlave *tee_slave) { AVFormatContext *avf; - unsigned i; int ret = 0; av_dict_free(&tee_slave->fifo_options); @@ -131,7 +130,7 @@ static int close_slave(TeeSlave *tee_slave) ret = av_write_trailer(avf); if (tee_slave->bsfs) { - for (i = 0; i < avf->nb_streams; ++i) + for (unsigned i = 0; i < avf->nb_streams; ++i) av_bsf_free(&tee_slave->bsfs[i]); } av_freep(&tee_slave->stream_map); @@ -146,9 +145,8 @@ static int close_slave(TeeSlave *tee_slave) static void close_slaves(AVFormatContext *avf) { TeeContext *tee = avf->priv_data; - unsigned i; - for (i = 0; i < tee->nb_slaves; i++) { + for (unsigned i = 0; i < tee->nb_slaves; i++) { close_slave(&tee->slaves[i]); } av_freep(&tee->slaves); @@ -156,14 +154,12 @@ static void close_slaves(AVFormatContext *avf) static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) { - int i, ret; + int ret; AVDictionary *options = NULL, *bsf_options = NULL; const AVDictionaryEntry *entry; char *filename; - char *format = NULL, *select = NULL, *on_fail = NULL; - char *use_fifo = NULL, *fifo_options_str = NULL; + char *format = NULL, *select = NULL; AVFormatContext *avf2 = NULL; - AVStream *st, *st2; int stream_count; int fullret; char *subselect = NULL, *next_subselect = NULL, *first_subselect = NULL, *tmp_select = NULL; @@ -181,22 +177,25 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) } while (0) #define STEAL_OPTION(option, field) \ CONSUME_OPTION(option, field, \ - entry->value = NULL; /* prevent it from being freed */) -#define PROCESS_OPTION(option, field, function, on_error) \ - CONSUME_OPTION(option, field, if ((ret = function) < 0) { { on_error } goto end; }) + en->value = NULL; /* prevent it from being freed */) +#define PROCESS_OPTION(option, function, on_error) do { \ + const char *value; \ + CONSUME_OPTION(option, value, if ((ret = function) < 0) \ + { { on_error } goto end; }); \ + } while (0) STEAL_OPTION("f", format); STEAL_OPTION("select", select); - PROCESS_OPTION("onfail", on_fail, - parse_slave_failure_policy_option(on_fail, tee_slave), + PROCESS_OPTION("onfail", + parse_slave_failure_policy_option(value, tee_slave), av_log(avf, AV_LOG_ERROR, "Invalid onfail option value, " "valid options are 'abort' and 'ignore'\n");); - PROCESS_OPTION("use_fifo", use_fifo, - parse_slave_fifo_policy(use_fifo, tee_slave), + PROCESS_OPTION("use_fifo", + parse_slave_fifo_policy(value, tee_slave), av_log(avf, AV_LOG_ERROR, "Error parsing fifo options: %s\n", av_err2str(ret));); - PROCESS_OPTION("fifo_options", fifo_options_str, - parse_slave_fifo_options(fifo_options_str, tee_slave), ;); + PROCESS_OPTION("fifo_options", + parse_slave_fifo_options(value, tee_slave), ;); entry = NULL; while ((entry = av_dict_get(options, "bsfs", entry, AV_DICT_IGNORE_SUFFIX))) { /* trim out strlen("bsfs") characters from key */ @@ -250,8 +249,9 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) } stream_count = 0; - for (i = 0; i < avf->nb_streams; i++) { - st = avf->streams[i]; + for (unsigned i = 0; i < avf->nb_streams; i++) { + const AVStream *st = avf->streams[i]; + AVStream *st2; if (select) { tmp_select = av_strdup(select); // av_strtok is destructive so we regenerate it in each loop if (!tmp_select) { @@ -326,7 +326,7 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) spec++; /* consume separator */ } - for (i = 0; i < avf2->nb_streams; i++) { + for (unsigned i = 0; i < avf2->nb_streams; i++) { ret = avformat_match_stream_specifier(avf2, avf2->streams[i], spec); if (ret < 0) { av_log(avf, AV_LOG_ERROR, @@ -357,7 +357,7 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) av_dict_set(&bsf_options, entry->key, NULL, 0); } - for (i = 0; i < avf->nb_streams; i++){ + for (unsigned i = 0; i < avf->nb_streams; i++){ int target_stream = tee_slave->stream_map[i]; if (target_stream < 0) continue; @@ -407,10 +407,9 @@ end: static void log_slave(TeeSlave *slave, void *log_ctx, int log_level) { - int i; av_log(log_ctx, log_level, "filename:'%s' format:%s\n", slave->avf->url, slave->avf->oformat->name); - for (i = 0; i < slave->avf->nb_streams; i++) { + for (unsigned i = 0; i < slave->avf->nb_streams; i++) { AVStream *st = slave->avf->streams[i]; AVBSFContext *bsf = slave->bsfs[i]; const char *bsf_name; @@ -450,7 +449,7 @@ static int tee_process_slave_failure(AVFormatContext *avf, unsigned slave_idx, i static int tee_write_header(AVFormatContext *avf) { TeeContext *tee = avf->priv_data; - unsigned nb_slaves = 0, i; + unsigned nb_slaves = 0; const char *filename = avf->url; char **slaves = NULL; int ret; @@ -476,7 +475,7 @@ static int tee_write_header(AVFormatContext *avf) } tee->nb_slaves = tee->nb_alive = nb_slaves; - for (i = 0; i < nb_slaves; i++) { + for (unsigned i = 0; i < nb_slaves; i++) { tee->slaves[i].use_fifo = tee->use_fifo; ret = av_dict_copy(&tee->slaves[i].fifo_options, tee->fifo_options, 0); @@ -493,9 +492,9 @@ static int tee_write_header(AVFormatContext *avf) av_freep(&slaves[i]); } - for (i = 0; i < avf->nb_streams; i++) { - int j, mapped = 0; - for (j = 0; j < tee->nb_slaves; j++) + for (unsigned i = 0; i < avf->nb_streams; i++) { + int mapped = 0; + for (unsigned j = 0; j < tee->nb_slaves; j++) if (tee->slaves[j].avf) mapped += tee->slaves[j].stream_map[i] >= 0; if (!mapped) @@ -506,7 +505,7 @@ static int tee_write_header(AVFormatContext *avf) return 0; fail: - for (i = 0; i < nb_slaves; i++) + for (unsigned i = 0; i < nb_slaves; i++) av_freep(&slaves[i]); close_slaves(avf); av_free(slaves); @@ -517,9 +516,8 @@ static int tee_write_trailer(AVFormatContext *avf) { TeeContext *tee = avf->priv_data; int ret_all = 0, ret; - unsigned i; - for (i = 0; i < tee->nb_slaves; i++) { + for (unsigned i = 0; i < tee->nb_slaves; i++) { if ((ret = close_slave(&tee->slaves[i])) < 0) { ret = tee_process_slave_failure(avf, i, ret); if (!ret_all && ret < 0) @@ -533,15 +531,16 @@ static int tee_write_trailer(AVFormatContext *avf) static int tee_write_packet(AVFormatContext *avf, AVPacket *pkt) { TeeContext *tee = avf->priv_data; - AVFormatContext *avf2; - AVBSFContext *bsfs; AVPacket *const pkt2 = ffformatcontext(avf)->pkt; int ret_all = 0, ret; - unsigned i, s; + unsigned s; int s2; - for (i = 0; i < tee->nb_slaves; i++) { - if (!(avf2 = tee->slaves[i].avf)) + for (unsigned i = 0; i < tee->nb_slaves; i++) { + AVFormatContext *avf2 = tee->slaves[i].avf; + AVBSFContext *bsfs; + + if (!avf2) continue; /* Flush slave if pkt is NULL*/ From patchwork Fri May 17 15:25:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48956 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2951056pzb; Fri, 17 May 2024 08:26:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVuDjRMAKwxtLMIHxpYcJdapsCOIjqYWEBcWNZPWoMhLlGKFijI17rsk16VRPdcAV8T5ZrwssWWQ4qXYgfOvcjenwvo5eXAo3GGZQ== X-Google-Smtp-Source: AGHT+IH1vMJF9OtZQJKg1jfcKuKe246EcGpKOLP/oosFHfdIqMUZvTFp9X9crhTk4o3LToIku0SA X-Received: by 2002:a17:906:6859:b0:a59:aff8:c713 with SMTP id a640c23a62f3a-a5a2d53ae4cmr1541901666b.10.1715959589741; Fri, 17 May 2024 08:26:29 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a5ce3ab19f1si254233266b.366.2024.05.17.08.26.29; Fri, 17 May 2024 08:26:29 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=attmCmeL; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2460E68D37C; Fri, 17 May 2024 18:26:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2084.outbound.protection.outlook.com [40.92.74.84]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CE87468D334 for ; Fri, 17 May 2024 18:26:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JOia8AphiqS99mmmULMG8eiA9jSdrRA6Vny4E1UVve+oYMDKXiNllJnm1buTVE6z6PZFhwf+YkRtGTKR7ffhhucdljcRJQaHu1b6qpugCoTWqGfwpTf0yiBFFL9BOWTFbuuvReG4trA4UBy5zjO9NpN8Pdf75WD/hDozCP1wbuuuuSdZjelcy1eiDDjRAebcYsAvDKHqEYu0n5GHBCjcq/HOtxrGtuT8srADabsKQ2npwx+aB+4o8FUDtBlMuFXMhbpinUqnfrWCITkHxUZJNIKI3lEtRpC5sND5r8xHa1ja/oW8aXPb7AylKJ60GuXCzzSolKB7WXX8/b6EQHvNOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hSOCLQHwX+HU5ErDUGV7f8Um7lwRiT2HFNQSkEWN9CA=; b=XeePBDgv/9yqJy5/W5njMs4zk/mmFWa11iX/YhQxYpMfMnWeLg81K2s5cxQpqlZCvkEmlua/Zgv67aaFVYNvZvRAEduQBJ2nf7HthuYmCpP3CULrsz9GIkAJJygMKWLeTF1U2YKXZaHBIi1+1Z6LtGEoejPrG1mmX05mPC4xOPvjsuwKNWPcy9ADrPw0K73J/VODArFiSWFXfSm8Xbmu0gkx7WqCpMWY+nPSBKh/DR1T6fPaWty/DlTpUMdIYhznE6Xodrv+Y9MEHFKteIlZ+ykLqzpYaFmfTUwCeoEa3mALigrGSkzYk2VlJBcwwWaDtnBEpvHEidCv0BCTS1MkpQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hSOCLQHwX+HU5ErDUGV7f8Um7lwRiT2HFNQSkEWN9CA=; b=attmCmeLle6ChQWBBQnoSi7jG7jbmmIuOFnglXTqhbam5Ayl2Ul0w76PynazPF+PV0+VUS7A0XPpMpU19tbQnKo0HwMkghM1TNZHE8mOmzHhKC476H38E2vhIppVPtjxBQrhyjlhVtYYjHZuwiSKdKw80+VPGd0SScvo09IZNpuM0vooW0NuoR1vzB5fOlhCgjZAVBd1RfhNLIwfHX7scV9XqVtWusvmf2p/rMJvsifY7zofsPdLw2SCm4shIBvEbBlpa6RyHd83Kglqd/Q6aL+zJI524bJw3PlObo1Ypt00oJXyUQ1MIY9SgyHCM60t2gxlVIDYVN2JnBUyIWq9uw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0048.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:23b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Fri, 17 May 2024 15:26:01 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7544.052; Fri, 17 May 2024 15:26:01 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 17 May 2024 17:25:39 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [bQRH87hhZQty6Bdg1Z5vPkLouwEgvl5PJK8n6HQwIMI=] X-ClientProxiedBy: FR0P281CA0269.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240517152540.3794055-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0048:EE_ X-MS-Office365-Filtering-Correlation-Id: 278324ed-e578-4adb-8555-08dc7685a8a1 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: /cGFiiAZ/6MNB2Dh6yt0KVRLG7G+ZNIXltDhtZKWEMtK24pTGj6IC6qxn/CLbUlMmV4xWPy5j2lo/MvX5hD1UFdpWohNLJrLC3DuIZtVVfVQhWxdd7rYnfho6pjjdfVBlvhcgpfvNIIJo9Fg+UQy4gjxekkbfEm/TEsjutNZWzkOVBh24MSLXBqR9AjNzuWrL6POCImczzNa/MR8apk/VuXpzi/A2zBRlzgT+0JdkvHZ8NOQAnCslmowQ4UsXAo/UFMbN/il5z8WpE0fZr2XG4zJGCR2JA/CeHcGEQ0wzuyJGlbBgwSONSdYKKYoVBSlfgVdoRbQWnym0TLvchz5B5JMRjpW2bZYtgFjYVd2ospdTAtS0r2ohmMTL06GuYlcwhUwXmZrmVQCdxlwdsMTghmoGq5jDS5QxER/PkclJXvT2DmlLrzmOiErxW1MKYbGk/QKF0wxyweMtB3QrIgyg7CaXjwQGi3/EcrFfTjj5Fv85qudcwsGzJ+7K6yle4oZBsK20Z+UfO9UTeotZhomOXFHu0so6Zxp75U27fEdKGkw4O8wnI9c/GFtJ2fWLRM0GaueTy1P3pwenI9JipytjM32tc7GM+t7nJVtyol9IT3FU+29RbtrQsml48J71nJW X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ajBp1Jzb4QdFyrbbJivUhS/bjcVikTFOYHkHYGAmgWNS7lCZPBZZpNp26+OjLs1RjUGmExtDtZ9wVJZSGAA3qJ5BhFXT22O8monGSGaCdWYugw+0xYfoJXCdNdiHEih/ojQR7HSfh++nyvYlRNb2Cecws1QJ86Ng00iwMzXr05yxPoUmcUeR04cbpZdlZWNPSenbo0vUEnQtsyEgzgCUQmCLobWnN2mpDdKd5ZUy93mfWa2Tj9T43Pvz/GPGa340ofAP3dZHRgvB9JZUsoD5Kg1Lk09aRxnjAYLJVE99411gc66tJB2uRDqk+1WFWli9qRPWkq5zCBSpyrzYuj25i/1zTUnRziuNuxAPegn7HpQC4LqgLvkidkqZxhO3NoFjQcHYzGH5n9v4cBIlDAm5oaJ4zL0qzK30CvcEQAReime5jI+jFvaOZ6Lv+/I9I4ZcG1Ke0UG3+yr7LAtpKoxwRr99/p+NNoRADNCzlpg2mNg74Wv+eXQfba8gdqPpIsGERpqoni7q2CQSPrycpUWqVwJYBYz+w3hfkcmYmSchR33xfuO5HWjW1rGSdJn23Fl5ea8Idu2IYepXbOy4+xAJuWnlvP8Wj1YB/uZIb7HaZMI67dJYH5IOkSe+7+1PHzqbHeXOZNryVO7gFDVQCQXTTXFwKOzIt0/pU1y1oheM3HCCMezGd+AEXiW91dpSim60ejUS/GqXDY6m0FY6kGXl/0WywC+IgTV/NyheusuMSjL0D8JTktWEQyzZPtj9MIkLAq1MS2aHWJ1FCWUwjLNDpxJDO093nqqL5DqqUILMl1eoIkTlR/C5enzVenuEl9iD71DyzRoXm8NWh8zcf+/NQUqh99ajoGZYg/9BNWQDjW1gEwS81gbF4PmSzxJ7pGyjxr/whIqx5/OJ2NAzGrS4AVv2cuX2ImKNtyx9uDhVLaJDrsYre6Zt5vRh1SIpPo0K3Yb9cDDGOLQdRbSnI6YhQd9m66qdquCHx1K/gifaQKnA+kduZ8+WMABBT+uivsoCbEeI75SpLjI+Q27qo9Lk4YTP8ucQM20wo2tr/VfvKNSjtGplblm8+ezRR3qKwdNPjCwK5M+D3kgtHrOd8L6715fT189m4M0eV7Z9BpkJrE+hxEB22aSq/s81rva09fmTO2b1FF1iZazhweuYmyQDVxaCq1l9b0tM+dcR9ZeD6BEsyhwOsTMjXuepp8sqx0t8E+f3pej39zG8MUnrCABhrDLv8YSpJmoyiqBo8XBmKOfj/QpXvwzuR8Jos87+ljdn4vFKm6pHHa88g3Jkbmensw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 278324ed-e578-4adb-8555-08dc7685a8a1 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2024 15:26:01.3707 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0048 Subject: [FFmpeg-devel] [PATCH 5/6] avcodec/lib*, avformat/tee: Simplify iterating over AVDictionary 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: CH2U5IRrdBL0 Signed-off-by: Andreas Rheinhardt --- libavcodec/libaomenc.c | 4 ++-- libavcodec/libkvazaar.c | 4 ++-- libavcodec/libsvtav1.c | 6 +++--- libavcodec/libx264.c | 4 ++-- libavcodec/libx265.c | 4 ++-- libavformat/tee.c | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index c39853c20f..dec74ebecd 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -970,9 +970,9 @@ static av_cold int aom_init(AVCodecContext *avctx, #if AOM_ENCODER_ABI_VERSION >= 23 { - AVDictionaryEntry *en = NULL; + const AVDictionaryEntry *en = NULL; - while ((en = av_dict_get(ctx->aom_params, "", en, AV_DICT_IGNORE_SUFFIX))) { + while ((en = av_dict_iterate(ctx->aom_params, en))) { int ret = aom_codec_set_option(&ctx->encoder, en->key, en->value); if (ret != AOM_CODEC_OK) { log_encoder_error(avctx, en->key); diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c index 0711d9ab38..cd731ae9d0 100644 --- a/libavcodec/libkvazaar.c +++ b/libavcodec/libkvazaar.c @@ -111,8 +111,8 @@ FF_ENABLE_DEPRECATION_WARNINGS if (ctx->kvz_params) { AVDictionary *dict = NULL; if (!av_dict_parse_string(&dict, ctx->kvz_params, "=", ",", 0)) { - AVDictionaryEntry *entry = NULL; - while ((entry = av_dict_get(dict, "", entry, AV_DICT_IGNORE_SUFFIX))) { + const AVDictionaryEntry *entry = NULL; + while ((entry = av_dict_iterate(dict, entry))) { if (!api->config_parse(cfg, entry->key, entry->value)) { av_log(avctx, AV_LOG_WARNING, "Invalid option: %s=%s.\n", entry->key, entry->value); diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index 9bc165f0cf..2fef8c8971 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -210,7 +210,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, { SvtContext *svt_enc = avctx->priv_data; const AVPixFmtDescriptor *desc; - AVDictionaryEntry *en = NULL; + const AVDictionaryEntry av_unused *en = NULL; // Update param from options if (svt_enc->enc_mode >= -1) @@ -326,7 +326,7 @@ FF_ENABLE_DEPRECATION_WARNINGS handle_side_data(avctx, param); #if SVT_AV1_CHECK_VERSION(0, 9, 1) - while ((en = av_dict_get(svt_enc->svtav1_opts, "", en, AV_DICT_IGNORE_SUFFIX))) { + while ((en = av_dict_iterate(svt_enc->svtav1_opts, en))) { EbErrorType ret = svt_av1_enc_parse_parameter(param, en->key, en->value); if (ret != EB_ErrorNone) { int level = (avctx->err_recognition & AV_EF_EXPLODE) ? AV_LOG_ERROR : AV_LOG_WARNING; @@ -336,7 +336,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } } #else - if ((en = av_dict_get(svt_enc->svtav1_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + if (av_dict_count(svt_enc->svtav1_opts)) { int level = (avctx->err_recognition & AV_EF_EXPLODE) ? AV_LOG_ERROR : AV_LOG_WARNING; av_log(avctx, level, "svt-params needs libavcodec to be compiled with SVT-AV1 " "headers >= 0.9.1.\n"); diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 2715f277f1..29d1a7ccbc 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -1385,8 +1385,8 @@ FF_ENABLE_DEPRECATION_WARNINGS x4->params.b_repeat_headers = 1; { - AVDictionaryEntry *en = NULL; - while (en = av_dict_get(x4->x264_params, "", en, AV_DICT_IGNORE_SUFFIX)) { + const AVDictionaryEntry *en = NULL; + while (en = av_dict_iterate(x4->x264_params, en)) { if ((ret = x264_param_parse(&x4->params, en->key, en->value)) < 0) { av_log(avctx, AV_LOG_WARNING, "Error parsing option '%s = %s'.\n", diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index c4ceffff5d..ac1dbc4f97 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -495,8 +495,8 @@ FF_ENABLE_DEPRECATION_WARNINGS } { - AVDictionaryEntry *en = NULL; - while ((en = av_dict_get(ctx->x265_opts, "", en, AV_DICT_IGNORE_SUFFIX))) { + const AVDictionaryEntry *en = NULL; + while ((en = av_dict_iterate(ctx->x265_opts, en))) { int parse_ret = ctx->api->param_parse(ctx->params, en->key, en->value); switch (parse_ret) { diff --git a/libavformat/tee.c b/libavformat/tee.c index 0c0543fa65..1a2a8ead82 100644 --- a/libavformat/tee.c +++ b/libavformat/tee.c @@ -313,7 +313,7 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) } entry = NULL; - while (entry = av_dict_get(bsf_options, "", NULL, AV_DICT_IGNORE_SUFFIX)) { + while (entry = av_dict_iterate(bsf_options, NULL)) { const char *spec = entry->key; if (*spec) { if (strspn(spec, slave_bsfs_spec_sep) != 1) { @@ -390,7 +390,7 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) if (options) { entry = NULL; - while ((entry = av_dict_get(options, "", entry, AV_DICT_IGNORE_SUFFIX))) + while ((entry = av_dict_iterate(options, entry))) av_log(avf2, AV_LOG_ERROR, "Unknown option '%s'\n", entry->key); ret = AVERROR_OPTION_NOT_FOUND; goto end; From patchwork Fri May 17 15:25:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48952 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp2951144pzb; Fri, 17 May 2024 08:26:40 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXD94cEoeia8XtZ/pqOTYvghzB9M+TaOvnBe6nOzXVWQkYgbZI7TkntLdfU08qKv5XpNAnnzcKwQHeYC35x2hLH2FE7eu4KevxZmg== X-Google-Smtp-Source: AGHT+IGAzMrxy4t6WVfyIhHuePhRiOEg94qkpVKhgBz6AnLiX8RjkkKk7olY7BXed+r7bCQmCF7b X-Received: by 2002:a2e:980e:0:b0:2e6:b36e:434 with SMTP id 38308e7fff4ca-2e6b36e0479mr95203261fa.31.1715959600634; Fri, 17 May 2024 08:26:40 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 38308e7fff4ca-2e6f3780493si20157811fa.20.2024.05.17.08.26.40; Fri, 17 May 2024 08:26:40 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=opLUwx3w; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4D6FF68D396; Fri, 17 May 2024 18:26:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2084.outbound.protection.outlook.com [40.92.74.84]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F317F68D32A for ; Fri, 17 May 2024 18:26:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EPE3a9QnC+oxw4dGXtLRE2+yKt46C30snBnB+EkYjPDRf9cR0Yq+VHpXb4a3RzWCOO3IlW1dKR4BEPYJppEsD68lDp7QpLAswjX9WrbO6jsszng4Ef7meEJQCt8md1irf1X37uvDNDVOoxbHALQZdbNBsw7ainIpaQZEEwsUlWbvuvNr4OQrPnvTxlT/Thji/FCzsGo9k+bzPxJaR0X5IHwFcyxHYV8biNVZEdsHvwegm+vzB846Z0IkQytDoABWNSAtBFFx6xMYZQCPn3K/Z7ipjafbHKH35DojCnLgr1l0KIYlMULbM8tVTBGYtarUslqWvCbnyGCrwvjUe39dAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jUhEZ3k9Hy9ts9nHl7RNL4ZdeuccjjQGpGp+bY9FaXs=; b=NFNZkRJCE5g+3TPQWF1hP01QMJEBNqFGy/MkMsfN4o1waifUgbnljKiTLS1Q0HnhArDZdea0+CYZlHMwm5/Gf7VjnJl+jXpz87tYOFvOdb0beMABslEeBvXgh77s0wRQfXv7cphIUgdxThQN6PKOWSiX8/3PbUVznYG2kGFdOaRrxQzo1pgyTP3kkuQhy7nKFRtUUlNwJd9KV7mtNtatL2hoT1AfswHN2Ci/g1z7huLTbNC6ff8bG02KuypgjL9ImtUrvE0OmtS2cqs5HX1Krp55kBJ3+2QgmwC8DzpNAM9AaXWYXWgkmipGTs0YGh+ZZBd6m/7nULOsbkCGQwIxOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jUhEZ3k9Hy9ts9nHl7RNL4ZdeuccjjQGpGp+bY9FaXs=; b=opLUwx3wb95RNq+0WPgM6WfDF6LCDDGhWTKa/JxYwfoSuMadepZ+WV5PA6MlqRtbA4mm0BpOKTIx6zxyxgw6xIvxKZYpsaR2ngb/sejPyLJ07jWnHP2WEGHEEFqFgjlg9IulP+g5F0ofLTGvx87uJ83GoKsI075ZOF8IR7XjaTNZtnLZD5nKdr6EyO0aPq0KuluhrlJ5VSOJflt81rQ6cjxTYyQqHbrMqhhV5J3zBtEK7hka95ILgvg8C+RaawdMoRBuwCUHtdJR/+LZLkHDikOX4D/Mte+HRl2OHmm/2o/gOg7ZszaPI6g34T5PF7k6GGrfcvn+LA3DWQnXsE4e7g== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0048.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:23b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Fri, 17 May 2024 15:26:02 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7544.052; Fri, 17 May 2024 15:26:02 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 17 May 2024 17:25:40 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [U4/iSuawf27cIaBEiB6gmlf+kAZvNS9HFWe9nCf7WhU=] X-ClientProxiedBy: FR0P281CA0269.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240517152540.3794055-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0048:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b1e725b-bbdb-4e41-ebd9-08dc7685a92a X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: OruVpsssZqmHZSKSTOitG5X8wPQ3zv2t70Y6N214G5+cj905BBwT/CAYRQ7tUw5vBlcZBBFf+b8E6SKBnafxNg11Qrtexl+Jr/oU+7ARz7BPbux1dNBsg1mt7DB2Q27j7vhy/rnMWQ+fTwxslwQNe2tSbKL/Ap4Xr2+bWsIFjx730zq/CJ9GruQx0GC+Ux4C/XmI5MkDuzhOWhU5gt6nWe/qmXELtlfKfYzsL7ePGXuWXN5VPGnby4NNATi5TZ6KoPnzsI3LttbxWMy2Bwht/qOOnBfVBjCKhO2uHi+4MHXdTIvX+nZMycEwdxgOW+HhJlZuD9+jYZRsxXn/poNOEgSVxKTpooGji8K/ABDZjjqp6uGfX2kYh0Vxo6GXEgvMz5xYWRBasexfV2TONAnOZO/I/rO8E0ByQvu7/askfCDDPmhSGeKmnaJ2xdJ01Yix9ZAzbNW4Cngz/9Mapho2i6CWNdg3/+6lKRrrNdrzTHPGh2JpxKt03RL85BQH0zY8e5CsSv4JZislcyvl7qEVaVe/7kzbL5iIUs8bgCFLAEqbPIlYG96v7aqUPl9FMb6KmR763gp0ZEbrcKsIFWadJ1xcvY+7YVspB57VV9ERjJVPbdKcoP3LOIv2hA4DgxXU X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4QGOBYcXvfCss6v9brF++sjhIGOkqd/ONTgip1QKa4CKbjkj8A8aQ5zROFs9dywqYei3pPtGMHZOxCs8wf8I01k0+UQF4PdaSyaGsZ4L/E98kp3/S4klNXW3xF1l69aQh0zAC1xk/kfZXTlAPENHSLuntaYtyiDeJlUjFbzOQ9KPFntMOvn42enGVUTAoOeiKkqNCOyUpAHJ0cwBzerLZ4Sl8wdC/x2dMlGh/7CGaIvDbblN87Z3LrbH15MIYLt6GTM7b7HGbIEqIlGZJSC1/ERs+O8xQLAHx+u5lWm9/EGbWQYh82ZEtAyzizSufqizVXtRWjoUjAL/JDVmS4ea4RH583ea5uVjadJuSbznFDkljxRvi7UQR8wS9XIOnMrTtGUrYNF/Wk4yES9MLcEX1zoDHvS1SaZORU4LOeivWPgjfj7Q9ZDHWy3Ncmf2S/BdEMN+G/DX4GwEkBW/+7cY70VPEKLJ3fAHx857m9RodX8nDLWAxY3gZBurE5Qvg90tWdO9WrRj7GzBcJ7siBzz1UsRyxVrRj3vmxhgwzjNpLDvxRi3NXJQzhRgq7nsD5vMHSBQPV+WYcg7HzfolqjDEx6NJIYSNb+cTTDPY92H11tzJ1BflHh0PaDCBGzCvmz6i346nCqplujJKfKM897xeKAQgWQ/VF83x4y3LF88tlAQQ1ZKLCfGSaOb5AVsoGbi6crA1Vcq2Gu+6b+P7Oz2BDxgN/8BG/PA6gL0arRvomvyKSxhw7syCIZLfQzJrIEj1ogzs9mms0bKnFiqRHxPwqPDmTkSplB1ZBnxXtQBLKAlM/cNwzSy+fTROykv7Ubss2UP2vma+g8ksAiKCw9kK5c21T37aQcjIiOUa+PuhlX6BJOVDTi72EAOQ2EjrzeMZPbvxy4287pv0WscTp2DqqdarD//OpWjiAATeUyJhDmAxGVLbYJ2Pzp9fEneMO52bue4hUrD/JLybI04tKl3EzSfgvwUztci/qBJ3DFUY8/ojs8p9u1LzsrfaE7b3PRSujhes3NMj4VIuMyAZkZRDyHJCAaw+nDD9ohKhTJCCE56iCmWpw8gbloVASzpV+e0Gep0aExyjg0PQm5ru1XGHyKETSi/ke/ayQsFxjjLMXAHBbCPcWA93ZvVIwHtbtg0/PK+BiGbLhUaOgEIFMhmrRq5P1a0og7ldnvS/mmXUEq6piXj8qQMrmehRpJn22pX3lXvmphA/HaxVOdSI8Tv6Kk9Y45pCNHHClIoiKf4jiv0XpJewQhgNnjEdwg0O1+sFKRKG/bUCDKwyNMBZsbXkA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b1e725b-bbdb-4e41-ebd9-08dc7685a92a X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2024 15:26:02.2752 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0048 Subject: [FFmpeg-devel] [PATCH 6/6] fftools, avfilter, avformat: Simplify check for "is dictionary empty?" 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: omOkybcsywty Signed-off-by: Andreas Rheinhardt --- fftools/ffmpeg.c | 4 ++-- fftools/ffplay.c | 4 ++-- fftools/ffprobe.c | 2 +- libavfilter/avfilter.c | 4 ++-- libavformat/aacdec.c | 2 +- libavformat/http.c | 8 ++++---- libavformat/mpc.c | 2 +- libavformat/oggenc.c | 2 +- libavformat/wvdec.c | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 1f50ed6805..c86fd5065e 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -484,8 +484,8 @@ void remove_avoptions(AVDictionary **a, AVDictionary *b) int check_avoptions(AVDictionary *m) { - const AVDictionaryEntry *t; - if ((t = av_dict_get(m, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + const AVDictionaryEntry *t = av_dict_iterate(m, NULL); + if (t) { av_log(NULL, AV_LOG_FATAL, "Option %s not found.\n", t->key); return AVERROR_OPTION_NOT_FOUND; } diff --git a/fftools/ffplay.c b/fftools/ffplay.c index b9d11eecee..5a66bfa38d 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -2694,7 +2694,7 @@ static int stream_component_open(VideoState *is, int stream_index) if ((ret = avcodec_open2(avctx, codec, &opts)) < 0) { goto fail; } - if ((t = av_dict_get(opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + if ((t = av_dict_iterate(opts, NULL))) { av_log(NULL, AV_LOG_ERROR, "Option %s not found.\n", t->key); ret = AVERROR_OPTION_NOT_FOUND; goto fail; @@ -2862,7 +2862,7 @@ static int read_thread(void *arg) if (scan_all_pmts_set) av_dict_set(&format_opts, "scan_all_pmts", NULL, AV_DICT_MATCH_CASE); - if ((t = av_dict_get(format_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + if ((t = av_dict_iterate(format_opts, NULL))) { av_log(NULL, AV_LOG_ERROR, "Option %s not found.\n", t->key); ret = AVERROR_OPTION_NOT_FOUND; goto fail; diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 5b40dad527..2d38e5dfdc 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -3951,7 +3951,7 @@ static int open_input_file(InputFile *ifile, const char *filename, exit(1); } - if ((t = av_dict_get(opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + if ((t = av_dict_iterate(opts, NULL))) { av_log(NULL, AV_LOG_ERROR, "Option %s for input stream %d not found\n", t->key, stream->index); return AVERROR_OPTION_NOT_FOUND; diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 049e4f62ca..2dc8820184 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -941,7 +941,7 @@ int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options) int avfilter_init_str(AVFilterContext *filter, const char *args) { AVDictionary *options = NULL; - AVDictionaryEntry *e; + const AVDictionaryEntry *e; int ret = 0; if (args && *args) { @@ -954,7 +954,7 @@ int avfilter_init_str(AVFilterContext *filter, const char *args) if (ret < 0) goto fail; - if ((e = av_dict_get(options, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + if ((e = av_dict_iterate(options, NULL))) { av_log(filter, AV_LOG_ERROR, "No such option: %s.\n", e->key); ret = AVERROR_OPTION_NOT_FOUND; goto fail; diff --git a/libavformat/aacdec.c b/libavformat/aacdec.c index e267886e1a..a8be251815 100644 --- a/libavformat/aacdec.c +++ b/libavformat/aacdec.c @@ -119,7 +119,7 @@ static int adts_aac_read_header(AVFormatContext *s) ff_id3v1_read(s); if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && - !av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) { + !av_dict_count(s->metadata)) { int64_t cur = avio_tell(s->pb); ff_ape_parse_tag(s); avio_seek(s->pb, cur, SEEK_SET); diff --git a/libavformat/http.c b/libavformat/http.c index 1a67068a44..ec60bc0b17 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -990,7 +990,7 @@ static int parse_set_cookie(const char *set_cookie, AVDictionary **dict) static int parse_cookie(HTTPContext *s, const char *p, AVDictionary **cookies) { AVDictionary *new_params = NULL; - AVDictionaryEntry *e, *cookie_entry; + const AVDictionaryEntry *e, *cookie_entry; char *eql, *name; // ensure the cookie is parsable @@ -998,7 +998,7 @@ static int parse_cookie(HTTPContext *s, const char *p, AVDictionary **cookies) return -1; // if there is no cookie value there is nothing to parse - cookie_entry = av_dict_get(new_params, "", NULL, AV_DICT_IGNORE_SUFFIX); + cookie_entry = av_dict_iterate(new_params, NULL); if (!cookie_entry || !cookie_entry->value) { av_dict_free(&new_params); return -1; @@ -1300,7 +1300,7 @@ static int get_cookies(HTTPContext *s, char **cookies, const char *path, *cookies = NULL; while ((cookie = av_strtok(next, "\n", &saveptr)) && !ret) { AVDictionary *cookie_params = NULL; - AVDictionaryEntry *cookie_entry, *e; + const AVDictionaryEntry *cookie_entry, *e; next = NULL; // store the cookie in a dict in case it is updated in the response @@ -1312,7 +1312,7 @@ static int get_cookies(HTTPContext *s, char **cookies, const char *path, goto skip_cookie; // if the cookie has no value, skip it - cookie_entry = av_dict_get(cookie_params, "", NULL, AV_DICT_IGNORE_SUFFIX); + cookie_entry = av_dict_iterate(cookie_params, NULL); if (!cookie_entry || !cookie_entry->value) goto skip_cookie; diff --git a/libavformat/mpc.c b/libavformat/mpc.c index 60cb768ab6..1e0e170c7d 100644 --- a/libavformat/mpc.c +++ b/libavformat/mpc.c @@ -112,7 +112,7 @@ static int mpc_read_header(AVFormatContext *s) if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { int64_t pos = avio_tell(s->pb); ff_ape_parse_tag(s); - if (!av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) + if (av_dict_count(s->metadata) == 0) ff_id3v1_read(s); avio_seek(s->pb, pos, SEEK_SET); } diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index f5782cb583..224519a4da 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -432,7 +432,7 @@ static int ogg_build_vp8_headers(AVFormatContext *s, AVStream *st, bytestream_put_be32(&p, st->time_base.num); /* optional second packet: VorbisComment */ - if (av_dict_get(st->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) { + if (av_dict_count(st->metadata)) { p = ogg_write_vorbiscomment(7, bitexact, &oggstream->header_len[1], &st->metadata, 0, NULL, 0); if (!p) return AVERROR(ENOMEM); diff --git a/libavformat/wvdec.c b/libavformat/wvdec.c index b25c1eee83..e2a79957f7 100644 --- a/libavformat/wvdec.c +++ b/libavformat/wvdec.c @@ -268,7 +268,7 @@ static int wv_read_header(AVFormatContext *s) if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { int64_t cur = avio_tell(s->pb); wc->apetag_start = ff_ape_parse_tag(s); - if (!av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) + if (av_dict_count(s->metadata) == 0) ff_id3v1_read(s); avio_seek(s->pb, cur, SEEK_SET); }