From patchwork Thu Dec 16 01:29:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 32648 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp407852iog; Wed, 15 Dec 2021 17:30:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJxMRdnQp0XTTlDF3eXZ5O6JBsznlMO+gvTl/8EInWe3KIloRSs1CoRcW4nlDRRuS/YMlIk9 X-Received: by 2002:a05:6402:60c:: with SMTP id n12mr18251430edv.17.1639618210171; Wed, 15 Dec 2021 17:30:10 -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 s1si3397849ejn.68.2021.12.15.17.29.46; Wed, 15 Dec 2021 17:30:10 -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=JcIl4FAD; 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 F2F1468AE25; Thu, 16 Dec 2021 03:29:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2104.outbound.protection.outlook.com [40.92.89.104]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1BF876809C4 for ; Thu, 16 Dec 2021 03:29:35 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=agjsMjEEfUCbJD2Kc9TjRdJlcZfy9VwvTtmGhk4xO4+PFrin4+y8/yegjrxeMMB62SYHXKl6soPu9y5GFyAmktusa6e/53ELYbJKi8ap0xPrrXf8PfHp2vssfZemMfoKruDAQni8bHZ0XnAQSa6zO8YAd6jn+87M+KDvLZfW0yfTX6NwrBPT2DjzJK1T95Lc7eb5PPgxcI0gwLm7MT32PQp6rVptYXcd4pWVUpgGqvOQf1ZAbmiqpg1V48ZJqhatoyUfhfuqx8+hfff0faIhfZz1Fw+DY5iIgYLRggvCBgElBGFJOQHPSDWnk70RkDNV6wIgv92lfaCEaW/oa5xduQ== 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=Y9jee0ldHJIMyv6AOWNeptQN/XMgookrsOvijZYrKdE=; b=UQFDFBh3Ww9guoC7gS7z+aEiAz49yosCUh2jC3iSV/T+MISTn5OouAzjapp+jMgkK4JNiQ+siyQijNSwLxIRYAajQTWSCbrqoYNqUc7hGO0s+F8h+AdBTzGC/UXV69CwWuU3di5wVwUJigxhHZg1DDtq8yc9BfiqIF7/nRQSR7svREzS3XijHlgyuziQjqjxUgt7Mp6a55zPnwSKDTrmstzARwmUwDSAlwimW5OShgp+TWm58vqnMVkT3kMvHmoHX+EomY/UQIG/1EWPwN1QdcD7b+RW0+LTftR4OTeZPFnrCg/ys0Axx3kwqtPNCPa/fGOFgTxFRMrsnIXGgY9Blw== 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=Y9jee0ldHJIMyv6AOWNeptQN/XMgookrsOvijZYrKdE=; b=JcIl4FADOCjRBsommF/naMc7kwC+VCvXNJu4k3rw2Dxqt6ayX+5UEH/wH1X1B9RacM0OK2m8bTQOu8kU9wHK2K4Nn2MIXwQ89A9WPm2MO7Y4NMhL77T8CuBrGJ0mayIzaRuIjnUmOIGwZhML4kirRGJaKKe9BALzYm8L/KfMnN7GCQlJjWWR+8kbEDYD2itgOo7Z47ZrTMVd/QGT+r+R0ZL9tQjPXE/5gA1DZ5USPekhtEHsC2UgCBc2uzZA2XZ9vOmWL/MxDpF0xVwc8eStUpmVLsqbutLB/CsoYYqG3lRTwqRiS7MrPREVxyzGsVUN+pZYPVvu6L7o7/0GkrYZjQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR0302MB3191.eurprd03.prod.outlook.com (2603:10a6:209:19::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4801.14; Thu, 16 Dec 2021 01:29:33 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%6]) with mapi id 15.20.4778.018; Thu, 16 Dec 2021 01:29:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 Dec 2021 02:29:20 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [WQq7ajnCf4Q4azEGqQ+KckxF6lJ442oQ] X-ClientProxiedBy: AM9P192CA0004.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:21d::9) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211216012923.404907-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0e87c247-cf5b-45af-5908-08d9c033833b X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzdNcP2D/mG1JSYz06tH3gIhrn4SsTG6tQ9FtBlKQC//NVlMvZRW1aVyKf9fyjNacO29ck3Ji/SR5+rnTSn6ogrP38D0wty3VlixKvuw9mYhn5+svTCQ0AQM+cTsLwbAHxUFs45Lp5y8lBqjGQpe1jLFlvXG2mMMU0O46Qh5tt7qX1oYf21cyjpaWIytkUgSyYQK4Dfi7rGSxmnd0rU4G6o3Eyre2MoXvTgh9WR4ieVTK973bUwR48LiVv2a/jZMDsw8pa6+MFEJY7lM7Jca3VUUrY7sNJi5UZXDsD5f8Tu9XG4LZshKrqFIQZMeVvtui6ek+xcW4fhFhvbIEPI+tqI+ukqL7vQmMuDmuCtjw+kf7+fl/ruhWDO4OkzFrocmOnGszknNkTHtnMVwAXCbiaX6kRBOdXc4VyyO21kMSFBDrIXeSIbzbtKOpIMTS1OwFaVC0cd20GjC7wFoPlugug4AlrLFKwemqwrtDwkMKSDYUpsbgHIhXLb7RGUhluuC8U7fLEa5szV6n+P6NY40PsSbc5BptJZDHcADAVgTzjetrlvxsWW5d0U44fkF+/ENa0FciM1iymz+4r8nystJhcnmZmPnxbRqhyYk6ukcZEubIifT6xKZmGJDwJI6ni/grtCpcvIpylMnCGx/0ZWOkNFfn7s5bPq5J+Kmh+4bjF6DfGrYRpBZJZIjpBAzlpt7wjMQ2SJNAS302TNacNpuXLC10ncC7uVbFzCWdDbcz3qYz8fJen/k6dLY= X-MS-TrafficTypeDiagnostic: AM6PR0302MB3191:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9sQJC9AvWBFpCBtxLHWpxGy8bxFcq6UKZDK9RGEpKX4TBAVY+mvIQ+5Yah8U7gdadAi9bBbB/+44TZ5P6/bna2FATgjQIdNQbmPJjndOD2AHPr6MT9SNgzrl2XcLFT8eXHQVDy1jyuqGg8uxMOQvkq0YcQTrBCttsp1pq8g+RX4NZyP4nlb9y4Xu0KYDH9V9EYgMRafGRYkdLFSKETvaJAKRJWoQ+H1zgU2u/31LgYEcqgKWTkcbiUOOWbfaa4LZzta0qAbbn+NrrNF9QX2klEzB2pf4PfBEmvWb3X27+kvVmTZn3NfvkPDGOjpQgx1jwctfDQ+Hl50DmR2bfK12jYNrNUVfiCm14Mks78UgA3ceUnJwFzchmom3SoyiiwVxy2rq5RI9Y2ix0Ag8vZXTEmVy5cq9tenVqicTL4Ia5TvPzc+UCcaC68L/+cBaf8elSwLOJJr8r+PED5Vu2/0a6KTaPlztzzVhhCMHOYWyiMimYDKW/5jeOeyr8etf4ACWWHE7JxKFji3WKsl3i/0myvKydBUi0fY8S4VXS0RYW3fEq4kZ1UvOkVEqcPLRzWGntnqf8Eii5zHbbM4IZ3lD7A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RNTeUi3xgVbXy42rTn4AGHMH7UtMIy+6+E8o0180uQ4OSsKgqeKjSgCKQ6m7nuCDUvjHVALjeEHULzelUFI30YlAVufFjXIVpYi6rlkWi1LgVoP0FBfgDY8bOXr7iHAizNv/zmXdrhlElkLKRxXpTwoDOdZ7VrC1/+79aamh6hQ7b2HnIgU2LRuBdJqMMgirinBYQmA9ELAZdg2f7Yfd9tAmXPTWhwG610II96sk7epfjt4yYJrel5zKym+2caPIzjLlcKJs0UfeapRzXBqqriThV5jtpOvMJ9t+A5quvl+3uewbQ+AgpUV6TzUKRSgfCZ7cBFl46Zkye682RBRRd8KTkL9wlan5mgnUaPyVVCDU5ekfQsR+4RfhDywv+m21eE+V5i7nzKIp6ooYz0FG74jR9YG4LmifWCM8/HbdeO7YFVux6Cs/PDGkIr4uowN+ACLee+jN3NDKGOc/hDZiX9cLNY8PsJ8jVP/cvxGWilew8wXan2eH9R2e3Tb6211pbCAQkxF90aemFngwJKaKFngXTw7tHvlNkikP3s0RXGxoSU60mz1KDsEqC9b56LmVGny1S6gZ1KY5Il8GraCTOPwDsnvY0QYi4d12neot73Wf51Zvp798nSbJbyWBRt5bE2+LmOR1Ti2DRiunRUSFuawI4t7GFfnrvYD5fHg2Ptim17MrKaZrEFzBpu9i+qWq5YJ9rKlhMNEfkqRjenZcq3gVwv8wK+EGE6gHdi7Yl+88bA6WDJ6czguvbPrHw5g5r1764ZTYlWDm3GzqzY46BMthQTc/ohGffixDfCgr8DYy6pmBMbOb42TWdR+F2WgHmx/lqORVPmLrt2HEXy3I4bVgo0Y5a39htJ5cIBng3BOjOeVWfo2fhlFlVailHi3jl9y0rbbfsNR/OrFwoVePxrdEeHn7I+qKCH/3mmjl22HSHZTT/nFUf3Y4jWQlAew92iK+LyypOjx2ScFgd4of4g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0e87c247-cf5b-45af-5908-08d9c033833b X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2021 01:29:33.3599 (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: AM6PR0302MB3191 Subject: [FFmpeg-devel] [PATCH 12/15] avformat/(aiff|flac|mov|mp3|tta)enc: Don't create unnecessary references 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: KAePm8z/YX4R The packet given to muxers is not used afterwards; it is always unreferenced by libavformat. Ergo muxers are allowed to keep the references in the packets and e.g. move the ownership to a packet list. This is what this commit does. Signed-off-by: Andreas Rheinhardt --- libavformat/aiffenc.c | 2 +- libavformat/flacenc.c | 2 +- libavformat/movenc.c | 4 +++- libavformat/mp3enc.c | 3 ++- libavformat/ttaenc.c | 3 ++- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c index 24bc17400e..7bb0978a53 100644 --- a/libavformat/aiffenc.c +++ b/libavformat/aiffenc.c @@ -219,7 +219,7 @@ static int aiff_write_packet(AVFormatContext *s, AVPacket *pkt) return 0; return avpriv_packet_list_put(&aiff->pict_list, &aiff->pict_list_end, - pkt, av_packet_ref, 0); + pkt, NULL, 0); } return 0; diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c index f884e5d2c8..e8f043729e 100644 --- a/libavformat/flacenc.c +++ b/libavformat/flacenc.c @@ -360,7 +360,7 @@ static int flac_write_packet(struct AVFormatContext *s, AVPacket *pkt) if (pkt->stream_index == c->audio_stream_idx) { if (c->waiting_pics) { /* buffer audio packets until we get all the pictures */ - ret = avpriv_packet_list_put(&c->queue, &c->queue_end, pkt, av_packet_ref, 0); + ret = avpriv_packet_list_put(&c->queue, &c->queue_end, pkt, NULL, 0); if (ret < 0) { av_log(s, AV_LOG_ERROR, "Out of memory in packet queue; skipping attached pictures\n"); c->waiting_pics = 0; diff --git a/libavformat/movenc.c b/libavformat/movenc.c index fc309fb416..033a6a9f52 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -6197,9 +6197,11 @@ static int mov_write_packet(AVFormatContext *s, AVPacket *pkt) return AVERROR(EINVAL); } + /* The following will reset pkt and is only allowed to be used + * because we return immediately. afterwards. */ if ((ret = avpriv_packet_list_put(&trk->squashed_packet_queue, &trk->squashed_packet_queue_end, - pkt, av_packet_ref, 0)) < 0) { + pkt, NULL, 0)) < 0) { return ret; } diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c index 71e96a8651..0ffc79c025 100644 --- a/libavformat/mp3enc.c +++ b/libavformat/mp3enc.c @@ -524,7 +524,8 @@ static int mp3_write_packet(AVFormatContext *s, AVPacket *pkt) if (pkt->stream_index == mp3->audio_stream_idx) { if (mp3->pics_to_write) { /* buffer audio packets until we get all the pictures */ - int ret = avpriv_packet_list_put(&mp3->queue, &mp3->queue_end, pkt, av_packet_ref, 0); + int ret = avpriv_packet_list_put(&mp3->queue, &mp3->queue_end, + pkt, NULL, 0); if (ret < 0) { av_log(s, AV_LOG_WARNING, "Not enough memory to buffer audio. Skipping picture streams\n"); diff --git a/libavformat/ttaenc.c b/libavformat/ttaenc.c index 11855c32d9..5f21fdc144 100644 --- a/libavformat/ttaenc.c +++ b/libavformat/ttaenc.c @@ -95,10 +95,11 @@ static int tta_write_packet(AVFormatContext *s, AVPacket *pkt) int ret; ret = avpriv_packet_list_put(&tta->queue, &tta->queue_end, pkt, - av_packet_ref, 0); + NULL, 0); if (ret < 0) { return ret; } + pkt = &tta->queue_end->pkt; avio_wl32(tta->seek_table, pkt->size); tta->nb_samples += pkt->duration;