Enable creating mediapipe image c++ packet directly from an Android media image object when its format is RGBA_8888.
PiperOrigin-RevId: 496923491
This commit is contained in:
parent
1341720d6d
commit
714a6e555b
|
@ -15,10 +15,13 @@
|
||||||
package com.google.mediapipe.framework;
|
package com.google.mediapipe.framework;
|
||||||
|
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.PixelFormat;
|
||||||
|
import android.media.Image;
|
||||||
import com.google.mediapipe.framework.image.BitmapExtractor;
|
import com.google.mediapipe.framework.image.BitmapExtractor;
|
||||||
import com.google.mediapipe.framework.image.ByteBufferExtractor;
|
import com.google.mediapipe.framework.image.ByteBufferExtractor;
|
||||||
import com.google.mediapipe.framework.image.MPImage;
|
import com.google.mediapipe.framework.image.MPImage;
|
||||||
import com.google.mediapipe.framework.image.MPImageProperties;
|
import com.google.mediapipe.framework.image.MPImageProperties;
|
||||||
|
import com.google.mediapipe.framework.image.MediaImageExtractor;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
// TODO: use Preconditions in this file.
|
// TODO: use Preconditions in this file.
|
||||||
|
@ -97,7 +100,17 @@ public class AndroidPacketCreator extends PacketCreator {
|
||||||
}
|
}
|
||||||
return Packet.create(nativeCreateRgbaImage(mediapipeGraph.getNativeHandle(), bitmap));
|
return Packet.create(nativeCreateRgbaImage(mediapipeGraph.getNativeHandle(), bitmap));
|
||||||
}
|
}
|
||||||
|
if (properties.getStorageType() == MPImage.STORAGE_TYPE_MEDIA_IMAGE) {
|
||||||
|
Image mediaImage = MediaImageExtractor.extract(image);
|
||||||
|
if (mediaImage.getFormat() != PixelFormat.RGBA_8888) {
|
||||||
|
throw new UnsupportedOperationException("Android media image must use RGBA_8888 config.");
|
||||||
|
}
|
||||||
|
return createImage(
|
||||||
|
mediaImage.getPlanes()[0].getBuffer(),
|
||||||
|
mediaImage.getWidth(),
|
||||||
|
mediaImage.getHeight(),
|
||||||
|
/* numChannels= */ 4);
|
||||||
|
}
|
||||||
// Unsupported type.
|
// Unsupported type.
|
||||||
throw new UnsupportedOperationException(
|
throw new UnsupportedOperationException(
|
||||||
"Unsupported Image container type: " + properties.getStorageType());
|
"Unsupported Image container type: " + properties.getStorageType());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user