Representation* BasicCMManager::getRepresentation(Period *period, uint64_t bitrate ) const { std::vector<Group *> groups = period->getGroups(); Representation *best = NULL; std::cout << "Sarching for best representation with bitrate: " << bitrate << std::endl; for(size_t i = 0; i < groups.size(); i++) { std::vector<Representation *> reps = groups.at(i)->getRepresentations(); for( size_t j = 0; j < reps.size(); j++ ) { uint64_t currentBitrate = reps.at(j)->getBandwidth(); assert( currentBitrate != -1 ); if ( best == NULL || ( currentBitrate > best->getBandwidth() && currentBitrate < bitrate ) ) { std::cout << "Found a better Representation (#" << j << ") in group #" << i << std::endl; best = reps.at( j ); } } } return best; }
Representation* IsoffMainManager::getRepresentation (Period *period, uint64_t bitrate, int width, int height) const { if(period == NULL) return NULL; std::vector<AdaptationSet *> adaptationSets = period->getAdaptationSets(); std::vector<Representation *> resMatchReps; for(size_t i = 0; i < adaptationSets.size(); i++) { std::vector<Representation *> reps = adaptationSets.at(i)->getRepresentations(); for( size_t j = 0; j < reps.size(); j++ ) { if(reps.at(j)->getWidth() == width && reps.at(j)->getHeight() == height) resMatchReps.push_back(reps.at(j)); } } if(resMatchReps.size() == 0) return this->getRepresentation(period, bitrate); Representation *best = NULL; for( size_t j = 0; j < resMatchReps.size(); j++ ) { uint64_t currentBitrate = resMatchReps.at(j)->getBandwidth(); if(best == NULL || (currentBitrate > best->getBandwidth() && currentBitrate < bitrate)) { best = resMatchReps.at(j); } } return best; }
Representation* IsoffMainManager::getRepresentation (Period *period, uint64_t bitrate) const { if(period == NULL) return NULL; std::vector<AdaptationSet *> adaptationSets = period->getAdaptationSets(); Representation *best = NULL; for(size_t i = 0; i < adaptationSets.size(); i++) { std::vector<Representation *> reps = adaptationSets.at(i)->getRepresentations(); for( size_t j = 0; j < reps.size(); j++ ) { uint64_t currentBitrate = reps.at(j)->getBandwidth(); if(best == NULL || (currentBitrate > best->getBandwidth() && currentBitrate < bitrate)) { best = reps.at( j ); } } } return best; }