From patchwork Fri Apr 28 18:40:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Devin Heitmueller X-Patchwork-Id: 41409 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1529362pzb; Fri, 28 Apr 2023 10:45:47 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6i/jBCn9w4WTx2TJfKsRXCy5m+2DfkcB9bVojux10aEypbYcsxQkSaWUxKhBtg4l5OIsqX X-Received: by 2002:aa7:d4d5:0:b0:506:bf2f:65af with SMTP id t21-20020aa7d4d5000000b00506bf2f65afmr5176739edr.24.1682703947125; Fri, 28 Apr 2023 10:45:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682703947; cv=none; d=google.com; s=arc-20160816; b=DXjCc2THXaFhr4oX7QYM2njUdQz64Ex3lbHLfm330Y31gwbCz2Nj0NEBdhdnximcHt Qt+XKhXbLmmLRj0BEvqmm4McybryOd62DZRLkM7NhIQpuvyExvLyGh12ahOHafvpXjcm uk1W6h/YWrr1Ymk/aGhrldaKU1kOPCqV2/JhumkDN9gsf7eSrfNwCfjC2bGav/Z4jV1x pc11Dkm/ILhAjWntRRK3qTmjoTF0ccJyB4XohwNy/wuY7U88ziuD5yxoMcZqB/NYsf6H phRA7ljRPMd3imVk/2stPyxfw9BxTMwQyc2BV7daqndrA8kKTFj80yYPP00YCNZWIEV6 TDnA== 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:cc: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:dkim-signature:delivered-to; bh=W5xbtbgsbUUp6JTgYpSSlrKvB1Wcm+FHrB1JtRaIwPw=; b=wkgYDuDf1pTmjmBdjFWDNZumonJgRf3eOb1pArcvQMGntcClCjkqNOCbRD+rG5/Vyi KBf+NqSG1xUEdqJNWCa21wcmc8TLCabdQmLdufjl/jFRGZn1GtUAz7nOpyHqDzKAHxNR a0TnyMxciShWQTgb7CiU9xxyQQTbtj0ixrog+bIOJksGUoei6SBIsp8SmYidS/GIba62 BpXjT5owVyJCXbnfuqG3Hq9VC5WrznuSUxmXt8+iM9ubCq3gwu2F08aR4IgwfQxQgtqQ cdEaMhv2UfhNNCCIOxN3qNHTaZf/4DEG57Wbt2o0Lj8/Sr4BCt7hZoCJ3tAYdsEm48yX eiTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@ltnglobal-com.20221208.gappssmtp.com header.s=20221208 header.b=uAqU6rCh; 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 g21-20020a056402115500b0050848749615si17506706edw.77.2023.04.28.10.45.46; Fri, 28 Apr 2023 10:45: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; dkim=neutral (body hash did not verify) header.i=@ltnglobal-com.20221208.gappssmtp.com header.s=20221208 header.b=uAqU6rCh; 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 20E4568C04B; Fri, 28 Apr 2023 20:45:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EE51A68BFF6 for ; Fri, 28 Apr 2023 20:45:16 +0300 (EEST) Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-5eefa0a5561so2300316d6.1 for ; Fri, 28 Apr 2023 10:45:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ltnglobal-com.20221208.gappssmtp.com; s=20221208; t=1682703915; x=1685295915; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=57rK196yp7V66ulLMHm4O19Z7Aii4x6Xa48ZYwlPmUQ=; b=uAqU6rChwqqu/OTe1Ix/9keHLhQQwudt5bNPgbbvpGe2sY7C+3Uo8//hxTbc+9D998 vFCZcGvWX9U8bWDFzKswo3mkqXyTpXCknY/4gDl7dto2JQjkLPBMBpQ/etu4weB954OO c6cMp6UvRbTcIiKxkNbhzImNdxkbUNsgXXK8VkM+prTs3oLWazmXh8mYuueWVqcF4Z5c t2ccQiIpxLJJ9wStq4zioHxsp4AU1TuJWF8RQ97uP3oulLM9ALSl0oLeEzUXjWa8Wme9 BYmMzueSChsI5jDaWNpFW+MV40VXmFe+NQQabaOjThnAtGPH0tILp8Duc1Y6g+x9LP72 bfTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682703915; x=1685295915; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=57rK196yp7V66ulLMHm4O19Z7Aii4x6Xa48ZYwlPmUQ=; b=l4AWTzeq/eBQmnPtt7c0RXlis9tRN6TMgDxLGkNnQRQZzGDrQUljadYasx3S0C2I4C 93R9UZ8ofd2KoSYt55eC9YHBX3R4AN6zQR5lEgfHdZPqC4n11Io2vJxZo4TKRWmKz4Rs c3PHst9y+Cap7vWYZQcFQfcs3/TQ5i9//NT7DB8DjeHuXwg7E+8BeKn70cO6o7GeMh2N /wcH6ixvLDIxyM50aThaIRoG8xBzwmBMiWh85VpN8N3mtD4k2ef30CKAin5YUs+y2KCq Mf3KM94i3hhaCBlKbr6I0hwuCBdpq5RZSHyRx3ZOa/MD4gGyGI8OA4Pycq49q9WQorj5 yFmQ== X-Gm-Message-State: AC+VfDwL90uN8H9vlgob7IpyOS7BAjO9soceDdlFgU+cEoD9N3Q8ZrI3 nXwc9v14EOqkhXv33RSfXX7PrBMKuEvX1PhTX/c= X-Received: by 2002:a05:6214:c82:b0:60e:98be:8694 with SMTP id r2-20020a0562140c8200b0060e98be8694mr7182919qvr.46.1682703915261; Fri, 28 Apr 2023 10:45:15 -0700 (PDT) Received: from ltnt-nyc-580testdevin.livetimenet.com (pool-71-105-132-214.nycmny.fios.verizon.net. [71.105.132.214]) by smtp.gmail.com with ESMTPSA id v14-20020a0ccd8e000000b006039f5a247esm5958794qvm.78.2023.04.28.10.45.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 Apr 2023 10:45:14 -0700 (PDT) From: Devin Heitmueller X-Google-Original-From: Devin Heitmueller To: ffmpeg-devel@ffmpeg.org Date: Fri, 28 Apr 2023 14:40:52 -0400 Message-Id: <1682707254-27604-3-git-send-email-dheitmueller@ltnglobal.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1682707254-27604-1-git-send-email-dheitmueller@ltnglobal.com> References: <1682707254-27604-1-git-send-email-dheitmueller@ltnglobal.com> Subject: [FFmpeg-devel] [PATCH v2 2/4] decklink: rename AVPacketQueue to DecklinkPacketQueue 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: Devin Heitmueller MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: q6KeUL7nSq4U The threadsafe queue used within the decklink module was named "AVPacketQueue" which implies that it is part of the public API, which it is not. Rename the functions and the name of the queue struct to make clear it is used exclusively by decklink, per Marton Balint's suggestion. Signed-off-by: Devin Heitmueller --- libavdevice/decklink_common.cpp | 18 +++++++++--------- libavdevice/decklink_common.h | 18 +++++++++--------- libavdevice/decklink_dec.cpp | 16 ++++++++-------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/libavdevice/decklink_common.cpp b/libavdevice/decklink_common.cpp index 31ab249..74e26e9 100644 --- a/libavdevice/decklink_common.cpp +++ b/libavdevice/decklink_common.cpp @@ -390,17 +390,17 @@ int ff_decklink_set_format(AVFormatContext *avctx, decklink_direction_t directio return ff_decklink_set_format(avctx, 0, 0, 0, 0, AV_FIELD_UNKNOWN, direction); } -void avpacket_queue_init(AVFormatContext *avctx, AVPacketQueue *q) +void ff_decklink_packet_queue_init(AVFormatContext *avctx, DecklinkPacketQueue *q) { struct decklink_cctx *ctx = (struct decklink_cctx *)avctx->priv_data; - memset(q, 0, sizeof(AVPacketQueue)); + memset(q, 0, sizeof(DecklinkPacketQueue)); pthread_mutex_init(&q->mutex, NULL); pthread_cond_init(&q->cond, NULL); q->avctx = avctx; q->max_q_size = ctx->queue_size; } -void avpacket_queue_flush(AVPacketQueue *q) +void ff_decklink_packet_queue_flush(DecklinkPacketQueue *q) { PacketListEntry *pkt, *pkt1; @@ -417,14 +417,14 @@ void avpacket_queue_flush(AVPacketQueue *q) pthread_mutex_unlock(&q->mutex); } -void avpacket_queue_end(AVPacketQueue *q) +void ff_decklink_packet_queue_end(DecklinkPacketQueue *q) { - avpacket_queue_flush(q); + ff_decklink_packet_queue_flush(q); pthread_mutex_destroy(&q->mutex); pthread_cond_destroy(&q->cond); } -unsigned long long avpacket_queue_size(AVPacketQueue *q) +unsigned long long ff_decklink_packet_queue_size(DecklinkPacketQueue *q) { unsigned long long size; pthread_mutex_lock(&q->mutex); @@ -433,12 +433,12 @@ unsigned long long avpacket_queue_size(AVPacketQueue *q) return size; } -int avpacket_queue_put(AVPacketQueue *q, AVPacket *pkt) +int ff_decklink_packet_queue_put(DecklinkPacketQueue *q, AVPacket *pkt) { PacketListEntry *pkt1; // Drop Packet if queue size is > maximum queue size - if (avpacket_queue_size(q) > (uint64_t)q->max_q_size) { + if (ff_decklink_packet_queue_size(q) > (uint64_t)q->max_q_size) { av_packet_unref(pkt); av_log(q->avctx, AV_LOG_WARNING, "Decklink input buffer overrun!\n"); return -1; @@ -475,7 +475,7 @@ int avpacket_queue_put(AVPacketQueue *q, AVPacket *pkt) return 0; } -int avpacket_queue_get(AVPacketQueue *q, AVPacket *pkt, int block) +int ff_decklink_packet_queue_get(DecklinkPacketQueue *q, AVPacket *pkt, int block) { int ret; diff --git a/libavdevice/decklink_common.h b/libavdevice/decklink_common.h index 56cc759..1cc6d9c 100644 --- a/libavdevice/decklink_common.h +++ b/libavdevice/decklink_common.h @@ -78,7 +78,7 @@ static char *dup_cfstring_to_utf8(CFStringRef w) class decklink_output_callback; class decklink_input_callback; -typedef struct AVPacketQueue { +typedef struct DecklinkPacketQueue { PacketList pkt_list; int nb_packets; unsigned long long size; @@ -87,7 +87,7 @@ typedef struct AVPacketQueue { pthread_cond_t cond; AVFormatContext *avctx; int64_t max_q_size; -} AVPacketQueue; +} DecklinkPacketQueue; struct decklink_ctx { /* DeckLink SDK interfaces */ @@ -111,7 +111,7 @@ struct decklink_ctx { int supports_vanc; /* Capture buffer queue */ - AVPacketQueue queue; + DecklinkPacketQueue queue; AVCCFifo *cc_fifo; ///< closed captions @@ -235,11 +235,11 @@ int ff_decklink_list_formats(AVFormatContext *avctx, decklink_direction_t direct void ff_decklink_cleanup(AVFormatContext *avctx); int ff_decklink_init_device(AVFormatContext *avctx, const char* name); -void avpacket_queue_init(AVFormatContext *avctx, AVPacketQueue *q); -void avpacket_queue_flush(AVPacketQueue *q); -void avpacket_queue_end(AVPacketQueue *q); -unsigned long long avpacket_queue_size(AVPacketQueue *q); -int avpacket_queue_put(AVPacketQueue *q, AVPacket *pkt); -int avpacket_queue_get(AVPacketQueue *q, AVPacket *pkt, int block); +void ff_decklink_packet_queue_init(AVFormatContext *avctx, DecklinkPacketQueue *q); +void ff_decklink_packet_queue_flush(DecklinkPacketQueue *q); +void ff_decklink_packet_queue_end(DecklinkPacketQueue *q); +unsigned long long ff_decklink_packet_queue_size(DecklinkPacketQueue *q); +int ff_decklink_packet_queue_put(DecklinkPacketQueue *q, AVPacket *pkt); +int ff_decklink_packet_queue_get(DecklinkPacketQueue *q, AVPacket *pkt, int block); #endif /* AVDEVICE_DECKLINK_COMMON_H */ diff --git a/libavdevice/decklink_dec.cpp b/libavdevice/decklink_dec.cpp index b3ff2b0..66abee1 100644 --- a/libavdevice/decklink_dec.cpp +++ b/libavdevice/decklink_dec.cpp @@ -568,7 +568,7 @@ static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideo klv_packet.data = klv.data(); klv_packet.size = klv.size(); - if (avpacket_queue_put(&ctx->queue, &klv_packet) < 0) { + if (ff_decklink_packet_queue_put(&ctx->queue, &klv_packet) < 0) { ++ctx->dropped; } } @@ -760,7 +760,7 @@ HRESULT decklink_input_callback::VideoInputFrameArrived( if (videoFrame) { AVPacket pkt = { 0 }; if (ctx->frameCount % 25 == 0) { - unsigned long long qsize = avpacket_queue_size(&ctx->queue); + unsigned long long qsize = ff_decklink_packet_queue_size(&ctx->queue); av_log(avctx, AV_LOG_DEBUG, "Frame received (#%lu) - Valid (%liB) - QSize %fMB\n", ctx->frameCount, @@ -924,7 +924,7 @@ HRESULT decklink_input_callback::VideoInputFrameArrived( txt_pkt.stream_index = ctx->teletext_st->index; txt_pkt.data = txt_buf0; txt_pkt.size = txt_buf - txt_buf0; - if (avpacket_queue_put(&ctx->queue, &txt_pkt) < 0) { + if (ff_decklink_packet_queue_put(&ctx->queue, &txt_pkt) < 0) { ++ctx->dropped; } } @@ -935,7 +935,7 @@ HRESULT decklink_input_callback::VideoInputFrameArrived( if (pkt.buf) videoFrame->AddRef(); - if (avpacket_queue_put(&ctx->queue, &pkt) < 0) { + if (ff_decklink_packet_queue_put(&ctx->queue, &pkt) < 0) { ++ctx->dropped; } } @@ -957,7 +957,7 @@ HRESULT decklink_input_callback::VideoInputFrameArrived( pkt.stream_index = ctx->audio_st->index; pkt.data = (uint8_t *)audioFrameBytes; - if (avpacket_queue_put(&ctx->queue, &pkt) < 0) { + if (ff_decklink_packet_queue_put(&ctx->queue, &pkt) < 0) { ++ctx->dropped; } } @@ -1039,7 +1039,7 @@ av_cold int ff_decklink_read_close(AVFormatContext *avctx) } ff_decklink_cleanup(avctx); - avpacket_queue_end(&ctx->queue); + ff_decklink_packet_queue_end(&ctx->queue); av_freep(&cctx->ctx); @@ -1297,7 +1297,7 @@ av_cold int ff_decklink_read_header(AVFormatContext *avctx) goto error; } - avpacket_queue_init (avctx, &ctx->queue); + ff_decklink_packet_queue_init(avctx, &ctx->queue); if (ctx->dli->StartStreams() != S_OK) { av_log(avctx, AV_LOG_ERROR, "Cannot start input stream\n"); @@ -1317,7 +1317,7 @@ int ff_decklink_read_packet(AVFormatContext *avctx, AVPacket *pkt) struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data; struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx; - avpacket_queue_get(&ctx->queue, pkt, 1); + ff_decklink_packet_queue_get(&ctx->queue, pkt, 1); if (ctx->tc_format && !(av_dict_get(ctx->video_st->metadata, "timecode", NULL, 0))) { size_t size;