Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 298764fd authored by My Name's avatar My Name
Browse files

Codec2InfoBuilder: list FormatSurface for c2.android.* decoders

Fixes: 221338308
Fixes: 226423619
Test: atest android.mediav2.cts.CodecInfoTest#testColorFormatSupport
Change-Id: Id9429d3f6ad34502bfa8e9ae698f1cd184c70203
parent 657dd4cc
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -281,6 +281,11 @@ void addSupportedColorFormats(
            }
        };

        // The color format is ordered by preference. The intention here is to advertise:
        //   c2.android.* codecs: YUV420s, Surface, <the rest>
        //   all other codecs:    Surface, YUV420s, <the rest>
        // TODO: get this preference via Codec2 API

        // vendor video codecs prefer opaque format
        if (trait.name.find("android") == std::string::npos) {
            addDefaultColorFormat(COLOR_FormatSurface);
@@ -290,9 +295,8 @@ void addSupportedColorFormats(
        addDefaultColorFormat(COLOR_FormatYUV420SemiPlanar);
        addDefaultColorFormat(COLOR_FormatYUV420PackedPlanar);
        addDefaultColorFormat(COLOR_FormatYUV420PackedSemiPlanar);
        // framework video encoders must support surface format, though it is unclear
        // that they will be able to map it if it is opaque
        if (encoder && trait.name.find("android") != std::string::npos) {
        // Android video codecs prefer CPU-readable formats
        if (trait.name.find("android") != std::string::npos) {
            addDefaultColorFormat(COLOR_FormatSurface);
        }
        for (int32_t colorFormat : supportedColorFormats) {