From patchwork Thu Feb 1 08:29:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 45951 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp122748pzb; Thu, 1 Feb 2024 00:30:01 -0800 (PST) X-Google-Smtp-Source: AGHT+IGMs4FDr7skhpUGRu+oYDesv9bSPhWUrUDYOyNACxHxx3efgjLvBfDnAID4d5sY7ntVcELa X-Received: by 2002:aa7:df0e:0:b0:55f:acb3:f9e2 with SMTP id c14-20020aa7df0e000000b0055facb3f9e2mr1376654edy.0.1706776201722; Thu, 01 Feb 2024 00:30:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1706776201; cv=none; d=google.com; s=arc-20160816; b=Uvui+KU2QlpFt15sAIBvoiHpbLC2TwzY2H5U1TeC6x0o1GoFNOFdM6T8/Gvdgwiwy3 uJeO6u400hoi+mSHYSAeTZ15SR31qMg8e6iTit8/lKtG9WeK8Jkx3gyUKZFKk9oP1ZjV iDHxsnYUhTi7XaFtMdzQcGn+L9K3SpdtyDRFfgjBnpFuGAkwVqn+XR2ImxO3Ys2Qy4X1 OjWt8319Ofq1fJ6+Zgvi2L8FC8rzPtIDRDrpVHjLw4JByd7eZnZTEKREceFLdyZoepdY SZJBY32H5KFEgF1wXdZZY2ui2dQxTYPN/tT2LJUPioQhhSnfvDnHLQpO8aybyaTMlD/d 2atw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=jW1OUg0L5ZtLoJGm5Kq23B7LWR8xLFAtGOUYlacb/PA=; fh=2RGNcXVWQT/c+8lnKDPfOhu4NYDVXE4KdLGzEOvmU38=; b=WGbQPqZ3R0ZTVc7/HlZPRkBvfVY7wo58b5dDqyk5WLAPKAthpTN7kXxe4VNZ9JT8WB pHhJXEJVR2xbCpnS6/+t2oBJvH7vMsagERYZSYjdbFczUfVNMygi2zkOXyltzHGMS4l3 aZOy+PrsBVoBtDUwH9EjSQwzVHraktVk2DmF2IrNoQsKZ4hoag/cdogxwOiPR+bGd6YO 6bsbEgmlnrp7KCJNwRR+YUstqem5BDnMXtWiSE6xKwBLgSdOCIgBlyn1WjfjEmHfPyzr fKb7R8zy+eahMJRGcfdekupJrsq3xJiTnXx45blpVVs+OfEKUW6oHoeDOb2aP2ijNnwF xCKw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b=pI+zjGWc; 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 X-Forwarded-Encrypted: i=0; AJvYcCVQ+gofbZ0xv2z5Vr9Hyf5VuNLN9b5rPoJ8Sb6cMpODmPHsVmME+Aenr9/fzpU0a5+NIBHLWYcUqAhxqQBl9ZlpJSTlOaizCLm+xWR9w5fZi3AtVMUTGOCsun1XBuGa2FAVKUvtx/Q4qgxEALN3v1IXlU8JpR0Q47bSULYH6iaMTdGkm22dCoRE7K7curFd4LC8+SwFcUoUgAU4xyst63irVutJQ0KaglMNlNPKjInESuazkznUEXR5NtF2T3Pkukz4P9VbzF/v8466jmIbOBBkOR9CAyitYx5R1yalBLguojQyejwHzyb8IL9XhlzB1R/+Fw2kBSjtxUeG6z6OAw3hoDGcc5eFoigLesPYqwXyHbIZp7SSp6gvUBIqoo9RzsjUEgKcyc1BXfXhtqOHz7II4ghm48TE322u3le/03IW2T8xyZOrzCeWsaa1a6vJmjLh0mWhKgHgoq4VPaeDNfN4YrlAYvRMtpHEsh3h/4WLJ1y0WCmudSTtEq78ATIN9Jp4AG6sSDK0EpLPC0oT23qqfcx5aNLvg8ibYllmuYr8stZmDi8YEMr3lY7w8IqSpyOsPVHxEHAJUdZv/yVUgXsF0i2KOHhw5zxGK/3FUQ/e6O1WB1aI9vC+kLH9dbm+t7ETvlU1oysDJLypapcKCQfAfZRxhFdmaOh9in4oeML+XMObB70q/udJwe3rjVZET2GCCkpNu0jzvFHhPKHq4Mjjh8/KKeSH+FHxJLg/nCEKWD6pmYtv+Mqt+1Is0QipXKUeOS4SV7MJtDXMGNCqfxx7MEGGiTDLItDWNc6enqPknkM9GX09aOUDzmFWC1/zxYYfclsx7A4gqpUUdU+vfqC9cYTUPyaHRzVUoLCr/26D+6cLUeOk1iqHDAIifukHgHdogxYoF3EIJPiLqCkPpUuOkijFFvo115ZW+bqC6KAmoHefuXIHT5iT1jVaV8PpUuQRD6 iq/jhyZ1XEBIta6RmRiVGWRaU7wvqNGsKA6l8luQ5ffVh2EWrlOCGYRDS64G3GHhH0ZVaEI6UD0QQjp3O2A74KheGexj1Cs7/toUPCXMY57ubo9y4GGGKOWVwGYu5QC7IP8Bou98gxGcR0hBkcZq4ZMNz2wCDklCbH82LA9S0K64CHVFU2aKvcyPuGs4BzOuuNBLg/DgwVpKGpBkil0OqE1D7U+zD//fySvIKza6ecWDv+3aaVwneArhzfVkQerEUPPpsN2SVzuoNl63pIRGSN+m3HSxb8jffpsgVSxkmItVmim0TCAfWUsyX8kKE79sUQVgemwJajGu7H7njnLcwRH3C8Fb7hsP505uWx88qWmpW7TSyQ1+HjMBYLAnqrWImj9UAeAL8+kJanYOII6XpVVIsms922hpNAK3YBpZeHaQqpc24Hwi7/TTcK/d5jQ7KgecIRx3P0NAAWG3xHMFePapRp12+y5CXfdGmwGo7b/4oaTh4tgRvQlKGsqg9mCH8L7nrHi9ltC5+/Vu2OwdXjuml+PJ98eVMZEj7Vovfkg/aJhLMjMD0qPo/yzuxxZcUTRG1zx9bb2/ZfDJOSYI4vROeiqqjKhELayILQOvPHbiQ5/hbUf6Snbe1XsBqzkv40kewlP3QtckSPiAg= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a7-20020aa7d907000000b0055fc766c63esi119862edr.349.2024.02.01.00.30.01; Thu, 01 Feb 2024 00:30:01 -0800 (PST) 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=@khirnov.net header.s=mail header.b=pI+zjGWc; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7345B68CD11; Thu, 1 Feb 2024 10:29:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5F50C6881B1 for ; Thu, 1 Feb 2024 10:29:49 +0200 (EET) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=pI+zjGWc; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id 7F2824442 for ; Thu, 1 Feb 2024 09:29:48 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id RTd4HRDXm7eV for ; Thu, 1 Feb 2024 09:29:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1706776187; bh=3bcZLZHrUGIvuwNJpZXN5EMndTvV1VF/d6CkIBqcbZc=; h=From:To:Subject:Date:From; b=pI+zjGWcmErFVHUessx7U/ttOaFSTJOV9nmYN9U57tPJv0Utf9mA5FPVExOUma4BJ cTIKyv2snFJfsfIKr1NjkGEAJuaMB21tcD2m8xCW+d0Xs+/xMTyhTOop/k3JMVSVaJ x9FIScBsqMD98SnUZXRVSVDU7J/onEmg11umvRjwYmVJnnufb/4/YhU3rTeEF6UljW SO9UcCSoLHdyhUJ+Mf82zZhTZgCBXdVtRYOZaG8AnjlTq5vFCaqC0HMnlCkY2gbeia tXFJjAQ+Xk48e9wJLeCHuGm0U1fzcaWU91zdr5WMar1FUbeH8BQ3aFM67bMc0e6FYs WF7VlcQ6WXPXw== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id 5DA6B72E for ; Thu, 1 Feb 2024 09:29:47 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 087173A054A for ; Thu, 1 Feb 2024 09:29:41 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Feb 2024 09:29:35 +0100 Message-ID: <20240201082938.16687-1-anton@khirnov.net> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] lavf/mpegts: drop a cargo-culted check 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: v/eiH1wv47Ov This check has survived the transition to AVCodecParameters, but is no longer relevant after it, since the codec context is no longer updated or accessed at all from the demuxer. --- libavformat/mpegts.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index bef00c88e7..1cf390e98e 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -919,11 +919,6 @@ static int mpegts_set_stream_info(AVStream *st, PESContext *pes, int old_codec_id = st->codecpar->codec_id; int old_codec_tag = st->codecpar->codec_tag; - if (avcodec_is_open(sti->avctx)) { - av_log(pes->stream, AV_LOG_DEBUG, "cannot set stream info, internal codec is open\n"); - return 0; - } - avpriv_set_pts_info(st, 33, 1, 90000); st->priv_data = pes; st->codecpar->codec_type = AVMEDIA_TYPE_DATA; From patchwork Thu Feb 1 08:29:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 45952 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp122865pzb; Thu, 1 Feb 2024 00:30:16 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCV+G+O+TRcEnzF2NiEpLp2/A1BscrEgLed6dDpC3jgjY4Gbv4TgqSM9nY8z5z05Z/z/LyZkgQJeeC9FmKYQV75HiM6vk92XY+uDjA== X-Google-Smtp-Source: AGHT+IGIgR5DS9wjA4bXwK3RDEM9W626W1TZmXjqsiLP9etUX7IEFhAFvo3xlbbgiLRHqouQawva X-Received: by 2002:a17:906:4ed4:b0:a36:c276:c3db with SMTP id i20-20020a1709064ed400b00a36c276c3dbmr555487ejv.2.1706776216281; Thu, 01 Feb 2024 00:30:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1706776216; cv=none; d=google.com; s=arc-20160816; b=hitrXZjNwJR1aIw8AHTKwiCFw4GO6tfTEfdlenTnGMcIu/Pm1is368nGqOLcUmJlrA IqpOREkq5rQ2AfQnRCw1LUIM/lOqHRWRvkxrM5wOQgDXtdVqJW7MltXKea+TOma+kMhd knpxirPwB6n+fuat7KbQvNNH/f80fjbaDVPFXUCBkv4vITTevuKAFolr7OrVwqQa50g+ s3qDw3THyfsvw5Qd/aETRgJpxKj3F6U199rEXaWcDKLyPAQ7Wiqt5fES89e55SgzU+wD U2CPThgZlDpYnbQz0Q0TakMfGVhAjuoQpehNRzvLcZ324wpNA5Mrk2TzdBdeduhrJEiH m2dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=2dt348HabtJC7cgbDw44dk5dXR6os6En8eLhoZbYGek=; fh=2WJNZnzUnxcLNS1gzlmmzL4WgLGcsdgFdnOdBBvpuEg=; b=qmtzMurBZdloMiFDg0pugKPRB/FicJASpC/zVbo94UpTUZaaqG4Uk/p10kE+LzsGGL 8S2lPHF8jHOABr9YoXSoPbkZdjdTDs/kiN/mPCDj3mmYbloxTi5ilz5d97Cq/wF6TvyJ p0m3QPvtKzCzDdPhaMSF0k05UYKQLF3XbpIUQGgMYrEXKlV5yM1mAbzyFy7YvnM/5EPj 9atkR67d+8w6W0onz7+h/3bInBHZo8K38ij5O8RUD5v3j+hu0TZhWrSv+CBy17MiMRNU htX19bIRUsOQrp2g5wizeBmMPjGLBP+2GpX101hqnyUuw25G9uFPvZM5rQKjtd/wa2Xy SmAw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b=DpItBafj; 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 X-Forwarded-Encrypted: i=0; AJvYcCWTIC0JObdIFMm/ZjfUTrwHn9/itZWvpsxaY9yw6XfpSNfEN/YbHPV/h4Fel90Jdg7BnG2j/NrOYGYdszFYvso8z6tD7UR6+N7QVGIIaW54e3vKWUbJvQ8LJOjYGOHe2+fy/ahYo0n1YPBcOHOIMEOf6oOF2LYPzINs5Ec+nj8N+AeQnQOOR5QpDmruYYrklNXTUlsoYaOYq/C839sMhKTDV8aAmK/3CLVEepjCbeKheFiIy+suY7wnb5Xa1Si3sYzP7gmag/K7Pke5ng7mmydH2IOTOU4FxZEqNNE1Gw0Q3ZwLVMncVhfJ1+p1CAxAeOdMRZqGPMyCbWHWyWRkrzld79RaahmJBOluSaVg6CJOu+Fmz3OXB7prvwVlphkgvQQ4mOiyclI+Wh5RyfqNon08c6bu23kd5RBoOaR+uvxmbqvbKfAtg/qCbXD9HnTrTlO0Ak55EnxG+wXeM2lkZphBC56c41c5JlrBqTQEwASEsMY8n+VqWtyP7cNHtvle6gs6L6jLHl8iBG8wCg4EUO7gvv5YBaweQ+VZh9Il/9VHJvWAPhexP/mBTI8yPpypyop5Hhiu82y01R94Lh23mVM/yhyvQGmnTL03K2fDnLvdcCTa4NnmGKnaNYUq0tj/4ELbRkl5QdpTX/I4qdMfa1SWJDiiGYWcKGTZFVuWlr5duJkQrv/cq8vSq07baKN77XDvCiQqwi06oDruTfDuDw8ZaoyMQi+T0NldLdyazV3hJ/+crqCh2A4XzcJ8v/qWY0VAwkbkxFVledPz2UG5m+qi+lGeYWhWqNiu4//YmVMiN26uQs6FnYBNCqRVkuw6b6NGa/v37mLU1w5cqpr9vXv/e266+V54nXB8PjkWKcIH5x939YPC4ZEtaJfJdr265Bcoz+wHjrIyJPO9V4dp5efmkMUXSCs7eo7P7Ixo2Eebib63RIAzrAO2m3LnjKyjtKaJzx 1yW0EcS/ToHIG4y2Y3hj/7CwFMHBi0vCtbraiAax+74MqKihcaCS2OYnHhhlUxUVL3z/Kh2JKBgdYw9toJIzQhEvNTthhqL5FwkNA/OXNY1u8+PBdD6w5X1/HfkhYS5NMWX+Yn3bnKcQ+ccFNd0VSw3CVNrpGBDLBYRwD86cSZ74Qs/F5GLaJwoipx5cEB7UlSDIUS4iaeR+Ap7OGkQqv8mhz1OIDufuw80JoVpSE5wh4ssN8DUP2O/VJui9wbX2B2u2PlrfUaG0/YagHaMUFbCPzjS+qOfmfEd9ldQ/agNJHwIhmS1wgg/z5NCjHm1tJci/0qsnIM3Hd5F1pKOT1o9sDd/w5j/g2zC5+CZlDEYfLMV7i01Nc3/La5HdjcDKjHBOb6YD4IO+3XZSW24pErvHeo6CBH42wYBVqEuM6NlO3tCuQFaIYrOkKow/RD/JQp7JOjO0U6gbvHvtRtYRQ3iisCEyKNcc9Li9U8Kb4//7zx07jPQqoGJd/nqY1ZJ07A8E4e39yiJXdrozPCxpFhNO3qOlOry2A1IeLJmmaFEwW8Xh/xYwwNXyFc1hVby8ATdy4g8zbL4+88LJX+0xrShOnTQdSgBdiGMP5iLA== Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p18-20020a17090635d200b00a35a618ef4dsi4052394ejb.754.2024.02.01.00.30.13; Thu, 01 Feb 2024 00:30:16 -0800 (PST) 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=@khirnov.net header.s=mail header.b=DpItBafj; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C37F768CE3A; Thu, 1 Feb 2024 10:29:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 61AB468C8F6 for ; Thu, 1 Feb 2024 10:29:49 +0200 (EET) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=DpItBafj; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id E801072E for ; Thu, 1 Feb 2024 09:29:48 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id zXBwy4H6tYni for ; Thu, 1 Feb 2024 09:29:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1706776187; bh=g+mwqDFaMLU3M1HrPuUtiz+FmcceuE2Xzm1IEZgMikk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=DpItBafjj3JiNLayA0wF/3xV4CxVpDY7DMYn2jW3HG0ZwepqQoA/P7WM/Qw8fHz4u 0Boc25RhM3j+IGDLGTNJ1Zf6Bki4BL6Er9OCV9GkfXosCglgYQLeUEFIWREFnY6XnG b/sjHiuhpRZMeb8Tgfma3HKkEzf8d2AK/t94I2DuB5ZFWD+1AVA2rofNFunz/xogXY ILqdWEi22gpY5sNrtNFmMuVuf640sM6s7/KecK1dNANxo4rpKelevC9Vrr0k4ttp9P tcIYsCJeL9R05t48ZafKXPAALK8wG7/zXqIj7kjF+kYEYXSLGPOQnVpb+9cEDPx5Mi qDyq95G+Pq7DA== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id 5BAF0115 for ; Thu, 1 Feb 2024 09:29:47 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 15EB33A076E for ; Thu, 1 Feb 2024 09:29:41 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Feb 2024 09:29:36 +0100 Message-ID: <20240201082938.16687-2-anton@khirnov.net> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240201082938.16687-1-anton@khirnov.net> References: <20240201082938.16687-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4] lavf/flacdec: stop accessing FFStream.avctx 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: BtsX90nDv2Lt The demuxer opens an internal parser instance in read_timestamp(), which requires a codec context. There is no need for it to access the FFStream one which is used for other purposes, it can allocate its own internal one. --- libavformat/flacdec.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c index ab9ef052f9..bbb205078a 100644 --- a/libavformat/flacdec.c +++ b/libavformat/flacdec.c @@ -36,6 +36,8 @@ typedef struct FLACDecContext { FFRawDemuxerContext rawctx; int found_seektable; + + AVCodecContext *parser_dec; } FLACDecContext; static void reset_index_position(int64_t metadata_head_size, AVStream *st) @@ -269,6 +271,7 @@ static int flac_probe(const AVProbeData *p) static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit) { + FLACDecContext *flac = s->priv_data; FFFormatContext *const si = ffformatcontext(s); AVPacket *const pkt = si->parse_pkt; AVStream *st = s->streams[stream_index]; @@ -285,6 +288,16 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde } parser->flags |= PARSER_FLAG_USE_CODEC_TS; + if (!flac->parser_dec) { + flac->parser_dec = avcodec_alloc_context3(NULL); + if (!flac->parser_dec) + return AV_NOPTS_VALUE; + + ret = avcodec_parameters_to_context(flac->parser_dec, st->codecpar); + if (ret < 0) + return ret; + } + for (;;){ uint8_t *data; int size; @@ -298,7 +311,7 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde av_assert1(!pkt->size); } } - av_parser_parse2(parser, ffstream(st)->avctx, + av_parser_parse2(parser, flac->parser_dec, &data, &size, pkt->data, pkt->size, pkt->pts, pkt->dts, *ppos); @@ -318,6 +331,15 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde return pts; } +static int flac_close(AVFormatContext *s) +{ + FLACDecContext *flac = s->priv_data; + + avcodec_free_context(&flac->parser_dec); + + return 0; +} + static int flac_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { AVStream *const st = s->streams[0]; FFStream *const sti = ffstream(st); @@ -347,6 +369,7 @@ const AVInputFormat ff_flac_demuxer = { .long_name = NULL_IF_CONFIG_SMALL("raw FLAC"), .read_probe = flac_probe, .read_header = flac_read_header, + .read_close = flac_close, .read_packet = ff_raw_read_partial_packet, .read_seek = flac_seek, .read_timestamp = flac_read_timestamp, From patchwork Thu Feb 1 08:29:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 45953 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp122948pzb; Thu, 1 Feb 2024 00:30:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IHipIO11J5ty7AmHOVi5n46LhZl9QrnJhEVf6OK/iO74uG4eA9S3CXbB5gmfxtEs05Juvow X-Received: by 2002:a17:906:aed5:b0:a36:5d15:c91 with SMTP id me21-20020a170906aed500b00a365d150c91mr2748873ejb.42.1706776224855; Thu, 01 Feb 2024 00:30:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1706776224; cv=none; d=google.com; s=arc-20160816; b=vivvWt2/TEz26ECF6x7sAGug2xuWBx4wP0v2zMNnWeA5wgVnzR9CdJqEMyfeZchgDp ZMmRkYOTVQSiFJxa8JvHBSp6HulH9EvI0LiMKq9MkDp8DGdxYx/vBVVH+trkvZx6N0gL aJj+QWZUtwCHx90rxfJhwvr32kkmCPZxZ5eutcMvhn/5oE3rqE6PHrKaRdXZnyPTGWZT VW1hfiMm2Ni+wPJbiUhgMdSIXitWqqMMuxyDxVOcngN13PSP/LKSRN3wNkZh9Zh0CP26 yPBZwfBL0IGe0Ll9mDp5XgQkl0tqVswWcmPg0SVYAG/MU9qZuoYtBUbYl9vnj9yvNhjK +uIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=ZocWTG6S6OPoi1oOiDt7NmniK1gJ9q3aYctbOZLMWcs=; fh=fHh2nXodQvslco5V6s7XjSPCVIigMF8ctkiEpaC9wjY=; b=pKkYYbRAHlVIAGstFmU1CQleuV7kfTGucR918ECPDe0x/+9Y04jC69fGsEfszywDro 2Di6a17mc8si4vFDPIQwfda1DEpHdup9rdr6nweFFfnEu1EBB8KjLNWpSwhD1UhHc0CM X3mFpNpG8tboEQftbCk9j3vyhW0RygTm9cC78alNaVnhHQmLgANqyMTiptZtdAgAQ9R8 dLFc/UtNKZosT3M3bTd+ouPuEAqLMIFbbDaNctjqD8N5ltOkwMMkO4OJUmT9SHwQNzQX LRE5B8C4kCP8fVLwmJnkhRh1u3eLPqCvySUMtHlxO4tWsFGuN3BzNHHjSPg1R66/H2cX LlFg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b=LRMTOR1t; 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 X-Forwarded-Encrypted: i=0; AJvYcCWiw1VGSexoCbUo32ubWX6sMCWfbg/sSFiEZluhuUqBjqrBWMDNTnTVYkDFdjNzbzbzhFMZTutiYHM5y/4NHoqkbFi7dkOdfWDyzTucbm1+gig/JT5Ir1ntiz4X4ECSB3yuH2jyaAgrVMjO6Xn2fPHVvK3s9lzc06oi1fzZJASd1ha2zKfqSufOkmh20ZmoZdeuqMaqzLlKxU4ujZNdvw1eL6ybf9nHJ76oiBF4qh8xWW+kJA4Ouul4hCGOgHalg1Iav3yAzZmOtL0QJm1RCX2QqwHV3/mvB/cVdhav6rvolxMPlp363htOxJwKFJwtB4tNv2IVGa+SV5R9Uml+S+Uk52/kH1XOXIQbAE8p5/rUiT0DjHJ4x8V8A6tsapC9jnuKLDYrdjHKY8jfH6d6eeq9q9byNarbq3xkTRHUTde12fglm8yuPuPXufu/S3dmp2acnPpCUdWaE0idG8zqJi10fbpHZPM1OshdvapVU2z9GU5HDy4Ml0fWx3KRroZQ6bJlaF/nm5P/FcPKyZUzkLyyzq+by8kYJrKApDL8jYy+mijYhVQJJctWj+G+3FuwKdg8hkqaHP1ipvFHt9brd+N8l4PqlkEHfMs73r7NyCdlB0fg3T+Tr3ucgse70cy7SugIV2tXkl4nAOEbmXqIugneY3+HkrRQSybEemLPoW5emRKZpffHfr7yjm7G8gKbFyX/+WAqFEIwEYo73IP5zRDRHf018n3zpoviK5DHADABPf18kqD3p1sk7RZk7vtMKdhwQBFNMVRXG4L4ySMhOyM1fZ8M0gbnMHw7yGy3IlWVUChP0TkipqlZOZD9K5mEqsJxXSNDh9dTPCVDJcqOYYqPrg9+w0FdxK/gx0cakal9R1gvuTA8CeVTZENsc5JGUbHMA7CFQ4RHAIduqDX8hle6KaYTKlANnpDMgbs/hbbpB0j4jfUXIlxdCwuRUjzm2f887u vRjm9Y0G9CH4a2ftsNp88ZWxisZ4OVhpls7W8f1zsxwJ4ph7CLjMT/G2glsfYxJyYSc25ZfbV9KpbXvXGJxBCl5aRTp9o5dGS97oVhHUqwRjmZo2KokWkWJfgri3fDM0ls5EUsmiTIfOKtl4VQ0uOqET7jM09QzkK8mQfYYYpw0qIvP7xQyeKu9XYMBcIoZs5Njvx/MHneQzZWptgkUpDwE9a3uYGVeVNo4ZM6HZyKkzlC4ypQdbePntaeHKOnwokRyGXSTgU5lgjKmNst+rpz6o5jK0Fe2/NKrjwNBIP9dBoMeBKhM6Jw/E39wBsVSIDhoiEnKuqi4ebEB6v1S/dsat5yGbGDG6yLAYKw+B5TjihZzgGOgZsdGNBtUnMpDBs9AZjWuXUDAL0r5xV4cIS9MiJejbodkBiOQyon762LbGyMGQI7MTDH1ldutu9uJdqAgd/HXPyZkakTv7SWnHesTBrJDD3X6M+g62L1Bh25bpg77UZZDO3R4PKotmMJJeEpIlhc1GYDMAkkU+RWGnPlAg5wUHUz4YCKxMoGq8QcFC/BbYgybFOVkaomxFjmUR5SDPbPtZa2aqnwxRfNGK8ohCPzY+sYtzyJVrzRslxw8WcmtCcP0lWiJyjlM3vmEi44UDwFCbCo6QI= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c20-20020a17090603d400b00a3182cc0404si6582284eja.373.2024.02.01.00.30.24; Thu, 01 Feb 2024 00:30:24 -0800 (PST) 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=@khirnov.net header.s=mail header.b=LRMTOR1t; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F3DD368CFA4; Thu, 1 Feb 2024 10:29:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6489068CC0A for ; Thu, 1 Feb 2024 10:29:49 +0200 (EET) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=LRMTOR1t; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id 7B67143CE for ; Thu, 1 Feb 2024 09:29:48 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id 964i5SNeSbOo for ; Thu, 1 Feb 2024 09:29:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1706776187; bh=asvHcBuc3i/L/f5neHywLkPqB8tNVJyyAN/ctnkxLX0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=LRMTOR1tq6dIkYSpS9G1XV3yS8h78+V6RABAcF89EY1ixUOK7kJ+lk0zEDFT4C5ep ueLYxPzSb67lnSRZrPf/DFZdOnfAR0BqPZ6o/RX7eGhCLunpLcjwufmEE2lEnxHkk3 NdaW2+jYVYlrNpHVgQPJLddCCoypOwo2JtxrRzDfNtVoYAhXFRQXjOX7IbGRt1ubK6 mXpJs51JkWpqaenxVfRKSEcfI66XO47wwxVqJ3vA7ALP7Vv/kn7mFndlNoYFBFY9Dt dQCHlzWOb9jKqJuf9EzJA4F/joSEt1Zz8z0gXrk5J1ihsZ4diiEYul0AeocGkNv7ia CTkz5L4OPpLgw== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id 5F2D4DFB for ; Thu, 1 Feb 2024 09:29:47 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 21C613A0A03 for ; Thu, 1 Feb 2024 09:29:41 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Feb 2024 09:29:37 +0100 Message-ID: <20240201082938.16687-3-anton@khirnov.net> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240201082938.16687-1-anton@khirnov.net> References: <20240201082938.16687-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] lavf/demux: stop calling avcodec_close() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UhG+N1NiT0Mn Replace it with recreating the codec context. This is the last remaining blocker for deprecating avcodec_close(). --- libavformat/demux.c | 53 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/libavformat/demux.c b/libavformat/demux.c index 6f640b92b1..c1640c459c 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -1250,6 +1250,52 @@ static int64_t ts_to_samples(AVStream *st, int64_t ts) return av_rescale(ts, st->time_base.num * st->codecpar->sample_rate, st->time_base.den); } +static int codec_close(FFStream *sti) +{ + AVCodecContext *avctx_new = NULL; + AVCodecParameters *par_tmp = NULL; + int ret = 0; + + avctx_new = avcodec_alloc_context3(sti->avctx->codec); + if (!avctx_new) { + ret = AVERROR(ENOMEM); + goto fail; + } + + par_tmp = avcodec_parameters_alloc(); + if (!par_tmp) { + ret = AVERROR(ENOMEM); + goto fail; + } + + ret = avcodec_parameters_from_context(par_tmp, sti->avctx); + if (ret < 0) + goto fail; + + ret = avcodec_parameters_to_context(avctx_new, par_tmp); + if (ret < 0) + goto fail; + + avctx_new->pkt_timebase = sti->avctx->pkt_timebase; + +#if FF_API_TICKS_PER_FRAME +FF_DISABLE_DEPRECATION_WARNINGS + avctx_new->ticks_per_frame = sti->avctx->ticks_per_frame; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + + avcodec_free_context(&sti->avctx); + sti->avctx = avctx_new; + + avctx_new = NULL; + +fail: + avcodec_free_context(&avctx_new); + avcodec_parameters_free(&par_tmp); + + return ret; +} + static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) { FFFormatContext *const si = ffformatcontext(s); @@ -1286,7 +1332,7 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) if (sti->need_context_update) { if (avcodec_is_open(sti->avctx)) { av_log(s, AV_LOG_DEBUG, "Demuxer context update while decoder is open, closing and trying to re-open\n"); - avcodec_close(sti->avctx); + codec_close(sti); sti->info->found_decoder = 0; } @@ -3017,10 +3063,7 @@ find_stream_info_err: av_freep(&sti->info->duration_error); av_freep(&sti->info); } - avcodec_close(sti->avctx); - // FIXME: avcodec_close() frees AVOption settable fields which includes ch_layout, - // so we need to restore it. - av_channel_layout_copy(&sti->avctx->ch_layout, &st->codecpar->ch_layout); + codec_close(sti); av_bsf_free(&sti->extract_extradata.bsf); } if (ic->pb) { From patchwork Thu Feb 1 08:29:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 45954 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp123019pzb; Thu, 1 Feb 2024 00:30:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IGGekf4iQL2hOpqr3bSlQvHRqouQTFyw0nEE5O5JPTX5xLtoZ6QT/S0XRKxmYVL3lbdubTt X-Received: by 2002:a17:906:57c8:b0:a30:f60b:5985 with SMTP id u8-20020a17090657c800b00a30f60b5985mr3050290ejr.74.1706776235988; Thu, 01 Feb 2024 00:30:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1706776235; cv=none; d=google.com; s=arc-20160816; b=oK47BnB2I9MFRUb6PLseQj/xfrbjj1jcnTPwwQzfl2GduI/0m/vEL6xG+SQsBFDK3y gd0v0Lo2C7lBUyhI+jVHGVCU3QE/ClsQBT9PrAfm07jNBOGTjVwOaw5yFWzAa7npXKRx H7PCOQSeNDP3+TTmF5bJZJySXQpVsu7a6OuDJ6JZPPMsHx4FtVhCTk6GJfbnO4sigLOc JVioCCsTOdCyGF8BTKr6g/RRm5HGxCu+nR018u3BWx9N4CN05H/WegXBOycGeuSQTaKU dr3Fx85amrV6Bi7N7MjaX9YrSHWzJEsJAWycx5JX/guLVm8L1JDuGq6q3XDrADCFArjb D/7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=/470K5a7bEmYZO313kx0y/1QHZJp2m4/nczeuvISU24=; fh=GCjR9ne5u94HWTv9VxvWfXjICYbaRM2rg6ZQ6NF52Zg=; b=JB16Mrw0BntYXg+uFSid3hAgZJj7KT3MPRvXd3lCwrAf5XsR/IBN/2FCcz4C3EoJeg sfRtJV5zLBS+M8czonnIt8664nM6IdLyfE6aJIHvZwZo7RGx8kvbcfCzcGeBpZF/PloJ 7n8vwM+sQER/+wzA2uwVB7KmnfS5DfAEeS99U74LZLFD4CGd4to4IKgSkzU2pm/bu+er IczbnFLl+Qdaw8BomKAxdGBZK8JEAupTAHo8ZSWbfshCZdFXkY96KPSuc6HuQXd6Nkfn uFRFl9cW65cwZSmpDcEJmPUXbcqFB30neHkfHSHukBv2VCLmCtQov6EQQmapSLA+tTsz /Pew==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b="lOfECq/T"; 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 X-Forwarded-Encrypted: i=0; AJvYcCVC6Ex2GyWjrgNubAeTg3ggs04SnMLlEi8+eXX74ge7AXC63SLdPHwvDz1s2nFsFjQ53o26hgMk/zJNVQ8KFXDtt1VFzxRZkhbZpwgWwtpkm0nyY29JRDTWGJgT8XDBBshY/j6yR3atgNa9VCdrGuLDemVuadSjj/CHIUgg0vXRuePr7VxXg8B/1ezZKMV4RhibaJfGcygGND8AHFhzu9ZrM/MCY8msQJskSNAOv0lVJdsmyJQ50kOhFIZBN4WcFRR7lDNN4bzeDuEv976y0CZFp8efRbeTNiiDV9irBATXpGrvjoTd3Yx9VJt0u2juvOMwRsg9RMJgfflEoKS1tggUgezJYMiUzT47NUDHRZAqhpHNFrqXckMRwM7aKk8YW+FnhCedSDH0Qv6/5uH+mcONyQeCUsXRspwHVseM/U/DoB/crF1MqaHxou3MTPgx9o1C1i2R/atAPKdSltC6T5n4xkUz2yGRu4WlvaC05h+ubFQlg0C9uAi9kWeaDizFa0a6Oz6IoQ9uiB0sj3rNV+7vqpmVsRJ1i5Rd45dcbaTGWf8Mmvr3iXyupURP2ipnVek3Qibn9Uu71Ios0QsofmwRgyxbsl88xsgOKBH85Y6SevQbZ8Fw6lrtuCRfYVLwje09oM1LLBtJEHjR3ANTQBmh8sWDW8zR8nVEaDzpJfMBtkvBYMikAsUSYCo0CaVhf5pwlX2Sqc7K3/9IGrfQxqS/ovx9ivCJa9hOXkmtv9LJCAx3QCPoPLsT5JVmOgrbJ0YY9Z4gIEF+Uamh6Z42oh9JBlXJwZ7GKo/cqqF/O+u/Hco5FhXf5lLdxQ5mR/+j8s/dKZ4Nrqugb7tjljgNU+Y8xaMVwsfax+bnpJ4tUiNof6BKjScqYQ8JWS5H/W7ySmvZoQXhfOsKOlfh9sBm/IJ/lf9y/E9uixT8RrKpCkH1LlRnlhRe4jTXECaiGohZ+p9sUX wSR4U05gOjgmRlqDN18aI2KrWdf9ogjU0z3X2a4Do3WTO3M/J+sbP0UqfAEeSg5K64wEqeiFNtUG0Qvyr5eW0r3lwTKrnzIVPllBmi4jHyRwoZuucpzknECaSd7UtKEgTaPKX3mY4e72MqhbrdDzhZ9mrOggLzGRx0ktAl0UHlp2zLlEKzvjo4Xe8/FD8dz5hLVoUocC0GDQ7N7TOQNhHB6TWrNIrWVYXrLuVK7vNK9wCpbxEVM78QWZTYhk5DUiwhjTe2ruZQEtL6LHOp/HUhO2XEbSIbM438j0xl0ChkKMW8FWGksllk+1CdAQNuws57r5X1s+BPIiwvoooDXsOq6K1MVbglrVFnIVlQ5ftJIJijjiYOEgQ1C6VCHUvIctVkGyM7JjGj8VAK83MOHGD8tuITM3ayhVH3w8SOKHs5pDohvWWxrlqYX6cXhm3D9eQMYKTsgSleOQcBfm1ezqxnk4aIWZFLw1EJvfZBomnke/jdT8kl5YDy/A9U9xFFHPRFo3+8TgpY8awmukLSP+pxqtzRheue5GNd156zvWvPJSSPUGxAC4LrQ5VkvDqeODDPNf9mml/StXhfyMASZVDmOL7HeME/21oitpTKiCGCXfXs4c8iew09gLX5x1XDsJi8ZnDT9PR5+jgkuQ== Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u16-20020a170906125000b00a361b8c118csi2654217eja.234.2024.02.01.00.30.35; Thu, 01 Feb 2024 00:30:35 -0800 (PST) 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=@khirnov.net header.s=mail header.b="lOfECq/T"; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 33A0068D0AD; Thu, 1 Feb 2024 10:30:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 675EF68CD11 for ; Thu, 1 Feb 2024 10:29:49 +0200 (EET) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=lOfECq/T; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id 0636A115 for ; Thu, 1 Feb 2024 09:29:49 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id CyeOpJJK1DvG for ; Thu, 1 Feb 2024 09:29:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1706776187; bh=RcWM/Jow98Tk49pmkYjQCHB4+Fd0Fc+um5iAdWhavLo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=lOfECq/TmwbBw2l7Iwu3oAD53Jaw+ZLYhJO3DOm/cs2M0F/Wa2JVay5GO9KFDEzeQ pX/6vVeoJsZxMvUrtDleHLBVenHKcQQFIYiiZVN0d4SmfhVDOipduQA7FmuudvPllo /2T9VZkrmEbCHzjlcn3lchofaJnx5XPNdzoHljj5IaBebWhgWv2JDPAWE3CrbEqnjQ CghSMcEhUrlYHqCueAwthivmKUcgv7knUAdSg2VtECZ/+ZaL/xiJrKj6e7Qgi69SSp sSZ2B28UOaj8HdaOFcvwjkwQxC2WS17IlQSN2mi0sZhOcYjP7hO+t5amJpkbWjjP+q L7leKQ1Fxt2hg== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id 67669DFD for ; Thu, 1 Feb 2024 09:29:47 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 2D9793A0A68 for ; Thu, 1 Feb 2024 09:29:41 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Feb 2024 09:29:38 +0100 Message-ID: <20240201082938.16687-4-anton@khirnov.net> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240201082938.16687-1-anton@khirnov.net> References: <20240201082938.16687-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] lavc: deprecate avcodec_close() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 3RMOZPSdecvx Its use has been discouraged since 2016, but now is no longer used in avformat, so there is no reason to keep it public. --- libavcodec/avcodec.c | 12 +++++++++--- libavcodec/avcodec.h | 5 ++++- libavcodec/avcodec_internal.h | 2 ++ libavcodec/frame_thread_encoder.c | 5 +++-- libavcodec/options.c | 3 ++- libavcodec/version_major.h | 1 + 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index a6c8629f6c..b6d27ada21 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -377,7 +377,7 @@ end: return ret; free_and_end: - avcodec_close(avctx); + ff_codec_close(avctx); goto end; } @@ -432,12 +432,12 @@ void avsubtitle_free(AVSubtitle *sub) memset(sub, 0, sizeof(*sub)); } -av_cold int avcodec_close(AVCodecContext *avctx) +av_cold void ff_codec_close(AVCodecContext *avctx) { int i; if (!avctx) - return 0; + return; if (avcodec_is_open(avctx)) { AVCodecInternal *avci = avctx->internal; @@ -497,9 +497,15 @@ av_cold int avcodec_close(AVCodecContext *avctx) avctx->codec = NULL; avctx->active_thread_type = 0; +} +#if FF_API_AVCODEC_CLOSE +int avcodec_close(AVCodecContext *avctx) +{ + ff_codec_close(avctx); return 0; } +#endif static const char *unknown_if_null(const char *str) { diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 7fb44e28f4..0018ccbb0c 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2411,6 +2411,7 @@ int avcodec_parameters_to_context(AVCodecContext *codec, */ int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); +#if FF_API_AVCODEC_CLOSE /** * Close a given AVCodecContext and free all the data associated with it * (but not the AVCodecContext itself). @@ -2419,12 +2420,14 @@ int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **op * the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL * codec. Subsequent calls will do nothing. * - * @note Do not use this function. Use avcodec_free_context() to destroy a + * @deprecated Do not use this function. Use avcodec_free_context() to destroy a * codec context (either open or closed). Opening and closing a codec context * multiple times is not supported anymore -- use multiple codec contexts * instead. */ +attribute_deprecated int avcodec_close(AVCodecContext *avctx); +#endif /** * Free all allocated data in the given subtitle struct. diff --git a/libavcodec/avcodec_internal.h b/libavcodec/avcodec_internal.h index 9b93ff3d81..4d1cb3a314 100644 --- a/libavcodec/avcodec_internal.h +++ b/libavcodec/avcodec_internal.h @@ -56,4 +56,6 @@ void ff_encode_flush_buffers(struct AVCodecContext *avctx); struct AVCodecInternal *ff_decode_internal_alloc(void); struct AVCodecInternal *ff_encode_internal_alloc(void); +void ff_codec_close(struct AVCodecContext *avctx); + #endif // AVCODEC_AVCODEC_INTERNAL_H diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 62d9580ad4..cda5158117 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -27,6 +27,7 @@ #include "libavutil/opt.h" #include "libavutil/thread.h" #include "avcodec.h" +#include "avcodec_internal.h" #include "encode.h" #include "internal.h" #include "pthread_internal.h" @@ -110,7 +111,7 @@ static void * attribute_align_arg worker(void *v){ pthread_mutex_unlock(&c->finished_task_mutex); } end: - avcodec_close(avctx); + ff_codec_close(avctx); av_freep(&avctx); return NULL; } @@ -230,7 +231,7 @@ av_cold int ff_frame_thread_encoder_init(AVCodecContext *avctx) return 0; fail: - avcodec_close(thread_avctx); + ff_codec_close(thread_avctx); av_freep(&thread_avctx); avctx->thread_count = i; av_log(avctx, AV_LOG_ERROR, "ff_frame_thread_encoder_init failed\n"); diff --git a/libavcodec/options.c b/libavcodec/options.c index a9b35ee1c3..05a355fb45 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -27,6 +27,7 @@ #include "config_components.h" #include "avcodec.h" +#include "avcodec_internal.h" #include "codec_internal.h" #include "libavutil/avassert.h" #include "libavutil/internal.h" @@ -172,7 +173,7 @@ void avcodec_free_context(AVCodecContext **pavctx) if (!avctx) return; - avcodec_close(avctx); + ff_codec_close(avctx); av_freep(&avctx->extradata); av_freep(&avctx->subtitle_header); diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h index b9164fe5c6..45209c0a4f 100644 --- a/libavcodec/version_major.h +++ b/libavcodec/version_major.h @@ -52,6 +52,7 @@ #define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62) #define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_AVCODEC_CLOSE (LIBAVCODEC_VERSION_MAJOR < 62) // reminder to remove CrystalHD decoders on next major bump #define FF_CODEC_CRYSTAL_HD (LIBAVCODEC_VERSION_MAJOR < 61)