From patchwork Mon Apr 11 21:21:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 35262 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp1255386pzh; Mon, 11 Apr 2022 14:21:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzZNwqrjW3+LM6tasOzphaOLOkTwUXG+clvvk4CyBa6reEYsNuCku+48Fuwe7z1pBacSgrD X-Received: by 2002:a17:907:c0c:b0:6d1:8c46:6415 with SMTP id ga12-20020a1709070c0c00b006d18c466415mr32237993ejc.326.1649712113072; Mon, 11 Apr 2022 14:21:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649712113; cv=none; d=google.com; s=arc-20160816; b=FsoCKomMsTUY0MWD2z3aOlAm5gY/T3RoYv4cqS+yoxNBzuZ06TLioFFy1A1TAKAE1L 2QcsEi4P2hpcpMJOUJKSd/xFw1MbhdAnCFAZJnup6nnU8dhtIdxZJCz20OckVoXPseY3 gh63HnIjAIVeXYSNlr/eM40u0HWur7yzTigHXxOfwk0vzzHGBVfRbKf2MAydcAqTndyq BG2ecEoIW8jJ1OKwrNTFH4mjxusO7Bw6QNjZU4B5FdgS/TRCkhT+8Yuzw7TdieDS+70q SWtrgehbuX47iztP0Tx3b78UHQTId8TIpsup9S0gIvK9tIrnoLke6Ax9GAoQBBgWQGlH ZNZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to; bh=Rl2UBSs4xv64GOvqY9yxJoYmde0TA54NMbolYqF1kA4=; b=nZNi48A327geVazFif/ArxJBEG7Z/nWttwbvhpV09suCGKF7XrC34+Y5mrTzdiYFmC 7Bdb1m1g+4qvRKKiKV7AzDK8ectieGF2kHBKq65zw+e3JwvEzbEkLqs6lOujZtKx3CUa LoIgon3b8DMtUu1vlXjK7fOzQwhD3akHXZr3HceIaKFVlKhzPZSO7njkLDw/Oob1dRiT WWZogrTzTOlYRzK4XYloKghV7ldGPH0M8PtnQXPILw8o4OsjRWSVEJiX5wXYJO5m7G9Y zUVs+FF3Ej9ieQyyNhbKHptyLFhZ8rX0wjBIgeQZqdjqmCoAnnysJDU3PjS325gC3lwq p4Uw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h17-20020a1709063b5100b006df76385f02si2159914ejf.930.2022.04.11.14.21.52; Mon, 11 Apr 2022 14:21:53 -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; 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 E8A7068B327; Tue, 12 Apr 2022 00:21:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-at03-3.mx.upcmail.net (vie01a-dmta-at03-3.mx.upcmail.net [62.179.121.153]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A751D68B072 for ; Tue, 12 Apr 2022 00:21:42 +0300 (EEST) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-at03.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1ne1Tb-0003We-IG for ffmpeg-devel@ffmpeg.org; Mon, 11 Apr 2022 23:21:35 +0200 Received: from ren-mail-psmtp-mg01. ([80.109.253.241]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id e1S1n9xH4SgGFe1Tbn3knM; Mon, 11 Apr 2022 23:21:35 +0200 Received: from localhost ([213.47.68.29]) by ren-mail-psmtp-mg01. with ESMTP id e1TMn537HOPqFe1TMnh0he; Mon, 11 Apr 2022 23:21:20 +0200 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.4 cv=OcX7sjfY c=1 sm=1 tr=0 ts=62549bdf a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=NEAV23lmAAAA:8 a=Pn_H9mZTd-MzJ9i-SBYA:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 11 Apr 2022 23:21:17 +0200 Message-Id: <20220411212120.15692-1-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 X-CMAE-Envelope: MS4wfOnTEj5VmUYX4HAa4976X+Zn/ztLfCKsaQrooI7qyuFzDFQARCVZ8Sgw/VrbqCTR3HlVGaATQfiRuKQVunK/jOR62HGpjEcHuVUFSEUYOH4HX8E0c0Ep 59dfYUf15XcaJOdoFXAWJZg4Pv6HIVM4SmaL5/Q136cPMAB1JnbdIu32EyRTX90ofeRC3xwogF7lww== Subject: [FFmpeg-devel] [PATCH 1/4] avformat/demux: Use unsigned to check duration vs duration_text 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: VpbdqnSZmf0J Fixes: signed integer overflow: 9223371898743775808 - -138111000000 cannot be represented in type 'long' Fixes: 46245/clusterfuzz-testcase-minimized-ffmpeg_dem_OGG_fuzzer-5075129786302464 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavformat/demux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/demux.c b/libavformat/demux.c index ef189d9d8e..ad7b5dbf83 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -1612,7 +1612,7 @@ static void update_stream_timings(AVFormatContext *ic) else if (end_time < end_time_text) av_log(ic, AV_LOG_VERBOSE, "Ignoring outlier non primary stream endtime %f\n", end_time_text / (float)AV_TIME_BASE); - if (duration == INT64_MIN || (duration < duration_text && duration_text - duration < AV_TIME_BASE)) + if (duration == INT64_MIN || (duration < duration_text && (uint64_t)duration_text - duration < AV_TIME_BASE)) duration = duration_text; else if (duration < duration_text) av_log(ic, AV_LOG_VERBOSE, "Ignoring outlier non primary stream duration %f\n", duration_text / (float)AV_TIME_BASE); From patchwork Mon Apr 11 21:21:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 35265 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp1255699pzh; Mon, 11 Apr 2022 14:22:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw8jd13bE5RuJv/8fwAn6m9ZChm3FwARluE0GsmHmNRIOTczLQV4ka0IL00pw3eHQlX0eIJ X-Received: by 2002:a17:906:32d8:b0:6ce:d850:f79 with SMTP id k24-20020a17090632d800b006ced8500f79mr30852525ejk.414.1649712174809; Mon, 11 Apr 2022 14:22:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649712174; cv=none; d=google.com; s=arc-20160816; b=S5GdYZKPamL4LjRI8irTs944zbd7Q/U3dTffCwcpvQXjeeSRfDPU2YhrYnlsqGAm52 9XDUHUjPd4kXvpiL4m5UjVNeMsnCBEH20xxVOo11hAXf0dWp79TuHBaxnJiSjLvQyJMu crNW3ZPwBMVlP3gtZu2/aKmKYkvtJIC1GJVGTaXQFuMI+hrPXEHjesuHe+JwlZ9mB+8k OmizHBfVmXBP4TwDlqyqowNb9p9jMcKXfXnlXR5fGUN2PZFFqEjhRugDUXIJdmrbgwXr O6uuFhX8MkELUwMYg/ZYWsMBKQ0FBeUxbBAhf1eCVjL5MuuNrvkPxQEkpw3RsSdi1Gp0 Iyaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=/Jj4+OAUtCLVXrtFWF8vAeexDn7umkIvDyBbi3xKAm4=; b=WCKNS5/xqx9mXlv+UAcMx1LNfhscPfwZN3Fg3efM9ESvWtqmP4fClqRlmPAaWvgRV8 dSnjko3rAGmRqPe5Sm88KQhVkXFXSjSwuw0xL49S5IaVsB85ZoNZHPU0gUbk5789G77F AV76uKj+Dsd8Mm6uWTsbQDNs2MhjoLgoSVVOcOmv1kAJtaA9ohhm+F8U1FB2RYwRaxad i10W9J+/TyBqIbAsHjFTrq4kLjnPIo/r75PFUHkSKZufQDJVr+tb7b6y9VFz+UyGBASV ESxTkoAnjrZQSSqeUDM5bKiR0lihnfPT8oBmnpdATafW7iHgnbyWfYF85XbDPtRVKq04 yGKQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id i42-20020a0564020f2a00b0041d7b406027si2933233eda.175.2022.04.11.14.22.54; Mon, 11 Apr 2022 14:22:54 -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; 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 2D21968B334; Tue, 12 Apr 2022 00:22:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-at03-3.mx.upcmail.net (vie01a-dmta-at03-3.mx.upcmail.net [62.179.121.153]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9B08068AC80 for ; Tue, 12 Apr 2022 00:22:41 +0300 (EEST) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-at03.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1ne1UZ-0003XX-3n for ffmpeg-devel@ffmpeg.org; Mon, 11 Apr 2022 23:22:35 +0200 Received: from ren-mail-psmtp-mg02. ([80.109.253.241]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id e1TGn9zsGSgGFe1UZn3kt8; Mon, 11 Apr 2022 23:22:35 +0200 Received: from localhost ([213.47.68.29]) by ren-mail-psmtp-mg02. with ESMTP id e1TMnIIr18eSWe1TMnKtkd; Mon, 11 Apr 2022 23:21:20 +0200 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.4 cv=KKE5sHJo c=1 sm=1 tr=0 ts=62549bdf a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=NEAV23lmAAAA:8 a=wUpTLJyOy0a5c4Df45kA:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 11 Apr 2022 23:21:18 +0200 Message-Id: <20220411212120.15692-2-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220411212120.15692-1-michael@niedermayer.cc> References: <20220411212120.15692-1-michael@niedermayer.cc> X-CMAE-Envelope: MS4wfN0vugmXSLXLLxlVgR7rsHrUQKR+vB1xJLpyhI+BAVzAvujYWOP8n3pLKYdJkDBKBVz8p4O0BZwPqmMxCAOeY6eWr+o9NjiOZK0aoBlsPvoHxjDFhSz/ ObIJmmh3aLCwdR6DZgPVCpaLwCPN0fnMSTituhAtDXMxYMIlyH5wL5jI7/vb9aIqYrf3iBM4fDaCOA== Subject: [FFmpeg-devel] [PATCH 2/4] avformat/genh: Check sample rate 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 2ydfQF21FVBo Fixes: signed integer overflow: -2515507630940093440 * 4 cannot be represented in type 'long' Fixes: 46318/clusterfuzz-testcase-minimized-ffmpeg_dem_GENH_fuzzer-5009637474172928 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavformat/genh.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/genh.c b/libavformat/genh.c index b1c20718f6..a25d4d625a 100644 --- a/libavformat/genh.c +++ b/libavformat/genh.c @@ -67,6 +67,9 @@ static int genh_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; st->codecpar->block_align = align * st->codecpar->ch_layout.nb_channels; st->codecpar->sample_rate = avio_rl32(s->pb); + if (st->codecpar->sample_rate < 0) + return AVERROR_INVALIDDATA; + avio_skip(s->pb, 4); st->duration = avio_rl32(s->pb); From patchwork Mon Apr 11 21:21:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 35264 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp1255645pzh; Mon, 11 Apr 2022 14:22:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzE/6EM3ZAyuoOyogU8J9ZdoE52lQIw2TxMATOChWE0GM9nmA+baQjgs75i1i0hyZWE0M+D X-Received: by 2002:a17:906:6990:b0:6e8:7765:a709 with SMTP id i16-20020a170906699000b006e87765a709mr10165312ejr.72.1649712167284; Mon, 11 Apr 2022 14:22:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649712167; cv=none; d=google.com; s=arc-20160816; b=AHAFERE+X5Z1N0gn0SEY/qx30BWzRZHo72/ZSU7uZQ2otv6pG74FEHSypkVs/T+Ksf P5+lSmmqHasu9C4iKWIKMwqQLOMxKFo+Dythd+aH8AWMwx/e1uXpq265ObEw9wYFp5GV oJvGqjA6M3BqoWnoixFZA7ywOUwZUiZplPGPmBw3IoZr05XLz92c4LxhzB8vUIArsuB2 7pgCf0NDDJCquiuuWDjscnYTdPtWdnhDrjr0f+AOPONayuxyd7J05cQ+mR9XgsiE9948 DEoy+AIXFs0qrp8ApQvCwVlSI2KcWcc7/zD4i8GHTif4p9NTcYEBBNyrAmndew2CsBFb 7ngg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=K+akmfoN6/rYQEyGxSV2z9HNEtFigENUpexWwYmCsZM=; b=fSojVRbwZem3AOf19uJQb3bJgpBrzcVH0/Yhmv7n39+hBfqKFQw5TlM4da6fmkzQza BBzuFFmpENHD5YjFhhNMTS8wMlwQyuFAumbbEh/fU+gjjyWU8cAHy81tv2Bcabj6JQ48 2qg8+GAYGpXFAAt4ZBrWn8nxOXybvdEAKwRVMRZUaBrDiEjP3mBiC0ayhwhVuelf+B4T VcOltPc8ME926iEO7WJzbuHW7MWbuG1R84JErRIW4C0FfTZmvB3duuS8ZhflfoDPdzSS kwXiHA2TAYL9zTQjAT4o81V/TK0oBl0HNoPToYRZlTO1joLs1t46SBJmXSftlXsPsVwH YvGA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s7-20020a1709062ec700b006e7ee5d0682si7387154eji.585.2022.04.11.14.22.47; Mon, 11 Apr 2022 14:22:47 -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; 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 2CE8B68B329; Tue, 12 Apr 2022 00:22:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-at01-1.mx.upcmail.net (vie01a-dmta-at01-1.mx.upcmail.net [62.179.121.145]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0386168AC80 for ; Tue, 12 Apr 2022 00:22:39 +0300 (EEST) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-at01.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1ne1Ua-004yGQ-5i for ffmpeg-devel@ffmpeg.org; Mon, 11 Apr 2022 23:22:36 +0200 Received: from ren-mail-psmtp-mg01. ([80.109.253.241]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id e1Sen9ya8SgGFe1Uan3ktG; Mon, 11 Apr 2022 23:22:36 +0200 Received: from localhost ([213.47.68.29]) by ren-mail-psmtp-mg01. with ESMTP id e1TMn538COPqFe1TNnh0hh; Mon, 11 Apr 2022 23:21:21 +0200 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.4 cv=OcX7sjfY c=1 sm=1 tr=0 ts=62549be0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=pZ2TeP17fcRQPCxlCHUA:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 11 Apr 2022 23:21:19 +0200 Message-Id: <20220411212120.15692-3-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220411212120.15692-1-michael@niedermayer.cc> References: <20220411212120.15692-1-michael@niedermayer.cc> X-CMAE-Envelope: MS4wfMVLDb6wVviSl9VW8gE1FxaqIFUx8Hv3nRkxSST/ogmVrtdI73fqvsqnz035zchyVjMfqfGBL9d72I2KRu9xb/L8AI5ya9+NHhjvxhVI2bh9FiTL5J3J KGqzdU+xHa/8p5pExxTeAdFWhMbPtByEsc6DDOgh1adwNA6OTSL0Mu9sUEpLNsRZlATvcxpBfZiO8A== Subject: [FFmpeg-devel] [PATCH 3/4] avfilter/video: Add ff_default_get_video_buffer2() to set specific alignment 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ORtpbNWXCNOg Signed-off-by: Michael Niedermayer --- libavfilter/video.c | 8 ++++++-- libavfilter/video.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libavfilter/video.c b/libavfilter/video.c index b2f0cdf88a..e9eb110ff4 100644 --- a/libavfilter/video.c +++ b/libavfilter/video.c @@ -38,13 +38,12 @@ AVFrame *ff_null_get_video_buffer(AVFilterLink *link, int w, int h) return ff_get_video_buffer(link->dst->outputs[0], w, h); } -AVFrame *ff_default_get_video_buffer(AVFilterLink *link, int w, int h) +AVFrame *ff_default_get_video_buffer2(AVFilterLink *link, int w, int h, int align) { AVFrame *frame = NULL; int pool_width = 0; int pool_height = 0; int pool_align = 0; - int align = av_cpu_max_align(); enum AVPixelFormat pool_format = AV_PIX_FMT_NONE; if (link->hw_frames_ctx && @@ -94,6 +93,11 @@ AVFrame *ff_default_get_video_buffer(AVFilterLink *link, int w, int h) return frame; } +AVFrame *ff_default_get_video_buffer(AVFilterLink *link, int w, int h) +{ + return ff_default_get_video_buffer2(link, w, h, av_cpu_max_align()); +} + AVFrame *ff_get_video_buffer(AVFilterLink *link, int w, int h) { AVFrame *ret = NULL; diff --git a/libavfilter/video.h b/libavfilter/video.h index f448e4ada4..f37bab9d03 100644 --- a/libavfilter/video.h +++ b/libavfilter/video.h @@ -24,6 +24,7 @@ #include "avfilter.h" AVFrame *ff_default_get_video_buffer(AVFilterLink *link, int w, int h); +AVFrame *ff_default_get_video_buffer2(AVFilterLink *link, int w, int h, int align); AVFrame *ff_null_get_video_buffer(AVFilterLink *link, int w, int h); /** From patchwork Mon Apr 11 21:21:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 35263 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp1255439pzh; Mon, 11 Apr 2022 14:22:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzBWtQi5qwfLIMB3FyISRh2z6c22igheCEVb9FbFq+LyggYeG72ap76KxahLv/O7Ojh4DMw X-Received: by 2002:a17:906:4787:b0:6e8:9252:5bef with SMTP id cw7-20020a170906478700b006e892525befmr6462001ejc.679.1649712121953; Mon, 11 Apr 2022 14:22:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649712121; cv=none; d=google.com; s=arc-20160816; b=oPT+8Szq1Q3UdYaqvAsWEO0tbYdp9f72cboWWPjoaqC5JjdA64ohHyxIpWVjGu2/mu fpst5z7toSmFNlTd8qJs0YC7EMOKaVInOj8NH8AlG3f2A76dMYACM0X40j/kw6fNPtDL N1HzIbH5b5//YMVdqyZS1QBWMNwEk8B5a3x3rkPK1vQIQ2rEyC/Ec02/o7GqoAby35pS txA0EVBWhM4nb6n/U/h53VVwogRNRYnd8DwO1zbeplhgRxCsA5qo87PRohad5mym7RFd yyl3SyO8PaYYcOKe0LWlQclo0thJ1bycHaqUxr06jiaUsTyGjUmtZXe9wJTwvl8wyNCP Lqpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=/MEkLAseUq8+bjGZ9fsySXaZOageQ3a4wAWYgC4Gekc=; b=ineevJd0sLkz/7rbzxcS56I7umcD5OmubydQ2n1sYu6P0YVrDAeGgp0ShuwZFU2isd 8huJMXUTe97dGRvIaFHVwk+t8EliTO/g2vt+YM6O1o9nnYme+kdP+wSVIZQsRqsK6nRS gTy2FHonQDAVZvt7bjzrPLG9114WMLeZGjYE2TLtHuRkQw1L/dAkdJHoSLHEKnsEYKvz oslU0jY4Da15+dMAQ4wSL+p1GS+HS2OTIXnLo2eBacspb9RQma9Ft0Gbjh+yEJq8InHr GaIwlh0h0g3coGSyLxsf05Xm6Wd6hNYTHQJb6u/LC4PskW61Pjt75AGs1RVDCRKprcRJ 26tA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ky10-20020a170907778a00b006e83a4e3606si7479552ejc.92.2022.04.11.14.22.01; Mon, 11 Apr 2022 14:22:01 -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; 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 0904A68B32E; Tue, 12 Apr 2022 00:21:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-at03-3.mx.upcmail.net (vie01a-dmta-at03-3.mx.upcmail.net [62.179.121.153]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CFF0668B072 for ; Tue, 12 Apr 2022 00:21:42 +0300 (EEST) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-at03.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1ne1Tc-0003XX-1v for ffmpeg-devel@ffmpeg.org; Mon, 11 Apr 2022 23:21:36 +0200 Received: from ren-mail-psmtp-mg02. ([80.109.253.241]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id e1TGn9zsGSgGFe1Tcn3knO; Mon, 11 Apr 2022 23:21:36 +0200 Received: from localhost ([213.47.68.29]) by ren-mail-psmtp-mg02. with ESMTP id e1TNnIIre8eSWe1TNnKtki; Mon, 11 Apr 2022 23:21:21 +0200 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.4 cv=KKE5sHJo c=1 sm=1 tr=0 ts=62549be0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=zIZbi1sURjetFJsjxGUA:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 11 Apr 2022 23:21:20 +0200 Message-Id: <20220411212120.15692-4-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220411212120.15692-1-michael@niedermayer.cc> References: <20220411212120.15692-1-michael@niedermayer.cc> X-CMAE-Envelope: MS4wfHHnwBIPYkgi55qJ4D19bu6E+tTi5PU95Q2ALMRX0+VmX09+gOl3X53i7bNl38pA9uyfvZb6kKyuR8wDVkZrZ3Z08wGrfGL1UnoA1UV2gOVpKCyD3LVQ FyJ8Vs/8C8EdinEqzutA6/oUfNiNG50I4FMM116yybU1zw6qmW4JotxJ9vwJWOqfMiiU0JHWvjfTkg== Subject: [FFmpeg-devel] [PATCH 4/4] avfilter/vf_frei0r: Copy to frame allocated according to frei0r requirements 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: NVfZzPyBbqI3 Fixes: issues with non trivial linesize Signed-off-by: Michael Niedermayer --- libavfilter/vf_frei0r.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c index 9cd0098e73..f11ae6e55c 100644 --- a/libavfilter/vf_frei0r.c +++ b/libavfilter/vf_frei0r.c @@ -353,14 +353,20 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) { Frei0rContext *s = inlink->dst->priv; AVFilterLink *outlink = inlink->dst->outputs[0]; - AVFrame *out; + AVFrame *out = ff_default_get_video_buffer2(outlink, outlink->w, outlink->h, 16); + if (!out) + goto fail; - out = ff_get_video_buffer(outlink, outlink->w, outlink->h); - if (!out) { + av_frame_copy_props(out, in); + + if (in->linesize[0] != out->linesize[0]) { + AVFrame *in2 = ff_default_get_video_buffer2(outlink, outlink->w, outlink->h, 16); + if (!in2) + goto fail; + av_frame_copy(in2, in); av_frame_free(&in); - return AVERROR(ENOMEM); + in = in2; } - av_frame_copy_props(out, in); s->update(s->instance, in->pts * av_q2d(inlink->time_base) * 1000, (const uint32_t *)in->data[0], @@ -369,6 +375,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) av_frame_free(&in); return ff_filter_frame(outlink, out); +fail: + av_frame_free(&in); + av_frame_free(&out); + return AVERROR(ENOMEM); } static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, @@ -465,7 +475,7 @@ static int source_config_props(AVFilterLink *outlink) static int source_request_frame(AVFilterLink *outlink) { Frei0rContext *s = outlink->src->priv; - AVFrame *frame = ff_get_video_buffer(outlink, outlink->w, outlink->h); + AVFrame *frame = ff_default_get_video_buffer2(outlink, outlink->w, outlink->h, 16); if (!frame) return AVERROR(ENOMEM);