Browse Source

MT#63317 add handler lookup to test-transcode

Change-Id: Ic385e4f8f5b5ae291eca080151ed0b95f9e7f5e5
pull/2008/head
Richard Fuchs 3 months ago
parent
commit
00e8c083b7
3 changed files with 11 additions and 3 deletions
  1. +2
    -0
      daemon/dtmf.c
  2. +2
    -0
      daemon/media_player.c
  3. +7
    -3
      t/test-transcode.c

+ 2
- 0
daemon/dtmf.c View File

@ -762,12 +762,14 @@ static const char *dtmf_inject_pcm(struct call_media *media, struct call_media *
.ssrc_out = ssrc_out,
.raw = { (void *) &tep, sizeof(tep) },
.payload = { (void *) &tep, sizeof(tep) },
.sink = { .sink = sink_ps },
};
// keep track of how much PCM we've generated
uint64_t encoder_pts = codec_encoder_pts(csh, NULL);
uint64_t skip_pts = codec_decoder_unskip_pts(csh); // reset to zero to take up our new samples
determine_sink_handler(ps, &packet.sink);
ch->dtmf_injector->handler_func(ch->dtmf_injector, &packet);
// insert pause


+ 2
- 0
daemon/media_player.c View File

@ -1055,10 +1055,12 @@ void media_player_add_packet(struct media_player *mp, char *buf, size_t len,
.media_out = mp->media,
.rtp = &rtp,
.ssrc_out = mp->ssrc_out,
.sink = { .sink = mp->sink },
};
packet.raw = STR_LEN(buf, len);
packet.payload = packet.raw;
determine_sink_handler(mp->sink, &packet.sink);
mp->coder.handler->handler_func(mp->coder.handler, &packet);
// as this is timing sensitive and we may have spent some time decoding,


+ 7
- 3
t/test-transcode.c View File

@ -75,11 +75,13 @@ static void __init(void) {
flags.codec_except = str_case_ht_new();
flags.codec_set = str_case_value_ht_new();
}
static struct packet_stream *ps_new(call_t *c) {
static struct packet_stream *ps_new(struct call_media *m) {
struct packet_stream *ps = malloc(sizeof(*ps));
assert(ps != NULL);
memset(ps, 0, sizeof(*ps));
ps->endpoint.port = 12345;
ps->media = m;
ps->call = m->call;
return ps;
}
static void __start(const char *file, int line) {
@ -98,8 +100,8 @@ static void __start(const char *file, int line) {
ml_B = __monologue_create(&call);
media_A = call_media_new(&call); // originator
media_B = call_media_new(&call); // output destination
t_queue_push_tail(&media_A->streams, ps_new(&call));
t_queue_push_tail(&media_B->streams, ps_new(&call));
t_queue_push_tail(&media_A->streams, ps_new(media_A));
t_queue_push_tail(&media_B->streams, ps_new(media_B));
ml_A->tag = STR("tag_A");
ml_A->label = STR("label_A");
media_A->monologue = ml_A;
@ -264,7 +266,9 @@ static void __packet_seq_ts(const char *file, int line, struct call_media *media
.media_out = other_media,
.ssrc_in = get_ssrc(ssrc, &media->ssrc_hash_in),
.sfd = &sfd,
.sink = { .sink = other_media->streams.head->data },
};
determine_sink_handler(media->streams.head->data, &mp.sink);
// from __stream_ssrc()
if (!MEDIA_ISSET(media, TRANSCODING))
mp.ssrc_in->ssrc_map_out = ntohl(ssrc);


Loading…
Cancel
Save