From patchwork Tue Jul 11 21:19:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 42601 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6da1:b0:131:a7d0:bc6d with SMTP id gl33csp1731148pzb; Tue, 11 Jul 2023 14:20:09 -0700 (PDT) X-Google-Smtp-Source: APBJJlG/2PBjNBsIrPP6aESq5lPaQxf/EWSu36upkxjKl1hm77Os5cgykpMB28or61N4gP+v1JDQ X-Received: by 2002:adf:f8c3:0:b0:314:30ed:9b55 with SMTP id f3-20020adff8c3000000b0031430ed9b55mr11671305wrq.15.1689110408971; Tue, 11 Jul 2023 14:20:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689110408; cv=none; d=google.com; s=arc-20160816; b=KQ+6lL1PkIXG4x/c9z2+IUsNmBBTleZYFDEHmR5kEvGSC+TjVS6E92TGGGo0UrXZTU Fm+4RRLyme/E94Fm8sc+/54K+Z4O9mwYrDl2ER5pJYprcyErIY8FGMYfx+SFIkhUXyz+ ZVxW+ZPvR8MIaweBD4PtbJyurFqCAgiXRDSrIkM8NQrVdvvw9yXAt4IAxQnmlkF2tfCA Lg259fDlUgdoxcJyNXJKHrLggFg3opvj1iyel/jSTcpKuAoMZToLTtUDoDbas9MSE5wd 87kZL4glzt8HwnwMVyAWsFbzA+DGgoIx64jvXlBQmIJ0BxYQybpc/mgknpkTwlLolV7A DA9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=PU+BV280yq4YCOrdbth82hyiiD/aj7GnG/zryCgP4u8=; fh=YYwLYmpaV0Fpw/rxmSKNRLS2XzDkAlGbHATiKOPtZrY=; b=iDlkJNXW2TGzqkSd+8BpShjDQeKbOyo3Q2hEnWrTEUnf1wXmsUAfeeLB2VioJdnIom XpC6Lovk7Iw/fY4oyp1B0aUq6T+NOMV6oQ7S7Ems25Ez5i+gEQJ9wuUMdANFevqUDXhQ r/j0kagqQxeBIwAd3L1rdeqIFqEYY0aXI/6p81Tl0+BrgiOz6VAgurkGT8WPkuaY/6hD NMMElHHjVBvWZgBRNidfBdb3VQyFSV1YERszBk6UPbLwy5me/gavZ9wiCM4KA13/kiri ojqZWv5HjoDA2H/3rHP3rDMJOR9a0/NQZIj5KpnrzzQ3JECbqhmxcE07idwC5IkY981K qzZQ== 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 y17-20020aa7c251000000b0051e2ded9b50si2972265edo.632.2023.07.11.14.20.08; Tue, 11 Jul 2023 14:20:08 -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 95BDB688373; Wed, 12 Jul 2023 00:19:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 49F1C68C611 for ; Wed, 12 Jul 2023 00:19:19 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 8902A60002 for ; Tue, 11 Jul 2023 21:19:18 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Tue, 11 Jul 2023 23:19:04 +0200 Message-Id: <20230711211910.1257355-6-michael@niedermayer.cc> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230711211910.1257355-1-michael@niedermayer.cc> References: <20230711211910.1257355-1-michael@niedermayer.cc> MIME-Version: 1.0 X-GND-Sasl: michael@niedermayer.cc Subject: [FFmpeg-devel] [PATCH 06/12] avradio/sdr: Warnings cleanup 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: zJSr9fNKdnou Signed-off-by: Michael Niedermayer --- libavradio/sdr.h | 1 + libavradio/sdrdemux.c | 29 ++++++++++++++--------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/libavradio/sdr.h b/libavradio/sdr.h index f966a16e2e..834b1f40b4 100644 --- a/libavradio/sdr.h +++ b/libavradio/sdr.h @@ -152,6 +152,7 @@ typedef struct SDRContext { int64_t last_pts; int64_t pts; int block_size; + double block_time; int kbd_alpha; AVComplexFloat *windowed_block; int64_t block_center_freq; ///< center frequency the current block contains diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c index 93e48c2cdf..8b8c126380 100644 --- a/libavradio/sdrdemux.c +++ b/libavradio/sdrdemux.c @@ -177,14 +177,15 @@ static int create_station(SDRContext *sdr, Station *candidate_station) { double freq = candidate_station->frequency; int64_t bandwidth = candidate_station->bandwidth; float score = candidate_station->score; - void *tmp; - int i; + int i, nb_stations; Station *best_station = NULL; float drift = bandwidth/3.0; double best_distance = drift; int conflict = INT_MAX; int nb_candidate_conflict = 0; int nb_candidate_match = 0; + Station *station_list[1000]; + if (candidate_station->in_station_list) return 0; @@ -193,8 +194,7 @@ static int create_station(SDRContext *sdr, Station *candidate_station) { if (ff_sdr_histogram_score(candidate_station) <= 0) return 0; - Station *station_list[1000]; - int nb_stations = ff_sdr_find_stations(sdr, sdr->block_center_freq, sdr->sdr_sample_rate*0.5, station_list, FF_ARRAY_ELEMS(station_list)); + nb_stations = ff_sdr_find_stations(sdr, sdr->block_center_freq, sdr->sdr_sample_rate*0.5, station_list, FF_ARRAY_ELEMS(station_list)); for (i=0; ifrequency - freq); @@ -286,11 +286,12 @@ static int create_station(SDRContext *sdr, Station *candidate_station) { static void create_stations(SDRContext *sdr) { Station *station_list[1000]; + int nb_stations; if (!sdr->block_center_freq) return; - int nb_stations = ff_sdr_find_stations(sdr, sdr->block_center_freq, sdr->sdr_sample_rate*0.5, station_list, FF_ARRAY_ELEMS(station_list)); + nb_stations = ff_sdr_find_stations(sdr, sdr->block_center_freq, sdr->sdr_sample_rate*0.5, station_list, FF_ARRAY_ELEMS(station_list)); for(int i = 0; iblock_size / (double)sdr->sdr_sample_rate; station = av_mallocz(sizeof(*station)); if (!station) return AVERROR(ENOMEM); @@ -400,7 +400,7 @@ static int create_candidate_station(SDRContext *sdr, enum Modulation modulation, if (!sdr->rds_ring_size) - sdr->rds_ring_size = ceil((2*105 / 1187.5 + 2.0*block_time) * sdr->fm_block_size_p2 / block_time); + sdr->rds_ring_size = ceil((2*105 / 1187.5 + 2.0*sdr->block_time) * sdr->fm_block_size_p2 / sdr->block_time); station->rds_ring = av_mallocz(sizeof(*station->rds_ring ) * sdr->rds_ring_size); @@ -901,7 +901,7 @@ static int probe_fm(SDRContext *sdr) float rmax = max_in_range(sdr, i-half_bw_i/4, i+half_bw_i/4); int lowcount = countbelow(sdr, i-half_bw_i/4, i+half_bw_i/4, rmax / 100); - double peak_i; + double peak_i, f, f2; if (lowcount / (half_bw_i*0.5) > 0.99) continue; @@ -912,8 +912,8 @@ static int probe_fm(SDRContext *sdr) if (peak_i < 0) continue; av_assert0(fabs(peak_i-i) < 2); - double f = peak_i * 0.5 * sdr->sdr_sample_rate / sdr->block_size + sdr->block_center_freq - sdr->sdr_sample_rate/2; - double f2 = center * 0.5 * sdr->sdr_sample_rate / sdr->block_size + sdr->block_center_freq - sdr->sdr_sample_rate/2; + f = peak_i * 0.5 * sdr->sdr_sample_rate / sdr->block_size + sdr->block_center_freq - sdr->sdr_sample_rate/2; + f2 = center * 0.5 * sdr->sdr_sample_rate / sdr->block_size + sdr->block_center_freq - sdr->sdr_sample_rate/2; if (fabs(f2 - f) > 1000) continue; @@ -1115,7 +1115,6 @@ static int setup_stream(SDRContext *sdr, int stream_index, Station *station) AVFormatContext *s = sdr->avfmt; AVStream *st = s->streams[stream_index]; SDRStream *sst = st->priv_data; - double block_time = sdr->block_size / (double)sdr->sdr_sample_rate; int ret; //For now we expect each station to be only demodulated once, nothing should break though if its done more often @@ -1133,7 +1132,7 @@ static int setup_stream(SDRContext *sdr, int stream_index, Station *station) if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { free_stream(sdr, stream_index); - for (sst->block_size = 4; 2ll *sst->station->bandwidth * block_time > sst->block_size; sst->block_size <<= 1) + for (sst->block_size = 4; 2ll *sst->station->bandwidth * sdr->block_time > sst->block_size; sst->block_size <<= 1) ; sst->block_size = FFMIN(sdr->block_size, sst->block_size); @@ -1491,10 +1490,10 @@ int ff_sdr_common_init(AVFormatContext *s) } av_log(s, AV_LOG_INFO, "Block size %d\n", sdr->block_size); - double block_time = sdr->block_size / (double)sdr->sdr_sample_rate; + sdr->block_time = sdr->block_size / (double)sdr->sdr_sample_rate; sdr->fm_bandwidth_p2 = 18 * 1000; if (!sdr->fm_block_size_p2) - for (sdr->fm_block_size_p2 = 4; 2ll *sdr->fm_bandwidth_p2 * block_time > sdr->fm_block_size_p2; sdr->fm_block_size_p2 <<= 1) + for (sdr->fm_block_size_p2 = 4; 2ll *sdr->fm_bandwidth_p2 * sdr->block_time > sdr->fm_block_size_p2; sdr->fm_block_size_p2 <<= 1) ; sdr->windowed_block = av_malloc(sizeof(*sdr->windowed_block) * 2 * sdr->block_size); @@ -1836,9 +1835,9 @@ process_next_block: return ret; } } else { - av_assert0(sdr->mode == AllStationMode); Station *station_list[1000]; int nb_stations = ff_sdr_find_stations(sdr, sdr->block_center_freq, sdr->sdr_sample_rate*0.5, station_list, FF_ARRAY_ELEMS(station_list)); + av_assert0(sdr->mode == AllStationMode); for(int i = 0; istream && station->in_station_list) {