mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-02-22 18:12:49 +00:00
Pass remote sequence number through monitor interface
This commit is contained in:
parent
00b1609deb
commit
48c899df39
18
vomp.c
18
vomp.c
@ -451,7 +451,7 @@ int monitor_call_status(struct vomp_call_state *call)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int monitor_send_audio(struct vomp_call_state *call, int audio_codec, unsigned int start_time, unsigned int end_time, const unsigned char *audio, int audio_length)
|
int monitor_send_audio(struct vomp_call_state *call, int audio_codec, unsigned int start_time, unsigned int end_time, const unsigned char *audio, int audio_length, int sequence)
|
||||||
{
|
{
|
||||||
if (0) DEBUGF("Tell call monitor about audio for call %06x:%06x",
|
if (0) DEBUGF("Tell call monitor about audio for call %06x:%06x",
|
||||||
call->local.session,call->remote.session);
|
call->local.session,call->remote.session);
|
||||||
@ -462,10 +462,11 @@ int monitor_send_audio(struct vomp_call_state *call, int audio_codec, unsigned i
|
|||||||
Put newline at start of these so that receiving data in command
|
Put newline at start of these so that receiving data in command
|
||||||
mode doesn't confuse the parser. */
|
mode doesn't confuse the parser. */
|
||||||
int msglen = snprintf(msg, 1024,
|
int msglen = snprintf(msg, 1024,
|
||||||
"\n*%d:AUDIOPACKET:%x:%d:%d:%d\n",
|
"\n*%d:AUDIOPACKET:%x:%d:%d:%d:%d\n",
|
||||||
sample_bytes,
|
sample_bytes,
|
||||||
call->local.session,
|
call->local.session,
|
||||||
audio_codec, start_time, end_time);
|
audio_codec, start_time, end_time,
|
||||||
|
sequence);
|
||||||
|
|
||||||
bcopy(audio, &msg[msglen], sample_bytes);
|
bcopy(audio, &msg[msglen], sample_bytes);
|
||||||
msglen+=sample_bytes;
|
msglen+=sample_bytes;
|
||||||
@ -583,6 +584,8 @@ int vomp_process_audio(struct vomp_call_state *call,unsigned int sender_duration
|
|||||||
if (debug & DEBUG_VOMP)
|
if (debug & DEBUG_VOMP)
|
||||||
DEBUGF("Jitter %d, %lld", sender_duration - e, (long long)((gettime_ms() - call->create_time) - e));
|
DEBUGF("Jitter %d, %lld", sender_duration - e, (long long)((gettime_ms() - call->create_time) - e));
|
||||||
|
|
||||||
|
int sequence = call->remote.sequence;
|
||||||
|
|
||||||
while(ofs<mdp->in.payload_length)
|
while(ofs<mdp->in.payload_length)
|
||||||
{
|
{
|
||||||
int codec=mdp->in.payload[ofs];
|
int codec=mdp->in.payload[ofs];
|
||||||
@ -599,11 +602,12 @@ int vomp_process_audio(struct vomp_call_state *call,unsigned int sender_duration
|
|||||||
if (monitor_socket_count)
|
if (monitor_socket_count)
|
||||||
monitor_send_audio(call, codec, s, e,
|
monitor_send_audio(call, codec, s, e,
|
||||||
&mdp->in.payload[ofs+1],
|
&mdp->in.payload[ofs+1],
|
||||||
vomp_sample_size(codec)
|
vomp_sample_size(codec),
|
||||||
);
|
sequence);
|
||||||
}
|
}
|
||||||
ofs+=1+vomp_sample_size(codec);
|
ofs+=1+vomp_sample_size(codec);
|
||||||
e=s-1;
|
e=s-1;
|
||||||
|
sequence--;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -786,6 +790,8 @@ int vomp_mdp_received(overlay_mdp_frame *mdp)
|
|||||||
DEBUG("recvr_session==0, created call");
|
DEBUG("recvr_session==0, created call");
|
||||||
|
|
||||||
recvr_state = call->local.state;
|
recvr_state = call->local.state;
|
||||||
|
call->remote.sequence=sender_seq;
|
||||||
|
|
||||||
|
|
||||||
// TODO ignore state changes if sequence is stale?
|
// TODO ignore state changes if sequence is stale?
|
||||||
// TODO ignore state changes that seem to go backwards?
|
// TODO ignore state changes that seem to go backwards?
|
||||||
@ -915,8 +921,6 @@ int vomp_mdp_received(overlay_mdp_frame *mdp)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
call->remote.sequence=sender_seq;
|
|
||||||
|
|
||||||
vomp_update_remote_state(call, sender_state);
|
vomp_update_remote_state(call, sender_state);
|
||||||
vomp_update_local_state(call, recvr_state);
|
vomp_update_local_state(call, recvr_state);
|
||||||
call->last_activity=gettime_ms();
|
call->last_activity=gettime_ms();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user