Skip to content

Commit bb226d3

Browse files
authored
Merge pull request #5 from BELABOX/debug_overlay
2 parents 39304d9 + 4956dbf commit bb226d3

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

belacoder.c

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@
4949
// BITRATE_DECR_MIN + cur_bitrate/BITRATE_DECR_SCALE
5050

5151
// settings ranges
52+
#define TS_PKT_SIZE 188
53+
#define REDUCED_SRT_PKT_SIZE ((TS_PKT_SIZE)*6)
54+
#define DEFAULT_SRT_PKT_SIZE ((TS_PKT_SIZE)*7)
5255
#define MAX_AV_DELAY 10000
5356
#define MIN_SRT_LATENCY 100
5457
#define MAX_SRT_LATENCY 10000
@@ -82,6 +85,7 @@ int cur_bitrate = MIN_BITRATE;
8285
char *bitrate_filename = NULL;
8386

8487
int srt_latency = DEF_SRT_LATENCY;
88+
int srt_pkt_size = DEFAULT_SRT_PKT_SIZE;
8589

8690
uint64_t getms() {
8791
struct timespec time = {0, 0};
@@ -173,8 +177,7 @@ int read_bitrate_file() {
173177
return -2;
174178
}
175179

176-
#define SRT_PKT_SIZE 1316
177-
#define RTT_TO_BS(rtt) ((throughput / 8) * (rtt) / SRT_PKT_SIZE)
180+
#define RTT_TO_BS(rtt) ((throughput / 8) * (rtt) / srt_pkt_size)
178181
void update_bitrate(SRT_TRACEBSTATS *stats, uint64_t ctime) {
179182
/*
180183
* Send buffer size stats
@@ -326,7 +329,7 @@ gboolean connection_housekeeping() {
326329
}
327330

328331
GstFlowReturn new_buf_cb(GstAppSink *sink, gpointer user_data) {
329-
static char pkt[SRT_PKT_SIZE];
332+
static char pkt[DEFAULT_SRT_PKT_SIZE];
330333
static int pkt_len = 0;
331334
GstFlowReturn code = GST_FLOW_OK;
332335

@@ -339,16 +342,16 @@ GstFlowReturn new_buf_cb(GstAppSink *sink, gpointer user_data) {
339342
buffer = gst_sample_get_buffer(sample);
340343
gst_buffer_map(buffer, &map, GST_MAP_READ);
341344

342-
// We send SRT_PKT_SIZE size packets, splitting and merging samples if needed
345+
// We send srt_pkt_size size packets, splitting and merging samples if needed
343346
int sample_sz = map.size;
344347
do {
345-
int copy_sz = min(SRT_PKT_SIZE - pkt_len, sample_sz);
348+
int copy_sz = min(srt_pkt_size - pkt_len, sample_sz);
346349
memcpy((void *)pkt + pkt_len, map.data, copy_sz);
347350
pkt_len += copy_sz;
348351

349-
if (pkt_len == SRT_PKT_SIZE) {
350-
int nb = srt_send(sock, pkt, SRT_PKT_SIZE);
351-
if (nb != SRT_PKT_SIZE) {
352+
if (pkt_len == srt_pkt_size) {
353+
int nb = srt_send(sock, pkt, srt_pkt_size);
354+
if (nb != srt_pkt_size) {
352355
if (!quit) {
353356
fprintf(stderr, "The SRT connection failed, exiting\n");
354357
stop();
@@ -453,6 +456,7 @@ void exit_syntax() {
453456
fprintf(stderr, " -d <delay> Audio-video delay in milliseconds\n");
454457
fprintf(stderr, " -s <streamid> SRT stream ID\n");
455458
fprintf(stderr, " -l <latency> SRT latency in milliseconds\n");
459+
fprintf(stderr, " -r Reduced SRT packet size\n");
456460
fprintf(stderr, " -b <bitrate file> Bitrate settings file, see below\n\n");
457461
fprintf(stderr, "Bitrate settings file syntax:\n");
458462
fprintf(stderr, "MIN BITRATE (bps)\n");
@@ -575,7 +579,7 @@ int main(int argc, char** argv) {
575579
char *stream_id = NULL;
576580
srt_latency = DEF_SRT_LATENCY;
577581

578-
while ((opt = getopt(argc, argv, "d:b:s:l:v")) != -1) {
582+
while ((opt = getopt(argc, argv, "d:b:s:l:rv")) != -1) {
579583
switch (opt) {
580584
case 'b':
581585
bitrate_filename = optarg;
@@ -598,6 +602,9 @@ int main(int argc, char** argv) {
598602
exit_syntax();
599603
}
600604
break;
605+
case 'r':
606+
srt_pkt_size = REDUCED_SRT_PKT_SIZE;
607+
break;
601608
case 'v':
602609
printf(VERSION "\n");
603610
exit(EXIT_SUCCESS);

0 commit comments

Comments
 (0)