From 2ca5319c1b2047df88489b235d6da01b2210bcc8 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Mon, 23 Dec 2024 17:59:56 +0100 Subject: [PATCH] MT#61630 introduce `media_player_add()` Add a functiona that covers handling of: - `media_player_add_file()` - `media_player_add_blob()` - `media_player_add_db()` Change-Id: I43ea20649366e45c461d584a811fa91c82b6405c --- daemon/call.c | 10 ++-------- daemon/media_player.c | 15 +++++++++++++++ include/media_player.h | 1 + 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index 4ffc914a5..5db7182e3 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -2750,7 +2750,6 @@ static void __call_monologue_init_from_flags(struct call_monologue *ml, struct c #ifdef WITH_TRANSCODING if (flags->recording_announcement) { media_player_new(&ml->rec_player, ml); - bool ret = true; media_player_opts_t opts = MPO( .repeat = flags->repeat_times, .start_pos = flags->start_pos, @@ -2760,13 +2759,8 @@ static void __call_monologue_init_from_flags(struct call_monologue *ml, struct c .blob = flags->blob, .db_id = flags->db_id, ); - if (flags->file.len) - ret = media_player_add_file(ml->rec_player, &flags->file, opts); - else if (flags->blob.len) - ret = media_player_add_blob(ml->rec_player, &flags->blob, opts); - else if (flags->db_id > 0) - ret = media_player_add_db(ml->rec_player, flags->db_id, opts); - if (!ret) + + if (!media_player_add(ml->rec_player, opts)) ilog(LOG_WARN, "Failed to add media player for recording announcement"); } #endif diff --git a/daemon/media_player.c b/daemon/media_player.c index f653058c9..89c07191b 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -1160,6 +1160,21 @@ bool media_player_play_file(struct media_player *mp, const str *file, media_play #endif } +bool media_player_add(struct media_player *mp, media_player_opts_t opts) { +#ifdef WITH_TRANSCODING + bool ret = true; + if (opts.file.len) + ret = media_player_add_file(mp, &opts.file, opts); + else if (opts.blob.len) + ret = media_player_add_blob(mp, &opts.blob, opts); + else if (opts.db_id > 0) + ret = media_player_add_db(mp, opts.db_id, opts); + return ret; +#else + return false; +#endif +} + // call->master_lock held in W bool media_player_add_file(struct media_player *mp, const str *file, media_player_opts_t opts) { int ret = __media_player_add_file(mp, file, opts, NULL); diff --git a/include/media_player.h b/include/media_player.h index c4dc65219..fc65b6315 100644 --- a/include/media_player.h +++ b/include/media_player.h @@ -124,6 +124,7 @@ bool media_player_play_db(struct media_player *, long long, media_player_opts_t) bool media_player_add_file(struct media_player *, const str *, media_player_opts_t); bool media_player_add_blob(struct media_player *, const str *, media_player_opts_t); bool media_player_add_db(struct media_player *, long long, media_player_opts_t); +bool media_player_add(struct media_player *mp, media_player_opts_t opts); bool media_player_start(struct media_player *); long long media_player_stop(struct media_player *); bool media_player_is_active(struct call_monologue *);