media: allow 0 video encoder profiles and levels.

Some of the new encoder profile and level values are 0, so allow them
to be set. StagefrightRecorder already supports 0 values, and MediaRecorderTest
also already tests negative value for failure.

Bug: 192317919
Test: atest android.hardware.camera2.cts.RecordingTest\#testBasicEncoderProfilesRecording
Change-Id: I9d286ee84c004b21830d743ad46804be456f2bc6
This commit is contained in:
Lajos Molnar
2021-06-28 22:21:17 -07:00
parent 598c5fd593
commit 0c5a750ca0

View File

@@ -840,7 +840,7 @@ public class MediaRecorder implements AudioRouting,
setVideoSize(profile.getWidth(), profile.getHeight());
setVideoEncodingBitRate(profile.getBitrate());
setVideoEncoder(profile.getCodec());
if (profile.getProfile() > 0) {
if (profile.getProfile() >= 0) {
setVideoEncodingProfileLevel(profile.getProfile(), 0 /* level */);
}
}
@@ -1121,10 +1121,10 @@ public class MediaRecorder implements AudioRouting,
* @throws IllegalArgumentException when an invalid profile or level value is used.
*/
public void setVideoEncodingProfileLevel(int profile, int level) {
if (profile <= 0) {
if (profile < 0) {
throw new IllegalArgumentException("Video encoding profile is not positive");
}
if (level <= 0) {
if (level < 0) {
throw new IllegalArgumentException("Video encoding level is not positive");
}
setParameter("video-param-encoder-profile=" + profile);