From 0a53f3467e771aff2f5dee60f5272c33223494d6 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Fri, 27 Feb 2015 20:06:01 +0100 Subject: [PATCH] spark: select highest quality stream for multi-program streams --- libspark/playback_libeplayer3.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/libspark/playback_libeplayer3.cpp b/libspark/playback_libeplayer3.cpp index a4ac962..e9e3863 100644 --- a/libspark/playback_libeplayer3.cpp +++ b/libspark/playback_libeplayer3.cpp @@ -152,8 +152,21 @@ bool cPlayback::Start(char *filename, unsigned short vpid, int vtype, unsigned s #else } else { player->GetPrograms(keys, values); - if (keys.size() > 0) + if (keys.size() > 0) { selected_program = atoi(keys[0].c_str()); + int max_br = INT_MAX; + char *env = getenv("STREAM_MAXBITRATE"); + if (env) + max_br = atoi(env); + for (unsigned i = 0; i < keys.size(); i++) { + lt_info("%s: stream: '%s' value: '%s'\n", + __func__, keys[i].c_str(), values[i].c_str()); + int bitrate = atoi(values[i].c_str()); /* '1234 kbit/s' */ + if (bitrate <= max_br) + selected_program = atoi(keys[i].c_str()); + } + lt_info("%s: selected_program: '%d'\n", __func__, selected_program); + } } #endif