jar包
This commit is contained in:
parent
107a04605b
commit
0eafbf9ff1
12
WORKSPACE
12
WORKSPACE
|
@ -333,11 +333,11 @@ maven_install(
|
||||||
"androidx.fragment:fragment:1.3.4",
|
"androidx.fragment:fragment:1.3.4",
|
||||||
"androidx.annotation:annotation:aar:1.1.0",
|
"androidx.annotation:annotation:aar:1.1.0",
|
||||||
"androidx.appcompat:appcompat:aar:1.1.0-rc01",
|
"androidx.appcompat:appcompat:aar:1.1.0-rc01",
|
||||||
"androidx.camera:camera-core:1.0.0-beta10",
|
"androidx.camera:camera-core:1.0.2",
|
||||||
"androidx.camera:camera-camera2:1.0.0-beta10",
|
"androidx.camera:camera-camera2:1.0.2",
|
||||||
"androidx.camera:camera-lifecycle:1.0.0-beta10",
|
"androidx.camera:camera-lifecycle:1.0.2",
|
||||||
"androidx.constraintlayout:constraintlayout:aar:1.1.3",
|
"androidx.constraintlayout:constraintlayout:aar:1.1.3",
|
||||||
"androidx.core:core:aar:1.1.0-rc03",
|
"androidx.core:core:aar:1.1.0",
|
||||||
"androidx.legacy:legacy-support-v4:aar:1.0.0",
|
"androidx.legacy:legacy-support-v4:aar:1.0.0",
|
||||||
"androidx.recyclerview:recyclerview:aar:1.1.0-beta02",
|
"androidx.recyclerview:recyclerview:aar:1.1.0-beta02",
|
||||||
"androidx.test.espresso:espresso-core:3.1.1",
|
"androidx.test.espresso:espresso-core:3.1.1",
|
||||||
|
@ -355,6 +355,10 @@ maven_install(
|
||||||
"com.google.guava:listenablefuture:1.0",
|
"com.google.guava:listenablefuture:1.0",
|
||||||
"junit:junit:4.12",
|
"junit:junit:4.12",
|
||||||
"org.hamcrest:hamcrest-library:1.3",
|
"org.hamcrest:hamcrest-library:1.3",
|
||||||
|
"androidx.lifecycle:lifecycle-livedata-core:2.3.1",
|
||||||
|
"androidx.lifecycle:lifecycle-livedata:2.3.1",
|
||||||
|
"androidx.lifecycle:lifecycle-common:2.3.1",
|
||||||
|
"androidx.lifecycle:lifecycle-runtime:2.3.1",
|
||||||
],
|
],
|
||||||
repositories = [
|
repositories = [
|
||||||
"https://maven.google.com",
|
"https://maven.google.com",
|
||||||
|
|
12
WORKSPACE-e
12
WORKSPACE-e
|
@ -333,11 +333,11 @@ maven_install(
|
||||||
"androidx.fragment:fragment:1.3.4",
|
"androidx.fragment:fragment:1.3.4",
|
||||||
"androidx.annotation:annotation:aar:1.1.0",
|
"androidx.annotation:annotation:aar:1.1.0",
|
||||||
"androidx.appcompat:appcompat:aar:1.1.0-rc01",
|
"androidx.appcompat:appcompat:aar:1.1.0-rc01",
|
||||||
"androidx.camera:camera-core:1.0.0-beta10",
|
"androidx.camera:camera-core:1.0.2",
|
||||||
"androidx.camera:camera-camera2:1.0.0-beta10",
|
"androidx.camera:camera-camera2:1.0.2",
|
||||||
"androidx.camera:camera-lifecycle:1.0.0-beta10",
|
"androidx.camera:camera-lifecycle:1.0.2",
|
||||||
"androidx.constraintlayout:constraintlayout:aar:1.1.3",
|
"androidx.constraintlayout:constraintlayout:aar:1.1.3",
|
||||||
"androidx.core:core:aar:1.1.0-rc03",
|
"androidx.core:core:aar:1.1.0",
|
||||||
"androidx.legacy:legacy-support-v4:aar:1.0.0",
|
"androidx.legacy:legacy-support-v4:aar:1.0.0",
|
||||||
"androidx.recyclerview:recyclerview:aar:1.1.0-beta02",
|
"androidx.recyclerview:recyclerview:aar:1.1.0-beta02",
|
||||||
"androidx.test.espresso:espresso-core:3.1.1",
|
"androidx.test.espresso:espresso-core:3.1.1",
|
||||||
|
@ -355,6 +355,10 @@ maven_install(
|
||||||
"com.google.guava:listenablefuture:1.0",
|
"com.google.guava:listenablefuture:1.0",
|
||||||
"junit:junit:4.12",
|
"junit:junit:4.12",
|
||||||
"org.hamcrest:hamcrest-library:1.3",
|
"org.hamcrest:hamcrest-library:1.3",
|
||||||
|
"androidx.lifecycle:lifecycle-livedata-core:2.3.1",
|
||||||
|
"androidx.lifecycle:lifecycle-livedata:2.3.1",
|
||||||
|
"androidx.lifecycle:lifecycle-common:2.3.1",
|
||||||
|
"androidx.lifecycle:lifecycle-runtime:2.3.1",
|
||||||
],
|
],
|
||||||
repositories = [
|
repositories = [
|
||||||
"https://maven.google.com",
|
"https://maven.google.com",
|
||||||
|
|
|
@ -35,7 +35,6 @@ import com.google.mediapipe.solutions.facedetection.FaceDetection;
|
||||||
import com.google.mediapipe.solutions.facedetection.FaceDetectionOptions;
|
import com.google.mediapipe.solutions.facedetection.FaceDetectionOptions;
|
||||||
import com.google.mediapipe.solutions.facedetection.FaceDetectionResult;
|
import com.google.mediapipe.solutions.facedetection.FaceDetectionResult;
|
||||||
import com.google.mediapipe.solutions.facedetection.FaceKeypoint;
|
import com.google.mediapipe.solutions.facedetection.FaceKeypoint;
|
||||||
import com.google.mediapipe.formats.proto.LocationDataProto.LocationData.RelativeKeypoint;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
package="com.quark.quamera">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
|
||||||
|
<uses-sdk tools:overrideLibrary="androidx.camera.core,androidx.camera.camera2" />
|
||||||
|
</manifest>
|
|
@ -32,6 +32,15 @@ android_library(
|
||||||
srcs = glob(
|
srcs = glob(
|
||||||
["**/*.java"],
|
["**/*.java"],
|
||||||
),
|
),
|
||||||
|
assets = [
|
||||||
|
"//mediapipe/render/android/camera/java/com/ola/olamera:rbga_2_yuv_frag.frag",
|
||||||
|
"//mediapipe/render/android/camera/java/com/ola/olamera:rgba_2_yuv_vertex.vert",
|
||||||
|
],
|
||||||
|
assets_dir = "",
|
||||||
|
# resource_files = glob(["res/**"]),
|
||||||
|
javacopts = ["-Acom.google.auto.value.AutoBuilderIsUnstable"],
|
||||||
|
manifest = ":AndroidManifest.xml",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"@maven//:com_google_guava_guava",
|
"@maven//:com_google_guava_guava",
|
||||||
"//third_party:androidx_annotation",
|
"//third_party:androidx_annotation",
|
||||||
|
@ -39,6 +48,11 @@ android_library(
|
||||||
"//third_party:camerax_camera2",
|
"//third_party:camerax_camera2",
|
||||||
"//third_party:camerax_core",
|
"//third_party:camerax_core",
|
||||||
"//third_party:camerax_lifecycle",
|
"//third_party:camerax_lifecycle",
|
||||||
"@maven//:androidx_exifinterface_exifinterface",
|
"//third_party:lifecycle_livedata",
|
||||||
|
"//third_party:lifecycle_livedata_core",
|
||||||
|
"//third_party:androidx_core",
|
||||||
|
"//third_party:androidx_lifecycle_common",
|
||||||
|
"//third_party:androidx_lifecycle_runtime",
|
||||||
|
"@maven//:androidx_exifinterface_exifinterface",
|
||||||
],
|
],
|
||||||
)
|
)
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera;
|
package com.ola.olamera.camera;
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -9,12 +9,12 @@ import android.util.Pair;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.CameraLifeManager;
|
import com.ola.olamera.camera.camera.CameraLifeManager;
|
||||||
import com.quark.quamera.camera.camera.CameraRepository;
|
import com.ola.olamera.camera.camera.CameraRepository;
|
||||||
import com.quark.quamera.camera.concurrent.CameraExecutors;
|
import com.ola.olamera.camera.concurrent.CameraExecutors;
|
||||||
import com.quark.quamera.camera.session.SessionConfig;
|
import com.ola.olamera.camera.session.SessionConfig;
|
||||||
import com.quark.quamera.camera.session.UserCameraSession;
|
import com.ola.olamera.camera.session.UserCameraSession;
|
||||||
import com.quark.quamera.util.Preconditions;
|
import com.ola.olamera.util.Preconditions;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.anotaion;
|
package com.ola.olamera.camera.anotaion;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2019 The Android Open Source Project
|
* Copyright 2019 The Android Open Source Project
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.hardware.camera2.CameraAccessException;
|
import android.hardware.camera2.CameraAccessException;
|
||||||
|
@ -16,18 +16,18 @@ import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
import com.quark.quamera.camera.anotaion.ExecutedBy;
|
import com.ola.olamera.camera.anotaion.ExecutedBy;
|
||||||
import com.quark.quamera.camera.concurrent.HandlerScheduledExecutorService;
|
import com.ola.olamera.camera.concurrent.HandlerScheduledExecutorService;
|
||||||
import com.quark.quamera.camera.sensor.DisplayOrientationDetector;
|
import com.ola.olamera.camera.sensor.DisplayOrientationDetector;
|
||||||
import com.quark.quamera.camera.session.ImageCapture;
|
import com.ola.olamera.camera.session.ImageCapture;
|
||||||
import com.quark.quamera.camera.session.InnerImageCaptureCallback;
|
import com.ola.olamera.camera.session.InnerImageCaptureCallback;
|
||||||
import com.quark.quamera.camera.session.RepeatCaptureRequestConfig;
|
import com.ola.olamera.camera.session.RepeatCaptureRequestConfig;
|
||||||
import com.quark.quamera.camera.session.SessionConfig;
|
import com.ola.olamera.camera.session.SessionConfig;
|
||||||
import com.quark.quamera.camera.session.SingleCaptureConfig;
|
import com.ola.olamera.camera.session.SingleCaptureConfig;
|
||||||
import com.quark.quamera.camera.session.SyncCaptureSession;
|
import com.ola.olamera.camera.session.SyncCaptureSession;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.CameraShould;
|
import com.ola.olamera.util.CameraShould;
|
||||||
import com.quark.quamera.util.Preconditions;
|
import com.ola.olamera.util.Preconditions;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
|
|
||||||
|
|
||||||
import android.hardware.camera2.CameraCharacteristics;
|
import android.hardware.camera2.CameraCharacteristics;
|
||||||
|
@ -9,10 +9,10 @@ import android.os.Build;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.camera.session.CameraCaptureCallback;
|
import com.ola.olamera.camera.session.CameraCaptureCallback;
|
||||||
import com.quark.quamera.camera.session.RepeatCaptureRequestConfig;
|
import com.ola.olamera.camera.session.RepeatCaptureRequestConfig;
|
||||||
import com.quark.quamera.camera.session.config.CameraConfigUtils;
|
import com.ola.olamera.camera.session.config.CameraConfigUtils;
|
||||||
import com.quark.quamera.util.ArrayUtil;
|
import com.ola.olamera.util.ArrayUtil;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
|
|
||||||
|
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
@ -9,12 +9,12 @@ import android.util.Range;
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
import android.util.SizeF;
|
import android.util.SizeF;
|
||||||
|
|
||||||
import com.quark.quamera.camera.sensor.DisplayOrientationDetector;
|
import com.ola.olamera.camera.sensor.DisplayOrientationDetector;
|
||||||
import com.quark.quamera.camera.sensor.ImageRotationHelper;
|
import com.ola.olamera.camera.sensor.ImageRotationHelper;
|
||||||
import com.quark.quamera.camera.session.CameraSelector;
|
import com.ola.olamera.camera.session.CameraSelector;
|
||||||
import com.quark.quamera.util.CameraInit;
|
import com.ola.olamera.util.CameraInit;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.CameraShould;
|
import com.ola.olamera.util.CameraShould;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
|
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
|
@ -1,20 +1,20 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
|
|
||||||
import com.quark.quamera.camera.preview.IPreviewView;
|
import com.ola.olamera.camera.preview.IPreviewView;
|
||||||
import com.quark.quamera.camera.sensor.DisplayOrientationDetector;
|
import com.ola.olamera.camera.sensor.DisplayOrientationDetector;
|
||||||
import com.quark.quamera.camera.sensor.ImageRotationHelper;
|
import com.ola.olamera.camera.sensor.ImageRotationHelper;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureCallback;
|
import com.ola.olamera.camera.session.CameraCaptureCallback;
|
||||||
import com.quark.quamera.camera.session.CameraSelector;
|
import com.ola.olamera.camera.session.CameraSelector;
|
||||||
import com.quark.quamera.camera.session.ImageCapture;
|
import com.ola.olamera.camera.session.ImageCapture;
|
||||||
import com.quark.quamera.camera.session.SessionConfig;
|
import com.ola.olamera.camera.session.SessionConfig;
|
||||||
import com.quark.quamera.camera.session.SingleCaptureConfig;
|
import com.ola.olamera.camera.session.SingleCaptureConfig;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.Preconditions;
|
import com.ola.olamera.util.Preconditions;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
@ -26,7 +26,6 @@ import androidx.lifecycle.Observer;
|
||||||
|
|
||||||
//保证一次只有一个相机
|
//保证一次只有一个相机
|
||||||
//所有相机的生命管理
|
//所有相机的生命管理
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
|
||||||
public class CameraLifeManager {
|
public class CameraLifeManager {
|
||||||
private Camera2CameraImpl mCurrentCamera;
|
private Camera2CameraImpl mCurrentCamera;
|
||||||
private ImageCapture mImageCapture;
|
private ImageCapture mImageCapture;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/3/29
|
* Creation : 2021/3/29
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/3/29
|
* Creation : 2021/3/29
|
||||||
|
@ -11,16 +11,12 @@ import android.hardware.camera2.CameraAccessException;
|
||||||
import android.hardware.camera2.CameraCharacteristics;
|
import android.hardware.camera2.CameraCharacteristics;
|
||||||
import android.hardware.camera2.CameraDevice;
|
import android.hardware.camera2.CameraDevice;
|
||||||
import android.hardware.camera2.CameraManager;
|
import android.hardware.camera2.CameraManager;
|
||||||
import android.os.Build;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
|
||||||
import androidx.core.util.Preconditions;
|
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
|
||||||
class CameraManagerCompatBaseImpl implements CameraManagerCompatImpl {
|
class CameraManagerCompatBaseImpl implements CameraManagerCompatImpl {
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/3/29
|
* Creation : 2021/3/29
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-23
|
* Creation : 20-11-23
|
||||||
|
@ -16,11 +16,11 @@ import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
|
|
||||||
import com.quark.quamera.camera.anotaion.ExecutedBy;
|
import com.ola.olamera.camera.anotaion.ExecutedBy;
|
||||||
import com.quark.quamera.camera.session.CameraSelector;
|
import com.ola.olamera.camera.session.CameraSelector;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.CameraShould;
|
import com.ola.olamera.util.CameraShould;
|
||||||
import com.quark.quamera.util.Preconditions;
|
import com.ola.olamera.util.Preconditions;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-18
|
* Creation : 20-11-18
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/6/6
|
* Creation : 2021/6/6
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-23
|
* Creation : 20-11-23
|
||||||
|
@ -15,12 +15,12 @@ import android.util.Rational;
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
import android.view.SurfaceHolder;
|
import android.view.SurfaceHolder;
|
||||||
|
|
||||||
import com.quark.quamera.camera.imagereader.DeferrableImageReader;
|
import com.ola.olamera.camera.imagereader.DeferrableImageReader;
|
||||||
import com.quark.quamera.camera.sensor.ImageRotationHelper;
|
import com.ola.olamera.camera.sensor.ImageRotationHelper;
|
||||||
import com.quark.quamera.camera.session.ImageCapture;
|
import com.ola.olamera.camera.session.ImageCapture;
|
||||||
import com.quark.quamera.camera.session.PreviewConfig;
|
import com.ola.olamera.camera.session.PreviewConfig;
|
||||||
import com.quark.quamera.util.CameraInit;
|
import com.ola.olamera.util.CameraInit;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
|
|
||||||
|
|
||||||
public interface ICameraErrorListener {
|
public interface ICameraErrorListener {
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.camera;
|
package com.ola.olamera.camera.camera;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/6/6
|
* Creation : 2021/6/6
|
|
@ -1,6 +1,6 @@
|
||||||
package com.quark.quamera.camera.concurrent;
|
package com.ola.olamera.camera.concurrent;
|
||||||
|
|
||||||
import com.quark.quamera.util.SequentialExecutor;
|
import com.ola.olamera.util.SequentialExecutor;
|
||||||
|
|
||||||
public class CameraExecutors {
|
public class CameraExecutors {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.concurrent;
|
package com.ola.olamera.camera.concurrent;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/2/8
|
* Creation : 2021/2/8
|
||||||
|
@ -11,7 +11,7 @@ import android.os.Handler;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
|
||||||
import com.quark.quamera.util.CameraShould;
|
import com.ola.olamera.util.CameraShould;
|
||||||
|
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
import java.util.concurrent.Delayed;
|
import java.util.concurrent.Delayed;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.concurrent;
|
package com.ola.olamera.camera.concurrent;
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.imagereader;
|
package com.ola.olamera.camera.imagereader;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/4/22
|
* Creation : 2021/4/22
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.imagereader;
|
package com.ola.olamera.camera.imagereader;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-26
|
* Creation : 20-11-26
|
||||||
|
@ -9,9 +9,9 @@ import android.media.ImageReader;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.CameraSurfaceHelper;
|
import com.ola.olamera.camera.camera.CameraSurfaceHelper;
|
||||||
import com.quark.quamera.camera.sensor.ImageRotationHelper;
|
import com.ola.olamera.camera.sensor.ImageRotationHelper;
|
||||||
import com.quark.quamera.util.Preconditions;
|
import com.ola.olamera.util.Preconditions;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.imagereader;
|
package com.ola.olamera.camera.imagereader;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-12-2
|
* Creation : 20-12-2
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.imagereader;
|
package com.ola.olamera.camera.imagereader;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-12-2
|
* Creation : 20-12-2
|
||||||
|
@ -13,8 +13,8 @@ import androidx.annotation.GuardedBy;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.camera.sensor.ImageRotationHelper;
|
import com.ola.olamera.camera.sensor.ImageRotationHelper;
|
||||||
import com.quark.quamera.util.Preconditions;
|
import com.ola.olamera.util.Preconditions;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
@ -1,10 +1,10 @@
|
||||||
package com.quark.quamera.camera.preview;
|
package com.ola.olamera.camera.preview;
|
||||||
|
|
||||||
|
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2CameraImpl;
|
import com.ola.olamera.camera.camera.Camera2CameraImpl;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureComboCallback;
|
import com.ola.olamera.camera.session.CameraCaptureComboCallback;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.camera.core.Preview;
|
import androidx.camera.core.Preview;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.preview;
|
package com.ola.olamera.camera.preview;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/7/12
|
* Creation : 2021/7/12
|
||||||
|
@ -12,7 +12,7 @@ import android.util.Size;
|
||||||
import androidx.camera.core.FocusMeteringResult;
|
import androidx.camera.core.FocusMeteringResult;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import com.quark.quamera.render.photo.SnapShotCommand;
|
import com.ola.olamera.render.photo.SnapShotCommand;
|
||||||
|
|
||||||
public interface IPreviewView {
|
public interface IPreviewView {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.preview;
|
package com.ola.olamera.camera.preview;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2020/4/15
|
* Creation : 2020/4/15
|
||||||
|
@ -9,7 +9,7 @@ import android.graphics.SurfaceTexture;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
|
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.preview;
|
package com.ola.olamera.camera.preview;
|
||||||
|
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
import android.view.SurfaceView;
|
import android.view.SurfaceView;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.preview;
|
package com.ola.olamera.camera.preview;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
|
@ -29,9 +29,9 @@ import androidx.annotation.IntRange;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.CameraShould;
|
import com.ola.olamera.util.CameraShould;
|
||||||
import com.quark.quamera.util.ImageUtils;
|
import com.ola.olamera.util.ImageUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility methods for calculating viewports.
|
* Utility methods for calculating viewports.
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.sensor;
|
package com.ola.olamera.camera.sensor;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
|
@ -22,7 +22,7 @@ import android.view.Surface;
|
||||||
import androidx.annotation.RestrictTo;
|
import androidx.annotation.RestrictTo;
|
||||||
import androidx.annotation.RestrictTo.Scope;
|
import androidx.annotation.RestrictTo.Scope;
|
||||||
|
|
||||||
import com.quark.quamera.camera.session.CameraSelector;
|
import com.ola.olamera.camera.session.CameraSelector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains utility methods related to camera orientation.
|
* Contains utility methods related to camera orientation.
|
|
@ -1,12 +1,12 @@
|
||||||
package com.quark.quamera.camera.sensor;
|
package com.ola.olamera.camera.sensor;
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.view.OrientationEventListener;
|
import android.view.OrientationEventListener;
|
||||||
|
|
||||||
import com.quark.quamera.util.CameraInit;
|
import com.ola.olamera.util.CameraInit;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.CollectionUtil;
|
import com.ola.olamera.util.CollectionUtil;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.sensor;
|
package com.ola.olamera.camera.sensor;
|
||||||
|
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.sensor;
|
package com.ola.olamera.camera.sensor;
|
||||||
|
|
||||||
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
@ -6,8 +6,8 @@ import android.os.Build;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2Info;
|
import com.ola.olamera.camera.camera.Camera2Info;
|
||||||
import com.quark.quamera.camera.session.CameraSelector;
|
import com.ola.olamera.camera.session.CameraSelector;
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import android.hardware.camera2.CaptureResult;
|
import android.hardware.camera2.CaptureResult;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
@ -24,11 +24,11 @@ import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.camera.session.CameraCaptureMetaData.AeState;
|
import com.ola.olamera.camera.session.CameraCaptureMetaData.AeState;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureMetaData.AfMode;
|
import com.ola.olamera.camera.session.CameraCaptureMetaData.AfMode;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureMetaData.AfState;
|
import com.ola.olamera.camera.session.CameraCaptureMetaData.AfState;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureMetaData.AwbState;
|
import com.ola.olamera.camera.session.CameraCaptureMetaData.AwbState;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureMetaData.FlashState;
|
import com.ola.olamera.camera.session.CameraCaptureMetaData.FlashState;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The camera2 implementation for the capture result of a single image capture.
|
* The camera2 implementation for the capture result of a single image capture.
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-12-19
|
* Creation : 20-12-19
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/5/26
|
* Creation : 2021/5/26
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import androidx.annotation.RestrictTo;
|
import androidx.annotation.RestrictTo;
|
||||||
import androidx.annotation.RestrictTo.Scope;
|
import androidx.annotation.RestrictTo.Scope;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import androidx.annotation.RestrictTo;
|
import androidx.annotation.RestrictTo;
|
||||||
import androidx.annotation.RestrictTo.Scope;
|
import androidx.annotation.RestrictTo.Scope;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import android.hardware.camera2.CaptureResult;
|
import android.hardware.camera2.CaptureResult;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-18
|
* Creation : 20-11-18
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import android.hardware.camera2.CameraCaptureSession;
|
import android.hardware.camera2.CameraCaptureSession;
|
||||||
import android.hardware.camera2.CaptureFailure;
|
import android.hardware.camera2.CaptureFailure;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import android.hardware.camera2.CameraCaptureSession;
|
import android.hardware.camera2.CameraCaptureSession;
|
||||||
import android.hardware.camera2.CaptureFailure;
|
import android.hardware.camera2.CaptureFailure;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
|
|
||||||
import android.hardware.camera2.CameraCaptureSession;
|
import android.hardware.camera2.CameraCaptureSession;
|
||||||
|
@ -12,8 +12,8 @@ import android.view.Surface;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2CameraImpl;
|
import com.ola.olamera.camera.camera.Camera2CameraImpl;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||||
public class CaptureControlCallback extends CameraCaptureSession.CaptureCallback {
|
public class CaptureControlCallback extends CameraCaptureSession.CaptureCallback {
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import android.hardware.camera2.CameraCaptureSession;
|
import android.hardware.camera2.CameraCaptureSession;
|
||||||
import android.hardware.camera2.CaptureFailure;
|
import android.hardware.camera2.CaptureFailure;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-18
|
* Creation : 20-11-18
|
|
@ -1,6 +1,6 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
import com.quark.quamera.camera.preview.SurfaceTextureWrapper;
|
import com.ola.olamera.camera.preview.SurfaceTextureWrapper;
|
||||||
|
|
||||||
public abstract class ISurfaceUpdateListener extends CameraCaptureCallback {
|
public abstract class ISurfaceUpdateListener extends CameraCaptureCallback {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-18
|
* Creation : 20-11-18
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/4/19
|
* Creation : 2021/4/19
|
||||||
|
@ -16,15 +16,15 @@ import android.os.Build;
|
||||||
import android.util.LayoutDirection;
|
import android.util.LayoutDirection;
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2CameraImpl;
|
import com.ola.olamera.camera.camera.Camera2CameraImpl;
|
||||||
import com.quark.quamera.camera.camera.Camera2Info;
|
import com.ola.olamera.camera.camera.Camera2Info;
|
||||||
import com.quark.quamera.camera.imagereader.DeferrableImageReader;
|
import com.ola.olamera.camera.imagereader.DeferrableImageReader;
|
||||||
import com.quark.quamera.camera.preview.IPreviewView;
|
import com.ola.olamera.camera.preview.IPreviewView;
|
||||||
import com.quark.quamera.camera.preview.ViewPorts;
|
import com.ola.olamera.camera.preview.ViewPorts;
|
||||||
import com.quark.quamera.camera.session.config.CameraConfigUtils;
|
import com.ola.olamera.camera.session.config.CameraConfigUtils;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.ImageUtils;
|
import com.ola.olamera.util.ImageUtils;
|
||||||
import com.quark.quamera.util.Should;
|
import com.ola.olamera.util.Should;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
@ -38,8 +38,8 @@ import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.exifinterface.media.ExifInterface;
|
import androidx.exifinterface.media.ExifInterface;
|
||||||
|
|
||||||
import static com.quark.quamera.util.ImageUtils.min;
|
import static com.ola.olamera.util.ImageUtils.min;
|
||||||
import static com.quark.quamera.util.ImageUtils.sizeToVertexes;
|
import static com.ola.olamera.util.ImageUtils.sizeToVertexes;
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||||
public class ImageCapture {
|
public class ImageCapture {
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/7/13
|
* Creation : 2021/7/13
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
|
|
||||||
import android.hardware.camera2.CameraCharacteristics;
|
import android.hardware.camera2.CameraCharacteristics;
|
||||||
|
@ -10,11 +10,11 @@ import android.util.Range;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2Info;
|
import com.ola.olamera.camera.camera.Camera2Info;
|
||||||
import com.quark.quamera.camera.camera.CameraSurfaceHelper;
|
import com.ola.olamera.camera.camera.CameraSurfaceHelper;
|
||||||
import com.quark.quamera.camera.imagereader.DeferrableImageReader;
|
import com.ola.olamera.camera.imagereader.DeferrableImageReader;
|
||||||
import com.quark.quamera.camera.preview.IPreviewView;
|
import com.ola.olamera.camera.preview.IPreviewView;
|
||||||
import com.quark.quamera.camera.session.config.CameraConfigUtils;
|
import com.ola.olamera.camera.session.config.CameraConfigUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-12-19
|
* Creation : 20-12-19
|
||||||
|
@ -10,7 +10,7 @@ import android.hardware.camera2.CaptureRequest;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2Info;
|
import com.ola.olamera.camera.camera.Camera2Info;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
@ -6,9 +6,9 @@ import android.os.Looper;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.CameraErrorListenerHandlerWrapper;
|
import com.ola.olamera.camera.camera.CameraErrorListenerHandlerWrapper;
|
||||||
import com.quark.quamera.camera.camera.ICameraErrorListener;
|
import com.ola.olamera.camera.camera.ICameraErrorListener;
|
||||||
import com.quark.quamera.camera.session.config.CameraSelectConfig;
|
import com.ola.olamera.camera.session.config.CameraSelectConfig;
|
||||||
|
|
||||||
|
|
||||||
public class SessionConfig {
|
public class SessionConfig {
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/6/18
|
* Creation : 2021/6/18
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-23
|
* Creation : 20-11-23
|
||||||
|
@ -16,14 +16,14 @@ import android.os.Handler;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
|
|
||||||
import com.quark.quamera.camera.anotaion.ExecutedBy;
|
import com.ola.olamera.camera.anotaion.ExecutedBy;
|
||||||
import com.quark.quamera.camera.camera.Camera2CameraImpl;
|
import com.ola.olamera.camera.camera.Camera2CameraImpl;
|
||||||
import com.quark.quamera.camera.camera.CameraState;
|
import com.ola.olamera.camera.camera.CameraState;
|
||||||
import com.quark.quamera.camera.imagereader.DeferrableImageReader;
|
import com.ola.olamera.camera.imagereader.DeferrableImageReader;
|
||||||
import com.quark.quamera.camera.preview.IPreviewSurfaceProvider;
|
import com.ola.olamera.camera.preview.IPreviewSurfaceProvider;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.CameraShould;
|
import com.ola.olamera.util.CameraShould;
|
||||||
import com.quark.quamera.util.TestOnly;
|
import com.ola.olamera.util.TestOnly;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -126,150 +126,156 @@ public class SyncCaptureSession {
|
||||||
private final CaptureControlCallback mCaptureControlCallback = new CaptureControlCallback();
|
private final CaptureControlCallback mCaptureControlCallback = new CaptureControlCallback();
|
||||||
|
|
||||||
private void openCaptureSession(@NonNull CameraDevice cameraDevice) {
|
private void openCaptureSession(@NonNull CameraDevice cameraDevice) {
|
||||||
if (mSessionConfig == null) {
|
synchronized (mStateLock) {
|
||||||
return;
|
if (mSessionConfig == null) {
|
||||||
}
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
PreviewConfig previewConfig = mSessionConfig.getPreviewConfig();
|
PreviewConfig previewConfig = mSessionConfig.getPreviewConfig();
|
||||||
|
|
||||||
IPreviewSurfaceProvider.SurfaceRequest request = new IPreviewSurfaceProvider.SurfaceRequest();
|
IPreviewSurfaceProvider.SurfaceRequest request = new IPreviewSurfaceProvider.SurfaceRequest();
|
||||||
request.width = previewConfig.getActualWidth();
|
request.width = previewConfig.getActualWidth();
|
||||||
request.height = previewConfig.getActualHeight();
|
request.height = previewConfig.getActualHeight();
|
||||||
request.camera2Camera = mCamera;
|
request.camera2Camera = mCamera;
|
||||||
request.repeatCaptureCallback = previewConfig.getRepeatCaptureCallback();
|
request.repeatCaptureCallback = previewConfig.getRepeatCaptureCallback();
|
||||||
|
|
||||||
Surface previewSurface = previewConfig.getPreviewView().getSurfaceProvider().provide(request);
|
Surface previewSurface = previewConfig.getPreviewView().getSurfaceProvider().provide(request);
|
||||||
|
|
||||||
//创建CaptureRequestBuilder,TEMPLATE_PREVIEW比表示预览请求
|
//创建CaptureRequestBuilder,TEMPLATE_PREVIEW比表示预览请求
|
||||||
mCaptureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
|
mCaptureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
|
||||||
//设置Surface作为预览数据的显示界面
|
//设置Surface作为预览数据的显示界面
|
||||||
|
|
||||||
ArrayList<Surface> surfaces = new ArrayList<>();
|
ArrayList<Surface> surfaces = new ArrayList<>();
|
||||||
surfaces.add(previewSurface);
|
surfaces.add(previewSurface);
|
||||||
|
|
||||||
mCaptureRequestBuilder.addTarget(previewSurface);
|
mCaptureRequestBuilder.addTarget(previewSurface);
|
||||||
|
|
||||||
if (mSessionConfig.getPreviewConfig().getImageReaders() != null) {
|
if (mSessionConfig.getPreviewConfig().getImageReaders() != null) {
|
||||||
for (DeferrableImageReader imageReader : mSessionConfig.getPreviewConfig().getImageReaders()) {
|
for (DeferrableImageReader imageReader : mSessionConfig.getPreviewConfig().getImageReaders()) {
|
||||||
if (imageReader.unWrapper() != null) {
|
if (imageReader.unWrapper() != null) {
|
||||||
surfaces.add(imageReader.unWrapper().getSurface());
|
surfaces.add(imageReader.unWrapper().getSurface());
|
||||||
CameraLogger.i(Camera2CameraImpl.TAG, "add ImageReader Surface begin ( format:%d, %d*%d )", imageReader.getFormat(), imageReader.unWrapper().getWidth(), imageReader.unWrapper().getHeight());
|
CameraLogger.i(Camera2CameraImpl.TAG, "add ImageReader Surface begin ( format:%d, %d*%d )", imageReader.getFormat(), imageReader.unWrapper().getWidth(), imageReader.unWrapper().getHeight());
|
||||||
mCaptureRequestBuilder.addTarget(imageReader.unWrapper().getSurface());
|
mCaptureRequestBuilder.addTarget(imageReader.unWrapper().getSurface());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImageCapture captureConfig = mSessionConfig.getImageCapture();
|
||||||
|
if (captureConfig != null && captureConfig.getDeferrableImageReader() != null) {
|
||||||
|
surfaces.add(captureConfig.getDeferrableImageReader().unWrapper().getSurface());
|
||||||
|
}
|
||||||
|
|
||||||
|
CameraLogger.i(Camera2CameraImpl.TAG, "openCaptureSession begin ( preview: %d*%d )",
|
||||||
|
mSessionConfig.getPreviewConfig().getActualWidth(),
|
||||||
|
mSessionConfig.getPreviewConfig().getActualHeight());
|
||||||
|
|
||||||
|
changeState(State.OPENING);
|
||||||
|
|
||||||
|
cameraDevice.createCaptureSession(surfaces, mStateController, mHandler);
|
||||||
|
} catch (CameraAccessException e) {
|
||||||
|
CameraLogger.e(Camera2CameraImpl.TAG, "openCaptureSession error (%s) ", e.getMessage());
|
||||||
|
CameraShould.fail("", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageCapture captureConfig = mSessionConfig.getImageCapture();
|
|
||||||
if (captureConfig != null && captureConfig.getDeferrableImageReader() != null) {
|
|
||||||
surfaces.add(captureConfig.getDeferrableImageReader().unWrapper().getSurface());
|
|
||||||
}
|
|
||||||
|
|
||||||
CameraLogger.i(Camera2CameraImpl.TAG, "openCaptureSession begin ( preview: %d*%d )",
|
|
||||||
mSessionConfig.getPreviewConfig().getActualWidth(),
|
|
||||||
mSessionConfig.getPreviewConfig().getActualHeight());
|
|
||||||
|
|
||||||
changeState(State.OPENING);
|
|
||||||
|
|
||||||
cameraDevice.createCaptureSession(surfaces, mStateController, mHandler);
|
|
||||||
} catch (CameraAccessException e) {
|
|
||||||
CameraLogger.e(Camera2CameraImpl.TAG, "openCaptureSession error (%s) ", e.getMessage());
|
|
||||||
CameraShould.fail("", e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void capture(SingleCaptureConfig singleCaptureConfig, @NonNull CameraDevice cameraDevice, @NonNull InnerImageCaptureCallback capturedCallback) {
|
public void capture(SingleCaptureConfig singleCaptureConfig, @NonNull CameraDevice cameraDevice, @NonNull InnerImageCaptureCallback capturedCallback) {
|
||||||
switch (mState) {
|
synchronized (mStateLock) {
|
||||||
case OPENED:
|
switch (mState) {
|
||||||
captureInner(singleCaptureConfig, cameraDevice, capturedCallback);
|
case OPENED:
|
||||||
break;
|
captureInner(singleCaptureConfig, cameraDevice, capturedCallback);
|
||||||
default:
|
break;
|
||||||
if (capturedCallback != null) {
|
default:
|
||||||
capturedCallback.onError(new IllegalStateException("can not capture image when " + mState));
|
if (capturedCallback != null) {
|
||||||
}
|
capturedCallback.onError(new IllegalStateException("can not capture image when " + mState));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void captureInner(SingleCaptureConfig singleCaptureConfig, @NonNull CameraDevice cameraDevice,
|
private void captureInner(SingleCaptureConfig singleCaptureConfig, @NonNull CameraDevice cameraDevice,
|
||||||
@NonNull InnerImageCaptureCallback capturedCallback) {
|
@NonNull InnerImageCaptureCallback capturedCallback) {
|
||||||
try {
|
synchronized (mStateLock) {
|
||||||
|
try {
|
||||||
|
|
||||||
ImageCapture captureConfig = mSessionConfig.getImageCapture();
|
ImageCapture captureConfig = mSessionConfig.getImageCapture();
|
||||||
|
|
||||||
if (captureConfig == null) {
|
if (captureConfig == null) {
|
||||||
throw new RuntimeException("init image capture config first");
|
throw new RuntimeException("init image capture config first");
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// This is the CaptureRequest.Builder that we use to take a picture.
|
|
||||||
final CaptureRequest.Builder captureBuilder =
|
|
||||||
cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
|
|
||||||
|
|
||||||
ImageReader actualImageReader = captureConfig.getDeferrableImageReader().unWrapper();
|
|
||||||
captureBuilder.addTarget(actualImageReader.getSurface());
|
|
||||||
|
|
||||||
|
|
||||||
int natureRotation = captureConfig.getDeferrableImageReader().getImageRotationHelper().getImageRotation();
|
|
||||||
int sensorRotation = captureConfig.getDeferrableImageReader().getImageRotationHelper().getCameraSensorOrientation();
|
|
||||||
|
|
||||||
int jpegRotation = sensorRotation;
|
|
||||||
if (singleCaptureConfig != null && singleCaptureConfig.useNatureRotation()) {
|
|
||||||
jpegRotation = natureRotation;
|
|
||||||
}
|
|
||||||
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, jpegRotation);
|
|
||||||
captureBuilder.set(CaptureRequest.JPEG_QUALITY, singleCaptureConfig != null ?
|
|
||||||
singleCaptureConfig.getJpegQuality() : 100);
|
|
||||||
captureConfig.fillConfig(mCamera.getCameraCharacteristics(), captureBuilder);
|
|
||||||
|
|
||||||
//选择对应的相机,初始化默认配置
|
|
||||||
if (mSessionConfig.getSelectConfig() != null) {
|
|
||||||
mSessionConfig.getSelectConfig().fillConfig(mCamera.getCamera2Info(), captureBuilder);
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO NoBlockImageAnalyzer 相当于每次只有一个图片回掉,之前的回掉会给新触发的callback给替换掉
|
|
||||||
captureConfig.getDeferrableImageReader().getNoBlockImageAnalyzer().setImageAnalyzer((image, cameraSensorRotation, imageRotation) -> {
|
|
||||||
CameraLogger.i(Camera2CameraImpl.TAG, "ImageCapture Success (%d * %d)", image.getWidth(), image.getHeight());
|
|
||||||
capturedCallback.onCaptureSuccess(image);
|
|
||||||
});
|
|
||||||
|
|
||||||
CameraCaptureSession.CaptureCallback innerCallback = new CameraCaptureSession.CaptureCallback() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCaptureFailed(@NonNull CameraCaptureSession session,
|
|
||||||
@NonNull CaptureRequest request,
|
|
||||||
@NonNull CaptureFailure failure) {
|
|
||||||
super.onCaptureFailed(session, request, failure);
|
|
||||||
capturedCallback.onError(new Exception("capture_error:" + failure.getReason()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCaptureStarted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, long timestamp, long frameNumber) {
|
// This is the CaptureRequest.Builder that we use to take a picture.
|
||||||
capturedCallback.onCaptureStart();
|
final CaptureRequest.Builder captureBuilder =
|
||||||
|
cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
|
||||||
|
|
||||||
|
ImageReader actualImageReader = captureConfig.getDeferrableImageReader().unWrapper();
|
||||||
|
captureBuilder.addTarget(actualImageReader.getSurface());
|
||||||
|
|
||||||
|
|
||||||
|
int natureRotation = captureConfig.getDeferrableImageReader().getImageRotationHelper().getImageRotation();
|
||||||
|
int sensorRotation = captureConfig.getDeferrableImageReader().getImageRotationHelper().getCameraSensorOrientation();
|
||||||
|
|
||||||
|
int jpegRotation = sensorRotation;
|
||||||
|
if (singleCaptureConfig != null && singleCaptureConfig.useNatureRotation()) {
|
||||||
|
jpegRotation = natureRotation;
|
||||||
|
}
|
||||||
|
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, jpegRotation);
|
||||||
|
captureBuilder.set(CaptureRequest.JPEG_QUALITY, singleCaptureConfig != null ?
|
||||||
|
singleCaptureConfig.getJpegQuality() : 100);
|
||||||
|
captureConfig.fillConfig(mCamera.getCameraCharacteristics(), captureBuilder);
|
||||||
|
|
||||||
|
//选择对应的相机,初始化默认配置
|
||||||
|
if (mSessionConfig.getSelectConfig() != null) {
|
||||||
|
mSessionConfig.getSelectConfig().fillConfig(mCamera.getCamera2Info(), captureBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
//TODO NoBlockImageAnalyzer 相当于每次只有一个图片回掉,之前的回掉会给新触发的callback给替换掉
|
||||||
public void onCaptureSequenceAborted(@NonNull CameraCaptureSession session, int sequenceId) {
|
captureConfig.getDeferrableImageReader().getNoBlockImageAnalyzer().setImageAnalyzer((image, cameraSensorRotation, imageRotation) -> {
|
||||||
super.onCaptureSequenceAborted(session, sequenceId);
|
CameraLogger.i(Camera2CameraImpl.TAG, "ImageCapture Success (%d * %d)", image.getWidth(), image.getHeight());
|
||||||
capturedCallback.onError(new Exception("capture_error:onCaptureSequenceAborted"));
|
capturedCallback.onCaptureSuccess(image);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
CameraCaptureSession.CaptureCallback innerCallback = new CameraCaptureSession.CaptureCallback() {
|
||||||
};
|
|
||||||
|
@Override
|
||||||
|
public void onCaptureFailed(@NonNull CameraCaptureSession session,
|
||||||
|
@NonNull CaptureRequest request,
|
||||||
|
@NonNull CaptureFailure failure) {
|
||||||
|
super.onCaptureFailed(session, request, failure);
|
||||||
|
capturedCallback.onError(new Exception("capture_error:" + failure.getReason()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCaptureStarted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, long timestamp, long frameNumber) {
|
||||||
|
capturedCallback.onCaptureStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCaptureSequenceAborted(@NonNull CameraCaptureSession session, int sequenceId) {
|
||||||
|
super.onCaptureSequenceAborted(session, sequenceId);
|
||||||
|
capturedCallback.onError(new Exception("capture_error:onCaptureSequenceAborted"));
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
//TODO 目前只有闪光等设置了需要关闭Repeating模式,重新开启
|
//TODO 目前只有闪光等设置了需要关闭Repeating模式,重新开启
|
||||||
//但是这块改动影响了CameraCaptureState的逻辑,目前先不实现
|
//但是这块改动影响了CameraCaptureState的逻辑,目前先不实现
|
||||||
// mCameraCaptureSession.stopRepeating();
|
// mCameraCaptureSession.stopRepeating();
|
||||||
// mCameraCaptureSession.abortCaptures();
|
// mCameraCaptureSession.abortCaptures();
|
||||||
|
|
||||||
int id = mCameraCaptureSession.capture(captureBuilder.build(), innerCallback, mHandler);
|
int id = mCameraCaptureSession.capture(captureBuilder.build(), innerCallback, mHandler);
|
||||||
|
|
||||||
CameraLogger.i(Camera2CameraImpl.TAG, "send image capture request " + id);
|
CameraLogger.i(Camera2CameraImpl.TAG, "send image capture request " + id);
|
||||||
|
|
||||||
} catch (CameraAccessException e) {
|
} catch (CameraAccessException e) {
|
||||||
CameraLogger.e(Camera2CameraImpl.TAG, "openCaptureSession error (%s) ", e.getMessage());
|
CameraLogger.e(Camera2CameraImpl.TAG, "openCaptureSession error (%s) ", e.getMessage());
|
||||||
CameraShould.fail("", e);
|
CameraShould.fail("", e);
|
||||||
capturedCallback.onError(e);
|
capturedCallback.onError(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -380,68 +386,71 @@ public class SyncCaptureSession {
|
||||||
|
|
||||||
|
|
||||||
public void doRepeatingCaptureAction(@NonNull RepeatCaptureRequestConfig config) {
|
public void doRepeatingCaptureAction(@NonNull RepeatCaptureRequestConfig config) {
|
||||||
mHandler.post(() -> {
|
mHandler.post(() -> {
|
||||||
switch (mState) {
|
synchronized (mStateLock) {
|
||||||
case OPENED:
|
switch (mState) {
|
||||||
issueRepeatingCaptureRequests(config);
|
case OPENED:
|
||||||
break;
|
issueRepeatingCaptureRequests(config);
|
||||||
default:
|
break;
|
||||||
if (config.getCallback() != null) {
|
default:
|
||||||
if (config.getCallbackExecutor() != null) {
|
if (config.getCallback() != null) {
|
||||||
config.getCallbackExecutor().execute(() -> config.getCallback().onCaptureFailed(new CameraCaptureFailure(CameraCaptureFailure.Reason.ERROR)));
|
if (config.getCallbackExecutor() != null) {
|
||||||
} else {
|
config.getCallbackExecutor().execute(() -> config.getCallback().onCaptureFailed(new CameraCaptureFailure(CameraCaptureFailure.Reason.ERROR)));
|
||||||
config.getCallback().onCaptureFailed(new CameraCaptureFailure(CameraCaptureFailure.Reason.ERROR));
|
} else {
|
||||||
}
|
config.getCallback().onCaptureFailed(new CameraCaptureFailure(CameraCaptureFailure.Reason.ERROR));
|
||||||
break;
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void issueRepeatingCaptureRequests(RepeatCaptureRequestConfig action) {
|
private void issueRepeatingCaptureRequests(RepeatCaptureRequestConfig action) {
|
||||||
if (mSessionConfig == null) {
|
synchronized (mStateLock) {
|
||||||
CameraLogger.e(TAG, "Skipping issueRepeatingCaptureRequests for no configuration case.");
|
if (mSessionConfig == null) {
|
||||||
return;
|
CameraLogger.e(TAG, "Skipping issueRepeatingCaptureRequests for no configuration case.");
|
||||||
}
|
return;
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
//设置反复捕获数据的请求,这样预览界面就会一直有数据显示
|
|
||||||
List<CameraCaptureSession.CaptureCallback> callbackList = new ArrayList<>();
|
|
||||||
callbackList.add(mCaptureControlCallback);
|
|
||||||
|
|
||||||
|
|
||||||
RepeatCaptureRequestConfig requestConfig = mSessionConfig.getPreviewConfig().getRepeatCaptureRequestConfig();
|
|
||||||
requestConfig.fillConfig(mCamera.getCamera2Info(), mCaptureRequestBuilder);
|
|
||||||
|
|
||||||
callbackList.add(convert2SystemApiCaptureCallback(requestConfig.getCallbackExecutor(), requestConfig.getCallback()));
|
|
||||||
|
|
||||||
|
|
||||||
if (action != null) {
|
|
||||||
callbackList.add(convert2SystemApiCaptureCallback(action.getCallbackExecutor(), action.getCallback()));
|
|
||||||
action.fillConfig(mCamera.getCamera2Info(), mCaptureRequestBuilder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//选择对应的相机,初始化默认配置
|
try {
|
||||||
if (mSessionConfig.getSelectConfig() != null) {
|
|
||||||
mSessionConfig.getSelectConfig().fillConfig(mCamera.getCamera2Info(), mCaptureRequestBuilder);
|
//设置反复捕获数据的请求,这样预览界面就会一直有数据显示
|
||||||
|
List<CameraCaptureSession.CaptureCallback> callbackList = new ArrayList<>();
|
||||||
|
callbackList.add(mCaptureControlCallback);
|
||||||
|
|
||||||
|
|
||||||
|
RepeatCaptureRequestConfig requestConfig = mSessionConfig.getPreviewConfig().getRepeatCaptureRequestConfig();
|
||||||
|
requestConfig.fillConfig(mCamera.getCamera2Info(), mCaptureRequestBuilder);
|
||||||
|
|
||||||
|
callbackList.add(convert2SystemApiCaptureCallback(requestConfig.getCallbackExecutor(), requestConfig.getCallback()));
|
||||||
|
|
||||||
|
|
||||||
|
if (action != null) {
|
||||||
|
callbackList.add(convert2SystemApiCaptureCallback(action.getCallbackExecutor(), action.getCallback()));
|
||||||
|
action.fillConfig(mCamera.getCamera2Info(), mCaptureRequestBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
//选择对应的相机,初始化默认配置
|
||||||
|
if (mSessionConfig.getSelectConfig() != null) {
|
||||||
|
mSessionConfig.getSelectConfig().fillConfig(mCamera.getCamera2Info(), mCaptureRequestBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
//创建捕获请求
|
||||||
|
CaptureRequest request = mCaptureRequestBuilder.build();
|
||||||
|
|
||||||
|
|
||||||
|
ComboSessionCaptureCallback comboSessionCaptureCallback = new ComboSessionCaptureCallback(callbackList);
|
||||||
|
|
||||||
|
if (mCamera.getCameraState() == CameraState.OPEN) {
|
||||||
|
mCameraCaptureSession.setRepeatingRequest(request, comboSessionCaptureCallback, mHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (CameraAccessException e) {
|
||||||
|
CameraLogger.e(Camera2CameraImpl.TAG, "CameraCaptureSession.openCaptureSession error (%s) ", e.getMessage());
|
||||||
|
CameraShould.fail("", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
//创建捕获请求
|
|
||||||
CaptureRequest request = mCaptureRequestBuilder.build();
|
|
||||||
|
|
||||||
|
|
||||||
ComboSessionCaptureCallback comboSessionCaptureCallback = new ComboSessionCaptureCallback(callbackList);
|
|
||||||
|
|
||||||
if (mCamera.getCameraState() == CameraState.OPEN) {
|
|
||||||
mCameraCaptureSession.setRepeatingRequest(request, comboSessionCaptureCallback, mHandler);
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (CameraAccessException e) {
|
|
||||||
CameraLogger.e(Camera2CameraImpl.TAG, "CameraCaptureSession.openCaptureSession error (%s) ", e.getMessage());
|
|
||||||
CameraShould.fail("", e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session;
|
package com.ola.olamera.camera.session;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-23
|
* Creation : 20-11-23
|
||||||
|
@ -7,10 +7,10 @@ package com.quark.quamera.camera.session;
|
||||||
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2Info;
|
import com.ola.olamera.camera.camera.Camera2Info;
|
||||||
import com.quark.quamera.camera.camera.CameraLifeManager;
|
import com.ola.olamera.camera.camera.CameraLifeManager;
|
||||||
import com.quark.quamera.camera.camera.CameraState;
|
import com.ola.olamera.camera.camera.CameraState;
|
||||||
import com.quark.quamera.camera.session.config.CameraSelectConfig;
|
import com.ola.olamera.camera.session.config.CameraSelectConfig;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session.config;
|
package com.ola.olamera.camera.session.config;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/6/30
|
* Creation : 2021/6/30
|
||||||
|
@ -13,7 +13,7 @@ import android.os.Build;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.quark.quamera.util.ArrayUtil;
|
import com.ola.olamera.util.ArrayUtil;
|
||||||
|
|
||||||
public class CameraConfigUtils {
|
public class CameraConfigUtils {
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camera.session.config;
|
package com.ola.olamera.camera.session.config;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/5/7
|
* Creation : 2021/5/7
|
||||||
|
@ -9,9 +9,9 @@ import android.hardware.camera2.CameraCharacteristics;
|
||||||
import android.hardware.camera2.CaptureRequest;
|
import android.hardware.camera2.CaptureRequest;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2Info;
|
import com.ola.olamera.camera.camera.Camera2Info;
|
||||||
import com.quark.quamera.camera.session.CameraSelector;
|
import com.ola.olamera.camera.session.CameraSelector;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax;
|
package com.ola.olamera.camerax;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -28,7 +28,7 @@ import android.util.Size;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import com.quark.quamera.camerax.controller.ForwardingLiveData;
|
import com.ola.olamera.camerax.controller.ForwardingLiveData;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax;
|
package com.ola.olamera.camerax;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 20-11-25
|
* Creation : 20-11-25
|
||||||
|
@ -18,13 +18,13 @@ import android.util.Log;
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
import android.util.SizeF;
|
import android.util.SizeF;
|
||||||
|
|
||||||
import com.quark.quamera.camera.preview.ViewPort;
|
import com.ola.olamera.camera.preview.ViewPort;
|
||||||
import com.quark.quamera.camera.preview.ViewPorts;
|
import com.ola.olamera.camera.preview.ViewPorts;
|
||||||
import com.quark.quamera.camera.session.SingleCaptureConfig;
|
import com.ola.olamera.camera.session.SingleCaptureConfig;
|
||||||
import com.quark.quamera.camerax.utils.FocalLengthInfo;
|
import com.ola.olamera.camerax.utils.FocalLengthInfo;
|
||||||
import com.quark.quamera.camerax.utils.SingleThreadHandlerExecutor;
|
import com.ola.olamera.camerax.utils.SingleThreadHandlerExecutor;
|
||||||
import com.quark.quamera.render.view.CameraXPreviewView;
|
import com.ola.olamera.render.view.CameraXPreviewView;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -65,7 +65,6 @@ import androidx.lifecycle.LifecycleRegistry;
|
||||||
import androidx.lifecycle.LiveData;
|
import androidx.lifecycle.LiveData;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
|
||||||
public class CameraXManager implements LifecycleOwner, ICameraManager<CameraXPreviewView> {
|
public class CameraXManager implements LifecycleOwner, ICameraManager<CameraXPreviewView> {
|
||||||
|
|
||||||
private LifecycleCameraController mCameraController;
|
private LifecycleCameraController mCameraController;
|
||||||
|
@ -185,7 +184,7 @@ public class CameraXManager implements LifecycleOwner, ICameraManager<CameraXPre
|
||||||
*/
|
*/
|
||||||
@UiThread
|
@UiThread
|
||||||
@SuppressLint("RestrictedApi")
|
@SuppressLint("RestrictedApi")
|
||||||
public void takePictureOriginalData(SingleCaptureConfig singleCaptureConfig, com.quark.quamera.camera.session.ImageCapture.OnImageCapturedCallback capturedCallback) {
|
public void takePictureOriginalData(SingleCaptureConfig singleCaptureConfig, com.ola.olamera.camera.session.ImageCapture.OnImageCapturedCallback capturedCallback) {
|
||||||
if (mCameraController == null) {
|
if (mCameraController == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -232,8 +231,8 @@ public class CameraXManager implements LifecycleOwner, ICameraManager<CameraXPre
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private com.quark.quamera.camera.session.CameraSelector.CameraLenFacing mPreCameraLenFacing =
|
private com.ola.olamera.camera.session.CameraSelector.CameraLenFacing mPreCameraLenFacing =
|
||||||
com.quark.quamera.camera.session.CameraSelector.CameraLenFacing.LEN_FACING_BACK;
|
com.ola.olamera.camera.session.CameraSelector.CameraLenFacing.LEN_FACING_BACK;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转换摄像头
|
* 转换摄像头
|
||||||
|
@ -242,7 +241,7 @@ public class CameraXManager implements LifecycleOwner, ICameraManager<CameraXPre
|
||||||
*/
|
*/
|
||||||
@UiThread
|
@UiThread
|
||||||
@SuppressLint("RestrictedApi")
|
@SuppressLint("RestrictedApi")
|
||||||
public void switchCamera(com.quark.quamera.camera.session.CameraSelector.CameraLenFacing cameraLenFacing, Size previewSize) {
|
public void switchCamera(com.ola.olamera.camera.session.CameraSelector.CameraLenFacing cameraLenFacing, Size previewSize) {
|
||||||
if (cameraLenFacing == null) {
|
if (cameraLenFacing == null) {
|
||||||
if (mCurrentCameraSelector == FRONT_SELECTOR) {
|
if (mCurrentCameraSelector == FRONT_SELECTOR) {
|
||||||
mCurrentCameraSelector = BACK_SELECTOR;
|
mCurrentCameraSelector = BACK_SELECTOR;
|
||||||
|
@ -253,7 +252,7 @@ public class CameraXManager implements LifecycleOwner, ICameraManager<CameraXPre
|
||||||
if (mPreCameraLenFacing != null && mPreCameraLenFacing == cameraLenFacing) {
|
if (mPreCameraLenFacing != null && mPreCameraLenFacing == cameraLenFacing) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (cameraLenFacing == com.quark.quamera.camera.session.CameraSelector.CameraLenFacing.LEN_FACING_FONT) {
|
if (cameraLenFacing == com.ola.olamera.camera.session.CameraSelector.CameraLenFacing.LEN_FACING_FONT) {
|
||||||
mCurrentCameraSelector = FRONT_SELECTOR;
|
mCurrentCameraSelector = FRONT_SELECTOR;
|
||||||
} else {
|
} else {
|
||||||
mCurrentCameraSelector = BACK_SELECTOR;
|
mCurrentCameraSelector = BACK_SELECTOR;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax;
|
package com.ola.olamera.camerax;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.media.ExifInterface;
|
import android.media.ExifInterface;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax;
|
package com.ola.olamera.camerax;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/11/15
|
* Creation : 2021/11/15
|
|
@ -1,9 +1,9 @@
|
||||||
package com.quark.quamera.camerax;
|
package com.ola.olamera.camerax;
|
||||||
|
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
|
|
||||||
import com.quark.quamera.camera.session.SingleCaptureConfig;
|
import com.ola.olamera.camera.session.SingleCaptureConfig;
|
||||||
import com.quark.quamera.render.view.BasePreviewView;
|
import com.ola.olamera.render.view.BasePreviewView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
@ -27,9 +27,9 @@ public interface ICameraManager<T extends BasePreviewView> {
|
||||||
|
|
||||||
void startCamera(Size previewSize, boolean useWideCamera, boolean needBindLifecycle, boolean isLimitCaptureSize, Size maxCaptureSize);
|
void startCamera(Size previewSize, boolean useWideCamera, boolean needBindLifecycle, boolean isLimitCaptureSize, Size maxCaptureSize);
|
||||||
|
|
||||||
void switchCamera(com.quark.quamera.camera.session.CameraSelector.CameraLenFacing cameraLenFacing, Size previewSize);
|
void switchCamera(com.ola.olamera.camera.session.CameraSelector.CameraLenFacing cameraLenFacing, Size previewSize);
|
||||||
|
|
||||||
void takePictureOriginalData(SingleCaptureConfig singleCaptureConfig, com.quark.quamera.camera.session.ImageCapture.OnImageCapturedCallback capturedCallback);
|
void takePictureOriginalData(SingleCaptureConfig singleCaptureConfig, com.ola.olamera.camera.session.ImageCapture.OnImageCapturedCallback capturedCallback);
|
||||||
|
|
||||||
void enableFlash(boolean enable);
|
void enableFlash(boolean enable);
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax;
|
package com.ola.olamera.camerax;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax;
|
package com.ola.olamera.camerax;
|
||||||
|
|
||||||
import androidx.camera.lifecycle.ProcessCameraProvider;
|
import androidx.camera.lifecycle.ProcessCameraProvider;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax;
|
package com.ola.olamera.camerax;
|
||||||
|
|
||||||
import androidx.camera.core.impl.CameraCaptureResult;
|
import androidx.camera.core.impl.CameraCaptureResult;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax.controller;
|
package com.ola.olamera.camerax.controller;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
|
@ -12,8 +12,8 @@ import android.view.ScaleGestureDetector;
|
||||||
import android.view.ViewConfiguration;
|
import android.view.ViewConfiguration;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import com.quark.quamera.camerax.CameraController;
|
import com.ola.olamera.camerax.CameraController;
|
||||||
import com.quark.quamera.render.view.CameraXPreviewView;
|
import com.ola.olamera.render.view.CameraXPreviewView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax.controller;
|
package com.ola.olamera.camerax.controller;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.lifecycle.LiveData;
|
import androidx.lifecycle.LiveData;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax.controller;
|
package com.ola.olamera.camerax.controller;
|
||||||
|
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
@ -8,7 +8,7 @@ import androidx.camera.core.FocusMeteringResult;
|
||||||
import androidx.camera.core.SurfaceRequest;
|
import androidx.camera.core.SurfaceRequest;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import com.quark.quamera.camerax.CameraController;
|
import com.ola.olamera.camerax.CameraController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author : liujian
|
* @author : liujian
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax.controller;
|
package com.ola.olamera.camerax.controller;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 点击对焦的事件回调
|
* 点击对焦的事件回调
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller;
|
package com.ola.olamera.camerax.controller;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
@ -31,8 +31,8 @@ import android.view.SurfaceView;
|
||||||
import android.view.TextureView;
|
import android.view.TextureView;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.quark.quamera.camerax.controller.internal.compat.quirk.PreviewOneThirdWiderQuirk;
|
import com.ola.olamera.camerax.controller.internal.compat.quirk.PreviewOneThirdWiderQuirk;
|
||||||
import com.quark.quamera.camerax.controller.internal.compat.quirk.TextureViewRotationQuirk;
|
import com.ola.olamera.camerax.controller.internal.compat.quirk.TextureViewRotationQuirk;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller;
|
package com.ola.olamera.camerax.controller;
|
||||||
|
|
||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller;
|
package com.ola.olamera.camerax.controller;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.view.OrientationEventListener;
|
import android.view.OrientationEventListener;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller;
|
package com.ola.olamera.camerax.controller;
|
||||||
|
|
||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller.internal.compat.quirk;
|
package com.ola.olamera.camerax.controller.internal.compat.quirk;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller.internal.compat.quirk;
|
package com.ola.olamera.camerax.controller.internal.compat.quirk;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller.internal.compat.quirk;
|
package com.ola.olamera.camerax.controller.internal.compat.quirk;
|
||||||
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller.internal.compat.quirk;
|
package com.ola.olamera.camerax.controller.internal.compat.quirk;
|
||||||
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.controller.internal.compat.quirk;
|
package com.ola.olamera.camerax.controller.internal.compat.quirk;
|
||||||
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.view.TextureView;
|
import android.view.TextureView;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax.filter;
|
package com.ola.olamera.camerax.filter;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax.utils;
|
package com.ola.olamera.camerax.utils;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/5/26
|
* Creation : 2021/5/26
|
||||||
|
@ -10,9 +10,9 @@ import android.hardware.camera2.CaptureResult;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.quark.quamera.render.DefaultCameraRender;
|
import com.ola.olamera.render.DefaultCameraRender;
|
||||||
import com.quark.quamera.util.CameraInit;
|
import com.ola.olamera.util.CameraInit;
|
||||||
import com.quark.quamera.util.CameraReflection;
|
import com.ola.olamera.util.CameraReflection;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.camerax.utils;
|
package com.ola.olamera.camerax.utils;
|
||||||
|
|
||||||
public class FocalLengthInfo implements Comparable<FocalLengthInfo> {
|
public class FocalLengthInfo implements Comparable<FocalLengthInfo> {
|
||||||
public float focalLength = Float.MAX_VALUE;
|
public float focalLength = Float.MAX_VALUE;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.quark.quamera.camerax.utils;
|
package com.ola.olamera.camerax.utils;
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
|
@ -0,0 +1,63 @@
|
||||||
|
precision highp float;
|
||||||
|
precision highp int;
|
||||||
|
varying vec2 textureCoordinate;
|
||||||
|
uniform sampler2D inputImageTexture;
|
||||||
|
uniform float inputImageTextureWidth;
|
||||||
|
uniform float inputImageTextureHeight;
|
||||||
|
float cY(float x,float y){
|
||||||
|
vec4 c=texture2D(inputImageTexture,vec2(x,y));
|
||||||
|
return 0.183 * c.r + 0.614 * c.g + 0.062 * c.b + 0.0625;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 cC(float x,float y,float dx,float dy){
|
||||||
|
vec4 c0=texture2D(inputImageTexture,vec2(x,y));
|
||||||
|
vec4 c1=texture2D(inputImageTexture,vec2(x+dx,y));
|
||||||
|
vec4 c2=texture2D(inputImageTexture,vec2(x,y+dy));
|
||||||
|
vec4 c3=texture2D(inputImageTexture,vec2(x+dx,y+dy));
|
||||||
|
return (c0+c1+c2+c3)/4.;
|
||||||
|
}
|
||||||
|
|
||||||
|
float cU(float x,float y,float dx,float dy){
|
||||||
|
vec4 c=cC(x,y,dx,dy);
|
||||||
|
return -0.101 * c.r - 0.339 * c.g + 0.439 * c.b + 0.5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
float cV(float x,float y,float dx,float dy){
|
||||||
|
vec4 c=cC(x,y,dx,dy);
|
||||||
|
return 0.439 * c.r - 0.399 * c.g - 0.040 * c.b + 0.5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 cPos(float t,float shiftx,float gy){
|
||||||
|
vec2 pos=vec2(floor(inputImageTextureWidth*textureCoordinate.x),floor(inputImageTextureHeight*gy));
|
||||||
|
return vec2(mod(pos.x*shiftx,inputImageTextureWidth),(pos.y*shiftx+floor(pos.x*shiftx/inputImageTextureWidth))*t);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 calculateY(){
|
||||||
|
vec2 pos=cPos(1.,4.,textureCoordinate.y);
|
||||||
|
vec4 oColor=vec4(0);
|
||||||
|
float textureYPos=pos.y/inputImageTextureHeight;
|
||||||
|
oColor[0]=cY(pos.x/inputImageTextureWidth,textureYPos);
|
||||||
|
oColor[1]=cY((pos.x+1.)/inputImageTextureWidth,textureYPos);
|
||||||
|
oColor[2]=cY((pos.x+2.)/inputImageTextureWidth,textureYPos);
|
||||||
|
oColor[3]=cY((pos.x+3.)/inputImageTextureWidth,textureYPos);
|
||||||
|
return oColor;
|
||||||
|
}
|
||||||
|
vec4 calculateUV(float dx,float dy){
|
||||||
|
vec2 pos=cPos(2.,4.,textureCoordinate.y-0.2500);
|
||||||
|
vec4 oColor=vec4(0);
|
||||||
|
float textureYPos=pos.y/inputImageTextureHeight;
|
||||||
|
oColor[0]= cV(pos.x/inputImageTextureWidth,textureYPos,dx,dy);
|
||||||
|
oColor[1]= cU(pos.x/inputImageTextureWidth,textureYPos,dx,dy);
|
||||||
|
oColor[2]= cV((pos.x+2.)/inputImageTextureWidth,textureYPos,dx,dy);
|
||||||
|
oColor[3]= cU((pos.x+2.)/inputImageTextureWidth,textureYPos,dx,dy);
|
||||||
|
return oColor;
|
||||||
|
}
|
||||||
|
void main() {
|
||||||
|
if(textureCoordinate.y<0.2500){
|
||||||
|
gl_FragColor=calculateY();
|
||||||
|
}else if(textureCoordinate.y<0.3750){
|
||||||
|
gl_FragColor=calculateUV(1./inputImageTextureWidth,1./inputImageTextureHeight);
|
||||||
|
}else{
|
||||||
|
gl_FragColor=vec4(0,0,0,0);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/4/13
|
* Creation : 2021/4/13
|
||||||
* Author : jiaming.wjm@
|
* Author : jiaming.wjm@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import com.quark.quamera.render.view.AndroidGLSurfaceView;
|
import com.ola.olamera.render.view.AndroidGLSurfaceView;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
|
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -12,17 +12,17 @@ import android.os.SystemClock;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Rational;
|
import android.util.Rational;
|
||||||
|
|
||||||
import com.quark.quamera.camera.preview.ViewPort;
|
import com.ola.olamera.camera.preview.ViewPort;
|
||||||
import com.quark.quamera.render.entry.FrameDetectData;
|
import com.ola.olamera.render.entry.FrameDetectData;
|
||||||
import com.quark.quamera.render.entry.RenderFlowData;
|
import com.ola.olamera.render.entry.RenderFlowData;
|
||||||
import com.quark.quamera.render.expansion.IRenderExpansion;
|
import com.ola.olamera.render.expansion.IRenderExpansion;
|
||||||
import com.quark.quamera.render.photo.ExportPhoto;
|
import com.ola.olamera.render.photo.ExportPhoto;
|
||||||
import com.quark.quamera.render.photo.SnapShotCommand;
|
import com.ola.olamera.render.photo.SnapShotCommand;
|
||||||
import com.quark.quamera.render.view.AndroidGLSurfaceView;
|
import com.ola.olamera.render.view.AndroidGLSurfaceView;
|
||||||
import com.quark.quamera.util.CameraInit;
|
import com.ola.olamera.util.CameraInit;
|
||||||
import com.quark.quamera.util.CameraLogger;
|
import com.ola.olamera.util.CameraLogger;
|
||||||
import com.quark.quamera.util.CameraShould;
|
import com.ola.olamera.util.CameraShould;
|
||||||
import com.quark.quamera.util.ImageUtils;
|
import com.ola.olamera.util.ImageUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
|
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
@ -7,9 +7,9 @@ import android.opengl.GLES20;
|
||||||
import android.opengl.Matrix;
|
import android.opengl.Matrix;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.quark.quamera.util.GlCommonUtil;
|
import com.ola.olamera.util.GlCommonUtil;
|
||||||
import com.quark.quamera.util.MatrixUtils;
|
import com.ola.olamera.util.MatrixUtils;
|
||||||
import com.quark.quamera.util.OpenGlUtils;
|
import com.ola.olamera.util.OpenGlUtils;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.ByteOrder;
|
import java.nio.ByteOrder;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/1/26
|
* Creation : 2021/1/26
|
||||||
|
@ -10,17 +10,17 @@ import android.os.Build;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2CameraImpl;
|
import com.ola.olamera.camera.camera.Camera2CameraImpl;
|
||||||
import com.quark.quamera.camera.camera.CameraState;
|
import com.ola.olamera.camera.camera.CameraState;
|
||||||
import com.quark.quamera.camera.camera.ICameraStateListener;
|
import com.ola.olamera.camera.camera.ICameraStateListener;
|
||||||
import com.quark.quamera.camera.preview.SurfaceTextureWrapper;
|
import com.ola.olamera.camera.preview.SurfaceTextureWrapper;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureCallback;
|
import com.ola.olamera.camera.session.CameraCaptureCallback;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureComboCallback;
|
import com.ola.olamera.camera.session.CameraCaptureComboCallback;
|
||||||
import com.quark.quamera.camera.session.CameraCaptureResult;
|
import com.ola.olamera.camera.session.CameraCaptureResult;
|
||||||
import com.quark.quamera.camerax.utils.CameraXCaptureResultManager;
|
import com.ola.olamera.camerax.utils.CameraXCaptureResultManager;
|
||||||
import com.quark.quamera.util.Camera2CaptureResultManager;
|
import com.ola.olamera.util.Camera2CaptureResultManager;
|
||||||
import com.quark.quamera.util.CameraInit;
|
import com.ola.olamera.util.CameraInit;
|
||||||
import com.quark.quamera.util.CameraShould;
|
import com.ola.olamera.util.CameraShould;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
|
|
||||||
|
|
||||||
public class GLConstant {
|
public class GLConstant {
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
|
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
@ -8,14 +8,14 @@ import android.opengl.GLES20;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
|
||||||
import com.quark.quamera.util.GlCommonUtil;
|
import com.ola.olamera.util.GlCommonUtil;
|
||||||
import com.quark.quamera.util.MatrixUtils;
|
import com.ola.olamera.util.MatrixUtils;
|
||||||
import com.quark.quamera.util.OpenGlUtils;
|
import com.ola.olamera.util.OpenGlUtils;
|
||||||
|
|
||||||
import java.nio.FloatBuffer;
|
import java.nio.FloatBuffer;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
|
||||||
import static com.quark.quamera.render.CropFboFilter.doSnapshot;
|
import static com.ola.olamera.render.CropFboFilter.doSnapshot;
|
||||||
|
|
||||||
|
|
||||||
@TargetApi(18)
|
@TargetApi(18)
|
|
@ -1,8 +1,8 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
|
|
||||||
import android.opengl.EGLContext;
|
import android.opengl.EGLContext;
|
||||||
|
|
||||||
import com.quark.quamera.camera.camera.Camera2CameraImpl;
|
import com.ola.olamera.camera.camera.Camera2CameraImpl;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/7/27
|
* Creation : 2021/7/27
|
|
@ -1,4 +1,4 @@
|
||||||
package com.quark.quamera.render;
|
package com.ola.olamera.render;
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Creation : 2021/1/28
|
* Creation : 2021/1/28
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user