1
0
mirror of http://www.pogo.org.uk/~mark/trx.git synced 2025-06-30 20:42:05 +02:00

Compare commits

..

4 Commits
0.4 ... master

Author SHA1 Message Date
Mark Hills
0c5ab0dfc1 Do not use the ambiguous sched_setscheduler()
POSIX specifies this is per-process, and GNU implemented it on the
thread. Musl realises the problem with this and so doesn't implement
it at all, forcing this more specific alternative to be used.
2023-05-12 16:31:03 +01:00
Mark Hills
5c844e6996 Use the default logging level
This is a #define to bctoolbox which means we have to link ourselves
to that library. Whereas oRTP defines its own link. It turns out the
default logging level is appropriate, so use that.

This also removes one of the compatibility problems caused by
different versions of oRTP which had different definitions of this
function.
2020-11-28 11:03:34 +00:00
Mark Hills
69b6537303 The year is now 2020 2020-01-04 11:31:45 +00:00
Mark Hills
85fe843d61 oRTP segfaults in RECVONLY mode
Reported-by: Paul Le Couteur <paullecouteur@gmail.com>
2020-01-04 11:30:29 +00:00
8 changed files with 25 additions and 18 deletions

2
README
View File

@ -1,6 +1,6 @@
trx: Realtime audio over IP
(C) Copyright 2012 Mark Hills <mark@xwax.org>
(C) Copyright 2020 Mark Hills <mark@xwax.org>
See the COPYING file for licensing terms.

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2012 Mark Hills <mark@xwax.org>
* Copyright (C) 2020 Mark Hills <mark@xwax.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2012 Mark Hills <mark@xwax.org>
* Copyright (C) 2020 Mark Hills <mark@xwax.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
#ifndef NOTICE_H
#define NOTICE_H
#define COPYRIGHT "trx (C) Copyright 2014 Mark Hills <mark@xwax.org>"
#define COPYRIGHT "trx (C) Copyright 2020 Mark Hills <mark@xwax.org>"
#endif

11
rx.c
View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2012 Mark Hills <mark@xwax.org>
* Copyright (C) 2020 Mark Hills <mark@xwax.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -60,6 +60,15 @@ static RtpSession* create_rtp_recv(const char *addr_desc, const int port,
abort();
}
/*
* oRTP in RECVONLY mode attempts to send RTCP packets and
* segfaults (v4.3.0 tested)
*
* https://stackoverflow.com/questions/43591690/receiving-rtcp-issues-within-ortp-library
*/
rtp_session_enable_rtcp(session, FALSE);
return session;
}

19
sched.c
View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2012 Mark Hills <mark@xwax.org>
* Copyright (C) 2020 Mark Hills <mark@xwax.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -17,6 +17,8 @@
*
*/
#include <errno.h>
#include <pthread.h>
#include <sched.h>
#include <stdio.h>
#include <unistd.h>
@ -28,23 +30,20 @@
int go_realtime(void)
{
int max_pri;
struct sched_param sp;
if (sched_getparam(0, &sp)) {
perror("sched_getparam");
return -1;
}
const struct sched_param sp = {
.sched_priority = REALTIME_PRIORITY,
};
max_pri = sched_get_priority_max(SCHED_FIFO);
sp.sched_priority = REALTIME_PRIORITY;
if (sp.sched_priority > max_pri) {
fprintf(stderr, "Invalid priority (maximum %d)\n", max_pri);
return -1;
}
if (sched_setscheduler(0, SCHED_FIFO, &sp)) {
perror("sched_setscheduler");
errno = pthread_setschedparam(pthread_self(), SCHED_FIFO, &sp);
if (errno) {
perror("pthread_setschedparam");
return -1;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2012 Mark Hills <mark@xwax.org>
* Copyright (C) 2020 Mark Hills <mark@xwax.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License

3
tx.c
View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2012 Mark Hills <mark@xwax.org>
* Copyright (C) 2020 Mark Hills <mark@xwax.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -245,7 +245,6 @@ int main(int argc, char *argv[])
ortp_init();
ortp_scheduler_init();
ortp_set_log_level_mask(NULL, ORTP_WARNING|ORTP_ERROR);
session = create_rtp_send(addr, port);
assert(session != NULL);