public final class ABGR {

    public static final ABGR INSTANCE = new ABGR();

    private ABGR() {
    }

    public void toARGB(
        ByteBuffer srcABGR, int srcStrideABGR,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.ABGRToARGB(
            srcABGR, srcStrideABGR,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcABGR, int srcStrideABGR,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ABGRToI420(
            srcABGR, srcStrideABGR,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcABGR, int srcStrideABGR,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ABGRToI420(
            srcABGR, srcStrideABGR,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcABGR, int srcStrideABGR,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.ABGRToI420(
            srcABGR, srcStrideABGR,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class ARGB {

    public static final ARGB INSTANCE = new ARGB();

    private ARGB() {
    }

    public void toARGB(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.ARGBCopy(
            srcARGB, srcStrideARGB,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI420(
            srcARGB, srcStrideARGB,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI420(
            srcARGB, srcStrideARGB,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI422(
            srcARGB, srcStrideARGB,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstI422, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI422(
            srcARGB, srcStrideARGB,
            dstI422, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI444(
            srcARGB, srcStrideARGB,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstI444, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI444(
            srcARGB, srcStrideARGB,
            dstI444, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI411(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI411(
            srcARGB, srcStrideARGB,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI411(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstI411, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI411(
            srcARGB, srcStrideARGB,
            dstI411, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI400(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstY, int dstStrideY,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI400(
            srcARGB, srcStrideARGB,
            dstY, dstStrideY,
            width, height);
    }

    public void toNV12(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstUV, int dstStrideUV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToNV12(
            srcARGB, srcStrideARGB,
            dstY, dstStrideY,
            dstUV, dstStrideUV,
            width, height);
    }

    public void toNV12(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstNV12, int dstStrideY, int dstStrideUV,
        int width, int height) {

        RoboticChameleonJNI.ARGBToNV12(
            srcARGB, srcStrideARGB,
            dstNV12, dstStrideY, dstStrideUV,
            width, height);
    }

    public void toNV21(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstVU, int dstStrideVU,
        int width, int height) {

        RoboticChameleonJNI.ARGBToNV21(
            srcARGB, srcStrideARGB,
            dstY, dstStrideY,
            dstVU, dstStrideVU,
            width, height);
    }

    public void toNV21(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstNV21, int dstStrideY, int dstStrideVU,
        int width, int height) {

        RoboticChameleonJNI.ARGBToNV21(
            srcARGB, srcStrideARGB,
            dstNV21, dstStrideY, dstStrideVU,
            width, height);
    }

    public void toYUY2(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstYUY2, int dstStrideYUY2,
        int width, int height) {

        RoboticChameleonJNI.ARGBToYUY2(
            srcARGB, srcStrideARGB,
            dstYUY2, dstStrideYUY2,
            width, height);
    }

    public void toUYVY(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstUYVY, int dstStrideUYVY,
        int width, int height) {

        RoboticChameleonJNI.ARGBToUYVY(
            srcARGB, srcStrideARGB,
            dstUYVY, dstStrideUYVY,
            width, height);
    }

    public void toBGRA(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstBGRA, int dstStrideBGRA,
        int width, int height) {

        RoboticChameleonJNI.BGRAToARGB(
            srcARGB, srcStrideARGB,
            dstBGRA, dstStrideBGRA,
            width, height);
    }

    public void toABGR(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstABGR, int dstStrideABGR,
        int width, int height) {

        RoboticChameleonJNI.ABGRToARGB(
            srcARGB, srcStrideARGB,
            dstABGR, dstStrideABGR,
            width, height);
    }

    public void toRGBA(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstRGBA, int dstStrideRGBA,
        int width, int height) {

        RoboticChameleonJNI.ARGBToRGBA(
            srcARGB, srcStrideARGB,
            dstRGBA, dstStrideRGBA,
            width, height);
    }

    public void toRGB24(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstRGB24, int dstStrideRGB24,
        int width, int height) {

        RoboticChameleonJNI.ARGBToRGB24(
            srcARGB, srcStrideARGB,
            dstRGB24, dstStrideRGB24,
            width, height);
    }

    public void toRAW(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstRAW, int dstStrideRAW,
        int width, int height) {

        RoboticChameleonJNI.ARGBToRAW(
            srcARGB, srcStrideARGB,
            dstRAW, dstStrideRAW,
            width, height);
    }

    public void toRGB565(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstRGB565, int dstStrideRGB565,
        int width, int height) {

        RoboticChameleonJNI.ARGBToRGB565(
            srcARGB, srcStrideARGB,
            dstRGB565, dstStrideRGB565,
            width, height);
    }

    public void toARGB1555(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstARGB1555, int dstStrideARGB1555,
        int width, int height) {

        RoboticChameleonJNI.ARGBToARGB1555(
            srcARGB, srcStrideARGB,
            dstARGB1555, dstStrideARGB1555,
            width, height);
    }

    public void toARGB4444(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstARGB4444, int dstStrideARGB4444,
        int width, int height) {

        RoboticChameleonJNI.ARGBToARGB4444(
            srcARGB, srcStrideARGB,
            dstARGB4444, dstStrideARGB4444,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcARGB, int srcStrideARGB,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.ARGBToI420(
            srcARGB, srcStrideARGB,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class ARGB1555 {

    public static final ARGB1555 INSTANCE = new ARGB1555();

    private ARGB1555() {
    }

    public void toARGB(
        ByteBuffer srcARGB1555, int srcStrideARGB1555,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.ARGB1555ToARGB(
            srcARGB1555, srcStrideARGB1555,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcARGB1555, int srcStrideARGB1555,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGB1555ToI420(
            srcARGB1555, srcStrideARGB1555,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcARGB1555, int srcStrideARGB1555,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGB1555ToI420(
            srcARGB1555, srcStrideARGB1555,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcARGB1555, int srcStrideARGB1555,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.ARGB1555ToI420(
            srcARGB1555, srcStrideARGB1555,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class ARGB4444 {

    public static final ARGB4444 INSTANCE = new ARGB4444();

    private ARGB4444() {
    }

    public void toARGB(
        ByteBuffer srcARGB4444, int srcStrideARGB4444,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.ARGB4444ToARGB(
            srcARGB4444, srcStrideARGB4444,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcARGB4444, int srcStrideARGB4444,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGB4444ToI420(
            srcARGB4444, srcStrideARGB4444,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcARGB4444, int srcStrideARGB4444,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.ARGB4444ToI420(
            srcARGB4444, srcStrideARGB4444,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcARGB4444, int srcStrideARGB4444,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.ARGB4444ToI420(
            srcARGB4444, srcStrideARGB4444,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class BGRA {

    public static final BGRA INSTANCE = new BGRA();

    private BGRA() {
    }

    public void toARGB(
        ByteBuffer srcBGRA, int srcStrideBGRA,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.BGRAToARGB(
            srcBGRA, srcStrideBGRA,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcBGRA, int srcStrideBGRA,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.BGRAToI420(
            srcBGRA, srcStrideBGRA,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcBGRA, int srcStrideBGRA,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.BGRAToI420(
            srcBGRA, srcStrideBGRA,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcBGRA, int srcStrideBGRA,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.BGRAToI420(
            srcBGRA, srcStrideBGRA,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class I400 {

    public static final I400 INSTANCE = new I400();

    private I400() {
    }

    public void toARGB(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I400ToARGB(
            srcY, srcStrideY,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI400(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer dstY, int dstStrideY,
        int width, int height) {

        RoboticChameleonJNI.I400Copy(
            srcY, srcStrideY,
            dstY, dstStrideY,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I400ToI420(
            srcY, srcStrideY,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I400ToI420(
            srcY, srcStrideY,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.I400ToI420(
            srcY, srcStrideY,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class I411 {

    public static final I411 INSTANCE = new I411();

    private I411() {
    }

    public void toARGB(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I411ToARGB(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toARGB(
        ByteBuffer srcI411, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I411ToARGB(
            srcI411, srcStrideY, srcStrideU, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I411ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcI411, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I411ToI420(
            srcI411, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I411ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcI411, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I411ToI420(
            srcI411, srcStrideY, srcStrideU, srcStrideV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.I411ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class I420 {

    public static final I420 INSTANCE = new I420();

    private I420() {
    }

    public void toARGB(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I420ToARGB(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toARGB(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I420ToARGB(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420Copy(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420Copy(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI422(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI422(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI422, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI422(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI422, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI422, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI422(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstI422, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI444(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI444(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI444, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI444(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI444, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI444, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI444(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstI444, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI411(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI411(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI411(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI411(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI411(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI411, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI411(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI411, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI411(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI411, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420ToI411(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstI411, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toNV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstUV, int dstStrideUV,
        int width, int height) {

        RoboticChameleonJNI.I420ToNV12(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstUV, dstStrideUV,
            width, height);
    }

    public void toNV12(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstUV, int dstStrideUV,
        int width, int height) {

        RoboticChameleonJNI.I420ToNV12(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstUV, dstStrideUV,
            width, height);
    }

    public void toNV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstNV12, int dstStrideY, int dstStrideUV,
        int width, int height) {

        RoboticChameleonJNI.I420ToNV12(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstNV12, dstStrideY, dstStrideUV,
            width, height);
    }

    public void toNV12(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstNV12, int dstStrideY, int dstStrideUV,
        int width, int height) {

        RoboticChameleonJNI.I420ToNV12(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstNV12, dstStrideY, dstStrideUV,
            width, height);
    }

    public void toNV21(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstVU, int dstStrideVU,
        int width, int height) {

        RoboticChameleonJNI.I420ToNV21(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstVU, dstStrideVU,
            width, height);
    }

    public void toNV21(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstVU, int dstStrideVU,
        int width, int height) {

        RoboticChameleonJNI.I420ToNV21(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstVU, dstStrideVU,
            width, height);
    }

    public void toNV21(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstNV21, int dstStrideY, int dstStrideVU,
        int width, int height) {

        RoboticChameleonJNI.I420ToNV21(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstNV21, dstStrideY, dstStrideVU,
            width, height);
    }

    public void toNV21(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstNV21, int dstStrideY, int dstStrideVU,
        int width, int height) {

        RoboticChameleonJNI.I420ToNV21(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstNV21, dstStrideY, dstStrideVU,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.I420Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toYUY2(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstYUY2, int dstStrideYUY2,
        int width, int height) {

        RoboticChameleonJNI.I420ToYUY2(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstYUY2, dstStrideYUY2,
            width, height);
    }

    public void toYUY2(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstYUY2, int dstStrideYUY2,
        int width, int height) {

        RoboticChameleonJNI.I420ToYUY2(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstYUY2, dstStrideYUY2,
            width, height);
    }

    public void toUYVY(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstUYVY, int dstStrideUYVY,
        int width, int height) {

        RoboticChameleonJNI.I420ToUYVY(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstUYVY, dstStrideUYVY,
            width, height);
    }

    public void toUYVY(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstUYVY, int dstStrideUYVY,
        int width, int height) {

        RoboticChameleonJNI.I420ToUYVY(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstUYVY, dstStrideUYVY,
            width, height);
    }

    public void toBGRA(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstBGRA, int dstStrideBGRA,
        int width, int height) {

        RoboticChameleonJNI.I420ToBGRA(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstBGRA, dstStrideBGRA,
            width, height);
    }

    public void toBGRA(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstBGRA, int dstStrideBGRA,
        int width, int height) {

        RoboticChameleonJNI.I420ToBGRA(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstBGRA, dstStrideBGRA,
            width, height);
    }

    public void toABGR(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstABGR, int dstStrideABGR,
        int width, int height) {

        RoboticChameleonJNI.I420ToABGR(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstABGR, dstStrideABGR,
            width, height);
    }

    public void toABGR(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstABGR, int dstStrideABGR,
        int width, int height) {

        RoboticChameleonJNI.I420ToABGR(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstABGR, dstStrideABGR,
            width, height);
    }

    public void toRGBA(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstRGBA, int dstStrideRGBA,
        int width, int height) {

        RoboticChameleonJNI.I420ToRGBA(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstRGBA, dstStrideRGBA,
            width, height);
    }

    public void toRGBA(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstRGBA, int dstStrideRGBA,
        int width, int height) {

        RoboticChameleonJNI.I420ToRGBA(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstRGBA, dstStrideRGBA,
            width, height);
    }

    public void toRGB24(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstRGB24, int dstStrideRGB24,
        int width, int height) {

        RoboticChameleonJNI.I420ToRGB24(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstRGB24, dstStrideRGB24,
            width, height);
    }

    public void toRGB24(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstRGB24, int dstStrideRGB24,
        int width, int height) {

        RoboticChameleonJNI.I420ToRGB24(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstRGB24, dstStrideRGB24,
            width, height);
    }

    public void toRAW(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstRAW, int dstStrideRAW,
        int width, int height) {

        RoboticChameleonJNI.I420ToRAW(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstRAW, dstStrideRAW,
            width, height);
    }

    public void toRAW(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstRAW, int dstStrideRAW,
        int width, int height) {

        RoboticChameleonJNI.I420ToRAW(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstRAW, dstStrideRAW,
            width, height);
    }

    public void toRGB565(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstRGB565, int dstStrideRGB565,
        int width, int height) {

        RoboticChameleonJNI.I420ToRGB565(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstRGB565, dstStrideRGB565,
            width, height);
    }

    public void toRGB565(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstRGB565, int dstStrideRGB565,
        int width, int height) {

        RoboticChameleonJNI.I420ToRGB565(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstRGB565, dstStrideRGB565,
            width, height);
    }

    public void toARGB1555(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstARGB1555, int dstStrideARGB1555,
        int width, int height) {

        RoboticChameleonJNI.I420ToARGB1555(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstARGB1555, dstStrideARGB1555,
            width, height);
    }

    public void toARGB1555(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstARGB1555, int dstStrideARGB1555,
        int width, int height) {

        RoboticChameleonJNI.I420ToARGB1555(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstARGB1555, dstStrideARGB1555,
            width, height);
    }

    public void toARGB4444(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstARGB4444, int dstStrideARGB4444,
        int width, int height) {

        RoboticChameleonJNI.I420ToARGB4444(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstARGB4444, dstStrideARGB4444,
            width, height);
    }

    public void toARGB4444(
        ByteBuffer srcI420, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstARGB4444, int dstStrideARGB4444,
        int width, int height) {

        RoboticChameleonJNI.I420ToARGB4444(
            srcI420, srcStrideY, srcStrideU, srcStrideV,
            dstARGB4444, dstStrideARGB4444,
            width, height);
    }

} public final class I422 {

    public static final I422 INSTANCE = new I422();

    private I422() {
    }

    public void toARGB(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I422ToARGB(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toARGB(
        ByteBuffer srcI422, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I422ToARGB(
            srcI422, srcStrideY, srcStrideU, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I422ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcI422, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I422ToI420(
            srcI422, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I422ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcI422, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I422ToI420(
            srcI422, srcStrideY, srcStrideU, srcStrideV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I422Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcI422, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I422Copy(
            srcI422, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI422, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I422Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI422, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI422(
        ByteBuffer srcI422, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI422, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I422Copy(
            srcI422, srcStrideY, srcStrideU, srcStrideV,
            dstI422, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.I422ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class I444 {

    public static final I444 INSTANCE = new I444();

    private I444() {
    }

    public void toARGB(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I444ToARGB(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toARGB(
        ByteBuffer srcI444, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I444ToARGB(
            srcI444, srcStrideY, srcStrideU, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I444ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcI444, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I444ToI420(
            srcI444, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I444ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcI444, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I444ToI420(
            srcI444, srcStrideY, srcStrideU, srcStrideV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I444Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcI444, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I444Copy(
            srcI444, srcStrideY, srcStrideU, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstI444, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I444Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstI444, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI444(
        ByteBuffer srcI444, int srcStrideY, int srcStrideU, int srcStrideV,
        ByteBuffer dstI444, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I444Copy(
            srcI444, srcStrideY, srcStrideU, srcStrideV,
            dstI444, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.I444ToI420(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class M420 {

    public static final M420 INSTANCE = new M420();

    private M420() {
    }

    public void toARGB(
        ByteBuffer srcM420, int srcStrideM420,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.M420ToARGB(
            srcM420, srcStrideM420,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcM420, int srcStrideM420,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.M420ToI420(
            srcM420, srcStrideM420,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcM420, int srcStrideM420,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.M420ToI420(
            srcM420, srcStrideM420,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcM420, int srcStrideM420,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.M420ToI420(
            srcM420, srcStrideM420,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class NV12 {

    public static final NV12 INSTANCE = new NV12();

    private NV12() {
    }

    public void toARGB(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcUV, int srcStrideUV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.NV12ToARGB(
            srcY, srcStrideY,
            srcUV, srcStrideUV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toARGB(
        ByteBuffer srcNV12, int srcStrideY, int srcStrideUV,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.NV12ToARGB(
            srcNV12, srcStrideY, srcStrideUV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcUV, int srcStrideUV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.NV12ToI420(
            srcY, srcStrideY,
            srcUV, srcStrideUV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcNV12, int srcStrideY, int srcStrideUV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.NV12ToI420(
            srcNV12, srcStrideY, srcStrideUV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcUV, int srcStrideUV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.NV12ToI420(
            srcY, srcStrideY,
            srcUV, srcStrideUV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcNV12, int srcStrideY, int srcStrideUV,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.NV12ToI420(
            srcNV12, srcStrideY, srcStrideUV,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toRGB565(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcUV, int srcStrideUV,
        ByteBuffer dstRGB565, int dstStrideRGB565,
        int width, int height) {

        RoboticChameleonJNI.NV12ToRGB565(
            srcY, srcStrideY,
            srcUV, srcStrideUV,
            dstRGB565, dstStrideRGB565,
            width, height);
    }

    public void toRGB565(
        ByteBuffer srcNV12, int srcStrideY, int srcStrideUV,
        ByteBuffer dstRGB565, int dstStrideRGB565,
        int width, int height) {

        RoboticChameleonJNI.NV12ToRGB565(
            srcNV12, srcStrideY, srcStrideUV,
            dstRGB565, dstStrideRGB565,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcUV, int srcStrideUV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.NV12ToI420(
            srcY, srcStrideY,
            srcUV, srcStrideUV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class NV21 {

    public static final NV21 INSTANCE = new NV21();

    private NV21() {
    }

    public void toARGB(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcVU, int srcStrideVU,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.NV21ToARGB(
            srcY, srcStrideY,
            srcVU, srcStrideVU,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toARGB(
        ByteBuffer srcNV21, int srcStrideY, int srcStrideVU,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.NV21ToARGB(
            srcNV21, srcStrideY, srcStrideVU,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcVU, int srcStrideVU,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.NV21ToI420(
            srcY, srcStrideY,
            srcVU, srcStrideVU,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcNV21, int srcStrideY, int srcStrideVU,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.NV21ToI420(
            srcNV21, srcStrideY, srcStrideVU,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcVU, int srcStrideVU,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.NV21ToI420(
            srcY, srcStrideY,
            srcVU, srcStrideVU,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcNV21, int srcStrideY, int srcStrideVU,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.NV21ToI420(
            srcNV21, srcStrideY, srcStrideVU,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toRGB565(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcVU, int srcStrideVU,
        ByteBuffer dstRGB565, int dstStrideRGB565,
        int width, int height) {

        RoboticChameleonJNI.NV21ToRGB565(
            srcY, srcStrideY,
            srcVU, srcStrideVU,
            dstRGB565, dstStrideRGB565,
            width, height);
    }

    public void toRGB565(
        ByteBuffer srcNV21, int srcStrideY, int srcStrideVU,
        ByteBuffer dstRGB565, int dstStrideRGB565,
        int width, int height) {

        RoboticChameleonJNI.NV21ToRGB565(
            srcNV21, srcStrideY, srcStrideVU,
            dstRGB565, dstStrideRGB565,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcUV, int srcStrideUV,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.NV21ToI420(
            srcY, srcStrideY,
            srcUV, srcStrideUV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class Q420 {

    public static final Q420 INSTANCE = new Q420();

    private Q420() {
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcYUY2, int srcStrideYUY2,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.Q420ToI420(
            srcY, srcStrideY,
            srcYUY2, srcStrideYUY2,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcYUY2, int srcStrideYUY2,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.Q420ToI420(
            srcY, srcStrideY,
            srcYUY2, srcStrideYUY2,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcYUY2, int srcStrideYUY2,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.Q420ToI420(
            srcY, srcStrideY,
            srcYUY2, srcStrideYUY2,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class RAW {

    public static final RAW INSTANCE = new RAW();

    private RAW() {
    }

    public void toARGB(
        ByteBuffer srcRAW, int srcStrideRAW,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.RAWToARGB(
            srcRAW, srcStrideRAW,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcRAW, int srcStrideRAW,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.RAWToI420(
            srcRAW, srcStrideRAW,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcRAW, int srcStrideRAW,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.RAWToI420(
            srcRAW, srcStrideRAW,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcRAW, int srcStrideRAW,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.RAWToI420(
            srcRAW, srcStrideRAW,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class RGB24 {

    public static final RGB24 INSTANCE = new RGB24();

    private RGB24() {
    }

    public void toARGB(
        ByteBuffer srcRGB24, int srcStrideRGB24,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.RGB24ToARGB(
            srcRGB24, srcStrideRGB24,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcRGB24, int srcStrideRGB24,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.RGB24ToI420(
            srcRGB24, srcStrideRGB24,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcRGB24, int srcStrideRGB24,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.RGB24ToI420(
            srcRGB24, srcStrideRGB24,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcRGB24, int srcStrideRGB24,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.RGB24ToI420(
            srcRGB24, srcStrideRGB24,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class RGB565 {

    public static final RGB565 INSTANCE = new RGB565();

    private RGB565() {
    }

    public void toARGB(
        ByteBuffer srcRGB565, int srcStrideRGB565,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.RGB565ToARGB(
            srcRGB565, srcStrideRGB565,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcRGB565, int srcStrideRGB565,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.RGB565ToI420(
            srcRGB565, srcStrideRGB565,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcRGB565, int srcStrideRGB565,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.RGB565ToI420(
            srcRGB565, srcStrideRGB565,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcRGB565, int srcStrideRGB565,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.RGB565ToI420(
            srcRGB565, srcStrideRGB565,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class RGBA {

    public static final RGBA INSTANCE = new RGBA();

    private RGBA() {
    }

    public void toARGB(
        ByteBuffer srcRGBA, int srcStrideRGBA,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.RGBAToARGB(
            srcRGBA, srcStrideRGBA,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcRGBA, int srcStrideRGBA,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.RGBAToI420(
            srcRGBA, srcStrideRGBA,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcRGBA, int srcStrideRGBA,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.RGBAToI420(
            srcRGBA, srcStrideRGBA,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcRGBA, int srcStrideRGBA,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.RGBAToI420(
            srcRGBA, srcStrideRGBA,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class UYVY {

    public static final UYVY INSTANCE = new UYVY();

    private UYVY() {
    }

    public void toARGB(
        ByteBuffer srcUYVY, int srcStrideUYVY,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.UYVYToARGB(
            srcUYVY, srcStrideUYVY,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcUYVY, int srcStrideUYVY,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.UYVYToI420(
            srcUYVY, srcStrideUYVY,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcUYVY, int srcStrideUYVY,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.UYVYToI420(
            srcUYVY, srcStrideUYVY,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcUYVY, int srcStrideUYVY,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.UYVYToI420(
            srcUYVY, srcStrideUYVY,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class YUY2 {

    public static final YUY2 INSTANCE = new YUY2();

    private YUY2() {
    }

    public void toARGB(
        ByteBuffer srcYUY2, int srcStrideYUY2,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.YUY2ToARGB(
            srcYUY2, srcStrideYUY2,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcYUY2, int srcStrideYUY2,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.YUY2ToI420(
            srcYUY2, srcStrideYUY2,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toI420(
        ByteBuffer srcYUY2, int srcStrideYUY2,
        ByteBuffer dstI420, int dstStrideY, int dstStrideU, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.YUY2ToI420(
            srcYUY2, srcStrideYUY2,
            dstI420, dstStrideY, dstStrideU, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcYUY2, int srcStrideYUY2,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.YUY2ToI420(
            srcYUY2, srcStrideYUY2,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

} public final class YV12 {

    public static final YV12 INSTANCE = new YV12();

    private YV12() {
    }

    public void toARGB(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer dstARGB, int dstStrideARGB,
        int width, int height) {

        RoboticChameleonJNI.I420ToARGB(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstARGB, dstStrideARGB,
            width, height);
    }

    public void toI420(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstU, int dstStrideU,
        ByteBuffer dstV, int dstStrideV,
        int width, int height) {

        RoboticChameleonJNI.I420Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

    public void toYV12(
        ByteBuffer srcY, int srcStrideY,
        ByteBuffer srcV, int srcStrideV,
        ByteBuffer srcU, int srcStrideU,
        ByteBuffer dstY, int dstStrideY,
        ByteBuffer dstV, int dstStrideV,
        ByteBuffer dstU, int dstStrideU,
        int width, int height) {

        RoboticChameleonJNI.I420Copy(
            srcY, srcStrideY,
            srcU, srcStrideU,
            srcV, srcStrideV,
            dstY, dstStrideY,
            dstU, dstStrideU,
            dstV, dstStrideV,
            width, height);
    }

}
import fi.gekkio.roboticchameleon.formats.ABGR;
import fi.gekkio.roboticchameleon.formats.ARGB;
import fi.gekkio.roboticchameleon.formats.ARGB1555;
import fi.gekkio.roboticchameleon.formats.ARGB4444;
import fi.gekkio.roboticchameleon.formats.BGRA;
import fi.gekkio.roboticchameleon.formats.I400;
import fi.gekkio.roboticchameleon.formats.I411;
import fi.gekkio.roboticchameleon.formats.I420;
import fi.gekkio.roboticchameleon.formats.I422;
import fi.gekkio.roboticchameleon.formats.I444;
import fi.gekkio.roboticchameleon.formats.M420;
import fi.gekkio.roboticchameleon.formats.NV12;
import fi.gekkio.roboticchameleon.formats.NV21;
import fi.gekkio.roboticchameleon.formats.Q420;
import fi.gekkio.roboticchameleon.formats.RAW;
import fi.gekkio.roboticchameleon.formats.RGB24;
import fi.gekkio.roboticchameleon.formats.RGB565;
import fi.gekkio.roboticchameleon.formats.RGBA;
import fi.gekkio.roboticchameleon.formats.UYVY;
import fi.gekkio.roboticchameleon.formats.YUY2;
import fi.gekkio.roboticchameleon.formats.YV12;
package fi.gekkio.roboticchameleon;


public final class RoboticChameleon {

    private RoboticChameleon() {
    }

    public static ABGR fromABGR() {
        return ABGR.INSTANCE;
    }

    public static ARGB fromARGB() {