Hat es jemand geschafft, einen YUV_420_888-Frame mit RenderScript und der neuen Kamera-API zu erhalten?

Ich verwende RenderScript und Allocation, um YUV_420_888-Frames von der Android Camera2-API zu erhalten, aber sobald ich das Byte [] aus Allocation kopiere, erhalte ich nur die Y-Ebene von den 3 Ebenen, aus denen der Frame besteht, während die U- und V-Ebenen Werte werden im Byte [] auf 0 gesetzt. Ich versuche, das onPreviewframe der vorherigen Kamera-API nachzuahmen, um die App-Verarbeitung der Kamera-Frames durchzuführen. Meine Zuordnung wird wie folgt erstellt:

Type.Builder yuvTypeBuilderIn = new Type.Builder(rs, Element.YUV(rs));
    yuvTypeBuilderIn.setX(dimensions.getWidth());
    yuvTypeBuilderIn.setY(dimensions.getHeight());
    yuvTypeBuilderIn.setYuvFormat(ImageFormat.YUV_420_888);
    allocation = Allocation.createTyped(rs, yuvTypeBuilderIn.create(),
            Allocation.USAGE_IO_INPUT | Allocation.USAGE_SCRIPT);

während mein script so aussieht:

#pragma version(1)
#pragma rs java_package_name(my_package)
#pragma rs_fp_relaxed

rs_allocation my_frame;

Antworten auf die Frage(8)

Ihre Antwort auf die Frage