[OnePlus 3 Guides, News, & Discussion] Arnova8G2:
[MENTION=4582979]JoinTheRealms[/MENTION]

Here is the logcat error for the front camera :

E/libgcam (22655): [static_metadata.cc:487]: Check: StaticMetadata:frame_raw_max_{width,height} matches neither the active area nor pixel array size.

Logcat by [MENTION=4487956]S4turno[/MENTION] with OP3, LOS 14.1. here

Logact by [MENTION=4691396]CrashOverride1995[/MENTION] with OP3T, OOS 5. here

Here is the code used by GCam fo hdr+ :

public static StaticMetadata aa(final gdq gdq) {
final int n = 2;
final int n2 = 4;
final int n3 = 1;
final StaticMetadata staticMetadata = new StaticMetadata();
staticMetadata.setMake("Huawei");
staticMetadata.setModel(Build.MODEL);
staticMetadata.setDevice("angler");
final String getVersion = GcamModule.GetVersion();
final String value = String.valueOf("HDR+ ");
final String value2 = String.valueOf(getVersion);
String concat;
if (value2.length() != 0) {
concat = value.concat(value2);
}
else {
concat = new String(value);
}
staticMetadata.setSoftware(concat);
staticMetadata.setDevice_os_version(Build.FINGERPRINT);
int sensor_id;
if ((int)gdq.a(CameraCharacteristics.LENS_FACING) == n3) {
sensor_id = 0;
}
else {
sensor_id = n3;
}
staticMetadata.setSensor_id(sensor_id);
staticMetadata.setHas_flash(Boolean.valueOf(gdq.y()));
final List j = gdq.j();
if (j.size() <= 0) {
throw new AssertionError((Object)"No focal lengths defined!");
}
final FloatVector available_focal_lengths_mm = new FloatVector();
final Iterator<Float> iterator = j.iterator();
while (iterator.hasNext()) {
available_focal_lengths_mm.add(iterator.next());
}
staticMetadata.setAvailable_focal_lengths_mm(available_focal_lengths_mm);
final float[] array = (float[])gdq.a(CameraCharacteristics.LENS_INFO_AVAILABLE_APERTURES);
if (array.length <= 0) {
throw new AssertionError((Object)"No aperture values defined!");
}
final FloatVector available_f_numbers = new FloatVector();
for (int length = array.length, i = 0; i < length; ++i) {
available_f_numbers.add(array[i]);
}
staticMetadata.setAvailable_f_numbers(available_f_numbers);
final BlackLevelPattern blackLevelPattern = (BlackLevelPattern)gdq.a(CameraCharacteristics.SENSOR_BLACK_LEVEL_PATTERN);
final float[] black_levels_bayer = new float[n2];
for (int k = 0; k < n2; ++k) {
float n4 = blackLevelPattern.getOffsetForIndex(k % 2, k / 2);
if (n2 == 2) {
n4 -= 0.75f;
}
black_levels_bayer[k] = n4;
}
staticMetadata.setBlack_levels_bayer(black_levels_bayer);
staticMetadata.setWhite_level((int)gdq.a(CameraCharacteristics.SENSOR_INFO_WHITE_LEVEL));
final Rect[] array2 = (Rect[])gdq.a(CameraCharacteristics.SENSOR_OPTICAL_BLACK_REGIONS);
if (array2 != null) {
final PixelRectVector optically_black_regions = new PixelRectVector();
for (int length2 = array2.length, l = 0; l < length2; ++l) {
final Rect rect = array2[l];
final PixelRect pixelRect = new PixelRect();
pixelRect.setX0(rect.left);
pixelRect.setX1(rect.right);
pixelRect.setY0(rect.top);
pixelRect.setY1(rect.bottom);
optically_black_regions.add(pixelRect);
}
staticMetadata.setOptically_black_regions(optically_black_regions);
}
int bayer_pattern = 0;
switch ((int)gdq.a(CameraCharacteristics.SENSOR_INFO_COLOR_FILTER_ARRANGEMENT)) {
default: {
throw new IllegalArgumentException("staticInfo: unsupported BayerPattern");
}
case 0: {
bayer_pattern = n3;
break;
}
case 1: {
bayer_pattern = 3;
break;
}
case 2: {
bayer_pattern = n2;
break;
}
case 3: {
bayer_pattern = n;
break;
}
}
staticMetadata.setBayer_pattern(bayer_pattern);
final int[] iso_range = new int[n];
iso_range[0] = (int)((Range)gdq.a(CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE)).getLower();
iso_range[n3] = (int)((Range)gdq.a(CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE)).getUpper();
final int intValue = (int)gdq.a(CameraCharacteristics.SENSOR_MAX_ANALOG_SENSITIVITY);
staticMetadata.setIso_range(iso_range);
staticMetadata.setMax_analog_iso(intValue);
final ColorCalibrationVector color_calibration = new ColorCalibrationVector();
final Integer n5 = (Integer)gdq.a(CameraCharacteristics.SENSOR_REFERENCE_ILLUMINANT1);
if (n5 != null) {
final float[] a = a((ColorSpaceTransform)gdq.a(CameraCharacteristics.SENSOR_COLOR_TRANSFORM1));
final float[] a2 = a((ColorSpaceTransform)gdq.a(CameraCharacteristics.SENSOR_CALIBRATION_TRANSFORM1));
final ColorCalibration colorCalibration = new ColorCalibration();
colorCalibration.setIlluminant(n5);
colorCalibration.setXyz_to_model_rgb(a);
colorCalibration.setModel_rgb_to_device_rgb(a2);
color_calibration.add(colorCalibration);
}
final Byte b = (Byte)gdq.a(CameraCharacteristics.SENSOR_REFERENCE_ILLUMINANT2);
if (b != null) {
final float[] a3 = a((ColorSpaceTransform)gdq.a(CameraCharacteristics.SENSOR_COLOR_TRANSFORM2));
final float[] a4 = a((ColorSpaceTransform)gdq.a(CameraCharacteristics.SENSOR_CALIBRATION_TRANSFORM2));
final ColorCalibration colorCalibration2 = new ColorCalibration();
colorCalibration2.setIlluminant(b);
colorCalibration2.setXyz_to_model_rgb(a3);
colorCalibration2.setModel_rgb_to_device_rgb(a4);
color_calibration.add(colorCalibration2);
}
staticMetadata.setColor_calibration(color_calibration);
final Size size = (Size)gdq.b(CameraCharacteristics.SENSOR_INFO_PIXEL_ARRAY_SIZE);
staticMetadata.setPixel_array_width(size.getWidth());
staticMetadata.setPixel_array_height(size.getHeight());
final Rect rect2 = (Rect)gdq.b(CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE);
final PixelRect active_area = new PixelRect();
active_area.setX0(rect2.left);
active_area.setX1(rect2.right);
active_area.setY0(rect2.top);
active_area.setY1(rect2.bottom);
staticMetadata.setActive_area(active_area);
final igq a5 = cns.a(gdq);
staticMetadata.setFrame_raw_max_width(a5.b.a);
staticMetadata.setFrame_raw_max_height(a5.b.b);
final ici a6 = icj.a(gdq.a(35));
staticMetadata.setFrame_yuv_max_width(a6.a);
staticMetadata.setFrame_yuv_max_height(a6.b);
staticMetadata.setRaw_bits_per_pixel(ImageFormat.getBitsPerPixel(a5.a));
final SizeF sizeF = (SizeF)gdq.b(CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE);
staticMetadata.setSensor_physical_width_mm(sizeF.getWidth());
staticMetadata.setSensor_physical_height_mm(sizeF.getHeight());
staticMetadata.setFrame_readout_time_ms(gdq.a(a5.a, a5.b) / 1000000.0f);
return staticMetadata;
}

As you can see the parameter CameraCharacteristics.SENSOR_INFO_PIXEL_ARRAY_SIZE

According to google sources android.sensor.info.pixel Array Size uses STATISTICS_HOT_PIXEL_MAP for number of pixels on the sensor.

If anyone has an idea or if I'm wrong fix me