if(!broadcast_in_use)
broadcast_in_use = state->GetDecoderType(kDecoders) == broadcast_decoder_;
- // Below condition is used to handle most common scenarios for dual
- // decoding.
+ // Below condition is used to handle the following scenarios for dual
+ // decoding:
// 1: Skip decoder that is already used
// 2: Load ad in background, when broadcast is playing. Skip decoder
// used by broadcast
- // 3: Fast switch between two html players, without broadcast. Use
- // different decoders for each player.
if (state->IsAcquired() ||
- state->GetDecoderType(kDecoders) == broadcast_decoder_ ||
- ((broadcast_decoder_ & kDecoders) == kNoneDecoder &&
- state->GetDecoderType(kDecoders) == last_used_decoder_)) {
+ state->GetDecoderType(kDecoders) == broadcast_decoder_) {
continue;
}
LOG(INFO) << "Previous last used decoder "
} else if ((dec_name & content::kDecoders) == content::kMainDecoder) {
LOG_ID(INFO, GetPlayerId()) << "MAIN decoder is used for this " << this;
player_set_fixed_video_decoder(player_, PLAYER_VIDEO_DECODER_MAIN);
- if ((dec_name & content::kResolutions) == content::kUHDDecoder)
+ // Allocating a UHD decoder precludes dual video decoding on KantSU2e -
+ // request it only if the content resolution is greater than full HD.
+ if ((dec_name & content::kResolutions) == content::kUHDDecoder &&
+ height > kFHDVideoMaxHeight)
player_set_ini_param(player_, "use uhd video decoder = yes");
else
player_set_ini_param(player_, "use uhd video decoder = no");