Skip to content

Commit 4af1695

Browse files
committed
Separate valid audio packets and all audio packets
1 parent b19c168 commit 4af1695

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/main.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ typedef struct {
7272

7373
unsigned int program;
7474
unsigned int audio_ready;
75+
unsigned int audio_packets_valid;
7576
unsigned int audio_packets;
7677
unsigned int audio_bytes;
7778
unsigned int audio_errors;
@@ -347,13 +348,19 @@ static void callback(const nrsc5_event_t *evt, void *opaque)
347348
st->audio_bytes += evt->hdc.count * sizeof(evt->hdc.data[0]);
348349
if (evt->hdc.flags & NRSC5_PKT_FLAGS_CRC_ERROR)
349350
st->audio_errors++;
351+
else
352+
st->audio_packets_valid++;
350353

351-
if (st->audio_packets >= 32) {
352-
log_info("Audio bit rate: %.1f kbps", (float)st->audio_bytes * 8 * NRSC5_SAMPLE_RATE_AUDIO / NRSC5_AUDIO_FRAME_SAMPLES / st->audio_packets / 1000);
354+
if (st->audio_packets_valid >= 32) {
355+
log_info("Audio bit rate: %.1f kbps", (float)st->audio_bytes * 8 * NRSC5_SAMPLE_RATE_AUDIO / NRSC5_AUDIO_FRAME_SAMPLES / st->audio_packets_valid / 1000);
356+
st->audio_packets_valid = 0;
357+
st->audio_bytes = 0;
358+
}
359+
if (st->audio_packets >= 32)
360+
{
353361
if (st->audio_errors > 0)
354362
log_warn("Audio packet CRC mismatches: %d", st->audio_errors);
355363
st->audio_packets = 0;
356-
st->audio_bytes = 0;
357364
st->audio_errors = 0;
358365
}
359366
}

support/cli.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def __init__(self):
2626
self.wav_output = None
2727
self.raw_output = None
2828
self.hdc_output = None
29+
self.audio_packets_valid = 0
2930
self.audio_packets = 0
3031
self.audio_bytes = 0
3132
self.audio_errors = 0
@@ -229,14 +230,18 @@ def callback(self, evt_type, evt):
229230
self.audio_bytes += len(evt.data)
230231
if evt.flags & nrsc5.PacketFlags.CRC_ERROR:
231232
self.audio_errors += 1
233+
else:
234+
self.audio_packets_valid += 1
232235

233-
if self.audio_packets >= 32:
236+
if self.audio_packets_valid >= 32:
234237
logging.info("Audio bit rate: %.1f kbps", self.audio_bytes * 8 * nrsc5.SAMPLE_RATE_AUDIO
235-
/ nrsc5.AUDIO_FRAME_SAMPLES / self.audio_packets / 1000)
238+
/ nrsc5.AUDIO_FRAME_SAMPLES / self.audio_packets_valid / 1000)
239+
self.audio_packets_valid = 0
240+
self.audio_bytes = 0
241+
if self.audio_packets >= 32:
236242
if self.audio_errors > 0:
237243
logging.warning("Audio packet CRC mismatches: %d", self.audio_errors)
238244
self.audio_packets = 0
239-
self.audio_bytes = 0
240245
self.audio_errors = 0
241246
elif evt_type == nrsc5.EventType.AUDIO:
242247
if evt.program == self.args.program:

0 commit comments

Comments
 (0)