From patchwork Mon Jan 24 14:46:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33785 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:e71a:0:0:0:0:0 with SMTP id b26csp388565ioh; Mon, 24 Jan 2022 06:50:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJw1LoXL5LBGbZmoG8QJzYwkbvLTwbu8qoLI20QWlVnvSBRPxKXIG4MojDG+KAU6K8IyMkMt X-Received: by 2002:a05:6402:394:: with SMTP id o20mr15871889edv.257.1643035811865; Mon, 24 Jan 2022 06:50:11 -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 e4si9157798ejs.21.2022.01.24.06.50.11; Mon, 24 Jan 2022 06:50:11 -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=n9XfTUVB; 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 8516A68B161; Mon, 24 Jan 2022 16:48:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2071.outbound.protection.outlook.com [40.92.90.71]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E337468B08E for ; Mon, 24 Jan 2022 16:48:17 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fhHwzmdoJ42ACUckzfixexu12JkdkS/F63+/ONswuF4i5Tl6U67PI1L/+8OMNH1HzF2PvFSp39sCZHZDy9QNyBuKfmOvtaJ570xdcI2AJsxs8C/oa05MLPg2hI6QoQwOQ/Ug+ZoRURWlOJEFE9ACrIaDm4Tom0dhkIKoC32r5QvKApYA8Kb7Y42x4Xjcm7iW6cpFt6cOMIVXzXvP7Eu/IdRLcWazl8EmFPq7ZOCTXErez6sPHNf77Mh3OQmDFyg/B7Q4YtTaCjp9eJgUBjuqG0gn/zZjjDYwFwX75DzP4FrJfVuUYsNheAu2Bom/yTRqsn1P8Sn7JWyfLEqyfk6JJw== 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=dY55ZCWXjH5/lwmqivFgj0thacWstdMsr9Th5t5yHT8=; b=fT0tavlIC87Sacb1wYyVhjI9P4DCwB6Fg6I5jKEWfYfjgg3WzARMZdZ5/djTc5KxDXaovclcouX5Dn7AgbsTfy7WoDri9ZbE6klIT8JJ93eXvUhh+/fsPJpdC61bPtE8pvvUzvbYl6WRBIQaoiAyZCTuZEyHDHKFAceEOF8etXG6upjDKMFv3nd5Nh+JLJchx2JrkmOmXCsTrgCB0+RrSUr0Ipb6ReTg6J9w3rytxPjSpmprWITuNLob+bwCjZon3QxWX57CtRef+WdXPv87Y/pnO8L5UgayNjomKAOcSqaciD2MLjMkTpDcIk4mDE97oyKahr2pH1EeiMNtIG4yNg== 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=dY55ZCWXjH5/lwmqivFgj0thacWstdMsr9Th5t5yHT8=; b=n9XfTUVBf+9U9qSU7Nux2bI6iBcP/aRF41ZldU42vVy1gJ9TwspHUBsdP92h2RUBt1R/oKsL6XYxzGh2iNriSQdvqqV7pIUGIfxOmP4lI2NTdHShYSI0iVc4et+ZzP7b9SmU745wzR3bQj2M9EwHSVIJz2KZBuubAnHsJQAIWaKRFOn53qPN6W+cwESdvXyhtEPBd10a/HC7g/E2Uh7Sffd7tAiNIPjybY4YW0L1l99FoOD8yKLvaGt4hoHX79LRPGWEDQpC1n4xiv0tMhyF8dE3zhkW61vKtibJ1F9MrujtwDzgbXf1IGwpDlJ8sgZqdAX1qTkZ7BNFuoKoTie7GA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5236.eurprd03.prod.outlook.com (2603:10a6:20b:c4::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.17; Mon, 24 Jan 2022 14:48:16 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%4]) with mapi id 15.20.4909.017; Mon, 24 Jan 2022 14:48:16 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 24 Jan 2022 15:46:06 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [8d1Liy6eO9Z2aV+HcSVmPL1P8AoGQSbS] X-ClientProxiedBy: AM5PR0201CA0016.eurprd02.prod.outlook.com (2603:10a6:203:3d::26) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220124144616.559446-21-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b2273e3c-eb79-4edb-4a91-08d9df488de9 X-MS-TrafficTypeDiagnostic: AM6PR03MB5236:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ei/iQTa9SoixF1DJo70YQl5eSf5a/wBYSt+og6+nzzP0mbvsmrQ8iKkuijouL5bDVek+OSz9ef3ncO+YUhUpCgNDtP3JEnhwa0vNItsbc3QctactI77DJFP97wub9+tUgRer1TTwX3Jeruxxdq6CJnAwfwBKsejf54EMtfYQguVb8IHT6iOYpWX3YOLoOOgdZJGhF0t/OdaV+LOsP/F6weIW/4fXNkXqFuTmliRTxeaowZPqVlwWugpX7qawz8ZEFg6O8A0xRWxyQDpJSnucgmwK6Zmr/qv/7aWqTUS3aG3n5fxO4D/p2NSQQC9fO0npnswWBhhZQxh7c9NAe6z4UTCm2nUd98NoJT9tr3BbIWNY6n22kOIEWvIdTnm0LYFFxnuCCvd2O0a9N0//ugkqjpxmsZ5+LSMniP2kyilBfCrlWMYCgbwE6HYMFYUYOZ17hN5UCozXkGeYVWxpByL+40BbAnW3hy2eE/Ii7vLUSMQO86/qVeZ24RLSmJIDFcJ3ys9xuvIb1NuYmgYtwz4TmWEhkHAPEy7MUTLzqZLNSkRfrhpjgWzOLgCvd/9dmKu3Qk/JwYlv1GoByj1toIQgeA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: aGPaDZVBL24BOSTqdQE3xUVVNPg5yKzoDqYEotbGGNXBtAxqpkfRFVCCHakU/iHUsO3AAm/1I0aKPV0cEbdJlH+vquTAs4Kr8z/eWenrOY5p9lEpVcjvfdh8mVe4BMQRDXm3LEpuH7imrPzbEnk8ZLzDxDn72IpIVdljjtbF34s4fmiIIZQIWYhOAPqjB+NCpjbN70defvbkVGG0gWZ6t3FzhUWSodZKp0ksahf+aTW+Hw0Nphje/RVW0/hJCZGStc/d2NHx2YFSiMnP6RqXizcxWjZbPdrTPDOd1qp/4z97g99NasprsP9HTDgt9mxxt/z3H+d0MhkRoNDFKEGv69bYXdKyrPf9GPUHPM3kQGsmO1HYqAtJmRxnToAVeyIksIcn4jSvXNufs7YlriBt1RCLCbXoZNlVeK6yEY9AzqAYCV0D+bho+AjKqs5lEF56SieSRsBvCjMjy8L/YxnK4FZl7P/sSXYMNBBCnnroxPcOuXsLKNk5QVC25g6KBf/E4zS4A9ResJshq6EHc+lMD7YWRUKxl7qwothu/nVHOagMXmgWUpkd6FXIQnU9NrWIIwwvbIksL2howOFGcnRirJmDFdfp+k0bbSFQid8OlX4KRU9rioyFCYgTUH5O7gr/h7sbWKK53aRV5uWyAG2sy74vUWKA+HyAnhezkk0L83N3jPg1oZKVeX2z7ZRsRhAq+YP3we3c6IFw/EpSCdEZYnysN/c30kW2K75dIvycgjN39ts5SIn2wnhz3v42eCcGH+nhnKRX5GY3wWvl3X/bMq4YCIJHd8qBGFmYKZwM7KmVEClHRRx0PwmH9MT7eY4xVCsEOvpLfgi6EbpHRakxfLim34i4wOWYOpMpSuw5H/AdK669kkzBDuQzIi6kPUu2d2u5Mz/3CmgknApm6sH/2Seq8SQdPjTT/8epfJZcfB7OCHaaRU/y4FGtiXfOQk5nkYP00LVsAJBwy1cW87aqmw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2273e3c-eb79-4edb-4a91-08d9df488de9 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2022 14:48:16.3182 (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: AM6PR03MB5236 Subject: [FFmpeg-devel] [PATCH v2 21/31] lavf/udp: switch to new FIFO API 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: Anton Khirnov Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: y9/SOUgMhleu From: Anton Khirnov --- libavformat/udp.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index 83c042d079..1737aee1c2 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -98,7 +98,7 @@ typedef struct UDPContext { /* Circular Buffer variables for use in UDP receive code */ int circular_buffer_size; - AVFifoBuffer *fifo; + AVFifo *fifo; int circular_buffer_error; int64_t bitrate; /* number of bits to send per second */ int64_t burst_bits; @@ -500,7 +500,7 @@ static void *circular_buffer_task_rx( void *_URLContext) continue; AV_WL32(s->tmp, len); - if(av_fifo_space(s->fifo) < len + 4) { + if (av_fifo_can_write(s->fifo) < len + 4) { /* No Space left */ if (s->overrun_nonfatal) { av_log(h, AV_LOG_WARNING, "Circular buffer overrun. " @@ -514,7 +514,7 @@ static void *circular_buffer_task_rx( void *_URLContext) goto end; } } - av_fifo_generic_write(s->fifo, s->tmp, len+4, NULL); + av_fifo_write(s->fifo, s->tmp, len + 4); pthread_cond_signal(&s->cond); } @@ -548,22 +548,22 @@ static void *circular_buffer_task_tx( void *_URLContext) uint8_t tmp[4]; int64_t timestamp; - len = av_fifo_size(s->fifo); + len = av_fifo_can_read(s->fifo); while (len<4) { if (s->close_req) goto end; pthread_cond_wait(&s->cond, &s->mutex); - len = av_fifo_size(s->fifo); + len = av_fifo_can_read(s->fifo); } - av_fifo_generic_read(s->fifo, tmp, 4, NULL); + av_fifo_read(s->fifo, tmp, 4); len = AV_RL32(tmp); av_assert0(len >= 0); av_assert0(len <= sizeof(s->tmp)); - av_fifo_generic_read(s->fifo, s->tmp, len, NULL); + av_fifo_read(s->fifo, s->tmp, len); pthread_mutex_unlock(&s->mutex); @@ -906,7 +906,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) if ((!is_output && s->circular_buffer_size) || (is_output && s->bitrate && s->circular_buffer_size)) { /* start the task going */ - s->fifo = av_fifo_alloc(s->circular_buffer_size); + s->fifo = av_fifo_alloc2(s->circular_buffer_size, 1, 0); if (!s->fifo) { ret = AVERROR(ENOMEM); goto fail; @@ -943,7 +943,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) fail: if (udp_fd >= 0) closesocket(udp_fd); - av_fifo_freep(&s->fifo); + av_fifo_freep2(&s->fifo); ff_ip_reset_filters(&s->filters); return ret; } @@ -970,19 +970,19 @@ static int udp_read(URLContext *h, uint8_t *buf, int size) if (s->fifo) { pthread_mutex_lock(&s->mutex); do { - avail = av_fifo_size(s->fifo); + avail = av_fifo_can_read(s->fifo); if (avail) { // >=size) { uint8_t tmp[4]; - av_fifo_generic_read(s->fifo, tmp, 4, NULL); + av_fifo_read(s->fifo, tmp, 4); avail = AV_RL32(tmp); if(avail > size){ av_log(h, AV_LOG_WARNING, "Part of datagram lost due to insufficient buffer size\n"); avail = size; } - av_fifo_generic_read(s->fifo, buf, avail, NULL); - av_fifo_drain(s->fifo, AV_RL32(tmp) - avail); + av_fifo_read(s->fifo, buf, avail); + av_fifo_drain2(s->fifo, AV_RL32(tmp) - avail); pthread_mutex_unlock(&s->mutex); return avail; } else if(s->circular_buffer_error){ @@ -1043,14 +1043,14 @@ static int udp_write(URLContext *h, const uint8_t *buf, int size) return err; } - if(av_fifo_space(s->fifo) < size + 4) { + if (av_fifo_can_write(s->fifo) < size + 4) { /* What about a partial packet tx ? */ pthread_mutex_unlock(&s->mutex); return AVERROR(ENOMEM); } AV_WL32(tmp, size); - av_fifo_generic_write(s->fifo, tmp, 4, NULL); /* size of packet */ - av_fifo_generic_write(s->fifo, (uint8_t *)buf, size, NULL); /* the data */ + av_fifo_write(s->fifo, tmp, 4); /* size of packet */ + av_fifo_write(s->fifo, buf, size); /* the data */ pthread_cond_signal(&s->cond); pthread_mutex_unlock(&s->mutex); return size; @@ -1112,7 +1112,7 @@ static int udp_close(URLContext *h) } #endif closesocket(s->udp_fd); - av_fifo_freep(&s->fifo); + av_fifo_freep2(&s->fifo); ff_ip_reset_filters(&s->filters); return 0; }