MT#65420 give MP index to start/stop functions

Change-Id: I133d380f91a36bf360f9a8490a643e6ee0351735
pull/2169/head
Richard Fuchs 3 weeks ago
parent 42b6652d5f
commit 9066365c07

@ -2871,10 +2871,11 @@ static void __call_monologue_init_from_flags(struct call_monologue *ml, struct c
.blob = flags->blob,
.db_id = flags->db_id,
);
media_player_new(&ml->players[MP_REC], ml, NULL, &opts);
if (!media_player_play(ml->players[MP_REC], &opts))
ilog(LOG_WARN, "Failed to add media player for recording announcement");
const char *err = call_play_media_for_ml(ml, MP_REC, &opts, NULL);
if (err)
ilog(LOG_WARN, "Failed to add media player for recording announcement (%s)", err);
}
#endif
}

@ -2003,7 +2003,7 @@ const char *call_play_media_ng(ng_command_ctx_t *ctx) {
ilog(LOG_DEBUG, "Requesting play media");
err = call_play_media_for_ml(monologue, &opts, &flags);
err = call_play_media_for_ml(monologue, MP_DEFAULT, &opts, &flags);
if (err)
return err;
@ -2041,7 +2041,7 @@ const char *call_stop_media_ng(ng_command_ctx_t *ctx) {
if (monologue->players[MP_DEFAULT]->opts.moh)
return "Currently MoH ongoing, ignore stop media.";
last_frame_pos = call_stop_media_for_ml(monologue);
last_frame_pos = call_stop_media_for_ml(monologue, MP_DEFAULT);
}
parser->dict_add_int(ctx->resp, "last-frame-pos", last_frame_pos);

@ -1648,7 +1648,7 @@ check_next:
#endif
}
const char * call_check_moh(struct call_monologue *from_ml, struct call_monologue *to_ml,
const char *call_check_moh(struct call_monologue *from_ml, struct call_monologue *to_ml,
sdp_ng_flags *flags)
{
#ifdef WITH_TRANSCODING
@ -1680,7 +1680,7 @@ const char * call_check_moh(struct call_monologue *from_ml, struct call_monologu
);
/* whom to play the moh audio */
errstr = call_play_media_for_ml(to_ml, &opts, NULL);
errstr = call_play_media_for_ml(to_ml, MP_DEFAULT, &opts, NULL);
if (errstr) {
to_ml->players[MP_DEFAULT]->opts.moh = 0; /* initialization failed, mark accordingly */
return errstr;
@ -1694,7 +1694,7 @@ const char * call_check_moh(struct call_monologue *from_ml, struct call_monologu
} else if (call_ml_stops_moh(from_ml, to_ml, flags->opmode))
{
/* whom to stop the moh audio */
call_stop_media_for_ml(to_ml);
call_stop_media_for_ml(to_ml, MP_DEFAULT);
ilog(LOG_DEBUG, "Music on hold stopped with coming SDP offer.");
}
return NULL;
@ -1703,7 +1703,7 @@ const char * call_check_moh(struct call_monologue *from_ml, struct call_monologu
#endif
}
const char *call_play_media_for_ml(struct call_monologue *ml,
const char *call_play_media_for_ml(struct call_monologue *ml, unsigned int mp_idx,
media_player_opts_t *opts, sdp_ng_flags *flags)
{
#ifdef WITH_TRANSCODING
@ -1713,7 +1713,7 @@ const char *call_play_media_for_ml(struct call_monologue *ml,
/* this starts the audio player if needed */
update_init_monologue_subscribers(ml, OP_PLAY_MEDIA);
if (ml->players[MP_DEFAULT] && ml->players[MP_DEFAULT]->opts.moh) {
if (ml->players[mp_idx] && ml->players[mp_idx]->opts.moh) {
ilog(LOG_DEBUG, "There is already ongoing media playback for MoH. Ignore new one.");
/* pretend that everything is good */
return NULL;
@ -1721,10 +1721,10 @@ const char *call_play_media_for_ml(struct call_monologue *ml,
else {
/* media_player_new() now knows that audio player is in use
* TODO: player options can have changed if already exists */
media_player_new(&ml->players[MP_DEFAULT], ml, NULL, opts);
media_player_new(&ml->players[mp_idx], ml, NULL, opts);
}
if (!media_player_play(ml->players[MP_DEFAULT], opts))
if (!media_player_play(ml->players[mp_idx], opts))
return "Failed to start media playback";
return NULL;
@ -1733,17 +1733,17 @@ const char *call_play_media_for_ml(struct call_monologue *ml,
#endif
}
long long call_stop_media_for_ml(struct call_monologue *ml)
long long call_stop_media_for_ml(struct call_monologue *ml, unsigned int mp_idx)
{
#ifdef WITH_TRANSCODING
if (!ml->players[MP_DEFAULT])
if (!ml->players[mp_idx])
return 0;
long long ret = media_player_stop(ml->players[MP_DEFAULT]);
long long ret = media_player_stop(ml->players[mp_idx]);
/* restore to non-mixing if needed */
codec_update_all_source_handlers(ml);
update_init_monologue_subscribers(ml, OP_STOP_MEDIA);
/* mark MoH as already not used (it can be unset now) */
ml->players[MP_DEFAULT]->opts.moh = 0;
ml->players[mp_idx]->opts.moh = 0;
return ret;
#else
return 0;

@ -138,9 +138,9 @@ bool media_player_pt_match(const struct media_player *mp, const rtp_payload_type
void media_player_add_packet(struct media_player *mp, char *buf, size_t len,
int64_t us_dur, unsigned long long pts);
const char *call_play_media_for_ml(struct call_monologue *ml,
const char *call_play_media_for_ml(struct call_monologue *ml, unsigned int mp_idx,
media_player_opts_t *opts, sdp_ng_flags *flags);
long long call_stop_media_for_ml(struct call_monologue *ml);
long long call_stop_media_for_ml(struct call_monologue *ml, unsigned int mp_idx);
const char *call_check_moh(struct call_monologue *from_ml, struct call_monologue *to_ml,
sdp_ng_flags *flags);

Loading…
Cancel
Save