From 2bb5b8e8a9f988e0fb2f8575e91dd4ed30ddaf16 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Fri, 20 Feb 2015 09:34:36 +0100 Subject: [PATCH] libspark/playback: fix hds streams by selecting a program right now there is no way to specify which program to play, just the first one is selected --- libspark/playback_libeplayer3.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/libspark/playback_libeplayer3.cpp b/libspark/playback_libeplayer3.cpp index bddbb77..a4ac962 100644 --- a/libspark/playback_libeplayer3.cpp +++ b/libspark/playback_libeplayer3.cpp @@ -135,11 +135,11 @@ bool cPlayback::Start(char *filename, unsigned short vpid, int vtype, unsigned s videoDecoder->vdec->Stop(false); adec->Stop(); } else { -#if 0 std::vector keys, values; int selected_program = 0; if (vpid || apid) { ; +#if 0 } else if (player->GetPrograms(keys, values) && (keys.size() > 1) && ProgramSelectionCallback) { const char *key = ProgramSelectionCallback(ProgramSelectionCallbackData, keys, values); if (!key) { @@ -149,18 +149,20 @@ bool cPlayback::Start(char *filename, unsigned short vpid, int vtype, unsigned s selected_program = atoi(key); } else if (keys.size() > 0) selected_program = atoi(keys[0].c_str()); +#else + } else { + player->GetPrograms(keys, values); + if (keys.size() > 0) + selected_program = atoi(keys[0].c_str()); + } +#endif if (!keys.size() || !player->SelectProgram(selected_program)) { if (apid) - SetAPid(apid); + player->SwitchAudio(apid); if (vpid) - SetVPid(vpid); + player->SwitchVideo(vpid); } -#endif - if (apid) - player->SwitchAudio(apid); - if (vpid) - player->SwitchVideo(vpid); pd->playing = true; player->output.Open(); ret = player->Play();