diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index c6afc0d4b..18fcef559 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -3369,15 +3369,15 @@ const char *call_play_media_ng(bencode_item_t *input, bencode_item_t *output) { flags.repeat_times = 1; if (flags.file.len) { - if (media_player_play_file(monologue->player, &flags.file, flags.repeat_times, flags.start_pos)) + if (!media_player_play_file(monologue->player, &flags.file, flags.repeat_times, flags.start_pos)) return "Failed to start media playback from file"; } else if (flags.blob.len) { - if (media_player_play_blob(monologue->player, &flags.blob, flags.repeat_times, flags.start_pos)) + if (!media_player_play_blob(monologue->player, &flags.blob, flags.repeat_times, flags.start_pos)) return "Failed to start media playback from blob"; } else if (flags.db_id > 0) { - if (media_player_play_db(monologue->player, flags.db_id, flags.repeat_times, flags.start_pos)) + if (!media_player_play_db(monologue->player, flags.db_id, flags.repeat_times, flags.start_pos)) return "Failed to start media playback from database"; } else diff --git a/daemon/media_player.c b/daemon/media_player.c index f78e75789..0b71369eb 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -954,17 +954,17 @@ static void media_player_play_start(struct media_player *mp, const rtp_payload_t // call->master_lock held in W -int media_player_play_file(struct media_player *mp, const str *file, long long repeat, long long start_pos) { +bool media_player_play_file(struct media_player *mp, const str *file, long long repeat, long long start_pos) { #ifdef WITH_TRANSCODING const rtp_payload_type *dst_pt = media_player_play_init(mp); if (!dst_pt) - return -1; + return false; mp->cache_index.type = MP_FILE; str_init_dup_str(&mp->cache_index.file, file); if (media_player_cache_get_entry(mp, dst_pt, repeat)) - return 0; + return true; char file_s[PATH_MAX]; snprintf(file_s, sizeof(file_s), STR_FORMAT, STR_FMT(file)); @@ -972,14 +972,14 @@ int media_player_play_file(struct media_player *mp, const str *file, long long r int ret = avformat_open_input(&mp->coder.fmtctx, file_s, NULL, NULL); if (ret < 0) { ilog(LOG_ERR, "Failed to open media file for playback: %s", av_error(ret)); - return -1; + return false; } media_player_play_start(mp, dst_pt, repeat, start_pos); - return 0; + return true; #else - return -1; + return false; #endif } @@ -1032,7 +1032,7 @@ static int64_t __mp_avio_seek(void *opaque, int64_t offset, int whence) { // call->master_lock held in W -static int media_player_play_blob_id(struct media_player *mp, const str *blob, long long repeat, +static bool media_player_play_blob_id(struct media_player *mp, const str *blob, long long repeat, long long start_pos, long long db_id) { const char *err; @@ -1040,21 +1040,21 @@ static int media_player_play_blob_id(struct media_player *mp, const str *blob, l const rtp_payload_type *dst_pt = media_player_play_init(mp); if (!dst_pt) - return -1; + return false; if (db_id >= 0) { mp->cache_index.type = MP_DB; mp->cache_index.db_id = db_id; if (media_player_cache_get_entry(mp, dst_pt, repeat)) - return 0; + return true; } else { mp->cache_index.type = MP_BLOB; str_init_dup_str(&mp->cache_index.file, blob); if (media_player_cache_get_entry(mp, dst_pt, repeat)) - return 0; + return true; } mp->coder.blob = str_dup(blob); @@ -1089,23 +1089,23 @@ static int media_player_play_blob_id(struct media_player *mp, const str *blob, l media_player_play_start(mp, dst_pt, repeat, start_pos); - return 0; + return true; err: ilog(LOG_ERR, "Failed to start media playback from memory: %s", err); if (av_ret) ilog(LOG_ERR, "Error returned from libav: %s", av_error(av_ret)); - return -1; + return false; } #endif // call->master_lock held in W -int media_player_play_blob(struct media_player *mp, const str *blob, long long repeat, long long start_pos) { +bool media_player_play_blob(struct media_player *mp, const str *blob, long long repeat, long long start_pos) { #ifdef WITH_TRANSCODING return media_player_play_blob_id(mp, blob, repeat, start_pos, -1); #else - return -1; + return false; #endif } @@ -1134,7 +1134,7 @@ err: // call->master_lock held in W -int media_player_play_db(struct media_player *mp, long long id, long long repeat, long long start_pos) { +bool media_player_play_db(struct media_player *mp, long long id, long long repeat, long long start_pos) { const char *err; g_autoptr(char) query = NULL; @@ -1180,7 +1180,7 @@ success:; } str blob = STR_INIT_LEN(row[0], lengths[0]); - int ret = media_player_play_blob_id(mp, &blob, repeat, start_pos, id); + bool ret = media_player_play_blob_id(mp, &blob, repeat, start_pos, id); mysql_free_result(res); @@ -1191,7 +1191,7 @@ err: ilog(LOG_ERR, "Failed to start media playback from database (used query '%s'): %s", query, err); else ilog(LOG_ERR, "Failed to start media playback from database: %s", err); - return -1; + return false; } diff --git a/include/media_player.h b/include/media_player.h index 494d3d91d..7932034b2 100644 --- a/include/media_player.h +++ b/include/media_player.h @@ -104,9 +104,9 @@ struct send_timer { void media_player_new(struct media_player **, struct call_monologue *); -int media_player_play_file(struct media_player *, const str *, long long, long long); -int media_player_play_blob(struct media_player *, const str *, long long, long long); -int media_player_play_db(struct media_player *, long long, long long, long long); +bool media_player_play_file(struct media_player *, const str *, long long, long long); +bool media_player_play_blob(struct media_player *, const str *, long long, long long); +bool media_player_play_db(struct media_player *, long long, long long, long long); long long media_player_stop(struct media_player *); bool media_player_is_active(struct call_monologue *);