vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Thu Nov 27 12:27:11 2014 +0100| [78b1c0325e207d89f891fc2c6e886ce93686bec1] | committer: Francois Cartegnie
stream_filter: dash: return lowest representation if none match bw > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=78b1c0325e207d89f891fc2c6e886ce93686bec1 --- .../dash/adaptationlogic/Representationselectors.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/stream_filter/dash/adaptationlogic/Representationselectors.cpp b/modules/stream_filter/dash/adaptationlogic/Representationselectors.cpp index fae06cb..517209b 100644 --- a/modules/stream_filter/dash/adaptationlogic/Representationselectors.cpp +++ b/modules/stream_filter/dash/adaptationlogic/Representationselectors.cpp @@ -46,7 +46,11 @@ Representation * RepresentationSelector::select(Period *period, uint64_t bitrate std::vector<Representation *> reps = (*adaptIt)->getRepresentations(); Representation *candidate = select(reps, (best)?best->getBandwidth():0, bitrate); if (candidate) + { + if (candidate->getBandwidth() > bitrate) /* none matched, returned lowest */ + return candidate; best = candidate; + } } return best; } @@ -82,10 +86,13 @@ Representation * RepresentationSelector::select(Period *period, uint64_t bitrate Representation * RepresentationSelector::select(std::vector<Representation *>& reps, uint64_t minbitrate, uint64_t maxbitrate) const { - Representation *candidate = NULL; + Representation *candidate = NULL, *lowest = NULL; std::vector<Representation *>::const_iterator repIt; for(repIt=reps.begin(); repIt!=reps.end(); repIt++) { + if ( !lowest || (*repIt)->getBandwidth() < lowest->getBandwidth()) + lowest = *repIt; + if ( (*repIt)->getBandwidth() < maxbitrate && (*repIt)->getBandwidth() > minbitrate ) { @@ -93,5 +100,9 @@ Representation * RepresentationSelector::select(std::vector<Representation *>& r minbitrate = (*repIt)->getBandwidth(); } } + + if (!candidate) + return candidate = lowest; + return candidate; } _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits