diff --git a/daemon/media_player.c b/daemon/media_player.c index c189a844f..dbe1b2819 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -678,18 +678,15 @@ static bool media_player_cache_get_entry(struct media_player *mp, lookup.index = mp->cache_index; lookup.dst_pt = *dst_pt; - mutex_lock(&media_player_cache_lock); + LOCK(&media_player_cache_lock); struct media_player_cache_entry *entry = mp->cache_entry = t_hash_table_lookup(media_player_cache, &lookup); - bool ret = true; // entry exists, use cached data if (entry) { media_player_cached_reader_start(mp, codec_set); - goto out; + return true; } - ret = false; // new entry, open decoder, then call media_player_play_start - // initialise object call_memory_arena_release(); @@ -732,12 +729,9 @@ static bool media_player_cache_get_entry(struct media_player *mp, ilog(LOG_DEBUG, "Using kernel packet stream index %i", entry->kernel_idx); } -out: - mutex_unlock(&media_player_cache_lock); - call_memory_arena_set(mp->call); - return ret; + return false; } static void media_player_cache_packet(struct media_player_cache_entry *entry, char *buf, size_t len,