BaseRepresentation *FixedRateAdaptationLogic::getNextRepresentation(BaseAdaptationSet *adaptSet, BaseRepresentation *) const { if(adaptSet == NULL) return NULL; RepresentationSelector selector; BaseRepresentation *rep = selector.select(adaptSet, currentBps); if ( rep == NULL ) { rep = selector.select(adaptSet); if ( rep == NULL ) return NULL; } return rep; }
BaseRepresentation *RateBasedAdaptationLogic::getNextRepresentation(BaseAdaptationSet *adaptSet, BaseRepresentation *currep) const { if(adaptSet == NULL) return NULL; vlc_mutex_lock(const_cast<vlc_mutex_t *>(&lock)); size_t availBps = currentBps + ((currep) ? currep->getBandwidth() : 0); vlc_mutex_unlock(const_cast<vlc_mutex_t *>(&lock)); if(availBps > usedBps) availBps -= usedBps; else availBps = 0; RepresentationSelector selector; BaseRepresentation *rep = selector.select(adaptSet, availBps, width, height); if ( rep == NULL ) { rep = selector.select(adaptSet); if ( rep == NULL ) return NULL; } return rep; }
BaseRepresentation *AlwaysBestAdaptationLogic::getNextRepresentation(BaseAdaptationSet *adaptSet, BaseRepresentation *) { RepresentationSelector selector; return selector.select(adaptSet); }