From 4aaccca6eee62c487627019e9805a651572a283b Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 1 Mar 2019 10:47:37 -0500 Subject: [PATCH] TT#50652 separate out media playback routine Change-Id: I35e4071645ff2c0e16a9901ff3d65516dda1907e --- daemon/media_player.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/daemon/media_player.c b/daemon/media_player.c index f901180be..9ee1260f1 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -190,7 +190,7 @@ out: // call->master_lock held in W -int media_player_play_file(struct media_player *mp, const str *file) { +static int media_player_play_init(struct media_player *mp) { media_player_shutdown(mp); // find call media suitable for playback @@ -214,6 +214,22 @@ found: mp->media = media; mp->sink = media->streams.head->data; + return 0; +} + + +// call->master_lock held in W +static void media_player_play_start(struct media_player *mp) { + mp->next_run = rtpe_now; + media_player_read_packet(mp); +} + + +// call->master_lock held in W +int media_player_play_file(struct media_player *mp, const str *file) { + if (media_player_play_init(mp)) + return -1; + char file_s[PATH_MAX]; snprintf(file_s, sizeof(file_s), STR_FORMAT, STR_FMT(file)); @@ -221,10 +237,8 @@ found: if (ret < 0) return -1; - // start playback now + media_player_play_start(mp); - mp->next_run = rtpe_now; - media_player_read_packet(mp); return 0; }