MT#55283 honour actual output PT for cache players

closes #2180

Change-Id: I34d25bacf11a50baf77cd800edeed9eb3bc8f6a6
(cherry picked from commit fe8085dfaa)
(cherry picked from commit 777641d29f)
mr26.2.1
Richard Fuchs 1 month ago
parent 0cff00dab8
commit a77702103a

@ -672,7 +672,9 @@ static void media_player_kernel_player_start(struct media_player *mp) {
media_player_kernel_player_start_now(mp);
}
static void media_player_cached_reader_start(struct media_player *mp, str_case_value_ht codec_set) {
static void media_player_cached_reader_start(struct media_player *mp, str_case_value_ht codec_set,
const struct rtp_payload_type *pt)
{
struct media_player_cache_entry *entry = mp->cache_entry;
const rtp_payload_type *dst_pt = &entry->coder.handler->dest_pt;
@ -685,7 +687,7 @@ static void media_player_cached_reader_start(struct media_player *mp, str_case_v
// create dummy codec handler and start timer
mp->coder.handler = codec_handler_make_dummy(&entry->coder.handler->dest_pt, mp->media, codec_set);
mp->coder.handler = codec_handler_make_dummy(pt, mp->media, codec_set);
mp->run_func = media_player_read_decoded_packet;
mp->next_run = rtpe_now;
@ -736,7 +738,7 @@ static bool media_player_cache_get_entry(struct media_player *mp,
if (entry) {
if (entry->coder.handler) {
obj_hold(entry); // ref in mp->cache_entry
media_player_cached_reader_start(mp, codec_set);
media_player_cached_reader_start(mp, codec_set, dst_pt);
return true;
}
// cache entry exists but failed to initialised. we can try again.
@ -930,7 +932,7 @@ static bool media_player_cache_entry_init(struct media_player *mp, const rtp_pay
// use low priority (10 nice)
thread_create_detach_prio(media_player_cache_entry_decoder_thread, obj_get(entry), NULL, 10, "mp decoder");
media_player_cached_reader_start(mp, codec_set);
media_player_cached_reader_start(mp, codec_set, dst_pt);
return true;
}

Loading…
Cancel
Save