diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 1b35d9cdb..6cba6abe5 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -3635,11 +3635,7 @@ const char *call_stop_media_ng(ng_command_ctx_t *ctx) { if (!monologue->player) return "Not currently playing media"; - last_frame_pos = media_player_stop(monologue->player); - - // restore to non-mixing if needed - codec_update_all_source_handlers(monologue, NULL); - update_init_subscribers(monologue, OP_STOP_MEDIA); + last_frame_pos = call_stop_media_for_ml(monologue); } parser->dict_add_int(ctx->resp, "last-frame-pos", last_frame_pos); diff --git a/daemon/media_player.c b/daemon/media_player.c index 6ea104e8b..c26c7f5cc 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -1221,6 +1221,19 @@ const char * call_play_media_for_ml(struct call_monologue *ml, #endif } +long long call_stop_media_for_ml(struct call_monologue *ml) +{ +#ifdef WITH_TRANSCODING + long long ret = media_player_stop(ml->player); + /* restore to non-mixing if needed */ + codec_update_all_source_handlers(ml, NULL); + update_init_subscribers(ml, OP_STOP_MEDIA); + return ret; +#else + return 0; +#endif +} + #ifdef WITH_TRANSCODING static int __mp_avio_read_wrap(void *opaque, uint8_t *buf, int buf_size) { struct media_player_coder *c = opaque; diff --git a/include/media_player.h b/include/media_player.h index a356237d5..d5b2a76a6 100644 --- a/include/media_player.h +++ b/include/media_player.h @@ -134,6 +134,7 @@ void media_player_add_packet(struct media_player *mp, char *buf, size_t len, const char * call_play_media_for_ml(struct call_monologue *ml, media_player_opts_t opts, sdp_ng_flags *flags); +long long call_stop_media_for_ml(struct call_monologue *ml); void media_player_init(void); void media_player_free(void);