From patchwork Fri Dec 3 20:45:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 31945 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1173351iog; Fri, 3 Dec 2021 12:46:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJzqscD9S79lA2N0F39ig5Dd8ODC8rxQal4P3WybuRJMtK1rwDPuuenK71b3WLvHw6bz4V5q X-Received: by 2002:a05:6402:510b:: with SMTP id m11mr30109180edd.165.1638564373118; Fri, 03 Dec 2021 12:46:13 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id x15si6809931edd.589.2021.12.03.12.46.12; Fri, 03 Dec 2021 12:46:13 -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=@outlook.com header.s=selector1 header.b=lzdXvpkI; 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 DEF1068AE3C; Fri, 3 Dec 2021 22:46:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075052.outbound.protection.outlook.com [40.92.75.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 459C168ADCE for ; Fri, 3 Dec 2021 22:46:01 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FOyNwM20b14RIAgnsEXNmy+TZb5aKSFIH2UhA5X/D4tiCP+HP9J42iSKQYddeMGewmBwiJPgf3E65XbWsBrjER80F5Dzy8YiDh1z+lbZQo9SzcmkxMnRo0am6pSn/3gleOZjsBH5ajKFjZ1yZE6PX6WoaF8T9nXILkrJGbtd3XypMUPjvdOaAoV1n3WA1CxsYdc0ZZt4vEVePsEWaHEKRAeMalvUv5svjfwNGh8Ad1jNRCwSQkDDI3eiVOz/1hTGvWpr5mNbhaXtt4qgCBnOCVAgyllLfZ3v/fIuiH8+TNv5hHVNjvLanGCxnuhcLGQrPM0HdV3GRBp/3r0RuHPyrQ== 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=WhL06D9zaEMYLYzhrqbgrpYq/SN5u4bLx+crjCHZR7w=; b=GK9FMCtSIPxX4xAs+DRVAtyJTy1NbW+PudYI6yz7throsibLr64kpHOAPvgeZfFCGpHuEKMZS3bJZa33IMsTqyg6MuHtumRFC7QfAaPeUeXgcH7qQDVsYbheMadp0E4SlRJv7y6mUFhCFAHKp6n8vzZ+syxL7XrF7Z0SIYcnRnZzV3piFW7SYzHm4vlYWIYmxD0+50jcZnBrljlHGIhzEIfCu+n+VjLZ6PFDbrppen1N9fRgEvtgfmceImr2EEiQ6JbHQ9Mk+mf06Nwl3wg319KqvorcPKGIptu9IFgEBWyYmaYAS1Lj6L9uA6HvA1H25C7IY7OZckU6ujo4oazgAQ== 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=WhL06D9zaEMYLYzhrqbgrpYq/SN5u4bLx+crjCHZR7w=; b=lzdXvpkItPj+Clb/Zwkn23aJRaiRk73htFckqpzvGCORKJxmIPn2+9ovBKexrhx8pZAFMz9k5Bdj2kHCR8sRQxQrLAHlaFZjQ20sJ4jRJ+MHjnyC4ERTfmo832hnaAEclFZyyv8nT9zY8o1wCkHfvqt56eQYGJdrdqj8CqDk2qmTo8EoCXkskTgU9gliicAGhx7E+4NSUhj1CpHvb70qeIBTtbxZjYK486ipKDnyzDn4CrbqvtGhKCupYiclH64qgc5uq6KKLXZE4R7tsxfS6ONQn300ekn+VVk+LU2b6aLkUEexdnFx4pXwYTGy34xZTMIN9i+5VbXTsGiFaGlaLw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3831.eurprd03.prod.outlook.com (2603:10a6:20b:17::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 3 Dec 2021 20:45:59 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%4]) with mapi id 15.20.4755.019; Fri, 3 Dec 2021 20:45:58 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 3 Dec 2021 21:45:46 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [0C+WV/3SzlCQMCgNKpneYpJpeG31cWY9] X-ClientProxiedBy: AM5PR0301CA0023.eurprd03.prod.outlook.com (2603:10a6:206:14::36) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211203204548.2005738-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.248.74) by AM5PR0301CA0023.eurprd03.prod.outlook.com (2603:10a6:206:14::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11 via Frontend Transport; Fri, 3 Dec 2021 20:45:58 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3dcbcde9-3089-4c27-e07f-08d9b69de8f4 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQtx8w+3h2yNIIsmVb5543qgsBLjkbpu3u6oyjdh+rKYA5GG8NHdwnWa44NU1tD0NVUJxFbHJHXsqQIDKE945v2wQD6X4b/cZIk4z16/TxjN95i9+aBqQN1NtAJw7BCsIqov+KuY/YeoAHS0zR0VbRZF85VsYpjHLi7fovJgebJ8S7Cz3eym0zxorSluQ7LKunsbhJ149MXF+w31bEX1mSGLidROgcOEF+dCTYYdQwyxeWJrdIWtkvfUe+jNDfSlPXUZ3nB59xLKt1JETw8jMRicOa3dfE+CmDyKlFKfXJrqB/u808YUOcSdFOz8b1B6XHTAPznN9kjjg710wvJ2e+9oNjd+IKE5U7dt1LA+XRL53Uo+F3oHnRFWMC6e5BXp4qn8c0nku3GUcKakv5nqTN7pTsGuOu7IuMlQETrygvju/PXaiRigWV5/g95vPvLOaKZ+8v4VZ/q/HCnHkhjK82usz4sQA3E8MgZ53em4MJqETX/SBt9yLy4ePWhjstVxFA/7f+2B5efVJ8VmoUYi7EX26kFy4ZkqoNTd/A+Q229dLhuKgX5buMsCGkdUXON2OoRLkvSdA0jn/89i+gRAsXwGneDTo35SUbwOaxwWw2yM04TN6p41y9zSI5LA93hcyMqPqadyycowo+51KDP+sjPQJnCHBIij+Xzx4ie8heJLZVDb6n9ujrbs3M5mlWaQa74OKga6NmOz33yaCmeq+hFX1yOp1Fkf8mtZrpS3zUP/i02bzbzMNh5hYgB2nPtGxY= X-MS-TrafficTypeDiagnostic: AM6PR03MB3831: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NFcM+xOtYw89bC8lAF1e5jt7xAt0aLDYNdjoTe2eAxBVwaLO+3tNRL9r0Za8guqIuLAfsXsRFJZj/QF5A89wx2dX9FSMJBMHD6ycgvYmW/iG2085xNg32p96UI0RdZYMYZAcOowhyFBzh0FdDmu17JwpslIaoQlWWmWVNABXxPYcH0Fi3XLJgRCuwJzXHfuLvoHMa4yavRx5cqrLGF93uw6MH53pOQNQz2IftFYL0x8VhNUTCp015ATEZR/DvLuElJxzzn+Et1bHCB8Bg5J0EsluX+kj0DOweHZTLhCRuwqGc72xNb38XRh2JkhFa0FEXh5WH1paYD8AMkF+vjUfWjjcTf6Kh7zCB1v5t+DhHoH+vhuielbCY+Y7MkDqVQ29ETljKQ1JPsVU8tdetOBy39WDlgEkH4O8f5NR4xSjR6z1aExbRU7qjNYJDcuq4DuOq1WuRr8KxXM9yT9ZaBkCAcsXMJMvfP3jbDCvpc98lNwTsmFysUcOQi8+cm4yJd5CO8/ORqnkfi3AdDtaioB30t4m2zULNn2TKsKcKp89ruREulLaxCL+UxiG/j8zPKBX3HIpXyj19vX1lqSHGmuryA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0YYaTZsf7G0wjE38GM9ueUFnrw5q4f6Iqg0rbHXb9FzXt/MBhKHxMfH0XRJbxQUp/M8hw4OdfyXxOteOWD1jIKcHtWTlK4iCgMX9JJjAbHTvfCa4h5d5+WmjtFBOBR0swyzMVgjsTYm4DaxEWnN4M7jRqWNpYvcqym6hi75p6FxDTCPchUuUEfNQGo9x4ETlVp5CDrB6OUr3nwEmdQKLrBobXDAlUvZ+KSNzYSUhkt396eAkoJttfGCJ0zeirZx12LhcnXJ9xnLGEmZwPU0DJ6K6TUYHi2KmOu0WxbAGmdPvAQ4oYg0Ch/Z2qskUzNo1MWCgOpKZJy9JhfkXWllNXJuczTiwE0T7re8c/zioY/7JK72L98ojTKf6eep8gkNP/8SbD+l6hgkzZvNULwNiN3sBafXph6bCL0bcmFkf4vPwJ54XMDQhwzKNW8q9RUh85llxIIOuvEKeHFXmTa4RvUXXb9HFCcozUQ8/qE4U6ag1SuwvQW9peX3zR5J+dJd65JMH1ZmKMkGd7rRwpNbTEjoOhKBEcNJWuZq917M76/0aPl4rQjOgm3GY+5eCeGMHDUNtBixX0czYURq1eKTrxxGK/jS6B0t9xTyo4GjaX3U7fmqQN5xtvRoquOLge6EihtgxlJNySxvohVjD9K5QESjsh7NlxHEMbketFaCYLAF4inHFpz+QvF14qy2I7jeTFBpgn1wkhjhHWLKQHGjo/9Vs936BLC5wdlCLyJoLqFOA8kz8PHMrgk29FlQ55iviagafOWhc2ZgLjtalUWuf9urYma5mAKob8j6G4sc9lh24QeRE662JPu5Cim6z0vRQJi9x+8gjcjIuLuII3UG59cOzypq8rZGtTc3Nu+aQQX41giTGKvOzv5h5+PSC5SkK7d8iVe4JuHDc29PMSmzli4LnxPaUQQarWN8OKmdbT5721MN6X20Vv9G66Q86t4b+AooaV4yRZSOJM21xvT/8YQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3dcbcde9-3089-4c27-e07f-08d9b69de8f4 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2021 20:45:58.9118 (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: AM6PR03MB3831 Subject: [FFmpeg-devel] [PATCH 5/7] fftools/ffmpeg: Avoid allocating+freeing frame, check allocations 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: J+3+wO1fcKMO Fixes a potential crash upon av_frame_alloc() failure. Signed-off-by: Andreas Rheinhardt --- fftools/ffmpeg.c | 11 ++++------- fftools/ffmpeg_opt.c | 4 ++++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index cfb04d5eff..8c3a4f7c0c 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -1291,7 +1291,7 @@ static void do_video_out(OutputFile *of, int forced_keyframe = 0; double pts_time; - if (i < nb0_frames && ost->last_frame) { + if (i < nb0_frames && ost->last_frame->buf[0]) { in_picture = ost->last_frame; } else in_picture = next_picture; @@ -1419,13 +1419,10 @@ static void do_video_out(OutputFile *of, do_video_stats(ost, frame_size); } - if (!ost->last_frame) - ost->last_frame = av_frame_alloc(); av_frame_unref(ost->last_frame); - if (next_picture && ost->last_frame) - av_frame_ref(ost->last_frame, next_picture); - else - av_frame_free(&ost->last_frame); + if (next_picture) + if (av_frame_ref(ost->last_frame, next_picture) < 0) + goto error; return; error: diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index 17e4cdd2d6..6d091d3e23 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -1903,6 +1903,10 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in ost->avfilter = get_ost_filters(o, oc, ost); if (!ost->avfilter) exit_program(1); + + ost->last_frame = av_frame_alloc(); + if (!ost->last_frame) + exit_program(1); } else { MATCH_PER_STREAM_OPT(copy_initial_nonkeyframes, i, ost->copy_initial_nonkeyframes, oc ,st); }