Browse Source

MT#58716 Move transcoding flag to media

Instead of using transcoding flag `_TRANSCODING`
on the monologue level, we have to use that on the media
level in order to properly reflect the level on which
transocding is being used, and also to be able to selectively
set this for specific media sessions.

Change-Id: I9a25dc7be24f80b2b6ada816448a67933c762d86
pull/1776/head
Donat Zenichev 2 years ago
parent
commit
5de30a855b
4 changed files with 7 additions and 6 deletions
  1. +3
    -3
      daemon/call.c
  2. +1
    -1
      daemon/media_socket.c
  3. +2
    -1
      include/call.h
  4. +1
    -1
      t/test-transcode.c

+ 3
- 3
daemon/call.c View File

@ -227,7 +227,7 @@ next:
media_update_stats(media);
ssrc_collect_metrics(media);
}
if (ML_ISSET(media->monologue, TRANSCODING))
if (MEDIA_ISSET(media, TRANSCODING))
hlp->transcoded_media++;
}
@ -2795,10 +2795,10 @@ static void media_update_transcoding_flag(struct call_media *media) {
if (!media)
return;
ML_CLEAR(media->monologue, TRANSCODING);
MEDIA_CLEAR(media, TRANSCODING);
if (t_queue_find_custom(&media->media_subscribers, NULL, __sub_is_transcoding))
ML_SET(media->monologue, TRANSCODING);
MEDIA_SET(media, TRANSCODING);
}
/* called with call->master_lock held in W */


+ 1
- 1
daemon/media_socket.c View File

@ -1490,7 +1490,7 @@ static const char *kernelize_one(struct rtpengine_target_info *reti, GQueue *out
if (proto_is_rtp(media->protocol)) {
reti->rtp = 1;
if (!ML_ISSET(media->monologue, TRANSCODING)) {
if (!MEDIA_ISSET(media, TRANSCODING)) {
reti->rtcp_fw = 1;
if (media->protocol->avpf)
reti->rtcp_fb_fw = 1;


+ 2
- 1
include/call.h View File

@ -190,6 +190,7 @@ enum {
#define MEDIA_FLAG_AUDIO_PLAYER 0x80000000
#define MEDIA_FLAG_LEGACY_OSRTP SHARED_FLAG_LEGACY_OSRTP
#define MEDIA_FLAG_LEGACY_OSRTP_REV SHARED_FLAG_LEGACY_OSRTP_REV
#define MEDIA_FLAG_TRANSCODING 0x100000000LL
/* struct call_monologue */
#define ML_FLAG_REC_FORWARDING 0x00010000
@ -197,7 +198,7 @@ enum {
#define ML_FLAG_DTMF_INJECTION_ACTIVE 0x00040000
#define ML_FLAG_DETECT_DTMF 0x00080000
#define ML_FLAG_NO_RECORDING 0x00100000
#define ML_FLAG_TRANSCODING 0x00200000
/* unused 0x00200000 */
#define ML_FLAG_BLOCK_SHORT 0x00400000
#define ML_FLAG_BLOCK_MEDIA 0x00800000
#define ML_FLAG_SILENCE_MEDIA 0x01000000


+ 1
- 1
t/test-transcode.c View File

@ -257,7 +257,7 @@ static void __packet_seq_ts(const char *file, int line, struct call_media *media
.sfd = &sfd,
};
// from __stream_ssrc()
if (!ML_ISSET(media->monologue, TRANSCODING))
if (!MEDIA_ISSET(media, TRANSCODING))
mp.ssrc_in->ssrc_map_out = ntohl(ssrc);
mp.ssrc_out = get_ssrc_ctx(mp.ssrc_in->ssrc_map_out, other_media->monologue->ssrc_hash, SSRC_DIR_OUTPUT, NULL);
payload_tracker_add(&mp.ssrc_in->tracker, pt_in & 0x7f);


Loading…
Cancel
Save