Fix configuring of unrecognized level values

If bad or unrecognized or unsupported level values are configured,
it is possible that they get sent to encoder during configuration.
Avoid this and choose an appropriate level basing on encoder config
settings

Bug: 278199885
Test: atest android.mediav2.cts.EncoderProfileLevelTest

Change-Id: I24e3f36487d8f801fa30bdea4c17fb71557f1a95
diff --git a/media/codec2/components/hevc/C2SoftHevcEnc.cpp b/media/codec2/components/hevc/C2SoftHevcEnc.cpp
index 56e6e8a..ec1dd14 100644
--- a/media/codec2/components/hevc/C2SoftHevcEnc.cpp
+++ b/media/codec2/components/hevc/C2SoftHevcEnc.cpp
@@ -341,6 +341,9 @@
         // By default needsUpdate = false in case the supplied level does meet
         // the requirements.
         bool needsUpdate = false;
+        if (!me.F(me.v.level).supportsAtAll(me.v.level)) {
+            needsUpdate = true;
+        }
         for (const LevelLimits &limit : kLimits) {
             if (samples <= limit.samples && samplesPerSec <= limit.samplesPerSec &&
                     bitrate.v.value <= limit.bitrate) {