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

Commit f967a548 authored by Ruben Brunk's avatar Ruben Brunk
Browse files

camera2: Plumb DngCreator to native library.

Change-Id: Ic58bf6cf5086808b503460ef8e451fc0d6f1f850
parent 241cdab7
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -13707,16 +13707,17 @@ package android.media {
    ctor public DeniedByServerException(java.lang.String);
  }
  public final class DngCreator {
  public final class DngCreator implements java.lang.AutoCloseable {
    ctor public DngCreator(android.hardware.camera2.CameraCharacteristics, android.hardware.camera2.CaptureResult);
    method public void close();
    method public android.media.DngCreator setDescription(java.lang.String);
    method public android.media.DngCreator setLocation(android.location.Location);
    method public android.media.DngCreator setOrientation(int);
    method public android.media.DngCreator setThumbnail(android.graphics.Bitmap);
    method public android.media.DngCreator setThumbnail(android.media.Image);
    method public void writeByteBuffer(java.io.OutputStream, java.nio.ByteBuffer, int, long) throws java.io.IOException;
    method public void writeByteBuffer(java.io.OutputStream, android.util.Size, java.nio.ByteBuffer, long) throws java.io.IOException;
    method public void writeImage(java.io.OutputStream, android.media.Image) throws java.io.IOException;
    method public void writeInputStream(java.io.OutputStream, java.io.InputStream, int, long) throws java.io.IOException;
    method public void writeInputStream(java.io.OutputStream, android.util.Size, java.io.InputStream, long) throws java.io.IOException;
  }
  public class ExifInterface {
+10 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import java.util.List;
 * through the {@link CameraManager CameraManager}
 * interface in addition to through the CameraDevice interface.</p>
 *
 * <p>{@link CameraCharacteristics} objects are immutable.</p>
 *
 * @see CameraDevice
 * @see CameraManager
 */
@@ -47,6 +49,14 @@ public final class CameraCharacteristics extends CameraMetadata {
        mProperties = properties;
    }

    /**
     * Returns a copy of the underlying {@link CameraMetadataNative}.
     * @hide
     */
    public CameraMetadataNative getNativeCopy() {
        return new CameraMetadataNative(mProperties);
    }

    @Override
    public <T> T get(Key<T> key) {
        return mProperties.get(key);
+10 −0
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ import android.util.Rational;
 * capture. The result also includes additional metadata about the state of the
 * camera device during the capture.</p>
 *
 * <p>{@link CameraCharacteristics} objects are immutable.</p>
 *
 */
public final class CaptureResult extends CameraMetadata {

@@ -58,6 +60,14 @@ public final class CaptureResult extends CameraMetadata {
        mSequenceId = sequenceId;
    }

    /**
     * Returns a copy of the underlying {@link CameraMetadataNative}.
     * @hide
     */
    public CameraMetadataNative getNativeCopy() {
        return new CameraMetadataNative(mResults);
    }

    @Override
    public <T> T get(Key<T> key) {
        return mResults.get(key);
+1 −0
Original line number Diff line number Diff line
@@ -228,6 +228,7 @@ LOCAL_SHARED_LIBRARIES := \
	libz \
	libaudioutils \
	libpdfrenderer \
	libimg_utils \

ifeq ($(USE_OPENGL_RENDERER),true)
	LOCAL_SHARED_LIBRARIES += libhwui
+26 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@
#include "JNIHelp.h"
#include "android_os_Parcel.h"
#include "android_runtime/AndroidRuntime.h"
#include "android_runtime/android_hardware_camera2_CameraMetadata.h"

#include <binder/IServiceManager.h>
#include <camera/CameraMetadata.h>
@@ -57,6 +58,31 @@ struct fields_t {

static fields_t fields;

namespace android {

status_t CameraMetadata_getNativeMetadata(JNIEnv* env, jobject thiz,
        /*out*/CameraMetadata* metadata) {
    if (!thiz) {
        ALOGE("%s: Invalid java metadata object.", __FUNCTION__);
        return BAD_VALUE;
    }

    if (!metadata) {
        ALOGE("%s: Invalid output metadata object.", __FUNCTION__);
        return BAD_VALUE;
    }
    CameraMetadata* nativePtr = reinterpret_cast<CameraMetadata*>(env->GetLongField(thiz,
            fields.metadata_ptr));
    if (nativePtr == NULL) {
        ALOGE("%s: Invalid native pointer in java metadata object.", __FUNCTION__);
        return BAD_VALUE;
    }
    *metadata = *nativePtr;
    return OK;
}

} /*namespace android*/

namespace {
struct Helpers {
    static size_t getTypeSize(uint8_t type) {
Loading