Add max video size workaround for Amlogic decoder.
The Amlogic awesome decoder reduces the video size of interlaced videos by half if the internal configuration isn't force reset with new maximum input size values. The product of these new values must exceed 1920x1088 to force the reset. Issue:#5003 PiperOrigin-RevId: 230206675
This commit is contained in:
parent
fb6154a905
commit
e4eaaedad3
@ -41,6 +41,8 @@
|
||||
* Remove `player` and `isTopLevelSource` parameters from `MediaSource.prepare`.
|
||||
* Change signature of `PlayerNotificationManager.NotificationListener` to better
|
||||
fit service requirements. Remove ability to set a custom stop action.
|
||||
* Add workaround for video quality problems with Amlogic decoders
|
||||
([#5003](https://github.com/google/ExoPlayer/issues/5003)).
|
||||
|
||||
### 2.9.4 ###
|
||||
|
||||
|
@ -1095,6 +1095,10 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
|
||||
throws DecoderQueryException {
|
||||
int maxWidth = format.width;
|
||||
int maxHeight = format.height;
|
||||
if (codecNeedsMaxVideoSizeResetWorkaround(codecInfo.name)) {
|
||||
maxWidth = Math.max(maxWidth, 1920);
|
||||
maxHeight = Math.max(maxHeight, 1089);
|
||||
}
|
||||
int maxInputSize = getMaxInputSize(codecInfo, format);
|
||||
if (streamFormats.length == 1) {
|
||||
// The single entry in streamFormats must correspond to the format for which the codec is
|
||||
@ -1282,6 +1286,18 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
|
||||
return "NVIDIA".equals(Util.MANUFACTURER);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the codec is known to have problems with the configuration for interlaced
|
||||
* content and needs minimum values for the maximum video size to force reset the configuration.
|
||||
*
|
||||
* <p>See https://github.com/google/ExoPlayer/issues/5003.
|
||||
*
|
||||
* @param name The name of the codec.
|
||||
*/
|
||||
private static boolean codecNeedsMaxVideoSizeResetWorkaround(String name) {
|
||||
return "OMX.amlogic.avc.decoder.awesome".equals(name) && Util.SDK_INT <= 25;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO:
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user