projects
/
paraslash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
the paraslash-0.3.2 release tarball
[paraslash.git]
/
ortp_send.c
diff --git
a/ortp_send.c
b/ortp_send.c
index 18b5edd345fe66c048ee1dc0f2eaa4911e617fbe..9c166aee289f5b06ed4c2e39e6c0ad100d73c8a8 100644
(file)
--- a/
ortp_send.c
+++ b/
ortp_send.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 2005-200
7
Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-200
8
Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
@@
-10,39
+10,43
@@
#include <ortp/port.h>
#include "server.cmdline.h"
#include <ortp/port.h>
#include "server.cmdline.h"
+#include "para.h"
+#include "error.h"
+#include "string.h"
+#include "afh.h"
+#include "afs.h"
#include "server.h"
#include "vss.h"
#include "server.h"
#include "vss.h"
-#include "send.h"
#include "list.h"
#include "list.h"
+#include "send.h"
#include "ortp.h"
#include "ortp.h"
-#include "string.h"
-/**
\cond convert in_addr to ascii
*/
+/**
Convert in_addr to ascii.
*/
#define TARGET_ADDR(oc) inet_ntoa((oc)->addr)
#define TARGET_ADDR(oc) inet_ntoa((oc)->addr)
-/** \endcond */
-/**
describes one entry in the list of targets for the ortp sender
*/
+/**
Describes one entry in the list of targets for the ortp sender.
*/
struct ortp_target {
struct ortp_target {
-
/** address info
*/
+
/** Address info.
*/
struct in_addr addr;
struct in_addr addr;
-
/** whether the ortp sender is activated
*/
+
/** Whether the ortp sender is activated.
*/
int status;
int status;
-
/** the ortp timestamp increases by this amount
*/
+
/** The ortp timestamp increases by this amount.
*/
uint32_t chunk_ts;
uint32_t chunk_ts;
-
/** the currently used timestamp for this target
*/
+
/** The currently used timestamp for this target.
*/
uint32_t last_ts;
uint32_t last_ts;
-
/** the position of this target in the list of targets
*/
+
/** The position of this target in the list of targets.
*/
struct list_head node;
struct list_head node;
-
/** the UDP port
*/
+
/** The UDP port.
*/
int port;
int port;
-
/** non-zero if at least one chunk has been sent to this target
*/
+
/** Non-zero if at least one chunk has been sent to this target.
*/
int streaming;
int streaming;
-
/** the session pointer from libortp
*/
+
/** The session pointer from libortp.
*/
RtpSession *session;
};
static struct list_head targets;
static struct sender *self;
RtpSession *session;
};
static struct list_head targets;
static struct sender *self;
+static int sender_status;
static void ortp_delete_target(struct ortp_target *ot, const char *msg)
{
static void ortp_delete_target(struct ortp_target *ot, const char *msg)
{
@@
-159,13
+163,15
@@
static void ortp_send(long unsigned current_chunk, long unsigned chunks_sent,
{
struct ortp_target *ot, *tmp;
size_t sendbuf_len;
{
struct ortp_target *ot, *tmp;
size_t sendbuf_len;
-
unsigned
header_len = 0;
+
size_t
header_len = 0;
int packet_type = ORTP_DATA;
char *sendbuf, *header_buf = NULL;
struct timeval *chunk_tv;
int packet_type = ORTP_DATA;
char *sendbuf, *header_buf = NULL;
struct timeval *chunk_tv;
- if (se
lf->
status != SENDER_ON)
+ if (se
nder_
status != SENDER_ON)
return;
return;
+
+// PARA_NOTICE_LOG("sending %lu\n", current_chunk);
chunk_tv = vss_chunk_time();
if (!chunk_tv)
return;
chunk_tv = vss_chunk_time();
if (!chunk_tv)
return;
@@
-184,7
+190,7
@@
static void ortp_send(long unsigned current_chunk, long unsigned chunks_sent,
}
if (list_empty(&targets))
return;
}
if (list_empty(&targets))
return;
-
header_buf = vss_get_header(
&header_len);
+
vss_get_header(&header_buf,
&header_len);
if (!need_extra_header(current_chunk))
header_len = 0;
sendbuf_len = ORTP_AUDIO_HEADER_LEN + header_len + len;
if (!need_extra_header(current_chunk))
header_len = 0;
sendbuf_len = ORTP_AUDIO_HEADER_LEN + header_len + len;
@@
-208,14
+214,14
@@
static void ortp_send(long unsigned current_chunk, long unsigned chunks_sent,
static int ortp_com_on(__a_unused struct sender_command_data *scd)
{
static int ortp_com_on(__a_unused struct sender_command_data *scd)
{
- se
lf->
status = SENDER_ON;
+ se
nder_
status = SENDER_ON;
return 1;
}
static int ortp_com_off(__a_unused struct sender_command_data *scd)
{
ortp_shutdown_targets();
return 1;
}
static int ortp_com_off(__a_unused struct sender_command_data *scd)
{
ortp_shutdown_targets();
- se
lf->
status = SENDER_OFF;
+ se
nder_
status = SENDER_OFF;
return 1;
}
return 1;
}
@@
-262,10
+268,11
@@
static char *ortp_info(void)
tgts = tmp;
}
ret = make_message(
tgts = tmp;
}
ret = make_message(
- "ortp status: %s\n"
- "ortp default port: udp %d\n"
- "ortp targets: %s\n",
- (self->status == SENDER_ON)? "on" : "off",
+ "ortp sender:\n"
+ "\tstatus: %s\n"
+ "\tport: udp %d\n"
+ "\ttargets: %s\n",
+ (sender_status == SENDER_ON)? "on" : "off",
conf.ortp_default_port_arg,
tgts? tgts : "(none)"
);
conf.ortp_default_port_arg,
tgts? tgts : "(none)"
);
@@
-287,7
+294,7
@@
static void ortp_init_target_list(void)
if (!p)
goto err;
*p = '\0';
if (!p)
goto err;
*p = '\0';
- if (!inet_
aton(
arg, &addr))
+ if (!inet_
pton(AF_INET,
arg, &addr))
goto err;
port = atoi(++p);
if (port < 0 || port > 65535)
goto err;
port = atoi(++p);
if (port < 0 || port > 65535)
@@
-303,12
+310,6
@@
success:
}
}
}
}
-static void ortp_pre_select(__a_unused int *max_fileno, __a_unused fd_set *rfds,
- __a_unused fd_set *wfds)
-{
- return;
-}
-
static char *ortp_help(void)
{
return make_message(
static char *ortp_help(void)
{
return make_message(
@@
-332,7
+333,7
@@
void ortp_send_init(struct sender *s)
s->info = ortp_info;
s->help = ortp_help;
s->send = ortp_send;
s->info = ortp_info;
s->help = ortp_help;
s->send = ortp_send;
- s->pre_select =
ortp_pre_select
;
+ s->pre_select =
NULL
;
s->post_select = NULL;
s->shutdown_clients = ortp_shutdown_targets;
s->client_cmds[SENDER_ON] = ortp_com_on;
s->post_select = NULL;
s->shutdown_clients = ortp_shutdown_targets;
s->client_cmds[SENDER_ON] = ortp_com_on;
@@
-342,9
+343,9
@@
void ortp_send_init(struct sender *s)
s->client_cmds[SENDER_ADD] = ortp_com_add;
s->client_cmds[SENDER_DELETE] = ortp_com_delete;
self = s;
s->client_cmds[SENDER_ADD] = ortp_com_add;
s->client_cmds[SENDER_DELETE] = ortp_com_delete;
self = s;
- s
->
status = SENDER_OFF;
+ s
ender_
status = SENDER_OFF;
ortp_init_target_list();
if (!conf.ortp_no_autostart_given)
ortp_init_target_list();
if (!conf.ortp_no_autostart_given)
- s
->
status = SENDER_ON;
- PARA_DEBUG_LOG("
%s", "
ortp sender init complete\n");
+ s
ender_
status = SENDER_ON;
+ PARA_DEBUG_LOG("ortp sender init complete\n");
}
}