From 46ef2119e349f4ea5d79705caa8fa39c345fd979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cstanhu=E2=80=9D?= <3421902@qq.com> Date: Mon, 29 Oct 2018 18:07:13 +0800 Subject: [PATCH] set the gradle --- .idea/caches/build_file_checksums.ser | Bin 638 -> 638 bytes .idea/misc.xml | 2 +- OpenCVLibrary/build.gradle | 6 +- OpenCVLibrary/build/intermediates/attr/R.txt | 414 ++ .../debug/org/opencv/BuildConfig.class | Bin 0 -> 689 bytes .../classes/debug/org/opencv/R$attr.class | Bin 0 -> 453 bytes .../classes/debug/org/opencv/R$id.class | Bin 0 -> 477 bytes .../debug/org/opencv/R$styleable.class | Bin 0 -> 574 bytes .../classes/debug/org/opencv/R.class | Bin 0 -> 393 bytes .../opencv/android/AsyncServiceHelper$1.class | Bin 0 -> 2263 bytes .../opencv/android/AsyncServiceHelper$2.class | Bin 0 -> 1934 bytes .../android/AsyncServiceHelper$3$1.class | Bin 0 -> 2825 bytes .../android/AsyncServiceHelper$3$2.class | Bin 0 -> 2781 bytes .../opencv/android/AsyncServiceHelper$3.class | Bin 0 -> 4640 bytes .../opencv/android/AsyncServiceHelper.class | Bin 0 -> 5350 bytes .../opencv/android/BaseLoaderCallback$1.class | Bin 0 -> 917 bytes .../opencv/android/BaseLoaderCallback$2.class | Bin 0 -> 917 bytes .../opencv/android/BaseLoaderCallback$3.class | Bin 0 -> 917 bytes .../opencv/android/BaseLoaderCallback$4.class | Bin 0 -> 1143 bytes .../opencv/android/BaseLoaderCallback$5.class | Bin 0 -> 1142 bytes .../opencv/android/BaseLoaderCallback$6.class | Bin 0 -> 1148 bytes .../opencv/android/BaseLoaderCallback$7.class | Bin 0 -> 1142 bytes .../opencv/android/BaseLoaderCallback.class | Bin 0 -> 3800 bytes .../opencv/android/Camera2Renderer$1.class | Bin 0 -> 1488 bytes .../opencv/android/Camera2Renderer$2.class | Bin 0 -> 2901 bytes .../org/opencv/android/Camera2Renderer.class | Bin 0 -> 11068 bytes .../android/CameraBridgeViewBase$1.class | Bin 0 -> 1038 bytes ...meraBridgeViewBase$CvCameraViewFrame.class | Bin 0 -> 310 bytes ...aBridgeViewBase$CvCameraViewListener.class | Bin 0 -> 405 bytes ...BridgeViewBase$CvCameraViewListener2.class | Bin 0 -> 536 bytes ...ViewBase$CvCameraViewListenerAdapter.class | Bin 0 -> 2253 bytes ...ameraBridgeViewBase$ListItemAccessor.class | Bin 0 -> 315 bytes .../opencv/android/CameraBridgeViewBase.class | Bin 0 -> 12195 bytes .../opencv/android/CameraGLRendererBase.class | Bin 0 -> 12177 bytes ...aGLSurfaceView$CameraTextureListener.class | Bin 0 -> 369 bytes .../opencv/android/CameraGLSurfaceView.class | Bin 0 -> 3676 bytes .../org/opencv/android/CameraRenderer.class | Bin 0 -> 6090 bytes .../debug/org/opencv/android/FpsMeter.class | Bin 0 -> 2537 bytes .../android/InstallCallbackInterface.class | Bin 0 -> 365 bytes .../opencv/android/JavaCamera2View$1.class | Bin 0 -> 1294 bytes .../opencv/android/JavaCamera2View$2.class | Bin 0 -> 2724 bytes .../opencv/android/JavaCamera2View$3.class | Bin 0 -> 2933 bytes .../JavaCamera2View$JavaCamera2Frame.class | Bin 0 -> 2424 bytes .../org/opencv/android/JavaCamera2View.class | Bin 0 -> 11305 bytes .../org/opencv/android/JavaCameraView$1.class | Bin 0 -> 228 bytes .../android/JavaCameraView$CameraWorker.class | Bin 0 -> 2325 bytes .../JavaCameraView$JavaCameraFrame.class | Bin 0 -> 1726 bytes ...avaCameraView$JavaCameraSizeAccessor.class | Bin 0 -> 995 bytes .../org/opencv/android/JavaCameraView.class | Bin 0 -> 10626 bytes .../android/LoaderCallbackInterface.class | Bin 0 -> 475 bytes .../org/opencv/android/OpenCVLoader.class | Bin 0 -> 1792 bytes .../org/opencv/android/StaticHelper.class | Bin 0 -> 2878 bytes .../debug/org/opencv/android/Utils.class | Bin 0 -> 4309 bytes .../debug/org/opencv/calib3d/Calib3d.class | Bin 0 -> 71518 bytes .../debug/org/opencv/calib3d/StereoBM.class | Bin 0 -> 3784 bytes .../org/opencv/calib3d/StereoMatcher.class | Bin 0 -> 2816 bytes .../debug/org/opencv/calib3d/StereoSGBM.class | Bin 0 -> 4829 bytes .../debug/org/opencv/core/Algorithm.class | Bin 0 -> 1330 bytes .../opencv/core/Core$MinMaxLocResult.class | Bin 0 -> 594 bytes .../classes/debug/org/opencv/core/Core.class | Bin 0 -> 42022 bytes .../debug/org/opencv/core/CvException.class | Bin 0 -> 695 bytes .../debug/org/opencv/core/CvType.class | Bin 0 -> 3918 bytes .../debug/org/opencv/core/DMatch.class | Bin 0 -> 1362 bytes .../debug/org/opencv/core/KeyPoint.class | Bin 0 -> 1869 bytes .../classes/debug/org/opencv/core/Mat.class | Bin 0 -> 17834 bytes .../debug/org/opencv/core/MatOfByte.class | Bin 0 -> 3632 bytes .../debug/org/opencv/core/MatOfDMatch.class | Bin 0 -> 3220 bytes .../debug/org/opencv/core/MatOfDouble.class | Bin 0 -> 3095 bytes .../debug/org/opencv/core/MatOfFloat.class | Bin 0 -> 3080 bytes .../debug/org/opencv/core/MatOfFloat4.class | Bin 0 -> 3084 bytes .../debug/org/opencv/core/MatOfFloat6.class | Bin 0 -> 3090 bytes .../debug/org/opencv/core/MatOfInt.class | Bin 0 -> 3076 bytes .../debug/org/opencv/core/MatOfInt4.class | Bin 0 -> 3075 bytes .../debug/org/opencv/core/MatOfKeyPoint.class | Bin 0 -> 3271 bytes .../debug/org/opencv/core/MatOfPoint.class | Bin 0 -> 2903 bytes .../debug/org/opencv/core/MatOfPoint2f.class | Bin 0 -> 2911 bytes .../debug/org/opencv/core/MatOfPoint3.class | Bin 0 -> 2957 bytes .../debug/org/opencv/core/MatOfPoint3f.class | Bin 0 -> 2961 bytes .../debug/org/opencv/core/MatOfRect.class | Bin 0 -> 2972 bytes .../debug/org/opencv/core/MatOfRect2d.class | Bin 0 -> 3008 bytes .../org/opencv/core/MatOfRotatedRect.class | Bin 0 -> 3320 bytes .../classes/debug/org/opencv/core/Point.class | Bin 0 -> 2181 bytes .../debug/org/opencv/core/Point3.class | Bin 0 -> 2526 bytes .../classes/debug/org/opencv/core/Range.class | Bin 0 -> 2538 bytes .../classes/debug/org/opencv/core/Rect.class | Bin 0 -> 3563 bytes .../debug/org/opencv/core/Rect2d.class | Bin 0 -> 3531 bytes .../debug/org/opencv/core/RotatedRect.class | Bin 0 -> 3800 bytes .../debug/org/opencv/core/Scalar.class | Bin 0 -> 3051 bytes .../classes/debug/org/opencv/core/Size.class | Bin 0 -> 2213 bytes .../debug/org/opencv/core/TermCriteria.class | Bin 0 -> 2208 bytes .../debug/org/opencv/core/TickMeter.class | Bin 0 -> 1802 bytes .../debug/org/opencv/dnn/DictValue.class | Bin 0 -> 2491 bytes .../classes/debug/org/opencv/dnn/Dnn.class | Bin 0 -> 12328 bytes .../classes/debug/org/opencv/dnn/Layer.class | Bin 0 -> 3483 bytes .../classes/debug/org/opencv/dnn/Net.class | Bin 0 -> 9862 bytes .../OpenCVEngineInterface$Stub$Proxy.class | Bin 0 -> 2647 bytes .../engine/OpenCVEngineInterface$Stub.class | Bin 0 -> 2653 bytes .../opencv/engine/OpenCVEngineInterface.class | Bin 0 -> 521 bytes .../debug/org/opencv/features2d/AKAZE.class | Bin 0 -> 4665 bytes .../features2d/AgastFeatureDetector.class | Bin 0 -> 2726 bytes .../org/opencv/features2d/BFMatcher.class | Bin 0 -> 1520 bytes .../BOWImgDescriptorExtractor.class | Bin 0 -> 1841 bytes .../opencv/features2d/BOWKMeansTrainer.class | Bin 0 -> 2007 bytes .../org/opencv/features2d/BOWTrainer.class | Bin 0 -> 2076 bytes .../debug/org/opencv/features2d/BRISK.class | Bin 0 -> 4180 bytes .../features2d/DescriptorExtractor.class | Bin 0 -> 3948 bytes .../opencv/features2d/DescriptorMatcher.class | Bin 0 -> 10063 bytes .../features2d/FastFeatureDetector.class | Bin 0 -> 2710 bytes .../org/opencv/features2d/Feature2D.class | Bin 0 -> 4994 bytes .../opencv/features2d/FeatureDetector.class | Bin 0 -> 5082 bytes .../org/opencv/features2d/Features2d.class | Bin 0 -> 12492 bytes .../opencv/features2d/FlannBasedMatcher.class | Bin 0 -> 965 bytes .../org/opencv/features2d/GFTTDetector.class | Bin 0 -> 4655 bytes .../debug/org/opencv/features2d/KAZE.class | Bin 0 -> 4019 bytes .../debug/org/opencv/features2d/MSER.class | Bin 0 -> 4882 bytes .../debug/org/opencv/features2d/ORB.class | Bin 0 -> 5495 bytes .../debug/org/opencv/features2d/Params.class | Bin 0 -> 6268 bytes .../org/opencv/imgcodecs/Imgcodecs.class | Bin 0 -> 6320 bytes .../debug/org/opencv/imgproc/CLAHE.class | Bin 0 -> 1779 bytes .../debug/org/opencv/imgproc/Imgproc.class | Bin 0 -> 97196 bytes .../opencv/imgproc/LineSegmentDetector.class | Bin 0 -> 2538 bytes .../debug/org/opencv/imgproc/Moments.class | Bin 0 -> 7394 bytes .../debug/org/opencv/imgproc/Subdiv2D.class | Bin 0 -> 6483 bytes .../classes/debug/org/opencv/ml/ANN_MLP.class | Bin 0 -> 6603 bytes .../debug/org/opencv/ml/ANN_MLP_ANNEAL.class | Bin 0 -> 1836 bytes .../classes/debug/org/opencv/ml/Boost.class | Bin 0 -> 2195 bytes .../classes/debug/org/opencv/ml/DTrees.class | Bin 0 -> 4040 bytes .../classes/debug/org/opencv/ml/EM.class | Bin 0 -> 7453 bytes .../debug/org/opencv/ml/KNearest.class | Bin 0 -> 2831 bytes .../org/opencv/ml/LogisticRegression.class | Bin 0 -> 4242 bytes .../classes/debug/org/opencv/ml/Ml.class | Bin 0 -> 502 bytes .../org/opencv/ml/NormalBayesClassifier.class | Bin 0 -> 1913 bytes .../debug/org/opencv/ml/ParamGrid.class | Bin 0 -> 2171 bytes .../classes/debug/org/opencv/ml/RTrees.class | Bin 0 -> 2858 bytes .../classes/debug/org/opencv/ml/SVM.class | Bin 0 -> 8547 bytes .../classes/debug/org/opencv/ml/SVMSGD.class | Bin 0 -> 4177 bytes .../debug/org/opencv/ml/StatModel.class | Bin 0 -> 2898 bytes .../debug/org/opencv/ml/TrainData.class | Bin 0 -> 9262 bytes .../objdetect/BaseCascadeClassifier.class | Bin 0 -> 678 bytes .../opencv/objdetect/CascadeClassifier.class | Bin 0 -> 8964 bytes .../org/opencv/objdetect/HOGDescriptor.class | Bin 0 -> 14530 bytes .../org/opencv/objdetect/Objdetect.class | Bin 0 -> 1215 bytes .../org/opencv/osgi/OpenCVInterface.class | Bin 0 -> 127 bytes .../org/opencv/osgi/OpenCVNativeLoader.class | Bin 0 -> 837 bytes .../org/opencv/photo/AlignExposures.class | Bin 0 -> 1406 bytes .../debug/org/opencv/photo/AlignMTB.class | Bin 0 -> 3457 bytes .../debug/org/opencv/photo/CalibrateCRF.class | Bin 0 -> 1275 bytes .../org/opencv/photo/CalibrateDebevec.class | Bin 0 -> 1528 bytes .../org/opencv/photo/CalibrateRobertson.class | Bin 0 -> 1486 bytes .../debug/org/opencv/photo/MergeDebevec.class | Bin 0 -> 1698 bytes .../org/opencv/photo/MergeExposures.class | Bin 0 -> 1352 bytes .../debug/org/opencv/photo/MergeMertens.class | Bin 0 -> 2580 bytes .../org/opencv/photo/MergeRobertson.class | Bin 0 -> 1706 bytes .../debug/org/opencv/photo/Photo.class | Bin 0 -> 23175 bytes .../debug/org/opencv/photo/Tonemap.class | Bin 0 -> 1161 bytes .../debug/org/opencv/photo/TonemapDrago.class | Bin 0 -> 1192 bytes .../org/opencv/photo/TonemapDurand.class | Bin 0 -> 1770 bytes .../org/opencv/photo/TonemapMantiuk.class | Bin 0 -> 1205 bytes .../org/opencv/photo/TonemapReinhard.class | Bin 0 -> 1547 bytes .../debug/org/opencv/utils/Converters.class | Bin 0 -> 23797 bytes .../opencv/video/BackgroundSubtractor.class | Bin 0 -> 1332 bytes .../video/BackgroundSubtractorKNN.class | Bin 0 -> 2742 bytes .../video/BackgroundSubtractorMOG2.class | Bin 0 -> 4648 bytes .../org/opencv/video/DenseOpticalFlow.class | Bin 0 -> 1062 bytes .../opencv/video/DualTVL1OpticalFlow.class | Bin 0 -> 7100 bytes .../opencv/video/FarnebackOpticalFlow.class | Bin 0 -> 4744 bytes .../debug/org/opencv/video/KalmanFilter.class | Bin 0 -> 5013 bytes .../org/opencv/video/SparseOpticalFlow.class | Bin 0 -> 1383 bytes .../opencv/video/SparsePyrLKOpticalFlow.class | Bin 0 -> 3920 bytes .../debug/org/opencv/video/Video.class | Bin 0 -> 12379 bytes .../org/opencv/videoio/VideoCapture.class | Bin 0 -> 3258 bytes .../org/opencv/videoio/VideoWriter.class | Bin 0 -> 4002 bytes .../debug/org/opencv/videoio/Videoio.class | Bin 0 -> 31112 bytes .../debug-mergeJniLibs/merge-state | Bin 0 -> 550 bytes .../mergeDebugJniLibFolders/merger.xml | 2 + .../incremental/mergeDebugShaders/merger.xml | 2 + .../incremental/packageDebugAssets/merger.xml | 2 + .../compile-file-map.properties | 2 +- .../intermediate-jars/debug/classes.jar | Bin 0 -> 350552 bytes .../intermediate-jars/debug/res.jar | Bin 0 -> 22 bytes .../debug/annotationProcessors.json | 1 + .../manifests/aapt/debug/AndroidManifest.xml | 4 +- .../manifests/full/debug/AndroidManifest.xml | 4 +- .../mergeJniLibs/debug/__content__.json | 1 + .../stripDebugSymbol/debug/__content__.json | 1 + app/CMakeLists.txt | 34 +- app/build.gradle | 12 +- app/src/main/cpp/base_include.h | 47 - app/src/main/cpp/cmdutils.c | 2266 -------- app/src/main/cpp/cmdutils.h | 595 --- app/src/main/cpp/cmdutils_common_opts.h | 35 - app/src/main/cpp/config.h | 2230 -------- app/src/main/cpp/ffmpeg.c | 4674 ----------------- app/src/main/cpp/ffmpeg.h | 616 --- app/src/main/cpp/ffmpeg_filter.c | 1108 ---- app/src/main/cpp/ffmpeg_opt.c | 3593 ------------- app/src/main/cpp/jx_ffmpeg_cmd_run.c | 64 - app/src/main/cpp/jx_ffmpeg_cmd_run.h | 24 - app/src/main/cpp/jx_ffmpeg_config.cpp | 13 - app/src/main/cpp/jx_ffmpeg_config.h | 12 - app/src/main/cpp/jx_ffmpeg_jni.cpp | 187 - app/src/main/cpp/jx_jni_handler.cpp | 89 - app/src/main/cpp/jx_jni_handler.h | 30 - app/src/main/cpp/jx_log.cpp | 9 - app/src/main/cpp/jx_log.h | 17 - app/src/main/cpp/jx_media_muxer.cpp | 281 - app/src/main/cpp/jx_media_muxer.h | 24 - app/src/main/cpp/jx_pcm_encode_aac.cpp | 244 - app/src/main/cpp/jx_pcm_encode_aac.h | 60 - app/src/main/cpp/jx_user_arguments.h | 33 - app/src/main/cpp/jx_yuv_encode_h264.cpp | 393 -- app/src/main/cpp/jx_yuv_encode_h264.h | 64 - app/src/main/cpp/threadsafe_queue.cpp | 79 - 213 files changed, 448 insertions(+), 16826 deletions(-) create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/BuildConfig.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/R$attr.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/R$id.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/R$styleable.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/R.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$1.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$2.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3$1.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3$2.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$1.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$2.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$3.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$4.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$5.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$6.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$7.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer$1.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer$2.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$1.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewFrame.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewListener.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewListener2.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewListenerAdapter.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$ListItemAccessor.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraGLRendererBase.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraGLSurfaceView$CameraTextureListener.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraGLSurfaceView.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraRenderer.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/FpsMeter.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/InstallCallbackInterface.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View$1.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View$2.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View$3.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View$JavaCamera2Frame.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$1.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$CameraWorker.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$JavaCameraFrame.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$JavaCameraSizeAccessor.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/LoaderCallbackInterface.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/OpenCVLoader.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/StaticHelper.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Utils.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/Calib3d.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoBM.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoMatcher.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoSGBM.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Algorithm.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Core$MinMaxLocResult.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Core.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/CvException.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/CvType.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/DMatch.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/KeyPoint.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Mat.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfByte.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfDMatch.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfDouble.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfFloat.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfFloat4.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfFloat6.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfInt.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfInt4.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfKeyPoint.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfPoint.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfPoint2f.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfPoint3.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfPoint3f.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRect.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRect2d.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRotatedRect.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Point.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Point3.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Range.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Rect.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Rect2d.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/RotatedRect.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Scalar.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Size.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/TermCriteria.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/TickMeter.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/DictValue.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/Dnn.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/Layer.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/Net.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/engine/OpenCVEngineInterface$Stub$Proxy.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/engine/OpenCVEngineInterface$Stub.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/engine/OpenCVEngineInterface.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/AKAZE.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/AgastFeatureDetector.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BFMatcher.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BOWImgDescriptorExtractor.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BOWKMeansTrainer.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BOWTrainer.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BRISK.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/DescriptorExtractor.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/DescriptorMatcher.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FastFeatureDetector.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Feature2D.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FeatureDetector.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Features2d.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FlannBasedMatcher.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/GFTTDetector.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/KAZE.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/MSER.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/ORB.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Params.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgcodecs/Imgcodecs.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/CLAHE.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Imgproc.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/LineSegmentDetector.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Moments.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Subdiv2D.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/ANN_MLP.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/ANN_MLP_ANNEAL.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/Boost.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/DTrees.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/EM.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/KNearest.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/LogisticRegression.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/Ml.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/NormalBayesClassifier.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/ParamGrid.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/RTrees.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/SVM.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/SVMSGD.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/StatModel.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/TrainData.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/BaseCascadeClassifier.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/CascadeClassifier.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/HOGDescriptor.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/Objdetect.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/osgi/OpenCVInterface.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/osgi/OpenCVNativeLoader.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/AlignExposures.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/AlignMTB.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateCRF.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateDebevec.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateRobertson.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/MergeDebevec.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/MergeExposures.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/MergeMertens.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/MergeRobertson.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/Photo.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/Tonemap.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapDrago.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapDurand.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapMantiuk.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapReinhard.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/utils/Converters.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/BackgroundSubtractor.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/BackgroundSubtractorKNN.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/BackgroundSubtractorMOG2.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/DenseOpticalFlow.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/DualTVL1OpticalFlow.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/FarnebackOpticalFlow.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/KalmanFilter.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/SparseOpticalFlow.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/SparsePyrLKOpticalFlow.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/Video.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/videoio/VideoCapture.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/videoio/VideoWriter.class create mode 100644 OpenCVLibrary/build/intermediates/classes/debug/org/opencv/videoio/Videoio.class create mode 100644 OpenCVLibrary/build/intermediates/incremental/debug-mergeJniLibs/merge-state create mode 100644 OpenCVLibrary/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml create mode 100644 OpenCVLibrary/build/intermediates/incremental/mergeDebugShaders/merger.xml create mode 100644 OpenCVLibrary/build/intermediates/incremental/packageDebugAssets/merger.xml create mode 100644 OpenCVLibrary/build/intermediates/intermediate-jars/debug/classes.jar create mode 100644 OpenCVLibrary/build/intermediates/intermediate-jars/debug/res.jar create mode 100644 OpenCVLibrary/build/intermediates/javaPrecompile/debug/annotationProcessors.json create mode 100644 OpenCVLibrary/build/intermediates/transforms/mergeJniLibs/debug/__content__.json create mode 100644 OpenCVLibrary/build/intermediates/transforms/stripDebugSymbol/debug/__content__.json delete mode 100644 app/src/main/cpp/base_include.h delete mode 100644 app/src/main/cpp/cmdutils.c delete mode 100644 app/src/main/cpp/cmdutils.h delete mode 100644 app/src/main/cpp/cmdutils_common_opts.h delete mode 100644 app/src/main/cpp/config.h delete mode 100644 app/src/main/cpp/ffmpeg.c delete mode 100644 app/src/main/cpp/ffmpeg.h delete mode 100644 app/src/main/cpp/ffmpeg_filter.c delete mode 100644 app/src/main/cpp/ffmpeg_opt.c delete mode 100644 app/src/main/cpp/jx_ffmpeg_cmd_run.c delete mode 100644 app/src/main/cpp/jx_ffmpeg_cmd_run.h delete mode 100644 app/src/main/cpp/jx_ffmpeg_config.cpp delete mode 100644 app/src/main/cpp/jx_ffmpeg_config.h delete mode 100644 app/src/main/cpp/jx_ffmpeg_jni.cpp delete mode 100644 app/src/main/cpp/jx_jni_handler.cpp delete mode 100644 app/src/main/cpp/jx_jni_handler.h delete mode 100644 app/src/main/cpp/jx_log.cpp delete mode 100644 app/src/main/cpp/jx_log.h delete mode 100644 app/src/main/cpp/jx_media_muxer.cpp delete mode 100644 app/src/main/cpp/jx_media_muxer.h delete mode 100644 app/src/main/cpp/jx_pcm_encode_aac.cpp delete mode 100644 app/src/main/cpp/jx_pcm_encode_aac.h delete mode 100644 app/src/main/cpp/jx_user_arguments.h delete mode 100644 app/src/main/cpp/jx_yuv_encode_h264.cpp delete mode 100644 app/src/main/cpp/jx_yuv_encode_h264.h delete mode 100644 app/src/main/cpp/threadsafe_queue.cpp diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 80aa714cdd7ef8459bddf623e7c382452f49c660..74cbb417853ea6375f87c4b85b5e5915ceecf654 100644 GIT binary patch delta 152 zcmeyz@{eW043_r=d}bEEZjO-iOE~gB(&Gy&)ZAV6Z6Xh|2SA@Q~&^O Cn>+ac delta 116 zcmV-)0E_?r1pWk&m;}ClE2WW~PYDlmWps3DZfA3m{~iz!kOxP3j?BcpwyM{f4J~Yu z=^hzz0Db@l0000Gx~#f(C~pXf#DE_SQiDx@lUV_|5D%jgLr;kQ!LM`ht9rB1sgoiC WOA+%oWTT-Jxf+KRUSkKCD7JVCOfVAw diff --git a/.idea/misc.xml b/.idea/misc.xml index e0d5b93..b0c7b20 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -29,7 +29,7 @@ - + diff --git a/OpenCVLibrary/build.gradle b/OpenCVLibrary/build.gradle index 62d9ab6..b371224 100644 --- a/OpenCVLibrary/build.gradle +++ b/OpenCVLibrary/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 14 + compileSdkVersion 26 buildToolsVersion "28.0.3" defaultConfig { - minSdkVersion 8 - targetSdkVersion 21 + minSdkVersion 21 + targetSdkVersion 26 } buildTypes { diff --git a/OpenCVLibrary/build/intermediates/attr/R.txt b/OpenCVLibrary/build/intermediates/attr/R.txt index ab94c17..a8028d5 100644 --- a/OpenCVLibrary/build/intermediates/attr/R.txt +++ b/OpenCVLibrary/build/intermediates/attr/R.txt @@ -2,17 +2,22 @@ int attr absListViewStyle 0x0101006a int attr accessibilityEventTypes 0x01010380 int attr accessibilityFeedbackType 0x01010382 int attr accessibilityFlags 0x01010384 +int attr accessibilityLiveRegion 0x010103ee +int attr accessibilityTraversalAfter 0x010104d2 +int attr accessibilityTraversalBefore 0x010104d1 int attr accountPreferences 0x0101029f int attr accountType 0x0101028f int attr action 0x0101002d int attr actionBarDivider 0x0101039b int attr actionBarItemBackground 0x0101039c +int attr actionBarPopupTheme 0x0101048d int attr actionBarSize 0x010102eb int attr actionBarSplitStyle 0x01010388 int attr actionBarStyle 0x010102ce int attr actionBarTabBarStyle 0x010102f4 int attr actionBarTabStyle 0x010102f3 int attr actionBarTabTextStyle 0x010102f5 +int attr actionBarTheme 0x01010431 int attr actionBarWidgetTheme 0x01010397 int attr actionButtonStyle 0x010102d8 int attr actionDropDownStyle 0x010102d7 @@ -24,11 +29,15 @@ int attr actionModeCloseButtonStyle 0x010102f7 int attr actionModeCloseDrawable 0x010102dc int attr actionModeCopyDrawable 0x01010312 int attr actionModeCutDrawable 0x01010311 +int attr actionModeFindDrawable 0x0101047a int attr actionModePasteDrawable 0x01010313 int attr actionModeSelectAllDrawable 0x0101037e +int attr actionModeShareDrawable 0x01010479 int attr actionModeSplitBackground 0x0101039d int attr actionModeStyle 0x01010394 +int attr actionModeWebSearchDrawable 0x0101047b int attr actionOverflowButtonStyle 0x010102f6 +int attr actionOverflowMenuStyle 0x01010444 int attr actionProviderClass 0x01010389 int attr actionViewClass 0x010102fc int attr activatedBackgroundIndicator 0x010102fd @@ -36,8 +45,10 @@ int attr activityCloseEnterAnimation 0x010100ba int attr activityCloseExitAnimation 0x010100bb int attr activityOpenEnterAnimation 0x010100b8 int attr activityOpenExitAnimation 0x010100b9 +int attr addPrintersActivity 0x010103e6 int attr addStatesFromChildren 0x010100f0 int attr adjustViewBounds 0x0101011e +int attr advancedPrintOptionsActivity 0x010103f1 int attr alertDialogIcon 0x01010355 int attr alertDialogStyle 0x0101005d int attr alertDialogTheme 0x01010309 @@ -45,13 +56,19 @@ int attr alignmentMode 0x0101037a int attr allContactsName 0x010102cc int attr allowBackup 0x01010280 int attr allowClearUserData 0x01010005 +int attr allowEmbedded 0x010103f5 int attr allowParallelSyncs 0x01010332 int attr allowSingleTap 0x01010259 int attr allowTaskReparenting 0x01010204 +int attr allowUndo 0x010104df int attr alpha 0x0101031f +int attr alphabeticModifiers 0x0101054e int attr alphabeticShortcut 0x010101e3 int attr alwaysDrawnWithCache 0x010100ef int attr alwaysRetainTaskState 0x01010203 +int attr amPmBackgroundColor 0x010104a5 +int attr amPmTextColor 0x010104a4 +int attr ambientShadowAlpha 0x010104be int attr angle 0x010101a0 int attr animateFirstView 0x010102d5 int attr animateLayoutChanges 0x010102f2 @@ -63,25 +80,42 @@ int attr animationOrder 0x010101ce int attr animationResolution 0x0101031a int attr antialias 0x0101011a int attr anyDensity 0x0101026c +int attr apduServiceBanner 0x010103ed int attr apiKey 0x01010211 +int attr appCategory 0x01010545 int attr author 0x010102b4 int attr authorities 0x01010018 int attr autoAdvanceViewId 0x0101030f int attr autoCompleteTextViewStyle 0x0101006b int attr autoLink 0x010100b0 +int attr autoMirrored 0x010103ea +int attr autoRemoveFromRecents 0x01010447 +int attr autoSizeMaxTextSize 0x01010546 +int attr autoSizeMinTextSize 0x01010538 +int attr autoSizePresetSizes 0x01010537 +int attr autoSizeStepGranularity 0x01010536 +int attr autoSizeTextType 0x01010535 int attr autoStart 0x010102b5 int attr autoText 0x0101016a int attr autoUrlDetect 0x0101028c +int attr autoVerify 0x010104ee +int attr autofillHints 0x01010556 +int attr autofilledHighlight 0x01010568 int attr background 0x010100d4 int attr backgroundDimAmount 0x01010032 int attr backgroundDimEnabled 0x0101021f int attr backgroundSplit 0x0101038b int attr backgroundStacked 0x0101038a +int attr backgroundTint 0x0101046b +int attr backgroundTintMode 0x0101046c int attr backupAgent 0x0101027f +int attr backupInForeground 0x0101051a +int attr banner 0x010103f2 int attr baseline 0x0101031c int attr baselineAlignBottom 0x01010122 int attr baselineAligned 0x01010126 int attr baselineAlignedChildIndex 0x01010127 +int attr bitmap 0x01010516 int attr borderlessButtonStyle 0x0101032b int attr bottom 0x010101b0 int attr bottomBright 0x010100cd @@ -92,59 +126,97 @@ int attr bottomOffset 0x01010257 int attr bottomRightRadius 0x010101ac int attr breadCrumbShortTitle 0x01010304 int attr breadCrumbTitle 0x01010303 +int attr breakStrategy 0x010104dd int attr bufferType 0x0101014e int attr button 0x01010107 int attr buttonBarButtonStyle 0x0101032f +int attr buttonBarNegativeButtonStyle 0x0101048b +int attr buttonBarNeutralButtonStyle 0x0101048a +int attr buttonBarPositiveButtonStyle 0x01010489 int attr buttonBarStyle 0x0101032e +int attr buttonGravity 0x010104fe int attr buttonStyle 0x01010048 int attr buttonStyleInset 0x0101004a int attr buttonStyleSmall 0x01010049 int attr buttonStyleToggle 0x0101004b +int attr buttonTint 0x0101046f +int attr buttonTintMode 0x01010470 int attr cacheColorHint 0x01010101 +int attr calendarTextColor 0x0101049b int attr calendarViewShown 0x0101034c int attr calendarViewStyle 0x0101035d +int attr canControlMagnification 0x01010507 +int attr canPerformGestures 0x0101050d +int attr canRecord 0x0101051c +int attr canRequestEnhancedWebAccessibility 0x010103d8 +int attr canRequestFilterKeyEvents 0x010103d9 +int attr canRequestFingerprintGestures 0x0101054d +int attr canRequestTouchExplorationMode 0x010103d7 int attr canRetrieveWindowContent 0x01010385 int attr candidatesTextStyleSpans 0x01010230 int attr capitalize 0x01010169 +int attr category 0x010103e8 int attr centerBright 0x010100cc int attr centerColor 0x0101020b int attr centerDark 0x010100c8 int attr centerMedium 0x010100cf int attr centerX 0x010101a2 int attr centerY 0x010101a3 +int attr certDigest 0x01010548 int attr checkBoxPreferenceStyle 0x0101008f int attr checkMark 0x01010108 +int attr checkMarkTint 0x010104a7 +int attr checkMarkTintMode 0x010104a8 int attr checkable 0x010101e5 int attr checkableBehavior 0x010101e0 int attr checkboxStyle 0x0101006c int attr checked 0x01010106 int attr checkedButton 0x01010148 +int attr checkedTextViewStyle 0x010103c8 int attr childDivider 0x01010111 int attr childIndicator 0x0101010c +int attr childIndicatorEnd 0x010103d4 int attr childIndicatorLeft 0x0101010f int attr childIndicatorRight 0x01010110 +int attr childIndicatorStart 0x010103d3 int attr choiceMode 0x0101012b int attr clearTaskOnLaunch 0x01010015 int attr clickable 0x010100e5 int attr clipChildren 0x010100ea int attr clipOrientation 0x0101020a int attr clipToPadding 0x010100eb +int attr closeIcon 0x01010481 int attr codes 0x01010242 int attr collapseColumns 0x0101014b +int attr collapseContentDescription 0x010104d0 +int attr collapseIcon 0x010104ff int attr color 0x010101a5 +int attr colorAccent 0x01010435 int attr colorActivatedHighlight 0x01010390 int attr colorBackground 0x01010031 int attr colorBackgroundCacheHint 0x010102ab +int attr colorBackgroundFloating 0x010104e2 +int attr colorButtonNormal 0x0101042b +int attr colorControlActivated 0x0101042a +int attr colorControlHighlight 0x0101042c +int attr colorControlNormal 0x01010429 +int attr colorEdgeEffect 0x010104ce +int attr colorError 0x01010543 int attr colorFocusedHighlight 0x0101038f int attr colorForeground 0x01010030 int attr colorForegroundInverse 0x01010206 int attr colorLongPressedHighlight 0x0101038e +int attr colorMode 0x0101054a int attr colorMultiSelectHighlight 0x01010391 int attr colorPressedHighlight 0x0101038d +int attr colorPrimary 0x01010433 +int attr colorPrimaryDark 0x01010434 +int attr colorSecondary 0x01010530 int attr columnCount 0x01010377 int attr columnDelay 0x010101cf int attr columnOrderPreserved 0x01010378 int attr columnWidth 0x01010117 +int attr commitIcon 0x01010485 int attr compatibleWidthLimitDp 0x01010365 int attr completionHint 0x01010172 int attr completionHintView 0x01010173 @@ -153,8 +225,25 @@ int attr configChanges 0x0101001f int attr configure 0x0101025d int attr constantSize 0x01010196 int attr content 0x0101025b +int attr contentAgeHint 0x010104b9 int attr contentAuthority 0x01010290 int attr contentDescription 0x01010273 +int attr contentInsetEnd 0x01010454 +int attr contentInsetEndWithActions 0x01010523 +int attr contentInsetLeft 0x01010455 +int attr contentInsetRight 0x01010456 +int attr contentInsetStart 0x01010453 +int attr contentInsetStartWithNavigation 0x01010522 +int attr contextClickable 0x010104e7 +int attr contextDescription 0x0101052e +int attr contextPopupMenuStyle 0x01010501 +int attr contextUri 0x0101052d +int attr controlX1 0x010103fc +int attr controlX2 0x010103fe +int attr controlY1 0x010103fd +int attr controlY2 0x010103ff +int attr countDown 0x0101051b +int attr country 0x010104ba int attr cropToPadding 0x01010123 int attr cursorVisible 0x01010152 int attr customNavigationLayout 0x010102d2 @@ -163,10 +252,18 @@ int attr cycles 0x010101d4 int attr dashGap 0x010101a7 int attr dashWidth 0x010101a6 int attr data 0x0101002e +int attr datePickerDialogTheme 0x010104ac +int attr datePickerMode 0x010104b3 int attr datePickerStyle 0x0101035c int attr dateTextAppearance 0x01010349 +int attr dayOfWeekBackground 0x01010494 +int attr dayOfWeekTextAppearance 0x01010495 int attr debuggable 0x0101000f +int attr defaultFocusHighlightEnabled 0x01010562 +int attr defaultHeight 0x010104f5 +int attr defaultToDeviceProtectedStorage 0x01010504 int attr defaultValue 0x010101ed +int attr defaultWidth 0x010104f4 int attr delay 0x010101cc int attr dependency 0x010101ec int attr descendantFocusability 0x010100f1 @@ -180,9 +277,11 @@ int attr dialogIcon 0x010101f4 int attr dialogLayout 0x010101f7 int attr dialogMessage 0x010101f3 int attr dialogPreferenceStyle 0x01010091 +int attr dialogPreferredPadding 0x010104d3 int attr dialogTheme 0x01010308 int attr dialogTitle 0x010101f2 int attr digits 0x01010166 +int attr directBootAware 0x01010505 int attr direction 0x010101d1 int attr directionDescriptions 0x010103a1 int attr directionPriority 0x010101d2 @@ -195,6 +294,7 @@ int attr dividerHeight 0x0101012a int attr dividerHorizontal 0x0101032c int attr dividerPadding 0x0101032a int attr dividerVertical 0x0101030a +int attr documentLaunchMode 0x01010445 int attr drawSelectorOnTop 0x010100fc int attr drawable 0x01010199 int attr drawableBottom 0x0101016e @@ -203,6 +303,8 @@ int attr drawableLeft 0x0101016f int attr drawablePadding 0x01010171 int attr drawableRight 0x01010170 int attr drawableStart 0x01010392 +int attr drawableTint 0x010104d6 +int attr drawableTintMode 0x010104d7 int attr drawableTop 0x0101016d int attr drawingCacheQuality 0x010100e8 int attr dropDownAnchor 0x01010263 @@ -223,16 +325,25 @@ int attr editTextPreferenceStyle 0x01010092 int attr editTextStyle 0x0101006e int attr editable 0x0101016b int attr editorExtras 0x01010224 +int attr elegantTextHeight 0x0101045d +int attr elevation 0x01010440 int attr ellipsize 0x010100ab int attr ems 0x01010158 +int attr enableVrMode 0x01010525 int attr enabled 0x0101000e +int attr end 0x010104dc int attr endColor 0x0101019e +int attr endX 0x01010512 +int attr endY 0x01010513 int attr endYear 0x0101017d int attr enterFadeDuration 0x0101030c int attr entries 0x010100b2 int attr entryValues 0x010101f8 int attr eventsInterceptionEnabled 0x0101027d +int attr excludeClass 0x01010442 int attr excludeFromRecents 0x01010017 +int attr excludeId 0x01010441 +int attr excludeName 0x0101044e int attr exitFadeDuration 0x0101030d int attr expandableListPreferredChildIndicatorLeft 0x01010052 int attr expandableListPreferredChildIndicatorRight 0x01010053 @@ -243,7 +354,9 @@ int attr expandableListPreferredItemPaddingLeft 0x0101004e int attr expandableListViewStyle 0x0101006f int attr expandableListViewWhiteStyle 0x010102b6 int attr exported 0x01010010 +int attr externalService 0x0101050e int attr extraTension 0x0101026b +int attr extractNativeLibs 0x010104ea int attr factor 0x010101d3 int attr fadeDuration 0x01010278 int attr fadeEnabled 0x0101027e @@ -251,20 +364,26 @@ int attr fadeOffset 0x01010277 int attr fadeScrollbars 0x010102aa int attr fadingEdge 0x010100df int attr fadingEdgeLength 0x010100e0 +int attr fadingMode 0x010103e1 int attr fastScrollAlwaysVisible 0x01010335 int attr fastScrollEnabled 0x01010226 int attr fastScrollOverlayPosition 0x0101033a int attr fastScrollPreviewBackgroundLeft 0x01010337 int attr fastScrollPreviewBackgroundRight 0x01010338 +int attr fastScrollStyle 0x010103f7 int attr fastScrollTextColor 0x01010359 int attr fastScrollThumbDrawable 0x01010336 int attr fastScrollTrackDrawable 0x01010339 int attr fillAfter 0x010101bd +int attr fillAlpha 0x010104cc int attr fillBefore 0x010101bc +int attr fillColor 0x01010404 int attr fillEnabled 0x0101024f +int attr fillType 0x0101051e int attr fillViewport 0x0101017a int attr filter 0x0101011b int attr filterTouchesWhenObscured 0x010102c4 +int attr fingerprintAuthDrawable 0x010104e8 int attr finishOnCloseSystemDialogs 0x010102a7 int attr finishOnTaskLaunch 0x01010014 int attr firstDayOfWeek 0x0101033d @@ -272,25 +391,53 @@ int attr fitsSystemWindows 0x010100dd int attr flipInterval 0x01010179 int attr focusable 0x010100da int attr focusableInTouchMode 0x010100db +int attr focusedByDefault 0x01010544 int attr focusedMonthDateColor 0x01010343 +int attr font 0x01010532 +int attr fontFamily 0x010103ac +int attr fontFeatureSettings 0x010104b7 +int attr fontProviderAuthority 0x01010550 +int attr fontProviderCerts 0x0101055d +int attr fontProviderPackage 0x01010557 +int attr fontProviderQuery 0x01010551 +int attr fontStyle 0x0101053f +int attr fontWeight 0x01010533 int attr footerDividersEnabled 0x0101022f +int attr forceHasOverlappingRendering 0x01010521 int attr foreground 0x01010109 int attr foregroundGravity 0x01010200 +int attr foregroundTint 0x0101046d +int attr foregroundTintMode 0x0101046e int attr format 0x01010105 +int attr format12Hour 0x010103ca +int attr format24Hour 0x010103cb +int attr fraction 0x010104d8 int attr fragment 0x010102e3 +int attr fragmentAllowEnterTransitionOverlap 0x010104c8 +int attr fragmentAllowReturnTransitionOverlap 0x010104c9 int attr fragmentCloseEnterAnimation 0x010102e7 int attr fragmentCloseExitAnimation 0x010102e8 +int attr fragmentEnterTransition 0x010104c3 +int attr fragmentExitTransition 0x010104c2 int attr fragmentFadeEnterAnimation 0x010102e9 int attr fragmentFadeExitAnimation 0x010102ea int attr fragmentOpenEnterAnimation 0x010102e5 int attr fragmentOpenExitAnimation 0x010102e6 +int attr fragmentReenterTransition 0x010104c7 +int attr fragmentReturnTransition 0x010104c5 +int attr fragmentSharedElementEnterTransition 0x010104c4 +int attr fragmentSharedElementReturnTransition 0x010104c6 int attr freezesText 0x0101016c int attr fromAlpha 0x010101ca int attr fromDegrees 0x010101b3 +int attr fromId 0x0101044a +int attr fromScene 0x010103dd int attr fromXDelta 0x010101c6 int attr fromXScale 0x010101c2 int attr fromYDelta 0x010101c8 int attr fromYScale 0x010101c4 +int attr fullBackupContent 0x010104eb +int attr fullBackupOnly 0x01010473 int attr fullBright 0x010100ca int attr fullDark 0x010100c6 int attr functionalTest 0x01010023 @@ -303,6 +450,7 @@ int attr gestureStrokeSquarenessThreshold 0x0101027b int attr gestureStrokeType 0x01010279 int attr gestureStrokeWidth 0x01010274 int attr glEsVersion 0x01010281 +int attr goIcon 0x01010482 int attr gradientRadius 0x010101a4 int attr grantUriPermissions 0x0101001b int attr gravity 0x010100af @@ -315,9 +463,15 @@ int attr handleProfiling 0x01010022 int attr hapticFeedbackEnabled 0x0101025e int attr hardwareAccelerated 0x010102d3 int attr hasCode 0x0101000c +int attr headerAmPmTextAppearance 0x010104a0 int attr headerBackground 0x0101012f +int attr headerDayOfMonthTextAppearance 0x01010497 int attr headerDividersEnabled 0x0101022e +int attr headerMonthTextAppearance 0x01010496 +int attr headerTimeTextAppearance 0x0101049f +int attr headerYearTextAppearance 0x01010498 int attr height 0x01010155 +int attr hideOnContentScroll 0x01010443 int attr hint 0x01010150 int attr homeAsUpIndicator 0x0101030b int attr homeLayout 0x0101031d @@ -326,8 +480,14 @@ int attr horizontalGap 0x0101023f int attr horizontalScrollViewStyle 0x01010353 int attr horizontalSpacing 0x01010114 int attr host 0x01010028 +int attr hotSpotX 0x01010517 +int attr hotSpotY 0x01010518 +int attr hyphenationFrequency 0x010104de int attr icon 0x01010002 int attr iconPreview 0x01010249 +int attr iconSpaceReserved 0x01010561 +int attr iconTint 0x0101055e +int attr iconTintMode 0x0101055f int attr iconifiedByDefault 0x010102fa int attr id 0x010100d0 int attr ignoreGravity 0x010101ff @@ -343,6 +503,8 @@ int attr imeSubtypeExtraValue 0x010102ee int attr imeSubtypeLocale 0x010102ec int attr imeSubtypeMode 0x010102ed int attr immersive 0x010102c0 +int attr importantForAccessibility 0x010103aa +int attr importantForAutofill 0x01010558 int attr inAnimation 0x01010177 int attr includeFontPadding 0x0101015f int attr includeInGlobalSearch 0x0101026e @@ -352,15 +514,21 @@ int attr indeterminateDrawable 0x0101013b int attr indeterminateDuration 0x0101013d int attr indeterminateOnly 0x0101013a int attr indeterminateProgressStyle 0x01010318 +int attr indeterminateTint 0x01010469 +int attr indeterminateTintMode 0x0101046a +int attr indicatorEnd 0x010103d2 int attr indicatorLeft 0x0101010d int attr indicatorRight 0x0101010e +int attr indicatorStart 0x010103d1 int attr inflatedId 0x010100f3 int attr initOrder 0x0101001a +int attr initialKeyguardLayout 0x010103c2 int attr initialLayout 0x01010251 int attr innerRadius 0x0101025f int attr innerRadiusRatio 0x0101019b int attr inputMethod 0x01010168 int attr inputType 0x01010220 +int attr inset 0x010104b5 int attr insetBottom 0x010101ba int attr insetLeft 0x010101b7 int attr insetRight 0x010101b8 @@ -368,17 +536,24 @@ int attr insetTop 0x010101b9 int attr installLocation 0x010102b7 int attr interpolator 0x01010141 int attr isAlwaysSyncable 0x01010333 +int attr isAsciiCapable 0x010103e9 int attr isAuxiliary 0x0101037f int attr isDefault 0x01010221 +int attr isFeatureSplit 0x0101055b +int attr isGame 0x010103f4 int attr isIndicator 0x01010147 int attr isModifier 0x01010246 int attr isRepeatable 0x01010248 int attr isScrollContainer 0x0101024e +int attr isStatic 0x0101055a int attr isSticky 0x01010247 +int attr isolatedProcess 0x010103a9 +int attr isolatedSplits 0x0101054b int attr itemBackground 0x01010130 int attr itemIconDisabledAlpha 0x01010131 int attr itemPadding 0x0101032d int attr itemTextAppearance 0x0101012c +int attr justificationMode 0x01010567 int attr keepScreenOn 0x01010216 int attr key 0x010101e8 int attr keyBackground 0x01010233 @@ -390,30 +565,43 @@ int attr keyOutputText 0x0101024a int attr keyPreviewHeight 0x01010239 int attr keyPreviewLayout 0x01010237 int attr keyPreviewOffset 0x01010238 +int attr keySet 0x010103db int attr keyTextColor 0x01010236 int attr keyTextSize 0x01010234 int attr keyWidth 0x0101023d +int attr keyboardLayout 0x010103ab int attr keyboardMode 0x0101024d +int attr keyboardNavigationCluster 0x01010540 int attr keycode 0x010100c5 int attr killAfterRestore 0x0101029c int attr label 0x01010001 +int attr labelFor 0x010103c6 int attr labelTextSize 0x01010235 +int attr languageTag 0x01010508 int attr largeHeap 0x0101035a int attr largeScreens 0x01010286 int attr largestWidthLimitDp 0x01010366 int attr launchMode 0x0101001d +int attr launchTaskBehindSourceAnimation 0x01010492 +int attr launchTaskBehindTargetAnimation 0x01010491 int attr layerType 0x01010354 int attr layout 0x010100f2 int attr layoutAnimation 0x010100ec +int attr layoutDirection 0x010103b2 +int attr layoutMode 0x010103da int attr layout_above 0x01010184 int attr layout_alignBaseline 0x01010186 int attr layout_alignBottom 0x0101018a +int attr layout_alignEnd 0x010103ba int attr layout_alignLeft 0x01010187 int attr layout_alignParentBottom 0x0101018e +int attr layout_alignParentEnd 0x010103bc int attr layout_alignParentLeft 0x0101018b int attr layout_alignParentRight 0x0101018d +int attr layout_alignParentStart 0x010103bb int attr layout_alignParentTop 0x0101018c int attr layout_alignRight 0x01010189 +int attr layout_alignStart 0x010103b9 int attr layout_alignTop 0x01010188 int attr layout_alignWithParentIfMissing 0x01010192 int attr layout_below 0x01010185 @@ -422,24 +610,34 @@ int attr layout_centerInParent 0x0101018f int attr layout_centerVertical 0x01010191 int attr layout_column 0x0101014c int attr layout_columnSpan 0x0101037d +int attr layout_columnWeight 0x01010459 int attr layout_gravity 0x010100b3 int attr layout_height 0x010100f5 int attr layout_margin 0x010100f6 int attr layout_marginBottom 0x010100fa +int attr layout_marginEnd 0x010103b6 +int attr layout_marginHorizontal 0x0101053b int attr layout_marginLeft 0x010100f7 int attr layout_marginRight 0x010100f9 +int attr layout_marginStart 0x010103b5 int attr layout_marginTop 0x010100f8 +int attr layout_marginVertical 0x0101053c int attr layout_row 0x0101037b int attr layout_rowSpan 0x0101037c +int attr layout_rowWeight 0x01010458 int attr layout_scale 0x01010193 int attr layout_span 0x0101014d +int attr layout_toEndOf 0x010103b8 int attr layout_toLeftOf 0x01010182 int attr layout_toRightOf 0x01010183 +int attr layout_toStartOf 0x010103b7 int attr layout_weight 0x01010181 int attr layout_width 0x010100f4 int attr layout_x 0x0101017f int attr layout_y 0x01010180 int attr left 0x010101ad +int attr letterSpacing 0x010104b6 +int attr level 0x01010500 int attr lineSpacingExtra 0x01010217 int attr lineSpacingMultiplier 0x01010218 int attr lines 0x01010154 @@ -449,23 +647,31 @@ int attr listChoiceIndicatorMultiple 0x0101021a int attr listChoiceIndicatorSingle 0x01010219 int attr listDivider 0x01010214 int attr listDividerAlertDialog 0x01010305 +int attr listMenuViewStyle 0x010104f2 int attr listPopupWindowStyle 0x010102ff int attr listPreferredItemHeight 0x0101004d int attr listPreferredItemHeightLarge 0x01010386 int attr listPreferredItemHeightSmall 0x01010387 +int attr listPreferredItemPaddingEnd 0x010103be int attr listPreferredItemPaddingLeft 0x010103a3 int attr listPreferredItemPaddingRight 0x010103a4 +int attr listPreferredItemPaddingStart 0x010103bd int attr listSelector 0x010100fb int attr listSeparatorTextViewStyle 0x01010208 int attr listViewStyle 0x01010074 int attr listViewWhiteStyle 0x01010075 +int attr lockTaskMode 0x010104ed int attr logo 0x010102be +int attr logoDescription 0x010104e9 int attr longClickable 0x010100e6 int attr loopViews 0x01010307 int attr manageSpaceActivity 0x01010004 int attr mapViewStyle 0x0101008a int attr marqueeRepeatLimit 0x0101021d +int attr matchOrder 0x0101044f int attr max 0x01010136 +int attr maxAspectRatio 0x01010560 +int attr maxButtonHeight 0x010104fd int attr maxDate 0x01010340 int attr maxEms 0x01010157 int attr maxHeight 0x01010120 @@ -473,13 +679,18 @@ int attr maxItemsPerRow 0x01010134 int attr maxLength 0x01010160 int attr maxLevel 0x010101b2 int attr maxLines 0x01010153 +int attr maxRecents 0x01010446 int attr maxRows 0x01010133 int attr maxSdkVersion 0x01010271 int attr maxWidth 0x0101011f +int attr maximumAngle 0x0101047f int attr measureAllChildren 0x0101010a int attr measureWithLargestChild 0x010102d4 +int attr mediaRouteButtonStyle 0x010103ad +int attr mediaRouteTypes 0x010103ae int attr menuCategory 0x010101de int attr mimeType 0x01010026 +int attr min 0x01010539 int attr minDate 0x0101033f int attr minEms 0x0101015a int attr minHeight 0x01010140 @@ -489,12 +700,23 @@ int attr minResizeHeight 0x01010396 int attr minResizeWidth 0x01010395 int attr minSdkVersion 0x0101020c int attr minWidth 0x0101013f +int attr minimumHorizontalAngle 0x0101047d +int attr minimumVerticalAngle 0x0101047e +int attr mipMap 0x010103cd +int attr mirrorForRtl 0x010103ce int attr mode 0x0101017e int attr moreIcon 0x01010135 +int attr multiArch 0x0101048e int attr multiprocess 0x01010013 int attr name 0x01010003 +int attr navigationBarColor 0x01010452 +int attr navigationContentDescription 0x010104c1 +int attr navigationIcon 0x010104c0 int attr navigationMode 0x010102cf int attr negativeButtonText 0x010101f6 +int attr nestedScrollingEnabled 0x01010436 +int attr networkSecurityConfig 0x01010527 +int attr nextClusterForward 0x01010542 int attr nextFocusDown 0x010100e4 int attr nextFocusForward 0x0101033c int attr nextFocusLeft 0x010100e1 @@ -505,8 +727,15 @@ int attr normalScreens 0x01010285 int attr notificationTimeout 0x01010383 int attr numColumns 0x01010118 int attr numStars 0x01010144 +int attr numberPickerStyle 0x01010524 +int attr numbersBackgroundColor 0x010104a2 +int attr numbersInnerTextColor 0x010104e1 +int attr numbersSelectorColor 0x010104a3 +int attr numbersTextColor 0x010104a1 int attr numeric 0x01010165 +int attr numericModifiers 0x0101054f int attr numericShortcut 0x010101e4 +int attr offset 0x01010514 int attr onClick 0x0101026f int attr oneshot 0x01010197 int attr opacity 0x0101031e @@ -516,51 +745,75 @@ int attr ordering 0x010102e2 int attr orderingFromXml 0x010101e7 int attr orientation 0x010100c4 int attr outAnimation 0x01010178 +int attr outlineProvider 0x010104b8 int attr overScrollFooter 0x010102c3 int attr overScrollHeader 0x010102c2 int attr overScrollMode 0x010102c1 +int attr overlapAnchor 0x01010462 int attr overridesImplicitlyEnabledSubtype 0x010103a2 int attr packageNames 0x01010381 int attr padding 0x010100d5 int attr paddingBottom 0x010100d9 +int attr paddingEnd 0x010103b4 +int attr paddingHorizontal 0x0101053d int attr paddingLeft 0x010100d6 +int attr paddingMode 0x01010457 int attr paddingRight 0x010100d8 +int attr paddingStart 0x010103b3 int attr paddingTop 0x010100d7 +int attr paddingVertical 0x0101053e int attr panelBackground 0x0101005e int attr panelColorBackground 0x01010061 int attr panelColorForeground 0x01010060 int attr panelFullBackground 0x0101005f int attr panelTextAppearance 0x01010062 +int attr parentActivityName 0x010103a7 int attr password 0x0101015c int attr path 0x0101002a +int attr pathData 0x01010405 int attr pathPattern 0x0101002c int attr pathPrefix 0x0101002b +int attr patternPathData 0x010104ca int attr permission 0x01010006 +int attr permissionFlags 0x010103c7 int attr permissionGroup 0x0101000a +int attr permissionGroupFlags 0x010103c5 +int attr persistableMode 0x0101042d int attr persistent 0x0101000d int attr persistentDrawingCache 0x010100ee +int attr persistentWhenFeatureAvailable 0x01010563 int attr phoneNumber 0x01010167 int attr pivotX 0x010101b5 int attr pivotY 0x010101b6 +int attr pointerIcon 0x01010509 int attr popupAnimationStyle 0x010102c9 int attr popupBackground 0x01010176 int attr popupCharacters 0x01010244 +int attr popupElevation 0x0101048c +int attr popupEnterTransition 0x0101051f +int attr popupExitTransition 0x01010520 int attr popupKeyboard 0x01010243 int attr popupLayout 0x0101023b int attr popupMenuStyle 0x01010300 +int attr popupTheme 0x010104a9 int attr popupWindowStyle 0x01010076 int attr port 0x01010029 int attr positiveButtonText 0x010101f5 int attr preferenceCategoryStyle 0x0101008c +int attr preferenceFragmentStyle 0x01010506 int attr preferenceInformationStyle 0x0101008d int attr preferenceLayoutChild 0x01010094 int attr preferenceScreenStyle 0x0101008b int attr preferenceStyle 0x0101008e +int attr presentationTheme 0x010103c0 int attr previewImage 0x010102da +int attr primaryContentAlpha 0x01010552 int attr priority 0x0101001c int attr privateImeOptions 0x01010223 int attr process 0x01010011 int attr progress 0x01010137 +int attr progressBackgroundTint 0x01010465 +int attr progressBackgroundTintMode 0x01010466 int attr progressBarPadding 0x01010319 int attr progressBarStyle 0x01010077 int attr progressBarStyleHorizontal 0x01010078 @@ -571,12 +824,17 @@ int attr progressBarStyleSmall 0x01010079 int attr progressBarStyleSmallInverse 0x01010288 int attr progressBarStyleSmallTitle 0x0101020f int attr progressDrawable 0x0101013c +int attr progressTint 0x01010463 +int attr progressTintMode 0x01010464 int attr prompt 0x0101017b int attr propertyName 0x010102e1 +int attr propertyXName 0x01010474 +int attr propertyYName 0x01010475 int attr protectionLevel 0x01010009 int attr publicKey 0x010103a6 int attr queryActionMsg 0x010101db int attr queryAfterZeroResults 0x01010282 +int attr queryBackground 0x01010487 int attr queryHint 0x01010358 int attr quickContactBadgeStyleSmallWindowLarge 0x010102b3 int attr quickContactBadgeStyleSmallWindowMedium 0x010102b2 @@ -591,6 +849,12 @@ int attr ratingBarStyle 0x0101007c int attr ratingBarStyleIndicator 0x01010210 int attr ratingBarStyleSmall 0x0101007d int attr readPermission 0x01010007 +int attr recognitionService 0x0101049c +int attr recreateOnConfigChanges 0x01010547 +int attr recycleEnabled 0x01010559 +int attr relinquishTaskIdentity 0x01010476 +int attr reparent 0x010104bc +int attr reparentWithOverlay 0x010104bd int attr repeatCount 0x010101bf int attr repeatMode 0x010101c0 int attr reqFiveWayNav 0x01010232 @@ -598,20 +862,34 @@ int attr reqHardKeyboard 0x01010229 int attr reqKeyboardType 0x01010228 int attr reqNavigation 0x0101022a int attr reqTouchScreen 0x01010227 +int attr requireDeviceUnlock 0x010103ec int attr required 0x0101028e +int attr requiredAccountType 0x010103d6 +int attr requiredFeature 0x01010554 +int attr requiredForAllUsers 0x010103d0 +int attr requiredNotFeature 0x01010555 int attr requiresFadingEdge 0x010103a5 int attr requiresSmallestWidthDp 0x01010364 +int attr resizeClip 0x010104cf int attr resizeMode 0x01010363 int attr resizeable 0x0101028d +int attr resizeableActivity 0x010104f6 int attr resource 0x01010025 int attr restoreAnyVersion 0x010102ba int attr restoreNeedsApplication 0x0101029d +int attr restrictedAccountType 0x010103d5 +int attr restrictionType 0x01010493 +int attr resumeWhilePausing 0x010104b2 +int attr reversible 0x0101044b +int attr revisionCode 0x010104d5 int attr right 0x010101af int attr ringtonePreferenceStyle 0x01010093 int attr ringtoneType 0x010101f9 int attr rotation 0x01010326 +int attr rotationAnimation 0x0101053a int attr rotationX 0x01010327 int attr rotationY 0x01010328 +int attr roundIcon 0x0101052c int attr rowCount 0x01010375 int attr rowDelay 0x010101d0 int attr rowEdgeFlags 0x01010241 @@ -629,6 +907,7 @@ int attr screenDensity 0x010102cb int attr screenOrientation 0x0101001e int attr screenSize 0x010102ca int attr scrollHorizontally 0x0101015b +int attr scrollIndicators 0x010104e6 int attr scrollViewStyle 0x01010080 int attr scrollX 0x010100d2 int attr scrollY 0x010100d3 @@ -645,6 +924,8 @@ int attr scrollbarTrackVertical 0x01010067 int attr scrollbars 0x010100de int attr scrollingCache 0x010100fe int attr searchButtonText 0x01010205 +int attr searchHintIcon 0x010104d4 +int attr searchIcon 0x01010483 int attr searchMode 0x010101d5 int attr searchSettingsDescription 0x0101028a int attr searchSuggestAuthority 0x010101d6 @@ -653,15 +934,22 @@ int attr searchSuggestIntentData 0x010101da int attr searchSuggestPath 0x010101d7 int attr searchSuggestSelection 0x010101d8 int attr searchSuggestThreshold 0x0101026d +int attr searchViewStyle 0x01010480 +int attr secondaryContentAlpha 0x01010553 int attr secondaryProgress 0x01010138 +int attr secondaryProgressTint 0x01010467 +int attr secondaryProgressTintMode 0x01010468 int attr seekBarStyle 0x0101007b int attr segmentedButtonStyle 0x01010330 int attr selectAllOnFocus 0x0101015e int attr selectable 0x010101e6 int attr selectableItemBackground 0x0101030e +int attr selectableItemBackgroundBorderless 0x0101045c int attr selectedDateVerticalBar 0x01010347 int attr selectedWeekBackgroundColor 0x01010342 +int attr sessionService 0x0101043d int attr settingsActivity 0x01010225 +int attr setupActivity 0x010103f6 int attr shadowColor 0x01010161 int attr shadowDx 0x01010162 int attr shadowDy 0x01010163 @@ -670,15 +958,26 @@ int attr shape 0x0101019a int attr shareInterpolator 0x010101bb int attr sharedUserId 0x0101000b int attr sharedUserLabel 0x01010261 +int attr shortcutDisabledMessage 0x0101052b +int attr shortcutId 0x01010528 +int attr shortcutLongLabel 0x0101052a +int attr shortcutShortLabel 0x01010529 int attr shouldDisableView 0x010101ee int attr showAsAction 0x010102d9 int attr showDefault 0x010101fa int attr showDividers 0x01010329 +int attr showForAllUsers 0x010104ef +int attr showMetadataInPreview 0x0101052f +int attr showOnLockScreen 0x010103c9 int attr showSilent 0x010101fb +int attr showText 0x010104ad int attr showWeekNumber 0x0101033e int attr shownWeekCount 0x01010341 int attr shrinkColumns 0x0101014a int attr singleLine 0x0101015d +int attr singleLineTitle 0x0101055c +int attr singleUser 0x010103bf +int attr slideEdge 0x01010430 int attr smallIcon 0x0101029e int attr smallScreens 0x01010284 int attr smoothScrollbar 0x01010231 @@ -690,12 +989,24 @@ int attr spinnerMode 0x010102f1 int attr spinnerStyle 0x01010081 int attr spinnersShown 0x0101034b int attr splitMotionEvents 0x010102ef +int attr splitName 0x01010549 +int attr splitTrack 0x0101044c +int attr spotShadowAlpha 0x010104bf int attr src 0x01010119 +int attr ssp 0x010103e3 +int attr sspPattern 0x010103e5 +int attr sspPrefix 0x010103e4 int attr stackFromBottom 0x010100fd +int attr stackViewStyle 0x0101043e int attr starStyle 0x01010082 +int attr start 0x010104db int attr startColor 0x0101019d +int attr startDelay 0x010103e2 int attr startOffset 0x010101be +int attr startX 0x01010510 +int attr startY 0x01010511 int attr startYear 0x0101017c +int attr stateListAnimator 0x01010448 int attr stateNotNeeded 0x01010016 int attr state_above_anchor 0x010100aa int attr state_accelerated 0x0101031b @@ -720,25 +1031,45 @@ int attr state_selected 0x010100a1 int attr state_single 0x010100a3 int attr state_window_focused 0x0101009d int attr staticWallpaperPreview 0x01010331 +int attr statusBarColor 0x01010451 int attr stepSize 0x01010146 int attr stopWithTask 0x0101036a int attr streamType 0x01010209 int attr stretchColumns 0x01010149 int attr stretchMode 0x01010116 +int attr strokeAlpha 0x010104cb +int attr strokeColor 0x01010406 +int attr strokeLineCap 0x0101040b +int attr strokeLineJoin 0x0101040c +int attr strokeMiterLimit 0x0101040d +int attr strokeWidth 0x01010407 +int attr subMenuArrow 0x010104f3 +int attr submitBackground 0x01010488 int attr subtitle 0x010102d1 +int attr subtitleTextAppearance 0x0101042f +int attr subtitleTextColor 0x010104e4 int attr subtitleTextStyle 0x010102f9 int attr subtypeExtraValue 0x0101039a +int attr subtypeId 0x010103c1 int attr subtypeLocale 0x01010399 int attr suggestActionMsg 0x010101dc int attr suggestActionMsgColumn 0x010101dd +int attr suggestionRowLayout 0x01010486 int attr summary 0x010101e9 int attr summaryColumn 0x010102a2 int attr summaryOff 0x010101f0 int attr summaryOn 0x010101ef +int attr supportsAssist 0x010104f0 +int attr supportsLaunchVoiceAssistFromKeyguard 0x010104f1 +int attr supportsLocalInteraction 0x0101050f +int attr supportsPictureInPicture 0x010104f7 +int attr supportsRtl 0x010103af +int attr supportsSwitchingToNextInputMethod 0x010103eb int attr supportsUploading 0x0101029b int attr switchMinWidth 0x01010370 int attr switchPadding 0x01010371 int attr switchPreferenceStyle 0x0101036d +int attr switchStyle 0x0101043f int attr switchTextAppearance 0x0101036e int attr switchTextOff 0x0101036c int attr switchTextOn 0x0101036b @@ -751,7 +1082,11 @@ int attr tag 0x010100d1 int attr targetActivity 0x01010202 int attr targetClass 0x0101002f int attr targetDescriptions 0x010103a0 +int attr targetId 0x010103dc +int attr targetName 0x0101044d int attr targetPackage 0x01010021 +int attr targetProcesses 0x01010541 +int attr targetSandboxVersion 0x0101054c int attr targetSdkVersion 0x01010270 int attr taskAffinity 0x01010012 int attr taskCloseEnterAnimation 0x010100be @@ -765,6 +1100,7 @@ int attr taskToFrontExitAnimation 0x010100c1 int attr tension 0x0101026a int attr testOnly 0x01010272 int attr text 0x0101014f +int attr textAlignment 0x010103b1 int attr textAllCaps 0x0101038c int attr textAppearance 0x01010034 int attr textAppearanceButton 0x01010207 @@ -773,9 +1109,11 @@ int attr textAppearanceLarge 0x01010040 int attr textAppearanceLargeInverse 0x01010043 int attr textAppearanceLargePopupMenu 0x01010301 int attr textAppearanceListItem 0x0101039e +int attr textAppearanceListItemSecondary 0x01010432 int attr textAppearanceListItemSmall 0x0101039f int attr textAppearanceMedium 0x01010041 int attr textAppearanceMediumInverse 0x01010044 +int attr textAppearancePopupMenuHeader 0x01010502 int attr textAppearanceSearchResultSubtitle 0x010102a0 int attr textAppearanceSearchResultTitle 0x010102a1 int attr textAppearanceSmall 0x01010042 @@ -804,6 +1142,7 @@ int attr textColorSecondaryNoDisable 0x0101003c int attr textColorTertiary 0x01010212 int attr textColorTertiaryInverse 0x01010213 int attr textCursorDrawable 0x01010362 +int attr textDirection 0x010103b0 int attr textEditNoPasteWindowLayout 0x01010315 int attr textEditPasteWindowLayout 0x01010314 int attr textEditSideNoPasteWindowLayout 0x0101035f @@ -827,31 +1166,70 @@ int attr thickness 0x01010260 int attr thicknessRatio 0x0101019c int attr thumb 0x01010142 int attr thumbOffset 0x01010143 +int attr thumbPosition 0x010104e5 int attr thumbTextPadding 0x01010372 +int attr thumbTint 0x01010471 +int attr thumbTintMode 0x01010472 int attr thumbnail 0x010102a5 +int attr tickMark 0x0101050a +int attr tickMarkTint 0x0101050b +int attr tickMarkTintMode 0x0101050c int attr tileMode 0x01010201 +int attr tileModeX 0x01010477 +int attr tileModeY 0x01010478 +int attr timePickerDialogTheme 0x0101049e +int attr timePickerMode 0x010104b4 +int attr timePickerStyle 0x0101049d +int attr timeZone 0x010103cc int attr tint 0x01010121 +int attr tintMode 0x010103fb int attr title 0x010101e1 int attr titleCondensed 0x010101e2 +int attr titleMargin 0x010104f8 +int attr titleMarginBottom 0x010104fc +int attr titleMarginEnd 0x010104fa +int attr titleMarginStart 0x010104f9 +int attr titleMarginTop 0x010104fb +int attr titleTextAppearance 0x0101042e +int attr titleTextColor 0x010104e3 int attr titleTextStyle 0x010102f8 int attr toAlpha 0x010101cb int attr toDegrees 0x010101b4 +int attr toId 0x01010449 +int attr toScene 0x010103de int attr toXDelta 0x010101c7 int attr toXScale 0x010101c3 int attr toYDelta 0x010101c9 int attr toYScale 0x010101c5 +int attr toolbarStyle 0x010104aa +int attr tooltipText 0x01010534 int attr top 0x010101ae int attr topBright 0x010100cb int attr topDark 0x010100c7 int attr topLeftRadius 0x010101a9 int attr topOffset 0x01010258 int attr topRightRadius 0x010101aa +int attr touchscreenBlocksFocus 0x0101048f int attr track 0x0101036f +int attr trackTint 0x010104d9 +int attr trackTintMode 0x010104da int attr transcriptMode 0x01010100 int attr transformPivotX 0x01010320 int attr transformPivotY 0x01010321 +int attr transition 0x010103df +int attr transitionGroup 0x01010401 +int attr transitionName 0x01010400 +int attr transitionOrdering 0x010103e0 +int attr transitionVisibilityMode 0x0101047c +int attr translateX 0x0101045a +int attr translateY 0x0101045b int attr translationX 0x01010322 int attr translationY 0x01010323 +int attr translationZ 0x010103fa +int attr trimPathEnd 0x01010409 +int attr trimPathOffset 0x0101040a +int attr trimPathStart 0x01010408 +int attr tunerCount 0x0101051d int attr type 0x010101a1 int attr typeface 0x01010096 int attr uiOptions 0x01010398 @@ -859,15 +1237,19 @@ int attr uncertainGestureColor 0x01010276 int attr unfocusedMonthDateColor 0x01010344 int attr unselectedAlpha 0x0101020e int attr updatePeriodMillis 0x01010250 +int attr use32bitAbi 0x01010515 int attr useDefaultMargins 0x01010379 int attr useIntrinsicSizeAsMinimum 0x01010310 int attr useLevel 0x0101019f int attr userVisible 0x01010291 +int attr usesCleartextTraffic 0x010104ec int attr value 0x01010024 int attr valueFrom 0x010102de int attr valueTo 0x010102df int attr valueType 0x010102e0 int attr variablePadding 0x01010195 +int attr vendor 0x010103e7 +int attr version 0x01010519 int attr versionCode 0x0101021b int attr versionName 0x0101021c int attr verticalCorrection 0x0101023a @@ -875,9 +1257,13 @@ int attr verticalDivider 0x0101012e int attr verticalGap 0x01010240 int attr verticalScrollbarPosition 0x01010334 int attr verticalSpacing 0x01010115 +int attr viewportHeight 0x01010403 +int attr viewportWidth 0x01010402 int attr visibility 0x010100dc int attr visible 0x01010194 +int attr visibleToInstantApps 0x01010531 int attr vmSafeMode 0x010102b8 +int attr voiceIcon 0x01010484 int attr voiceLanguage 0x01010255 int attr voiceLanguageModel 0x01010253 int attr voiceMaxResults 0x01010256 @@ -897,37 +1283,65 @@ int attr weekDayTextAppearance 0x01010348 int attr weekNumberColor 0x01010345 int attr weekSeparatorLineColor 0x01010346 int attr weightSum 0x01010128 +int attr widgetCategory 0x010103c4 int attr widgetLayout 0x010101eb int attr width 0x01010159 int attr windowActionBar 0x010102cd int attr windowActionBarOverlay 0x010102e4 int attr windowActionModeOverlay 0x010102dd +int attr windowActivityTransitions 0x010104cd +int attr windowAllowEnterTransitionOverlap 0x0101043c +int attr windowAllowReturnTransitionOverlap 0x0101043b int attr windowAnimationStyle 0x010100ae int attr windowBackground 0x01010054 +int attr windowBackgroundFallback 0x01010503 +int attr windowClipToOutline 0x010104ab int attr windowCloseOnTouchOutside 0x0101035b int attr windowContentOverlay 0x01010059 +int attr windowContentTransitionManager 0x010103f9 +int attr windowContentTransitions 0x010103f8 int attr windowDisablePreview 0x01010222 +int attr windowDrawsSystemBarBackgrounds 0x01010450 +int attr windowElevation 0x01010490 int attr windowEnableSplitTouch 0x01010317 int attr windowEnterAnimation 0x010100b4 +int attr windowEnterTransition 0x01010437 int attr windowExitAnimation 0x010100b5 +int attr windowExitTransition 0x01010438 int attr windowFrame 0x01010055 int attr windowFullscreen 0x0101020d int attr windowHideAnimation 0x010100b7 int attr windowIsFloating 0x01010057 int attr windowIsTranslucent 0x01010058 +int attr windowLightStatusBar 0x010104e0 int attr windowMinWidthMajor 0x01010356 int attr windowMinWidthMinor 0x01010357 int attr windowNoDisplay 0x0101021e int attr windowNoTitle 0x01010056 +int attr windowOverscan 0x010103cf +int attr windowReenterTransition 0x010104af +int attr windowReturnTransition 0x010104ae +int attr windowSharedElementEnterTransition 0x01010439 +int attr windowSharedElementExitTransition 0x0101043a +int attr windowSharedElementReenterTransition 0x010104b1 +int attr windowSharedElementReturnTransition 0x010104b0 +int attr windowSharedElementsUseOverlay 0x010104bb int attr windowShowAnimation 0x010100b6 int attr windowShowWallpaper 0x01010292 int attr windowSoftInputMode 0x0101022b +int attr windowSplashscreenContent 0x01010564 +int attr windowSwipeToDismiss 0x010103f3 int attr windowTitleBackgroundStyle 0x0101005c int attr windowTitleSize 0x0101005a int attr windowTitleStyle 0x0101005b +int attr windowTransitionBackgroundFadeDuration 0x01010461 +int attr windowTranslucentNavigation 0x010103f0 +int attr windowTranslucentStatus 0x010103ef int attr writePermission 0x01010008 int attr x 0x010100ac int attr xlargeScreens 0x010102bf int attr y 0x010100ad +int attr yearListItemTextAppearance 0x01010499 +int attr yearListSelectorColor 0x0101049a int attr yesNoPreferenceStyle 0x01010090 int attr zAdjustment 0x010101c1 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/BuildConfig.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/BuildConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..e543ff1fcf99bc38e275cb950aae476a4f23de55 GIT binary patch literal 689 zcmZvZ+iuf95QhKF!FG((L!gInY)cPG0b3~CQ6c42WXU8^lUkxT)yCO|t&CkccHawe z0pfxO;Gq!Xw4|2cW_P~XnSW+ye*OOO6F>u|4h35pwsq{_c?m`As@PMp&rs}iTc__C z*cro8b1-o1c5`I+d*^nCq2gTfYi{{Gm|DX)lEL&XL%AIWvzQ05%l$-XIAG9Qr?%5M zAAKBjHPjfCW2fo%Pc+mS47YnSOa~2j$|O?cMSPj-DN1W z!--&6c4Q!W$>*_%Mttm(r{aVj_gx;zly9Ad_>-J5Y&u~ywZbbAc-K}dk^Y3by^v|& z+L7nq7SM-b5_#fSrgAHpFf;wHfpu(9{Wwa5iWdf6;*|jv8pHbk)k)-TQ2p_x@M0PY z#hN#r(3mG;oJ<)&X2X1AHW*g#Qd(i?3m(u=u6Q&P3tX%HyMX!`Uef{Ip-q(Ohh2A!LvXwglrqj>lY?904Fl}=^u rRPc~&<0b%)@R&%$lST6O`~@gga^I2vib5*DsN!D%mFOu^4$uAoA+~_g literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/R$attr.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/R$attr.class new file mode 100644 index 0000000000000000000000000000000000000000..899fd3c5a90303b3cd2545fc486eb14d7ce9e1e5 GIT binary patch literal 453 zcmZWl%Syvg5IvKmNs~s~roQTHCHPnv#HGbeK`0c3D&3ab^xCGRNlDVW^qZs$!G#~- zM~QPo5y8!!GiT16!`!d$k52&CICfxRSAR7?Hcad(q$$+2aA4t(USek9_t|1g}&Am{kMGFZZ4t5z#u3i{eo1ql* zlE#xSV2gf&a4Gk#0sH{)!)abMF*&b#tddyn!yU~8653Hm!Mdo aML>FshWS)6utvFo29^nZQn}d15*k0HK};h6 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/R$styleable.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/R$styleable.class new file mode 100644 index 0000000000000000000000000000000000000000..37cb60f64b1e24639c551a20014e7e6c0361591d GIT binary patch literal 574 zcmZut%Sr=55Uk$aJRM_<8WT0X@Sq-C#FHo<3VOPb8KkgmV8uWsg|!sc3G-F?pdxu1 z>2^mow0b_3u_9Qv=Y-Wsy{0!DXzDhBSX7xPitoec=G|jVNFM7z_f81*_D+M~RKqs= z&(w6FF8U8G6bb9xiJu-3c#aAPpI1d69Rec%9id&^x7 zb0}~wMgq*C$SjS;zu`kTTmj07&+Ls|uLJ~Q_n0?tW@q;M=kp7|CB{BFIB;?3V&vk8;ML7rAw^n9LU31>Qcnv}*RpnTOt4h$ zA|lwLX*9vPR;6lg2%XcjIjhqu=dv(SrMzFgq*6cqH5w*WCW^Vx%EbSo-8`$B&`T=4 zh^tpwX6tx%MerZ1mCod?G9x&%$x^IEfL#PUP}@rAn^atgauGkIOPMusA|87~PYEWJsqarbsVDI|!AK0_nxJYH2M+DA8~;1$wcUlgS}WJIut%gvuY^ z!zb{sE`?TI%LniYd>EI@eUeEECAgM9a=vr>zS;Y`o&5RFZ+`%|f{g?|?ZqH&s9`FJ z3~s8~EghffxUFM4i947{Lc{019AA0J~d;*0e`fyXn7fODqhN2o4bS&yvI))Qi z*0G}FD`ldTz`X=k6Ij!b+FGqkf4Wwi5sp(9)(Z{eMbEG1y_$5b?YwX+zGqkRMNd?u z-@a6E1LG*KJxA2*lFPAf zXr}8su2qu$wr$CI>C~h@a)}&HRAsPC$BC+36kGgGe|D_+Tx^THBiw4f6!^AV<-LUM z)&n|OLo};!#!G<+8vK}6;KG;nhC^>@4>cU;iS=SZ)IyALOSqP#qVZDL!PAbNWXWsz zmYlN{yHkhZO)3=h#H?#MUY#fwWU%Q~46Nh6hVxybeAtEo6Xy&J;R6H1m^AP{&XMyH zvtwq>To5j4`{dl(2-o?Rdo*0U=kM^lX5g72YV)9`xor#cuIE)9X)ZfrCxHhB9^#RK zukqNx6I|Ai3BB7kAp+ZTP5ROgWJSYJXtCCcf%#I@P1g(Bw`FBWL#_+gBQlzvd^>n| z8n(ma*KoGLY&AESv-M3`F<;ujrozD}ng*WYnHq$FGR8HWTy@K~TQN6$Z_8wfsjSg3 zpbABKq@m(rG9Q~oXTSofWJ4;BUG{~))27fOta!B&L9w1Jw6f{Vnc^HeWyoCgnAa`G ztDG4!An{1UXcs>mj`_$X_Juc2SSml47E|*=7v&H|yZk$SfhiImg$2_r@uM0+w`w~g zJU3M7q}qlWf$gw0RarOm$!PX)-5uT;W4WC?2yUfeOA^dvk8Uh1%gk2DWxwl}eXq*e zWf{jsjYUBi6J1~&?g(L0u`y(_h5tI%1FzLX*ugwEtT47vmqAgP5TiPMqDfrjW0B#* z@E)Rws6qu&DOJBs$r9!()5G5|MtJKyXS2K)r973pu!~4;d>7H&E5vfSUl7?v&rdvx z;6si{N}$MhWC5d`88kpOWRas}ZeTn#IYFt;qUrdL6fO05b8C5@YP6#|fyq$yFJe(> zL^_eyU!!-OFru%KoErQd>DbRW#(hKW|A5<^9#_+zo9V>w=zH)Asq{O0NN4tNau5CL zh*#bX<$#j3)|2@ary@|iqD@|x$pk1t$0|}-LqG20G#=1JkICr?CRovPc!os?o|ZYQ zG)b7$pWu_7r_+^ZL`Wxv6zoB`5U)Xv>b5UHQS_IeeF=dQKKEW7g>d(m_C7}Nc?Cv$n literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$2.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$2.class new file mode 100644 index 0000000000000000000000000000000000000000..158a5b926a35656048cce8f1d6b4c0516a5ec303 GIT binary patch literal 1934 zcmb7FZBrXn6n>UKc1c$n(+X|DcD2-oK$}Wyv4B;I)JDTgr3H)5IG4>OEH1muzJS#k zKj=)=>Wu!Bb`**_;}7shIX*Ypq_s($aTxB|d+&LB&UwzwUw{ApCxFZNM91Y`4B(1d z-pJqtuBxvI18*9*W?(XdDNGx9OUdiK(D1g7cXZ5T(1)uAZYVjcmUq=MXW-@$yny#I z)V!smq~m=ZA85#K-wkCjv$HcRTz6gApJ^B?`$4tn??}(yEefv^_)eu*_C-Yo4W*J7 z$zVg+a!P}_E8OA6g@!)0RsMYHd>&~yS#J2S)sYt!lPlV$ryb9Ut}~_l{|VaB>dD<5 zCT?TN#D`ecP-p|G12JN^XKj#u;U)v^Ink!Y?ywD(i95KfmK77L z$ZP0V+?t2MS`Pz7_vt+n#niJ-+ zf0yuf>`1m@DBt;6S;Hkhz9;y0oNuQ}?aCdc!1mij;U*^9aoZ&dj@~QOI>&x^)z&*^MFymCF1Xh z{(B;Qh$4Q#HT+o1q`y{~$t06LjPb8tgNx0aCJ3trj6qU|=x+h`6GQym23U%rR1GiT Tb;@o!8OJ$(sb9zeO2GIBTO#7c literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3$1.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3$1.class new file mode 100644 index 0000000000000000000000000000000000000000..aa67b11c00466680f45eae658626cba112a7f4b5 GIT binary patch literal 2825 zcmbVOYjYE26n?fXO`0yWgqz&AQfS%&p;RtfM4=WMOiOJ`QM}-0^ETa*?8eP0^83$s}@L&`Nqj)HahhsQ|!%f(N{w64RL|z7(aRf)@-Cz`{D2~b7 zN983Q!w`m}I3B@B6puwQDtE`4u>#`}oQUBbOhj=qipQgPB8pQI{K*KOis0!8o>9=~ zO_^?cPXwnGs42@5PJdo^UEwO|OxsQ_X%~fM%p`Ry>)2*CdB~l!j4|QNn1&b>`J!;z zd;17;z_d*7pn~m*MSFElC}`-nvqC{j+O))QsgM!QxSq*#C!V$qJwKs4ru-gmHppNV zbT9T1?L7=_Sx$H(x^YI&iDA7!=#`1i^t3*sC-b_MOOAPtY2|1aF)i2A^LYjJ2^pF~ z(+%lz-nN?@6$RT917{6U^i12L%hEBAz(ab`kB@Yd2t&6FK@fFTH@(vp%-EP+atv|A zl*z5BW^t#Ch(runM&5QA(U9<_?5v7s!R@V!QbNVO*s5Y1b}{SY)UAI)%bOWTcjlON zurZ`tB*IAs+EK4@XO2(PJX;H6)#g358B^De+IB84w2{0%7ePja0Y)V-sUn9d6(*)5 zIHMwuf(i>ZNekI71L~43jodn($SPQI!pfLdR-1I}g60O5q@sxDR5)-W@KlsAqo6H} zqZnwX&FZdZ*seMYmCVpHWqHDx)D5z}KE)E%CRwQNl*nqcrZ**{ z@=C6@Tfu7SA(<#i_B9rt@2_GOXI0GMc?IikUkoZ=?>BMD%hC{ign&oQWJ9ArVZQdlt5KkhHWZ(K+Mh>bXAvPdvAM>g4X#KIi8so zhR43E;U30OgYJ$R*0mnSUbn4qqV(IGK!#r?dlQx3Gi-`zdC7jeP_!-H$v*C@9J4i3 zhgng=>63liT2`s#nfYYe&asu5dq<+W>8p1-Q{|CJH9HnJXXK123|KjiurQ5VW~cDa zl7aStVWlkP6e$EJ!g1Lsa`eqpUztt|*}M}TV+s3sqKvnyM&_NT*r$bbFdP=v(uiZ{ z9N}`xDl};>94ZzmiYLxe|Fsp$=N0jfm_)pAvxI&oTdEwYjOep&Q%z zjrKko#lQ~i46$}_l^*r+hPSvZ1o_YhQG??UL_rd}0$1f_TFWr5$Ctz#FC%iY>muqd zB6<-`mAlv#G}qxZ^fbH;m3B*|9oJ?tdPSE+{-bC3zI4-?*SSBW=Hl3WW*O*^Ie-rqh1t3i!NIf4Q aL)ee|xi;`;>;q&Qh;wfXSNXR&SpEk?9P}js literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3$2.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3$2.class new file mode 100644 index 0000000000000000000000000000000000000000..7b160acbcaaa172396cba67971bd18f8c4b67f97 GIT binary patch literal 2781 zcma)8OH&kA7(Ew|X@*8{RPceJRg?kLQSgxjV}b7I1=fS6R4 zS!R)C_9<7XN-D-^7K!WpnN($wRK-MdZg9T+rK~g{!<2?;HJNEg zJFaMWS52;}X0{#Ia9zWkhItL|CGdU{y||&_g9JWI;G+aS7HAEYY`_0R0yhQptm8;; zqGxlk{4yMEWQ5GF{(LhJ9cnR;7EGY zrv~Q)S|;4Q6zI&^j-0NP7NmF0TqtrSm2)k#IA?mcn#YSR%2$j1X;39;gnep?I!U8$yvAJS@MFd!1dI#cuZMDA|@TH z==!v1N(M`AUdJck@}W(6LdO9d(s3BaiF$^9o0v0-_JU`6YeXF_OqmXe@G_C_1Wr!7 zB-JSxfosGNja6wZSNyBwFJ@|uh}5Q^S%+0CJ`?CBABK{m+2_uQym@{TE;vvtIb8%YY1IO zfQpV4tR`?<#~SVk?2kz(M^P5ycHA0eGQa<&Fh&IW=E-Y(YgJ3^jgWAGJueP89iJ(W z?|U&(Bd1O=og1)TABX*;{j{fRJwIj^mZcRi=^7l*Mj6wsR zRv_~Nr_;3rvs}i46J#dbQrUGlQb{~k+h+b{&ocs~H>Q%dt4dQPu#1_TTM!sX*JpeE z%3xMN@aEo9F3Ok~TS)&E&n4iv2mQtVfkFOX5QUhwJIBR~XV+y6#I)*&gQ#3w$HcFUVen z$93Y8L-Oq@%B@JSRu-tZqZI8(&ks3D)%%nldL|5C zrjNG7={8r@x3fXm4AT3ZWxf|dSm3XDtWbQq`}kuOfavN{6_{`P7XA)nfU9Ya&Y_9_ zKyqmKCo~QHjOHIWYr-JgR>}Z>V2EvZB!yud;f(U3HU=Gz;#jQfD0_9HIo0w#yJwaB z87k4E?O2IG2FK&0XDF?XwxzbDS|1=Wzive`y!kI^`1=_pZ8aq)YD&J2mE@>Idw{n2 z<{y#dSXX2A9jYI?ho*bjdJmnoQP+KJ<92Gp_V(6?*wKV_I}XqS;2*Y+q2pidz<>N? zdBV5mDd=-t7JNM@5rNFr>>H`tCuV7%;`$LU+qvPg?wTz<53#EW-{2T!cE@(_iTmda z+!7ji7wr_?8;iUQ;$38O!}qa|;;(E%oMO*ixD8KZP6Sz4;RDl)<}gw&Aq9wLXrdMU zLcj=sgD=G{d?j|{Td@bU4!c5@wV~RB63>Ta5DqdsX!jI6`(a%weYX{k@zrLvZ EA9J1B0{{R3 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/AsyncServiceHelper$3.class new file mode 100644 index 0000000000000000000000000000000000000000..341c2da27abec535b262e7317b6f23c429956ea1 GIT binary patch literal 4640 zcmb7Idvp|68UNkgO=fp9KpF@Tz-E9Hl0XR0fC-O6fD)PnXdp=IYqFUnLw9%9nOPvM zQd_B7wfKG%trjdztF0}s5J1t^XDeE*kJ|PR{ma^;=k)l8=jgFV{N35v-H_eTG=aHy z?)~of_5Mh7m?z6#W>8!o>av1nvwYF2{s?B%^#- za+WH?hhQsk!f?Y#%cTQR9K@k82Fox7cZG4cT>P-4`$!aragTicsDgW=n2q}sd`yxZ zQE-10)wnN=k4wr=DEMR)^Q9^e$njHQd|Hm53FAR2`)C-S4dZiBd>&tj;*0o_U!t(i34^#b*^6FgJbEf8w8dJTao z?Pk*GOecB_d$-;b=SoGp71QJ0x^2pLe=#K05~!P)fSMIltHMh9nzmXrG3FY*0!_8; zSzBUO(lwH9W2==&SxL@1^@P!q+qRs>woPWTmnKSe36taM@%XN^VGjy46jQ_}X(d^Y z9=o%R{OvwHW>A^PUfp#4vq8tTrJ4Kn1A1dzPxd!V z_HY_X>Fxkm2+*9-I^Jd^EZ5j_C}yNw(@IKFG3iTbj6ijcw79hbij(oCz_c9gDANTd zb-A>qLr;00Q1FNsJI58AQ1ESrlt5(;=*^}>Ia#ddy&cvP*JziOwqwRtQ@VaeVSFu- zC^1a7Bx7;QAxa&FJ7Ce1H%%x!RkUEOigkFD2JT=mw{~~vNxk2&8#D1MFw2h;%~zc$ zYBAf;87~S>s(1`T3LaPS9eh{ClXyyCdxnwbbJB`1=+n)(vxF3bT92Xm7;6W0M@w3+ zW@ci^=-r^=dw5#KGdQKdxI zLDL=3GJ&M66qvdv*~4ho`fMwa)knnzTvTvL#rN?8f$5Sd5!TWYXN^hdg|Uju_#t81 zZ4b(2*V6h8S7TJ#x;?1LuvGCQY*+Cto@02Z_%TLQ`~>Hiu0`}ObaBm!nq|^OKNVP1 ze!WqT+Y>y^23z==$8e=%Y&GM}*Y=kEF;JL#F(gN}}RrnKbVjpU3i5t9VTm@mMhz z3zX-f-O;n3^;lqTR(!TP`I*$3DI(0oYmQ~gBy}2l?3xnJ(wg1R7cwTm9YqUntt>+2 z*#l|Uj5oGh{q!qK%);8jBZVtBPoNjo9M7jbK_l)H7oz*L`IyC;+X65Z4Q?uHl|Vp-Zc)aF>=(fD=W97XQ&eE525F|oI6v86!J8x@#0cgG|c_JD=BO7dEEag?3_G)wvl?8>U6f%@H zv(@qMB43hhbwagma&J;16Ny>-P zG)%}qzuMDFVb{u*n`yO0k%;QC7(=RN=~8yfof9;-r4ZA?l{&`gsA}0Y=0qO4fe4%TPW#X&x*EWpJgY!=oct)QgM@T6su@;MGK=a>0(Aufp&R_ zrli=lx?X#@+h&^!jh{?w_&M@!i1KpTc=2N@$p7oGo~s);TaN&LfoT1ra|qO*NAMKi z0=SvaQqlkqV0%DXvb>uZA;RXI#L{06Im(NkkilQFRO(PGiwbed<>&jp5ytt ztd0#;p%K(Sgsog$Bg>nk6``u= z2$t?W5)ngJUk^5w456GXmPr;j;A&GzUWetBTv;-V6?yR!LbS5PgLDWtcM`N!(lTV_P z&3QMT#{1cyTR6q<_|rIoGvqdm2ic(?#|WOnMXs=a#@}%T|Gk)R z3-K>eE25%~zx867SS;3yC1R^+6dhuzNN^?1@oup~92P6Zy<)X^K&%l*MT>Y`tQF6Q zb>dl`cwTIv?%TzyVv~4HY!-hOTg2<+@}{^Y0I@9)7HxqUqTS1$yP#5^DcFiz5W*{* zZId&Rprvitj;QFsGTh2psW?oO+R=d$5oMR!$+eI;N-A#+$3+u%a4jfaV>a)^E}74P znc2ML>^5}Cyya{+_AqO^iD*02=Ko^*TUe-I@7$TViZr4M-lJfjg4?;qfAEGo1ke5( zv;TvVx1frvR4SMwgi!F_wdDRjdLUCjHd2DD9}yY%f{C6lA5pm>b~5*OjVd9Ltg49k oss`}^G6>*<&^d;r@^m;bkMq?W?Xso?2d)oW9cWdwSAAdh#0ag11Ex#ohAqb}9Le zC|-tp6dZ|SKJJw=@06GOf?G#Mz@ArdR^PJhFb-yIXzH5XYz)?lI~Pbs(XL; zKxfY-sh-Y(zRtb9sa-t+A{A!fA%S^goz}2v8NG%*Zl<}Uu`6p2w`6mMl^$;~yt$TL zeCz1*1yh!5*jMXmgXXHo_B)2XJ(ugyGnqj>Ju1*Nd%126*;#X_r7NosF@Qj5wuY)P zU$N8rYs{ZwF;~*awIT5BSe>?re(T* zJOYLWz%h{-%y80>xE{+_&PFtO?yikvQNg@jiS$;Gp_uk&!)$jMA# zOiH?to#o85e8wdKkv3RKXIc{2d3GbEP(E9cG%^@6fS2TZ@`gPju)fs#K%}s#v#YG) zfNr|M+R6-zF{lehSt3g%0`XbV@3$NlmvgmgaGf>UY1>&_0=|serk4TFo zR@R`NPLlxEY}l|tpr@e}P$km2*sbCb>1gOMwT2FFl$T9(b89*iX&*Iqv%@wcEFa+vaQjqYnk3{I#7$>Nu*=Or!pRJpBqQV24QF{^tJ$ZGX5C}f=Dt+t0YWjR+oOiNrKM%aaCI}|Y%_=2idFQ)fiM5DpSEPHT(*{7FZ(-lr21-&f7M*^9*0&IXf$Jdd|Ku zGndXl;@8=ZyqRGS=FC2OLRxaOamfVnjNc;T8h(S{YWN+VRq%Tae~{_3%tuekICRN$ z>Ci1J>z-+36}felhCj-DT0Y~5r+StxQi_H@;m-nVXM_sg zI`P4Y_>jRP$q>&d6LijzM+MKHQY=A}t#WhzqT#Rjn}WY<_=n8Rf8tpUF7j-ejL$Ej z0jXtkvy&w!ky7N@A)X^6#p!r-Roryq##qjs(6C1)SM>}Ay9N*PtZ>GVkNa6DR&s@7 zxVzaNnV38_mEg+8q8>HfSStrjYba=G0^5okO(0pMAy~sg56(8NDamV9dFu>~Yl}4& zuatzBm@C6d;rRu=u?)9mzikSX<#gL&`1LOuejrY|r(ZLe2MuI8#)6nMrRqaN7iaWg z7ENtK>P3*OVqdl0?PQ~I(`9R|Esi|EQmU;kMBpV_S9X}mH8kf=m-5a8B?#hdt$#YS z0_z6^-ReO2TvzH(RKO zMGeJ*l$cday%UaWjIp`Pl4siF_;urYN6CFQKRkGX%&^tTa{{|AL7n44gZo!CqC4GL z+whJM%nhz*_G?~Fnb{VrLLBG{Sow_Ri9`nCsY{Ij*7t`_V_u2l(~` z%J>gxJB?6(BH1*BaL;K(`eS8NDBlvPiNusis0WfYk@b(FA~K1}BPfd;Ps+DRXvwBi zs0tsaf-o-SbrsbEOHqksSb`dygXL(VE6oh_0<1(UCHg6Go^KSFc_Gj|E@u#eGi|tn z;f1JS6JCicsdouKfCq3D1JF5N3GqCd6$~m!bBO1dAd>6(7NI~qF@<@F)0p4Shw784 zNF+~UL1O($#1c&>vG5_vggj@Lqnyv{xavMsqXCQ2NOu!B7fH{_gs%@*(+&9-_uQ3E z#yxjK-jj4UO!S8_5_oby*U1mz`p8xf%0;oor?6xSOS_w5%O+8CAkj35<;PIo9o|}d zoQvdk$5DF*h8J?Q6$`MHNVai)2PL)GF#@z{#kIj3;$fzychCyC_B?qs;> zF{}>b7*=p{jXzoMO|I=uM*K;MuAd5PnP*_emJ^?OJh&}Gp4P|d(gg9nmOoA0#lY^K z4rLir=Ni}y;Cwzg-V@O7Ax%Yml1TfZL=akCLrFH;!24%tRqp-Ab)^K;msevv|C)6Gs@=7$sW2M}ukhf2Z zEA&iRaaGSUucZeHtr??pph+8~pcS2!SRN#8TSVn@`gjeAPf^!?kZfFG$|zM`8-li z0U+ji6!%4NOTZZlZVfCc^h#P%@mky-sI2!^0u|v$P{;qoaE1T^7qOJxiW;; ZdB$GP>IW$*%-Lg3~xg!c;7ax*&iQq#k#3N@BIGxzx3b025?>-UeJ0G=c2!ohtHEj;jW7Y|*myBN55#L%whstlen zj1p61vH2*qIE}eZ3!~EbB`;-Scq)qt&+{1!G2?v(XJS&xu#zY( z-<=%KWbuK|azgrv5j@}Lg{ti{(5cH}@TXc+?wpsUBy+r6zF>>0bd8?mN*pl^!{l#2 z!strsDt@JSZn7yE#Q_&`ds(g9`IRl$Ac<;?gA>1YHt6lbBlHTLcF3*~FM9G7Ec%YdXY1qBN>Q{1xJv7-g%_@&M;7^8 zHc|_#=$~=DrM*etI?)%fZ)pBw@@(`b#f&W5VBvSp*1>h$u-Q7eX>&EPMobOd#vR%n W`p52Jg-(6K9NO!rjSW0*cmDt)-QBMM literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$2.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$2.class new file mode 100644 index 0000000000000000000000000000000000000000..281b1d9523f260a73d61401b804ed419eb932e1c GIT binary patch literal 917 zcma)5%Wl&^6g`tTabgS&DNx=`!D$>L;i{}qsxAm11-W!l)cs^Ub*6P^D%&mJg~UVZ zf)C)M5Z6vAiwZTCJTv$B-g6&k{OkAmPXMnFv|-_~g9e^Bc!;MqR&DfbJY#4UGnIQA z41>sINoY=_7H1*Xab{E;zTvry43A|t=4m?R;%G!6TS}{9n<4NQj2Z4TSYs1QhNVbp z`SJ94Dzi^~niA5DjNs`$&s1q&fL2)+gFDfha;H4cC7Hv;@_Cz7rET;$RpN-D??-?8 z5k?nM7vWpQQQ+0M$r-xD$HiitB z^8Ke>Z+AYLNaZvQnNew1kp4n7ka|Y%aLp4^$&gl}kTGfPR|Bp4)mRVcy5uyf)oWBh zk8WuLBm`KeQx1hLZ;jqI971oyZkIAW`M-;PFvGwMDmuxL8<4%>Wg}YU*I#!6OhWmIx XyG8%lBP`LWOPED_`82VH=gsyXLRQ`I literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$3.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$3.class new file mode 100644 index 0000000000000000000000000000000000000000..c4c0bd3994375da99254f42663befe2bc028c5ed GIT binary patch literal 917 zcma)5%Wl&^6g`tTabgS&;ZfdA!6A;3FjAI9T@XM7T)F^tKN(M*Y0V6>-SS;XJR}x; z03U_8o|LkvP-Dq6bC2&m_i@I*e*gFhV1lR%2X{QQaM!~v+;g$vV&LLFL%Uk2GI+u; zN=%W(=A+c&IOaMnj7sBYyp)OIsVt^E&*xkmZc)fnrB$`f5QQtojQ1FvsYxZnTB5Xk zd-P#0i}!q<6VgwN;Q1aeRBfMtPF)s*Khv6W=e#T>nd8;+1rw^$HF}yWamX+XlfV54 zqbsSa__^Y_$!25}`&`JaSzTc}wJ5{px&92TPYWd$3~a{Wy)#FJkS|r;&idJzJwD*a zoLYaOMQ%!^vmIG2OzI-=F~mb3E;>HC82Jb>A}Llw192GF2 zTiOB%0oLo)L!rytptlQ;&ZcEPV@!r8=C)^JRALnViLaFce2 V{;}Iwqf?(ShxYnuV-pYB-9K8l-XQ=0 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$4.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$4.class new file mode 100644 index 0000000000000000000000000000000000000000..d01747addf72e2ab43bd863aed0bd956347ec67f GIT binary patch literal 1143 zcma)5+iuf95IviliEBs*mvV0k4$ZA~5q$&kKmaL{X^}wX5pC=x*7znr-*vb#GBbrZphxEgzVqXQA77CeTNWm!_TyEki*FB9sDh$+Pd zOY2-YPzGAPp>5@3G2a4)N9|$Wy#Bi-#kQG5FDK|S7)@Hv?gGQw8FNOH?py@~L7`qZ z9S2BK`{`a5=yh$fgFL@$- z%|j8N9HIbMnHLa_a0clmrcC?Ze8*VOACkEOZK zoh8!)DKS)vh(*xt3f10k?enqSV`7t!4vhPtWXMO=-&-O*G8sRfVWbXk_P?d~2+0{t$ddZ>Sr+K;;4;0vLQey_7s=MTy(6%0{|JTd4-~&;fi*e}46u(noj0@O8m{6R z-6$!8q}{-E+?WIUWDTI*{f@#@0subPh7S=5gdHo=p{2vwAje;dVyt4q+8= Z7x&1Pa32rQpr;1;%4E&Y!eg{6)qfIyDh&Vt literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$6.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/BaseLoaderCallback$6.class new file mode 100644 index 0000000000000000000000000000000000000000..1cabb21c93298e546fe7e34190514de996ac4965 GIT binary patch literal 1148 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 SM7_$)FOdIT+`xOSZT|!BxcaOB literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer$1.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer$1.class new file mode 100644 index 0000000000000000000000000000000000000000..5ff900b45c48294bbc850c284d0b5de5b3b28676 GIT binary patch literal 1488 zcma)+TTc@~6vzM57M8AyAfi^Qh*+Q(W!vH{!SGTbA*q^(K@*>*yA!&)?2y?lejgva zJa|i>5Fh*iekkLaZYcy4*)}_!nLTrU|8trC{`2z}fJHpYVg$ELWHDo68n^XOFfofc zJ)1XCM9DzeK!ssAYI|X!%1~%ZwPnj45jeXx4_qZZ*KY7_p?Lkd2wb6rS|a<$Uf@N` z4D-b#2TGd^nTB))!&uV`#M91pOQ;vT<ct$Y@m!Vv29>vk-%6-R`u$?%deqbwN*K@>@7HP$A;vI@E;ZcV3GFb6K zN0MA8(pWU~b5ca>Saa(=>Ui3JY)eE~k91297U7FW7n_ zqPBDm+_hlhoCOOD7Hm{4)KE9DXyKmTxsOo;4=g;y0+svhY8Pq@i-|H=*ob%}8r=6= z+0YcQ(okyZqS&3t^KI${ zr=yezB6~w@^PRR-f;w~R{}$9ZO8A0@RPm!E)U|-wL?xj9(cK{Ef{)O}2iW+y?gpA= z=&>*g>Q$O8BSl}pELZly$_GgOpj8TEG!Byu@E+qdUXHDB0T*dS_C0TmEGBWO@9TBn zSH8RlRyjoarJfuj)5TCc8$NbE(G&84#C;@}pKuMIPk{0RP@d3N2*8jVfL`@Mxk?v? z_DqnIu+x+;#QI7heRA8l|fr6W|aT{ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer$2.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer$2.class new file mode 100644 index 0000000000000000000000000000000000000000..b87b2f85a8c9ae23649286b46d0982d44165a5e8 GIT binary patch literal 2901 zcmbtWTUQ%Z6#h;KOcJN%R#Dno)0(y+5r#tRrL-udAlN`!LP6^VPbPRNG3~*0xb7J0j086;Ic4DRL+OfIC9dD@j$8OYxFNx>@16 zhHcGAz>Kg>cCwq(buwA_SQjNv8Zw-yIBs>wpmp-pYCw*TWj(InTj3?25~?7>U{hL) z+%RQsk*r;Ibg@V~3Vx_m6FYp56X^?d_{805qpMsP_0n3$lYj82rKG(-0?(S!LAAmHp4_4T(XZ3m5kw(?g;LQ)&fMg zeSTG3fUTm0`wAQtuB7d3O<#ID1gm02bJUsI*c8J|2du4_V$=~5r)lP>Gb$a@yg&Kh zz!-YsvZ*87Z`j!MBt`$MtKmIjuu4_=I7+9r_k`q)x5|<$!4>w+h;_<%xm>uIzEMEHc{+ zBk|?2^ivvSRzF(*BmD(G{YC|*Wd-j1 zf8OO_w6-qg+?$h?Wk|-mt{GX?8up5WcJ+wRY*$;N2{ZjWYy3#F#xP8buZa>J4RmhS z&$6rF3|mD_}6oz{j#1z znKU;=RU#eKc)lcgUhI-*-?tx8w=KQwIKuL@tk~tHqU{K(-kJ6qG%JoU1$XJ{O4c&y zG!p)tUT>q_nMOqE&1#h1v)I6Zyx?fnL;t7o0=*oaq17w`^Z_D?1`G~QK__7z~JWRP*-R@e1H>Gm(T8Fs5QUY169fzR zj-=lcyeCNF2Q1-7()oq7exfV=XS$z%rF-}{KdC6$ts_J?-$g&YLOs0#;us_U3Gx?4 z;4fqqBts;4xt?u?OeAx|gzUM)$Z8ZG_X+u(V*EiU|7@aixE^b`8mkB6laEA)}4n5zc=MKs51;hUUAKgiN literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/Camera2Renderer.class new file mode 100644 index 0000000000000000000000000000000000000000..b332abee251d35403e297d9900fb1054c2248b34 GIT binary patch literal 11068 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$1.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6c86350d0ec999dd0680dca4dababb44c0db32f7 GIT binary patch literal 1038 zcma)5OK;Oa5dJnVH?CMQ%GrE)C7)2m1rnZq(BcvIdI$9+hmKg8`*9OKMM(p z;D9*uqY$%sltZbAC3|*0&(7nUnP0!Z{{Zj|PqVPFVPgrUWo+VsjeB@#p==|KEenq< zY+I->Wa5F0%1;=o9Ub;vJrc?ryIlF9mcHBKLlN@*Q2Kq*mEvrlM`D*QJ(o(xdkl@r z!ndkjhEz-Yf?>5Im3VVH?1}I#?*)Y9JKEzxmxt2mGcaXRV{qC^iLe#$C=#UB7mZkM zQl^$xtw4J38MZ2&c~zcPu~4!5Qu09e+oXiY+!MQPlVir8pbVS;wP#454Wu_{_|WkTdb!fUCZH*gFwk%y7}^D>x}1PWkJ|h$s^wWq%3T zUN8lQf>sBH?W357vG7U6#8t9lc;A>8c||7FOJ7Dq8PN>beG#`z6F*Q1>y_%IPR)Lr zQ9Y(njRq*uIxK-93zo|nqG?MK^g6gk=n9?oNH>UGtA7EjeMREa#AcPg8L|NjkfZa> zsTHoHKpNRkywMDxh#NCs??@);U$OoTNru{Iuydq-B7Kg`U#~01hACv2MuCkc-b>Sa s7v75$@0N*9-fv@#VkdEjv;@|1mt>0e`abe>$`fXhG*6aRzM9GY0Wu;1s{jB1 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewFrame.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..28339daac4afe7acfd7b16d78be22cb2f247bd9a GIT binary patch literal 310 zcma)&F>3-*5QJy-a;F!Sq!N3rvCiCv+-EX=u&Y1W+V7O~X8B;20y1}o=8 zvx@6lYQjxhWGZ&nyll3T?+CLC8)E{Y6BYnE5uu9+2zu3O@Z;l6a2+%aNkR{4-2Vds CDN~UE literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewListener.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewListener.class new file mode 100644 index 0000000000000000000000000000000000000000..333b157cbd8ac93549dc0105d132a86121ff180a GIT binary patch literal 405 zcma)&PfNo<5XIm0Phw-M6}@;DOhMd(M?E!A2vj^2dS8B&Jca7i8gCD>TC2lIB zU=Cj9!TfkLZ|42u^$oxcPGU@B91~8B&g2tYxmEnK@zQ!O3F9=+7u!G7G)+f`X~$;Y z&Xo-V2v_Oa*h-j&b|vuN@Oz^rjr literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewListener2.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraBridgeViewBase$CvCameraViewListener2.class new file mode 100644 index 0000000000000000000000000000000000000000..f950727730dd92b37f4627f913249b02bd8a893f GIT binary patch literal 536 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 Tj(^3!Sy_o6YWMQrS62QH2-blM literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraGLRendererBase.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraGLRendererBase.class new file mode 100644 index 0000000000000000000000000000000000000000..bac7941e60c2717cd4ed74ab2eca311eb4b213c7 GIT binary patch literal 12177 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 U?kk{&`6z!4?IVcZ-|!Xu2e@_%0RR91 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraGLSurfaceView$CameraTextureListener.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraGLSurfaceView$CameraTextureListener.class new file mode 100644 index 0000000000000000000000000000000000000000..72c251ccf712174092a4edd9164318cee9d82b3a GIT binary patch literal 369 zcma)&%}T>S6ot?2PsYY-D;?;ikeaH23&7!gjLothW+W>N5K8jKH|6Z(@Rxmx_9uBuwvowRK9 zvz+r=Xgm{?tYr5{h*Q`2jPHt4>hqo8ewH@=*<{?Bu2*Jl6vl*G=a<@5Y_qjCHutW` z^`61SuKRY)iaM}mPdNLdA0}4#v@~_iHDTQPbZP8TKRm5C3xv!6i6a7`BS!0+%uzp|MwsN z0`PJCS;rGt((xqjWME=hM;R40k~;39s+yGyEWE1Wo{kJ^8JgBL*g6c<)ILWw_f_+n z23Pf-vhj5^)UyUwm5T=%j@Hy@T{W+3_(B?AOygx8U&5Ew(i_V5jWlkl{!O*Qrh%`h z=BpaMCNP*c>(Vvn<(l7cWzq6{X-ikYDA?@tHPiE?Cy**$pP8SU5f~`GYOb2OnrT;a zCEvB|>bSt3ykmR5Y5NOits%L&PP{hOWYKY}Ip@B#%d0uluDFg>$+i5>6iW^Fu344~ zmV7YMl?(AR^*L!*q^pRX+6^o+n>IbkeW~-7ZTXV|FN_u=zh%d!L_bH$K1Gkm4;sEz z%T4*zwA}DzN&4fb76g)cr$R-0ia9wkq z&il&2;TIU&H33oJNtS%GeD9ihKM=%(((rW+-_Y<)fy18kyPlB1)Z;4N;fPhF`*Px^AxB zv?~6J%1U$Xvb3rzJiLCdmBx8jn!clsz@HOIbTHayOC zX{)qWw~{AQvAp(7FF6gjEMKzJEjZi?)uwCwoT?B8a`>o$xA3-xZyR_Q-(e;h_%6O@ z;QN?hLK%1u?;H357B&3Hz)vti9Xl3^v(eR7z&|x`2G0o`-_g8neHjG~{!nau=_yi26?7xwm{-GtI$Db**7h_6qmE0 zB(tWy*v|89GRAKgw)5I7geC82H@8dWpbjosyhROY4!yGVrn|2D%o!+D>+yR-`UU+h}9!Y>fJ4b5(|wj3wk2 zi&L~CIF6!I<+3Gka&-G=!uFL@jIPn)eXav9im$*kk&9iW;W)pKp5W(K5BpJ^0;9rN z0z>@gg$~9n8te@|V{u~pG0y&jBzoDuk{vs}0g-JYarz;8nn=!`d5GRb6RC5_Gfij@ zk={4>0S2=FL}oF&0sRsBKEz&54K>}vX?8H#M1Quo$>r?d(AUJiERhEOO8g$2WqX$1 zK^7_cAE5tXt{lTB$oP4@z`r~`g#yM|bsT=ZtJ|j@BX=eUf_; zM7x4db7v1RFL3t+bxrd5Ate4s(_RfPYPg_bO2ahw^>K3^7sDV-5+Fh2RCeqU_A9!H zfUX{_PSbflpmDHe71K!J5<|-~$4i(Av2wv2=w$@<|0RY>aTzpHYSanPAcPTMjSe?Y z(Sah8QQ;eE;=ooeSCK}sgG(mnk_kjBF09)jT#@1EA)Fq-4L32k74JH~zi$M1$6A&# zo=!g#0Z|>-I7)ELmqCc!5wQ&%+=@C+ai8sAnTkv!n z+rZ&AW`DqJk;-pj4^u*guyqpsF>Zg1%QsYrdxtDk+UVJ_;im?Z8#vO&Y@O^9)!zy5 zS_!7dczTG(-BhB~tC32{AfC9%QIdZ64(m{%j`hI6(7^ED@zhOTila(V6HmAO4saJx zp%%$BxQqR$2L4+qaUk?B)N8Q|?y&$jz&uX)6I*fb5x0iDs1w)jipw``h6jZ|)ZH;gwqi7hvDyVAfzQ!%0-wi8_9qyVXIQqLO{pJ=-@-dM T!e56!#E*G8zhF`OWh(Q3h$Cjw literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraRenderer.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/CameraRenderer.class new file mode 100644 index 0000000000000000000000000000000000000000..01547afcfab2d5f77a096a8c27b30f295e852ae3 GIT binary patch literal 6090 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 OkK+X4$MCqs5dQ~8VnAsC literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/FpsMeter.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/FpsMeter.class new file mode 100644 index 0000000000000000000000000000000000000000..034b4b8563628d43bc4d8b6b9a612e24a1b20ec7 GIT binary patch literal 2537 zcmaJ@YgZFT7=DI?B!nem#0!FoS3*!i)oK;0U@#gALQM+AUUW&8u##lsW`k(&_f~tq z*lK%D`=!T^wXH-?J*PjQ|EM2Y`^;_vXgJM>cjld$_x8;5&gQRw|M(NY0sP=c7*h>c zk8@JIAjOMPyyVBrI4@@x8Ej4dVsM(Sx;7%k@jthvmi;1)d z_+#UV^RcnBqk~C-R>y;-Em)BuEv4twY|JooswExeVy2qYiczDK*Gw8x*DjT`eCi6_ z4G9Et1yh^14<+>+Ly2JlZ;qMF6p8|#+_pXRgg@?K(SX0zUGv1mJJ+GZ9<)$?= zsZM9P5*#s7YIZ_3b*Wbt-PWwme71}jW+q}3SipRwno+D!9Mvq%WG-$QLI%~;V#$=q zS$0(}yPBqirKaXa)k4K-Q&F?dYDFVkvUDRaP#=oNWoq@8o!mXMmDJs7Q@t#(HB^g2 zRL#$;#lBcf8hTQ;Chw%0+!9=sgG|ntnPK1s0u@`*cpbj}RJMYUKVg*2lorz^9!=Hy zdL&a69LIoyKJ+Vi8W9D@q&R?x7jG$e8}BGMh$j`ii}w^9!eIfj`6=ub*ie&_eS->) z;OJ_*Q6p=Z3f{*D3O>X~3St-#X#1ZF5ZL%QnNO7TY+9q6C$L|^HC$KlF+L&09i;Gp z7oRHl44=!zFNnv2f-mtEZ%ytJk!s~$e68Rc+)(f>Zg}yXf}6NijaEy1I_T}`?Uhh{ zFVMW4)7bPyEk%B`tSBO7m|7%C!IK%yO6sY(6+J?(vP+c8hHN96bCF%*<0aY{F-;4@I8pIYY}x)xTJ9Z%Jn*&pbWxIsZee}12!VSk4w~Ev28JglhlOl%!=RF;IjQ5 zmY(Xv_u*NDmxFH+4dI}F5sl#oP^RvoX%T_&T?B&7WvsO)!7|n@hu#4nUALhg?Mz?` z)?q7J(ScorZXb5=Y1z3VmBUM^oT{cGdRcNkecYku=cHRYqGG?ZGV+ z^3Z*3En{1-!%^LiTE=#keH$IC81CRnXFs@;4jS)c*QCV2Wy606O`PxHr@xa#2@!)Z zk?5wjmvSGkxrdh-!5Dh^Lhi@Ue20G_GV+Q#=%bsj@M)4n@MIBj(nfy2?^LiF=A2i% z?jKlgSNq?*V1Z{aLOIBtXGsBhx-r})dC~p|F9P<~5yE?v|5o~z0!ltRoRG6orY3pP zh%=l?zKvnL;$Ek%=*+bC;bNOU}492DOfA>J!=PR xMFL3%qia0JnTtG{sB!|k?Zknm2k4v%hVG&3cWjoSgbldt5nv7FB*!{D{~x2XCXoOD literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/InstallCallbackInterface.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/InstallCallbackInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..00cae7f046a11fce7bf1f35703337cea28e5b5dd GIT binary patch literal 365 zcmZ{f%}&Bl5QWdsN)-X|Z{fl{#KbOKx*`Nk6Veh&a7l*CwJFwHQ!e;!E_?tV$~dh? z*|<9SGWVOg=i~G39l#AvJsf*DA#}pw!#oJ%X@4~8PlG5VP(Wx6awtli*rnpCy+xY?* C<5S20 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View$1.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View$1.class new file mode 100644 index 0000000000000000000000000000000000000000..10006c2638cc635ad9f8d141e523b9b1526e95de GIT binary patch literal 1294 zcma)+T~pIQ6o%hzLqkI-Eh2tv#Q^uny-+XI z-{OoPj2Hd@f0W}{QVUaOB*|p6XS3(o_nfnvU%!9+1h57>j~wn9&`~yU7xz`OVBi5P z9g8}a7;wBN)sf+$EnkSh8Q45WVAG2nNphW7 zEvw65D-31GP){qMtrSd%#EZ2Vj6HcAI^v0^(lj?#g_UPi70TyU;P^7~g2NpV_ob_& zVqy|`69%d#YN(rdh$$V9Ost?v6~4T{R+C{ZRnn}zn8%{UeZR+@=M2+h_QK_hF=Q($ zaDzLJh-ecwRvF?{+bU&sswwB4YiKs;C@iMR098!oU!Y89OsC_S^>Cm;!Ap z>TMuHH;vTlU%_hMk@-wk2Gi8$Xb$ia1#0J$S(rhIEJaW>M)xeP3|TuvR;l&{tbU5@ zf$E$>J4Y6fCFfV<`Wi*NxqvQ>&?U^_>KS@|gx(&a3-xc9P*lQZ55~D~DY$ne{rv@Q zVZ<$rxYuxfD0!c_O40whABg*rxS!6r<;3G3E>Um;H_wQ-h?&7{+@ZHd|20swpj2fj NsmZ0&k8WAZ{{ibgD^>si literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View$2.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View$2.class new file mode 100644 index 0000000000000000000000000000000000000000..2f47e8bff0f2ba3f47ce9354a043927ffa806166 GIT binary patch literal 2724 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCamera2View.class new file mode 100644 index 0000000000000000000000000000000000000000..143b3bfe414e5bed2f440c35c83f8035fc8ae604 GIT binary patch literal 11305 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 P?4c_+kPXE{!ia(oMRPh! literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$CameraWorker.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$CameraWorker.class new file mode 100644 index 0000000000000000000000000000000000000000..d073c58636963194acc8eed5459ff6a66d1d9378 GIT binary patch literal 2325 zcma)7UsD@Z6#tzhWRrC%DYUi~Y10x41WF*#Dt|;vC<+Z!3ndn;x@>Nfg|Hhp8=zmn z?*QZYijOi=DdU6A*f+n2U!pTw&&>uCT1N7)=bm%+o_l`h-@SkS^XqQ_hEY&3tl|Pj z!c1rDp%h0IjHw7=TxupH`ACvUNj_Hb3GRlOo04KGgy|6OshGj13O-XX zt6+{0bn|8@Hc049+fFWF7lmbPC3Gw6*k(2{r*G*geN#C4vMIL5dHaNEneHUvW={kA zdzT4;l${lXmb7V!h4SW_aF+D70&7~+wxJi6b;p!)RT+?Q2%6_KV>=tdVR6>7gp(@h zrIO&kgJ-*r)gQpP{Z83p+9MGWJCCNxb954}{(r_ad?AeDX#m zS_QUslcBW~9n*3vO}6Cd1{d;p*GS`M&(>Qd3Ehn}=4@}BS#q#Zvz6YuNN!7v+e+w|tTGM5VSoVHpgRfl!tgoD#>ve+9| z(tTDG%q`*EwX)NWzFqaOPB@?1s$GFqACsp>>TR2H%xq4``*KPziP&4#l^Ks5<0`vm zA(6JZzlrC9>s4#UMVC7wH~zLp)@!IPTgPYBf|B0fj8VY`Ve}NU#$YqJ25k}L*Xkla zIq!lZ5qY8TW9ElX-Y=|eXK92bAFpb>?-%&vFAz9j$%pru26+$Y2|Ae9Bo7r=ah+Gf z4Rm@ZPyqonvF^Y>5q}Q<4|K&c^u|WUJD}mp=EqvOY_FW`Bsrf&{aQeV4y_#P8hm6ROadMB6y3CrIOWkt zCK9xPQQG9!+rlE*ctqbprxI*(@jaFCBW>d++QHBCtdhhid+g(M#n4qL!w8N_tfW^r u$qjH9NS8q*Fj%Sn5KBHJ5#{v;!@I!$ud$||Wkf=p62dnuufc>74F3z$Ltxtg literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$JavaCameraFrame.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$JavaCameraFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..b1304e0bd40ba720fe28690c5c354f15fb29c734 GIT binary patch literal 1726 zcma)7ZF3q`6n-vm3%F?sNsLXCN?WWzYYC)Q+oZJ#DGe=osi`=8^RnDowz9j-Wuf{5 z`~&_1zxh>Xr0Lih{qB!)Ja-{w)4?h;ocngpd7ks!v%7!&{revPHt;lo1(cQ9Q07(= zDSWDCx0Cn`pKG|I7I!slCXv8axLj&9HQbBieiAyqNMaEWG;FJ|2g>YdsA$;LP-U32 zn}cCha$D?jk25UQU1=8Go^Xs|(Qu_G?sIRGA!>hVw&*-&e{HqB4g;$(X!f44%#KIf zUdQTZ*BPz`V+X(wHG4c={VX{q&OGosMRdy3;%#Guz4N61Q-_xpkzHiBrg$z|Wlp~y<*+Ms+Q7XVaiqMdh$r#&9T$|@Lrupj)-*iU@dR~-)zix95_%oW z=of1?H$~NzHurRVfMtf2Ko?lH*^{n8UjC?K9|sIq6k4&%9kW>Lc7@5i+tM7^!tow{ zXNaC>xehrUNiig9nQ`)r!JSM?WDXkTQpS~;W}{Trk;kDjMJgzOdMc8Ro9d_(I6CEj zw*0qmjv+Orc-VR_3{S%m!<`wK#?84St+pwYlshDOwlbXd?4+OOXY9rLgBA(La4}b- z-@kSAY-ydIq-+1Dt@88~#*Lv@al5W$D4vNqmGE87x0I_-RXX;h z<(QkQ(LSC*ca}=X(5q(=^x{AiA=P~J$_l9_@<(bxf24i{QYqDlw2qMfC45LWL#r){ zWHhD=zk!9xgp>)tMC2FR4dF7`nDSs-xI%M%?2W6qMk}KFCex38W}rs#(N~D2=6}MX z%1Zxu>KpA9l0Ty`IZVG7JZz5-=Uzi^rsqy@?oSn?2!wqCD?|Zo8#>#;8ml1Bc5#bh*PksCXl}?E#_-b~Yt{~*^-5~M9 z{_GQ)De>u%nozn;qY^)^%6*CS6g8=$*)wSDt3ZYE2|@_#6cs{=km%}Ywm{#aER9Qe Ih)1!+Ka3EO`v3p{ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$JavaCameraSizeAccessor.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/JavaCameraView$JavaCameraSizeAccessor.class new file mode 100644 index 0000000000000000000000000000000000000000..6a2bb7d7a225e9e47f88d2e085a83385ed1a0bfb GIT binary patch literal 995 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 HlYR69#>Qx@ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/OpenCVLoader.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/OpenCVLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..01f62fc01078f0031b427421705f2a9957fd3120 GIT binary patch literal 1792 zcmb7_Yf}-iHw9T36B{@^1GRx zbg^8_>=m;4opP+4D90Fva|g*x>ncNO_Wa??wd<>fZgJfT z(^0heCoAQ353TNLrCzTn>S2}w&G(ARQ+8je$ju|o&=~?7jfPu=VXR{Vy47|ihQawdVuCBUDP5pL$G}69^wlAn;%d%_6Ly-`LkVajNxk`?+o;X#C_u5Fo zQY=l~=Jf_QX+ZYzXw8LT#$(^kktlHUSW|f`3DfANpE6(=WAH-)eL+NB=p_yae1SM9 za368MzyrjC0uK=n3w)7yMBq{4O9Edez9R4#@wmWOiLVJfL3~}{N#ZGir-^R}e3ST= zz%#_R1-?T(EASlgyub@ICpxiMqR$XbC``&od*;7`eRD<@rcb}KC?i7G!BzmGh!OSD z-$sH~?Bof@p=93)y1vo^qk8S+Lnk!phMx8rcSE~`(B_#w%UE&xtYXbg&cH`+K$>4z lJb};dB&L6H(x+M>xJ$dWUlLMScWzL^J=~`Zh6hgO!#{+lUI73A literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/StaticHelper.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/android/StaticHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..cf341d42446c22236fe236aed3ca7423b9c34009 GIT binary patch literal 2878 zcma)8SyL2O7(G2ROgBR#+JXv1X*XmL#Vsa5G$2tivS>gEn#AtV&Up%0rT>C>1NDe9c>aMe>%{lvReD+cP*=U}7=c+x^YAp7Y)B&Ts$xJPlww zE+w!P0}2KeJe)uRLkf;5IIiFk1&=CtOvVWXk1H?|NFl8tlYog~p*bSsqykIGPstcf zpi=m;#XhFM5xc7(D^#CQ;3@EhX^=n;rxSP*XN2Xrg0l*qQt-5ba|+HUumsO2cvdJp zr{H-R7ZhAfU?W}-%Zp-pNx{o9UXc*(Z$BVG>pEqeHkxh28ENhdJj)r`C84~-b^O3^ zf&s(MnG)iymSY8bXw#4!kPz!|Gn7_zS&rG08%vp9zmc*j(YoBUVGkIdCEg3dSa8zv zC9Ljpy^&@&YdY!E&4!clTr0zfMqs5oO*?CPjGGW)da2SOqBI;!9+M!^uRbTqqmEA- zf7miJj6b^1^ITyX^#hNq>Do-!GyR+$(3bYfLHg{-Wej?>trRmUXVmm)w~-AKl<_L5 zknx&?GTSxiH02rIxP+>PIZ+GHh=gK2#u#&2RLqqobgTGT+X@1cY1HN|bAe?SK<#%& zO~*PLRv8oeq=r65%%Bjj%kr6UWkYg)P~y_(=Df7I-x44%nG4!x!Jdk{u~PzAd76cK zfrY zY#>St!?8ABMYq6IzrBWT`Fbx^7TG)(n|(8Dct+rQD&EHjGCoxC5&GC|Dn7=9icdtQ z|K)Aiux!$^ya@AbE}}nmHr#A6667#XGsCW(3)3toEbmj%A#*4b-CICS0Lk(`!{-v} z=STDP)VQ88c`7qJyW=5r5~@Rt7wT}rxl4597b?EQS1P_1z^a8l5LVkIEG{zCn>uBt z*^hHXdD7T-#}_&bi)V*N7`)3JVL%qXVS(d1-#mHn)=1+%nZC_g=M0J)Sy8uyO$&IR ze^d*7#&M(s?rarhJROHU*6#(JD)o2dh#o5E9Lu!pnav$shzY%gVGi;Lcw-!euERqe z&Yp!qNG^z?#EDRm<-8BVY1r=>X?l;_rZW~`XN-gmuox}D!7l& zYF+^?*u}R}v|=|UG?sox6bfb6v`BZ&1U6{VDZ~b~l5mZOs~oOMxR!=%nWj#md{A37 zg^DRG?w*9&qm^me6qXKZWmi!-bOlw~vddWB#D8rCm&>RQP0F+yu{TYjb^;wVx+@f~ zoWiP}Db#Jc480{*9h=@+65ScEidU6f!iwrxReW2Etd&(WmDPh6d`RLP8gYTzm(YZ7xqpw%_>su}L}q@WhhNEt0J@Wr+6d?#dWuq8 z;oEk~E>O3fPf=P$u@@a7A=mH#pFrzKK^Da{_E9f_{gm&3e1pMc9N-k}RAz7pGA9=f zgr9>FS^pcg*Abf`r%_3wm{tjKmF4NhpNtlzY$VoNBxWu7Xe@HlNEVAEdbP+ zZadb607gXO=pr1V?acy20+=O;%+N)I1+({w%{qqRWmBkn8nLkIPWDHG=#N;d)c6f{ zu;}CjHc`r&%LlJw<4~j4bOoEbng8YqEUx9=%oac2Iyv*#Bucd{d=b3``V&2sFQ=Eh z9$~~jcF<9F&Hy`P5L++?IZ5_g4|-XG=#Rr;ISCe+?*dWIBE)VW$vTc) T$I?iNln~cFC*CERhsDezGTtqgAC>W#0u_(T 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 bmd5jlF8AB|`S0lK-=*uqlHWsU%kTd`i10W= literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoBM.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoBM.class new file mode 100644 index 0000000000000000000000000000000000000000..666e109707a78ee016f2214856f7859342d0fd91 GIT binary patch literal 3784 zcma);YjYE26vxlDX>;k8-Y68xrQj_sNT5|vL9~~kDQQ!aQn`q6n=H*jnhl#xX+gz1 z;{Aqrd*}Gh7cw$KM`m<<>x|`Z>3BSq7>UN&E=kmUNGoXO zVTpX<@%|a8Q9Y|l)E3tY>STF-RyC%T**q+raXq8tXB0!@wr%v8Ijw}K;<_;x(Ti#! zvk-xoHanD!q)gRN^^u8#fGXLnf#Aj^YDuTh82bE_X{6H<_2Hv+`Zi|_RWT93j&Lki z&v{*;JU^zDiipzGR74h>&Fh(SDeWQv&4$V);jh*OZ4cM`lz&b&lZn_qiF#bVx}ipr zYQ{w38&)OfcwzS*M5V!*GSnkl9`zbkiV`)3`!R~`PP>)BD%12*5jl0iD>bj=^Qtkj zk||rK)kU*xsM9$^E#>rl79$Ajv4VEKtQOQ#DXEy6j?b6epZB3Ump-;bIkSQ+Vyth&gEJ8tQ60qeea$pt{g|jbvf1O}5>v%^!}n`Ip@l z37pXin8G|`FcPRlD7u(Yi>OwiVciV0D3`5YF64GIiFRG(9~ zx{ddr8mrm{+17#g&UwH#UXz##JaE-lTx))}%E;AaV>dkA6{^_XHDddE_`6EN<_=V< z`a#S|wl#&v#k}ZrzN-e~G**HM!dS^TfZq7ya@uB*bT?eqj2HGb3oUgbR^ zl+w#ah8GhWt(6^U&sk+bk?B4POVoRZol2$?bW*0hv`?l}^o&fW=~>js*`u5bIqZ%(Rh!G1v;${NAI^pb+JxUbadg}zT6d#;kE4Ar4Ums(3XgtxJVK55Cu$zp zev70VqR#-g@t&xSc0q0cl`XsJerW!+haz|%Zt?)m@!gJGLpC{J^ElT*ddTJ-fR(EgTqZwoM+e-v zA@U<24wUot+Ymm_A4b8gd}DUOI&M?o#K294g>F$xZEV9Bg;7Ur9rif13G6}OBsz2_ zth^>R0qj$Cu#eJVJKAaqtw>uB^?r-&tnsx5=QK)~cJM-Wm{tjSLQ3?Q7jIoH?;LpZ zb$E|^@!D#6OW<9q!yESEwb$~lfOoYHZ^Vn&QOmmq-t{`XQ7>L+E$?gazNy0-qo_T; z!&p#a`SSQ;0d}qI1lI800PcGSE?C_Sf^|mU14=20pCT+m85l;`EP0O^|P5+%X(jN|bPc`=*njmWhPX1qd zubciS=zn?86E=OyvlLt0xW7?~e;hdHKv|olgmv#V?ps|rsfhxT-vgJlE1UAfZFA$g zfa~_aO$(flj?oN;hYzRy(7e$GtX*fjo7PKyX^Ws)=L&D)d_+Bs$A_NBr4Zi@uFDZUaK&LLfBm1VZClAT(|ULgR8EH0}aI<2oQT YZUjQ(QXn+$1w!L$fG8z0AseXtA3@WS#{d8T literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoMatcher.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoMatcher.class new file mode 100644 index 0000000000000000000000000000000000000000..255aca76bad90356a613898236c81294691ba4b4 GIT binary patch literal 2816 zcma);ZEqVz5XWZ|$M#(>ZXVn~NJ&FW!AaY=X`nz80(qn{P8;fwHs!%R+h_Y4`z|_P z(!xu`2S9uP)DKW0DphLKB3`4uf-i*l&-xPk&ONz~Jma06{q5|`?kF$+d;S*@&5{+P zJ1QkX_Y~5bE(IPIS(I29EXph@EUGNb7~L17uB_)a z^SSHmYg>ZEx}g4L+iJMFeWMp~M2@|d7qhEu84whmH!ag$5EMyeCbyxM?UEtr zWY)Bd8~gQw;cV%J8Z1LuyQtT;b;snfXN!p%|*fN4nAzc77dzRx#YAnqAz@nLi?+-qa+H8FdUk zp`ZcGu9%IznJXLm!xgh!#vx$ZFfFzsZ1)F2gRtOKM;6mS@a&b_Gm5)4_y4aPntOYxtAca%fNDpy$Ri5ncFT|o&H@J1x&~joZ)1wqe-(M>_IsKLguF z;OW^~A@YRcRiA&yQW<E*G=`5YYyh88Nd5<#-Dtjp}NbHP1quxI-=)q=3s6mO+ zBvz3C!teL!eGjk%Zw9DSPbqRpee+|Fj|r-rnV>k@4&0w1xCIaQStxEOi2ED3mm#>%B`!jX z#QlLA)>UW$9dGuD;UMiFiqXH4*6cNLudvHl6T!+Ap>iWf^HI5%OO19eH9ES~XzEg< nuS<=-E;U-a)adR~qrpp!9xpZ8ywvFQQlr^pS3%p5J#_nj^7ZRx literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoSGBM.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/calib3d/StereoSGBM.class new file mode 100644 index 0000000000000000000000000000000000000000..89af38b206513699f9de3aeb65a04ed9bfc6f509 GIT binary patch literal 4829 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 Ms5`XFQP^?tZ%$c&82|tP literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Core.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Core.class new file mode 100644 index 0000000000000000000000000000000000000000..88534ff99db86db5aee76634161660d6d419dfdc GIT binary patch literal 42022 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 Rj@hj~{%^w0V;iGZ{{qKOmP7ym literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/CvType.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/CvType.class new file mode 100644 index 0000000000000000000000000000000000000000..544d6f2da9fca52eb051a682296d6907f6f1d7f9 GIT binary patch literal 3918 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/KeyPoint.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/KeyPoint.class new file mode 100644 index 0000000000000000000000000000000000000000..00f455e865ce8fded7341734d9b25aabb244e9a6 GIT binary patch literal 1869 zcma)6?{gDX6g@B9>~50X1Op+pAVk_|x&}fi3fdnkt&u=1NTIYcOlF(zlx0FTlcXK% zC&%ynFFIq=85#Avf0X0B@9l1t7RGkwzVqI@x#ygFU-H-Azx@GV9#7IZheZQRX(X_m z!W2H|@CAo2Io#r~!eLeW^G6^}=qm&DG%PHd_?p+-92zF>@Osxo)5JF>)_8Z%#C;Rr zGJIfQ-M~YEL~kfiYzF<^TF~>l?fqIi=zF#Mf!`f22xtTU2TwrM1(I%ew?o+MdxKuk z9T3!m_R!tu`v#r2JMLi6@^|Qb(eL`hWr1|1&VP-@>;~0Z33ezq*YvyI+TM$8um8~9 z=8E}d&~`f;Zr|s9c&H7Z`2&HeW76(=2a!7QJy9Q!w3d>ow?d7n){#h~6{$?MjwDW0 zSW+s~$JkVup&=n7osqm92J6GV-`y2BQ<-f(clX^|huCWBlvy2Q;SFS#Rz6ogJ_LFS^o`-f+pn z1|Dq#~)blC& z0s=Y&kAslliO7|PB3GJ=Txm3NrRmUWP$rFt;)k^Ro%SZJbIu`z^9qTr>6bGv4>2)< z=9EWBIz?>+-6hp;6J(RCJO~FJP7)gG2ux;VP=M z10EeO-NKDq)Bv@P*S2fvY<K*jWydvm7F4IqHpamLp;8jAeWr%IJ~|_L_}koM>nXHkPG|WtAPP$i^zNv5IW0 zA{(p7hANo*laRYj+}v?nai84F73$@xq`t0_V`@95wqt5LrnW95^ p*-V;{uji~pPlcnBYMq|_m%0WKJc8dc zMRhcyUgGzcBNpMirSM`|=w{gwD-f}Q5i7)1VXlgVtulTok60C4I!r2=R57V$Qp2Q{ zNgb1VCZm`%Fc}@T#waRF#suR3C-~h|2C}`0jG~66sq~hqseyR1d;8SxR60I&SuA@7 zn8kW}(uyiqXJg&lmc<677tB$S-NM2`EuEd6A~l`b0Y0h|eY#V9cnoBB4M1u$w^+J0 zwmmjAnMh5YzbhM`Ke%~wJbi|A>xpG!EZ(nyqOmPSdaX`e8b3pe%-~VcX#XaPP7uk3 z<5~?2Vp_O@mW{=|bpu5+N(nF3g$J~#xDz8;)MZsHxg}nzni;8nMG=514HbxP-HmQ(kG0cz0GN%uc5geweS~1~AT8&(^_AcGU{lfy{hoYmwr{vU;+q0Y%}S zO{r`)g~0}U`r@0jFsYt&VoNVSq~qDOu|AA2mdPZxB-f-AHTml+_R#46jfWZO?u{jr zaW+fXEp)5s?u~bETMMOAFmJZv3%S~f_r?1cxNUrwiiyII13ig;jH0YNmE0arXBpdOfBZTZE@TLUY3V|TvjavlTC5SEHKa?%WT8kbf@F7EKm)0r&AfIJjI_+sli4#!pxH>hN(xq z#K>b?pnnf+p(h19D`htrV1(^~BMy+tKTd}#@&1AAF0mz8fgRt4?_)XIlv2WHicB2y z9X@y_lG`!%{&==G1x1}i#%p^OiOlN3P5rTKIstnr>qA`6#>MBR6@w#!io~o;C6d~s z%Xajp`r>+!c4{*aE{-+2HS&PlwktIV=&TI@DU4418m4EVc>f?Qyu@5DEQL=ngP;o# z1MnZV%7MX5Z`UTI9B@wq_*e!X@s#O}aZa(ilaPeqh-t($Xs3`@b_#h2X5wPhJ|Qum z0g5oufoY)+ggPbob|^Wd?XkW==sK^M9m_c`UX4BhMWz*|n90TmV3HhyVB9JJtI3FM z02d&E#GRH{n%Z$r5|+f-B439`sXM1w#gWsKukyaLE@`0@L<))pv#Bh{_~4~+xHt6M zoJhv{#N*1(+1ZWwn@A-yVXG0JvZ>Xu_#~Wn6abMGLm$%UR9(xfm7c+V

{Q|1F1Hb5# zEnQ=HBSf)fMHq3jsA-p-YgVcv?Mk!Nd<0H%lG7szbH;?rlf%;pWV>3qIfiCrZlbf! zv-b89C}tVi52K-QaDkb}b-dX2VDe7Z$!Yn{d!L`gw`*cJ&RgN!i38W_rX!9LZSjY( zUrE>2bFr~uzrX71LSQ^Sqi-&FqQ1G$2LO3_{j}ALtM5~5PyQ;_n>j`GmYJaw;FQPM z;Fr_41P$#~B7q6qny&ZVBv*deR;j|2+=l6#{jtl^B@Lc~9dv_5Iu`ATbBj|rOKM*_ zg!`m?c3iGg6&iI030-@pqDig8ReTgdTY#Q5@x==8tfv-lLpEwa-d{s=+vf5&YO*yW zyrCYSca{A@UV)Ia<5+4AMTcOIUF%0IELu?@m1uRjcIlY+&#WNNZ6?Bcj>7CBf5RWX zM+|#LT)I|*k?`TxiXaJR{9I+_=n7YFCo?CLu*~fWU!Ib_8N=&Gk}jm7-*y@$aYDB% zIv5BBJ)L?+|H~WoQ?MW7pg=%Tf2!Vp_6GgGT^KR{V`-GBdiIw&zO1m@)*N$5`Khle zQPLWw<*DFl^AKQQiwc_xDfn#bTV-JQ62An^h9}GT;iKZ7%*2yHrkJ}?%I#uCy84huRQR9FuKE;z|(6{A@ZlMbNqy$ z@f5FZQG)FXFxO&!1_g-qGtK+ubC5arLC-=*gwHt4~U z8D~W7;z?6-6mHvr$x(37c4sHtBt#S&^AP8bq%&?*d1IQAl$fuX$d1nHB)1|VVP5XX zcMMw^(v_}p2B){~>$~)@k)<%3Vp*nWh#We?0+7Z9=GcAF(wmq)U^6fvzkz%yB@-hGF}w%&=M z+(Dqe!4s2xtML~Oxl`KhHz8d zhydA+Amr)eeN z_ZB&}ab)4wycJSdj*W3{=^Bj3OGX@2$@4}eS!lRfre6g@r}r1X6Zu%`2pSth z38jBrQ6JZXZjeOIT_Ru|C4&v zsJgvNu3%d+AM^p&w3B<>9llpLWZne(_#?OEv+tNoHx{HeM~uRT&e3w8kumSUuMI@@ z$b0N|_aPB))^TwGzYij|RhUq~`%p#(8Mb9yP+gTUoLh;S_=_Icp`TnDcHr}NxKw&! z&xf)(g1VBFM{NrgA64F0@n09D(XBfDXp7N&^Sz-yWV*j-fX(3qutt>4@VYnX21rqDN?e)4%(Ycx z6E3t68OAAE@^-CI)rdKw5;EGzek|pS8>$Xu;EXrtfWc60#`-(v+(!)Ryh) zfL)2qM5j}2s$Ki~!J~TiPoGz6T~3>WHDfd+AgoIq!Y&=q^_i_Y+e5Vv2ezg%2rt%F zS{kfwpdAvqu+hfk_-g6Bt=MP znHZR_vD{Jz8IIU-tdK++V^pgROk*-t(hmIw>+7)Ef6h=KNT_-?bMISbL2?t?M+(m} z4E^)^Nw&Pi*`{U@QgdlCLMa(Rt4aE9&7-RTLp6jD5M_y$du**I$rMFopDcMD6}EO?MMoYSPnxZhaDriM zOlM-~sD{l@y2yk)tJ8QD8@3iekvKWy0!w`jBlRnS*v;3570+ij0Sd`TcrJ^8_?A;C z1-%ms6x~a%sZ*__=BjwO>ittwOs-^+K_m^YiCUO8?3i4_U?*5KHkNf!T>%0AUlY^B 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≤E; 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

lo+r`2QRciAr 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 z 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 + android:minSdkVersion="21" + android:targetSdkVersion="26" /> \ No newline at end of file diff --git a/OpenCVLibrary/build/intermediates/manifests/full/debug/AndroidManifest.xml b/OpenCVLibrary/build/intermediates/manifests/full/debug/AndroidManifest.xml index eecbdc7..9274891 100644 --- a/OpenCVLibrary/build/intermediates/manifests/full/debug/AndroidManifest.xml +++ b/OpenCVLibrary/build/intermediates/manifests/full/debug/AndroidManifest.xml @@ -5,7 +5,7 @@ android:versionName="3.4.3" > + android:minSdkVersion="21" + android:targetSdkVersion="26" /> \ No newline at end of file diff --git a/OpenCVLibrary/build/intermediates/transforms/mergeJniLibs/debug/__content__.json b/OpenCVLibrary/build/intermediates/transforms/mergeJniLibs/debug/__content__.json new file mode 100644 index 0000000..49b1382 --- /dev/null +++ b/OpenCVLibrary/build/intermediates/transforms/mergeJniLibs/debug/__content__.json @@ -0,0 +1 @@ +[{"name":"resources","index":0,"scopes":["PROJECT"],"types":["NATIVE_LIBS"],"format":"DIRECTORY","present":false}] \ No newline at end of file diff --git a/OpenCVLibrary/build/intermediates/transforms/stripDebugSymbol/debug/__content__.json b/OpenCVLibrary/build/intermediates/transforms/stripDebugSymbol/debug/__content__.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/OpenCVLibrary/build/intermediates/transforms/stripDebugSymbol/debug/__content__.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index cf662b9..61d9233 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -10,28 +10,6 @@ cmake_minimum_required(VERSION 3.4.1) # You can define multiple libraries, and CMake builds them for you. # Gradle automatically packages shared libraries with your APK. -add_library( # Sets the name of the library. - jx_ffmpeg_jni - - # Sets the library as a shared library. - SHARED - - # Provides a relative path to your source file(s). - src/main/cpp/jx_yuv_encode_h264.cpp - src/main/cpp/jx_pcm_encode_aac.cpp - src/main/cpp/jx_media_muxer.cpp - src/main/cpp/jx_jni_handler.cpp - src/main/cpp/jx_ffmpeg_jni.cpp - src/main/cpp/threadsafe_queue.cpp - src/main/cpp/jx_log.cpp - src/main/cpp/cmdutils.c - src/main/cpp/ffmpeg.c - src/main/cpp/ffmpeg_filter.c - src/main/cpp/ffmpeg_opt.c - src/main/cpp/jx_ffmpeg_cmd_run.c - src/main/cpp/jx_ffmpeg_config.cpp - ) - add_library( avcodec SHARED @@ -78,8 +56,8 @@ add_library( ) add_library( lib_opencv - SHARED - IMPORTED ) + SHARED + IMPORTED ) if(${ANDROID_ABI} STREQUAL "armeabi") set_target_properties( @@ -322,10 +300,9 @@ set_target_properties(lib_opencv ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so) endif(${ANDROID_ABI} STREQUAL "x86_64") -include_directories( - ${CMAKE_SOURCE_DIR}/ffmpeg-3.2.5/ - -) +#include_directories( +# ${CMAKE_SOURCE_DIR}/ffmpeg-3.2.5/ +#) include_directories( ${CMAKE_SOURCE_DIR}/src/main/cpp/include @@ -349,7 +326,6 @@ find_library( # Sets the name of the path variable. # build script, prebuilt third-party libraries, or system libraries. target_link_libraries( # Specifies the target library. - jx_ffmpeg_jni fdk-aac avcodec avfilter diff --git a/app/build.gradle b/app/build.gradle index 2b1accf..c98600a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,6 +32,16 @@ android { ndk{ abiFilters "armeabi-v7a","arm64-v8a","x86","x86_64" } + sourceSets { + main { + jniLibs.srcDirs = ['src/main/jniLibs'] + } + } + externalNativeBuild { + cmake { + cppFlags "-std=c++11" + } + } } lintOptions { disable 'MissingTranslation' @@ -105,7 +115,7 @@ dependencies { //替换retrofit内部的okhttp implementation 'com.squareup.okhttp3:okhttp:3.10.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0' - implementation 'com.squareup.okio:okio:1.13.0' + implementation 'com.squareup.okio:okio:1.14.0' //事件解耦 implementation 'org.greenrobot:eventbus:3.0.0' //bug report diff --git a/app/src/main/cpp/base_include.h b/app/src/main/cpp/base_include.h deleted file mode 100644 index dde10b9..0000000 --- a/app/src/main/cpp/base_include.h +++ /dev/null @@ -1,47 +0,0 @@ - -/** - * Created by jianxi on 2017/5/18. - * https://github.com/mabeijianxi - * mabeijianxi@gmail.com - */ - -#ifndef JIANXIFFMPEG_BASE_INCLUDE_H -#define JIANXIFFMPEG_BASE_INCLUDE_H - -extern "C" -{ -#include "include/libavcodec/avcodec.h" -#include "include/libavformat/avformat.h" -#include "include/libavcodec/avcodec.h" -#include "include/libavutil/opt.h" -} - -#include "threadsafe_queue.cpp" -#include -#include - -#define END_STATE 1 -#define START_STATE 0 - -#define JX_TRUE 1 -#define JX_FALSE 0 - -#define ROTATE_0_CROP_LT 0 - -/** - * 旋转90度剪裁左上 - */ -#define ROTATE_90_CROP_LT 1 -/** - * 暂时没处理 - */ -#define ROTATE_180 2 -/** - * 旋转270(-90)裁剪左上,左右镜像 - */ -#define ROTATE_270_CROP_LT_MIRROR_LR 3 - -using namespace std; - - -#endif //JIANXIFFMPEG_BASE_INCLUDE_H diff --git a/app/src/main/cpp/cmdutils.c b/app/src/main/cpp/cmdutils.c deleted file mode 100644 index 4376328..0000000 --- a/app/src/main/cpp/cmdutils.c +++ /dev/null @@ -1,2266 +0,0 @@ -/* - * Various utilities for command line tools - * Copyright (c) 2000-2003 Fabrice Bellard - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include - -/* Include only the enabled headers since some compilers (namely, Sun - Studio) will not omit unused inline functions and create undefined - references to libraries that are not being built. */ - -#include "config.h" -#include "compat/va_copy.h" -#include "libavformat/avformat.h" -#include "libavfilter/avfilter.h" -#include "libavdevice/avdevice.h" -#include "libavresample/avresample.h" -#include "libswscale/swscale.h" -#include "libswresample/swresample.h" -#include "libpostproc/postprocess.h" -#include "libavutil/avassert.h" -#include "libavutil/avstring.h" -#include "libavutil/bprint.h" -#include "libavutil/display.h" -#include "libavutil/mathematics.h" -#include "libavutil/imgutils.h" -#include "libavutil/libm.h" -#include "libavutil/parseutils.h" -#include "libavutil/pixdesc.h" -#include "libavutil/eval.h" -#include "libavutil/dict.h" -#include "libavutil/opt.h" -#include "libavutil/cpu.h" -#include "libavutil/ffversion.h" -#include "libavutil/version.h" -#include "cmdutils.h" -#if CONFIG_NETWORK -#include "libavformat/network.h" -#endif -#if HAVE_SYS_RESOURCE_H -#include -#include -#endif -#ifdef _WIN32 -#include -#endif - -static int init_report(const char *env); - -AVDictionary *sws_dict; -AVDictionary *swr_opts; -AVDictionary *format_opts, *codec_opts, *resample_opts; - -static FILE *report_file; -static int report_file_level = AV_LOG_DEBUG; -int hide_banner = 0; - -void init_opts(void) -{ - av_dict_set(&sws_dict, "flags", "bicubic", 0); -} - -void uninit_opts(void) -{ - av_dict_free(&swr_opts); - av_dict_free(&sws_dict); - av_dict_free(&format_opts); - av_dict_free(&codec_opts); - av_dict_free(&resample_opts); -} - -void log_callback_help(void *ptr, int level, const char *fmt, va_list vl) -{ - vfprintf(stdout, fmt, vl); -} - -static void log_callback_report(void *ptr, int level, const char *fmt, va_list vl) -{ - va_list vl2; - char line[1024]; - static int print_prefix = 1; - - va_copy(vl2, vl); - av_log_default_callback(ptr, level, fmt, vl); - av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix); - va_end(vl2); - if (report_file_level >= level) { - fputs(line, report_file); - fflush(report_file); - } -} - -void init_dynload(void) -{ -#ifdef _WIN32 - /* Calling SetDllDirectory with the empty string (but not NULL) removes the - * current working directory from the DLL search path as a security pre-caution. */ - SetDllDirectory(""); -#endif -} - -static void (*program_exit)(int ret); - -void register_exit(void (*cb)(int ret)) -{ - program_exit = cb; -} - -int exit_program(int ret) -{ - av_log(NULL, AV_LOG_FATAL,"Quit at %d",ret); - - if (program_exit) - program_exit(ret); - -// exit(ret); - return ret; -} - -double parse_number_or_die(const char *context, const char *numstr, int type, - double min, double max) -{ - char *tail; - const char *error; - double d = av_strtod(numstr, &tail); - if (*tail) - error = "Expected number for %s but found: %s\n"; - else if (d < min || d > max) - error = "The value for %s was %s which is not within %f - %f\n"; - else if (type == OPT_INT64 && (int64_t)d != d) - error = "Expected int64 for %s but found %s\n"; - else if (type == OPT_INT && (int)d != d) - error = "Expected int for %s but found %s\n"; - else - return d; - av_log(NULL, AV_LOG_FATAL, error, context, numstr, min, max); - exit_program(1); - return 0; -} - -int64_t parse_time_or_die(const char *context, const char *timestr, - int is_duration) -{ - int64_t us; - if (av_parse_time(&us, timestr, is_duration) < 0) { - av_log(NULL, AV_LOG_FATAL, "Invalid %s specification for %s: %s\n", - is_duration ? "duration" : "date", context, timestr); - exit_program(1); - } - return us; -} - -void show_help_options(const OptionDef *options, const char *msg, int req_flags, - int rej_flags, int alt_flags) -{ - const OptionDef *po; - int first; - - first = 1; - for (po = options; po->name; po++) { - char buf[64]; - - if (((po->flags & req_flags) != req_flags) || - (alt_flags && !(po->flags & alt_flags)) || - (po->flags & rej_flags)) - continue; - - if (first) { - printf("%s\n", msg); - first = 0; - } - av_strlcpy(buf, po->name, sizeof(buf)); - if (po->argname) { - av_strlcat(buf, " ", sizeof(buf)); - av_strlcat(buf, po->argname, sizeof(buf)); - } - printf("-%-17s %s\n", buf, po->help); - } - printf("\n"); -} - -void show_help_children(const AVClass *class, int flags) -{ - const AVClass *child = NULL; - if (class->option) { - av_opt_show2(&class, NULL, flags, 0); - printf("\n"); - } - - while (child = av_opt_child_class_next(class, child)) - show_help_children(child, flags); -} - -static const OptionDef *find_option(const OptionDef *po, const char *name) -{ - const char *p = strchr(name, ':'); - int len = p ? p - name : strlen(name); - - while (po->name) { - if (!strncmp(name, po->name, len) && strlen(po->name) == len) - break; - po++; - } - return po; -} - -/* _WIN32 means using the windows libc - cygwin doesn't define that - * by default. HAVE_COMMANDLINETOARGVW is true on cygwin, while - * it doesn't provide the actual command line via GetCommandLineW(). */ -#if HAVE_COMMANDLINETOARGVW && defined(_WIN32) -#include -#include -/* Will be leaked on exit */ -static char** win32_argv_utf8 = NULL; -static int win32_argc = 0; - -/** - * Prepare command line arguments for executable. - * For Windows - perform wide-char to UTF-8 conversion. - * Input arguments should be main() function arguments. - * @param argc_ptr Arguments number (including executable) - * @param argv_ptr Arguments list. - */ -static void prepare_app_arguments(int *argc_ptr, char ***argv_ptr) -{ - char *argstr_flat; - wchar_t **argv_w; - int i, buffsize = 0, offset = 0; - - if (win32_argv_utf8) { - *argc_ptr = win32_argc; - *argv_ptr = win32_argv_utf8; - return; - } - - win32_argc = 0; - argv_w = CommandLineToArgvW(GetCommandLineW(), &win32_argc); - if (win32_argc <= 0 || !argv_w) - return; - - /* determine the UTF-8 buffer size (including NULL-termination symbols) */ - for (i = 0; i < win32_argc; i++) - buffsize += WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, - NULL, 0, NULL, NULL); - - win32_argv_utf8 = av_mallocz(sizeof(char *) * (win32_argc + 1) + buffsize); - argstr_flat = (char *)win32_argv_utf8 + sizeof(char *) * (win32_argc + 1); - if (!win32_argv_utf8) { - LocalFree(argv_w); - return; - } - - for (i = 0; i < win32_argc; i++) { - win32_argv_utf8[i] = &argstr_flat[offset]; - offset += WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, - &argstr_flat[offset], - buffsize - offset, NULL, NULL); - } - win32_argv_utf8[i] = NULL; - LocalFree(argv_w); - - *argc_ptr = win32_argc; - *argv_ptr = win32_argv_utf8; -} -#else -static inline void prepare_app_arguments(int *argc_ptr, char ***argv_ptr) -{ - /* nothing to do */ -} -#endif /* HAVE_COMMANDLINETOARGVW */ - -static int write_option(void *optctx, const OptionDef *po, const char *opt, - const char *arg) -{ - /* new-style options contain an offset into optctx, old-style address of - * a global var*/ - void *dst = po->flags & (OPT_OFFSET | OPT_SPEC) ? - (uint8_t *)optctx + po->u.off : po->u.dst_ptr; - int *dstcount; - - if (po->flags & OPT_SPEC) { - SpecifierOpt **so = dst; - char *p = strchr(opt, ':'); - char *str; - - dstcount = (int *)(so + 1); - *so = grow_array(*so, sizeof(**so), dstcount, *dstcount + 1); - str = av_strdup(p ? p + 1 : ""); - if (!str) - return AVERROR(ENOMEM); - (*so)[*dstcount - 1].specifier = str; - dst = &(*so)[*dstcount - 1].u; - } - - if (po->flags & OPT_STRING) { - char *str; - str = av_strdup(arg); - av_freep(dst); - if (!str) - return AVERROR(ENOMEM); - *(char **)dst = str; - } else if (po->flags & OPT_BOOL || po->flags & OPT_INT) { - *(int *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT_MIN, INT_MAX); - } else if (po->flags & OPT_INT64) { - *(int64_t *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT64_MIN, INT64_MAX); - } else if (po->flags & OPT_TIME) { - *(int64_t *)dst = parse_time_or_die(opt, arg, 1); - } else if (po->flags & OPT_FLOAT) { - *(float *)dst = parse_number_or_die(opt, arg, OPT_FLOAT, -INFINITY, INFINITY); - } else if (po->flags & OPT_DOUBLE) { - *(double *)dst = parse_number_or_die(opt, arg, OPT_DOUBLE, -INFINITY, INFINITY); - } else if (po->u.func_arg) { - int ret = po->u.func_arg(optctx, opt, arg); - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, - "Failed to set value '%s' for option '%s': %s\n", - arg, opt, av_err2str(ret)); - return ret; - } - } - if (po->flags & OPT_EXIT) - exit_program(0); - - return 0; -} - -int parse_option(void *optctx, const char *opt, const char *arg, - const OptionDef *options) -{ - const OptionDef *po; - int ret; - - po = find_option(options, opt); - if (!po->name && opt[0] == 'n' && opt[1] == 'o') { - /* handle 'no' bool option */ - po = find_option(options, opt + 2); - if ((po->name && (po->flags & OPT_BOOL))) - arg = "0"; - } else if (po->flags & OPT_BOOL) - arg = "1"; - - if (!po->name) - po = find_option(options, "default"); - if (!po->name) { - av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt); - return AVERROR(EINVAL); - } - if (po->flags & HAS_ARG && !arg) { - av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'\n", opt); - return AVERROR(EINVAL); - } - - ret = write_option(optctx, po, opt, arg); - if (ret < 0) - return ret; - - return !!(po->flags & HAS_ARG); -} - -void parse_options(void *optctx, int argc, char **argv, const OptionDef *options, - void (*parse_arg_function)(void *, const char*)) -{ - const char *opt; - int optindex, handleoptions = 1, ret; - - /* perform system-dependent conversions for arguments list */ - prepare_app_arguments(&argc, &argv); - - /* parse options */ - optindex = 1; - while (optindex < argc) { - opt = argv[optindex++]; - - if (handleoptions && opt[0] == '-' && opt[1] != '\0') { - if (opt[1] == '-' && opt[2] == '\0') { - handleoptions = 0; - continue; - } - opt++; - - if ((ret = parse_option(optctx, opt, argv[optindex], options)) < 0) - exit_program(1); - optindex += ret; - } else { - if (parse_arg_function) - parse_arg_function(optctx, opt); - } - } -} - -int parse_optgroup(void *optctx, OptionGroup *g) -{ - int i, ret; - - av_log(NULL, AV_LOG_DEBUG, "Parsing a group of options: %s %s.\n", - g->group_def->name, g->arg); - - for (i = 0; i < g->nb_opts; i++) { - Option *o = &g->opts[i]; - - if (g->group_def->flags && - !(g->group_def->flags & o->opt->flags)) { - av_log(NULL, AV_LOG_ERROR, "Option %s (%s) cannot be applied to " - "%s %s -- you are trying to apply an input option to an " - "output file or vice versa. Move this option before the " - "file it belongs to.\n", o->key, o->opt->help, - g->group_def->name, g->arg); - return AVERROR(EINVAL); - } - - av_log(NULL, AV_LOG_DEBUG, "Applying option %s (%s) with argument %s.\n", - o->key, o->opt->help, o->val); - - ret = write_option(optctx, o->opt, o->key, o->val); - if (ret < 0) - return ret; - } - - av_log(NULL, AV_LOG_DEBUG, "Successfully parsed a group of options.\n"); - - return 0; -} - -int locate_option(int argc, char **argv, const OptionDef *options, - const char *optname) -{ - const OptionDef *po; - int i; - - for (i = 1; i < argc; i++) { - const char *cur_opt = argv[i]; - - if (*cur_opt++ != '-') - continue; - - po = find_option(options, cur_opt); - if (!po->name && cur_opt[0] == 'n' && cur_opt[1] == 'o') - po = find_option(options, cur_opt + 2); - - if ((!po->name && !strcmp(cur_opt, optname)) || - (po->name && !strcmp(optname, po->name))) - return i; - - if (!po->name || po->flags & HAS_ARG) - i++; - } - return 0; -} - -static void dump_argument(const char *a) -{ - const unsigned char *p; - - for (p = a; *p; p++) - if (!((*p >= '+' && *p <= ':') || (*p >= '@' && *p <= 'Z') || - *p == '_' || (*p >= 'a' && *p <= 'z'))) - break; - if (!*p) { - fputs(a, report_file); - return; - } - fputc('"', report_file); - for (p = a; *p; p++) { - if (*p == '\\' || *p == '"' || *p == '$' || *p == '`') - fprintf(report_file, "\\%c", *p); - else if (*p < ' ' || *p > '~') - fprintf(report_file, "\\x%02x", *p); - else - fputc(*p, report_file); - } - fputc('"', report_file); -} - -static void check_options(const OptionDef *po) -{ - while (po->name) { - if (po->flags & OPT_PERFILE) - av_assert0(po->flags & (OPT_INPUT | OPT_OUTPUT)); - po++; - } -} - -void parse_loglevel(int argc, char **argv, const OptionDef *options) -{ - int idx = locate_option(argc, argv, options, "loglevel"); - const char *env; - - check_options(options); - - if (!idx) - idx = locate_option(argc, argv, options, "v"); - if (idx && argv[idx + 1]) - opt_loglevel(NULL, "loglevel", argv[idx + 1]); - idx = locate_option(argc, argv, options, "report"); - if ((env = getenv("FFREPORT")) || idx) { - init_report(env); - if (report_file) { - int i; - fprintf(report_file, "Command line:\n"); - for (i = 0; i < argc; i++) { - dump_argument(argv[i]); - fputc(i < argc - 1 ? ' ' : '\n', report_file); - } - fflush(report_file); - } - } - idx = locate_option(argc, argv, options, "hide_banner"); - if (idx) - hide_banner = 1; -} - -static const AVOption *opt_find(void *obj, const char *name, const char *unit, - int opt_flags, int search_flags) -{ - const AVOption *o = av_opt_find(obj, name, unit, opt_flags, search_flags); - if(o && !o->flags) - return NULL; - return o; -} - -#define FLAGS (o->type == AV_OPT_TYPE_FLAGS && (arg[0]=='-' || arg[0]=='+')) ? AV_DICT_APPEND : 0 -int opt_default(void *optctx, const char *opt, const char *arg) -{ - const AVOption *o; - int consumed = 0; - char opt_stripped[128]; - const char *p; - const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(); -#if CONFIG_AVRESAMPLE - const AVClass *rc = avresample_get_class(); -#endif -#if CONFIG_SWSCALE - const AVClass *sc = sws_get_class(); -#endif -#if CONFIG_SWRESAMPLE - const AVClass *swr_class = swr_get_class(); -#endif - - if (!strcmp(opt, "debug") || !strcmp(opt, "fdebug")) - av_log_set_level(AV_LOG_DEBUG); - - if (!(p = strchr(opt, ':'))) - p = opt + strlen(opt); - av_strlcpy(opt_stripped, opt, FFMIN(sizeof(opt_stripped), p - opt + 1)); - - if ((o = opt_find(&cc, opt_stripped, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) || - ((opt[0] == 'v' || opt[0] == 'a' || opt[0] == 's') && - (o = opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ)))) { - av_dict_set(&codec_opts, opt, arg, FLAGS); - consumed = 1; - } - if ((o = opt_find(&fc, opt, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { - av_dict_set(&format_opts, opt, arg, FLAGS); - if (consumed) - av_log(NULL, AV_LOG_VERBOSE, "Routing option %s to both codec and muxer layer\n", opt); - consumed = 1; - } -#if CONFIG_SWSCALE - if (!consumed && (o = opt_find(&sc, opt, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { - struct SwsContext *sws = sws_alloc_context(); - int ret = av_opt_set(sws, opt, arg, 0); - sws_freeContext(sws); - if (!strcmp(opt, "srcw") || !strcmp(opt, "srch") || - !strcmp(opt, "dstw") || !strcmp(opt, "dsth") || - !strcmp(opt, "src_format") || !strcmp(opt, "dst_format")) { - av_log(NULL, AV_LOG_ERROR, "Directly using swscale dimensions/format options is not supported, please use the -s or -pix_fmt options\n"); - return AVERROR(EINVAL); - } - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); - return ret; - } - - av_dict_set(&sws_dict, opt, arg, FLAGS); - - consumed = 1; - } -#else - if (!consumed && !strcmp(opt, "sws_flags")) { - av_log(NULL, AV_LOG_WARNING, "Ignoring %s %s, due to disabled swscale\n", opt, arg); - consumed = 1; - } -#endif -#if CONFIG_SWRESAMPLE - if (!consumed && (o=opt_find(&swr_class, opt, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { - struct SwrContext *swr = swr_alloc(); - int ret = av_opt_set(swr, opt, arg, 0); - swr_free(&swr); - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); - return ret; - } - av_dict_set(&swr_opts, opt, arg, FLAGS); - consumed = 1; - } -#endif -#if CONFIG_AVRESAMPLE - if ((o=opt_find(&rc, opt, NULL, 0, - AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { - av_dict_set(&resample_opts, opt, arg, FLAGS); - consumed = 1; - } -#endif - - if (consumed) - return 0; - return AVERROR_OPTION_NOT_FOUND; -} - -/* - * Check whether given option is a group separator. - * - * @return index of the group definition that matched or -1 if none - */ -static int match_group_separator(const OptionGroupDef *groups, int nb_groups, - const char *opt) -{ - int i; - - for (i = 0; i < nb_groups; i++) { - const OptionGroupDef *p = &groups[i]; - if (p->sep && !strcmp(p->sep, opt)) - return i; - } - - return -1; -} - -/* - * Finish parsing an option group. - * - * @param group_idx which group definition should this group belong to - * @param arg argument of the group delimiting option - */ -static void finish_group(OptionParseContext *octx, int group_idx, - const char *arg) -{ - OptionGroupList *l = &octx->groups[group_idx]; - OptionGroup *g; - - GROW_ARRAY(l->groups, l->nb_groups); - g = &l->groups[l->nb_groups - 1]; - - *g = octx->cur_group; - g->arg = arg; - g->group_def = l->group_def; - g->sws_dict = sws_dict; - g->swr_opts = swr_opts; - g->codec_opts = codec_opts; - g->format_opts = format_opts; - g->resample_opts = resample_opts; - - codec_opts = NULL; - format_opts = NULL; - resample_opts = NULL; - sws_dict = NULL; - swr_opts = NULL; - init_opts(); - - memset(&octx->cur_group, 0, sizeof(octx->cur_group)); -} - -/* - * Add an option instance to currently parsed group. - */ -static void add_opt(OptionParseContext *octx, const OptionDef *opt, - const char *key, const char *val) -{ - int global = !(opt->flags & (OPT_PERFILE | OPT_SPEC | OPT_OFFSET)); - OptionGroup *g = global ? &octx->global_opts : &octx->cur_group; - - GROW_ARRAY(g->opts, g->nb_opts); - g->opts[g->nb_opts - 1].opt = opt; - g->opts[g->nb_opts - 1].key = key; - g->opts[g->nb_opts - 1].val = val; -} - -static void init_parse_context(OptionParseContext *octx, - const OptionGroupDef *groups, int nb_groups) -{ - static const OptionGroupDef global_group = { "global" }; - int i; - - memset(octx, 0, sizeof(*octx)); - - octx->nb_groups = nb_groups; - octx->groups = av_mallocz_array(octx->nb_groups, sizeof(*octx->groups)); - if (!octx->groups) - exit_program(1); - - for (i = 0; i < octx->nb_groups; i++) - octx->groups[i].group_def = &groups[i]; - - octx->global_opts.group_def = &global_group; - octx->global_opts.arg = ""; - - init_opts(); -} - -void uninit_parse_context(OptionParseContext *octx) -{ - int i, j; - - for (i = 0; i < octx->nb_groups; i++) { - OptionGroupList *l = &octx->groups[i]; - - for (j = 0; j < l->nb_groups; j++) { - av_freep(&l->groups[j].opts); - av_dict_free(&l->groups[j].codec_opts); - av_dict_free(&l->groups[j].format_opts); - av_dict_free(&l->groups[j].resample_opts); - - av_dict_free(&l->groups[j].sws_dict); - av_dict_free(&l->groups[j].swr_opts); - } - av_freep(&l->groups); - } - av_freep(&octx->groups); - - av_freep(&octx->cur_group.opts); - av_freep(&octx->global_opts.opts); - - uninit_opts(); -} - -int split_commandline(OptionParseContext *octx, int argc, char *argv[], - const OptionDef *options, - const OptionGroupDef *groups, int nb_groups) -{ - int optindex = 1; - int dashdash = -2; - - /* perform system-dependent conversions for arguments list */ - prepare_app_arguments(&argc, &argv); - - init_parse_context(octx, groups, nb_groups); - av_log(NULL, AV_LOG_DEBUG, "Splitting the commandline.\n"); - - while (optindex < argc) { - const char *opt = argv[optindex++], *arg; - const OptionDef *po; - int ret; - - av_log(NULL, AV_LOG_DEBUG, "Reading option '%s' ...", opt); - - if (opt[0] == '-' && opt[1] == '-' && !opt[2]) { - dashdash = optindex; - continue; - } - /* unnamed group separators, e.g. output filename */ - if (opt[0] != '-' || !opt[1] || dashdash+1 == optindex) { - finish_group(octx, 0, opt); - av_log(NULL, AV_LOG_DEBUG, " matched as %s.\n", groups[0].name); - continue; - } - opt++; - -#define GET_ARG(arg) \ -do { \ - arg = argv[optindex++]; \ - if (!arg) { \ - av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'.\n", opt);\ - return AVERROR(EINVAL); \ - } \ -} while (0) - - /* named group separators, e.g. -i */ - if ((ret = match_group_separator(groups, nb_groups, opt)) >= 0) { - GET_ARG(arg); - finish_group(octx, ret, arg); - av_log(NULL, AV_LOG_DEBUG, " matched as %s with argument '%s'.\n", - groups[ret].name, arg); - continue; - } - - /* normal options */ - po = find_option(options, opt); - if (po->name) { - if (po->flags & OPT_EXIT) { - /* optional argument, e.g. -h */ - arg = argv[optindex++]; - } else if (po->flags & HAS_ARG) { - GET_ARG(arg); - } else { - arg = "1"; - } - - add_opt(octx, po, opt, arg); - av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with " - "argument '%s'.\n", po->name, po->help, arg); - continue; - } - - /* AVOptions */ - if (argv[optindex]) { - ret = opt_default(NULL, opt, argv[optindex]); - if (ret >= 0) { - av_log(NULL, AV_LOG_DEBUG, " matched as AVOption '%s' with " - "argument '%s'.\n", opt, argv[optindex]); - optindex++; - continue; - } else if (ret != AVERROR_OPTION_NOT_FOUND) { - av_log(NULL, AV_LOG_ERROR, "Error parsing option '%s' " - "with argument '%s'.\n", opt, argv[optindex]); - return ret; - } - } - - /* boolean -nofoo options */ - if (opt[0] == 'n' && opt[1] == 'o' && - (po = find_option(options, opt + 2)) && - po->name && po->flags & OPT_BOOL) { - add_opt(octx, po, opt, "0"); - av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with " - "argument 0.\n", po->name, po->help); - continue; - } - - av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'.\n", opt); - return AVERROR_OPTION_NOT_FOUND; - } - - if (octx->cur_group.nb_opts || codec_opts || format_opts || resample_opts) - av_log(NULL, AV_LOG_WARNING, "Trailing options were found on the " - "commandline.\n"); - - av_log(NULL, AV_LOG_DEBUG, "Finished splitting the commandline.\n"); - - return 0; -} - -int opt_cpuflags(void *optctx, const char *opt, const char *arg) -{ - int ret; - unsigned flags = av_get_cpu_flags(); - - if ((ret = av_parse_cpu_caps(&flags, arg)) < 0) - return ret; - - av_force_cpu_flags(flags); - return 0; -} - -int opt_loglevel(void *optctx, const char *opt, const char *arg) -{ - const struct { const char *name; int level; } log_levels[] = { - { "quiet" , AV_LOG_QUIET }, - { "panic" , AV_LOG_PANIC }, - { "fatal" , AV_LOG_FATAL }, - { "error" , AV_LOG_ERROR }, - { "warning", AV_LOG_WARNING }, - { "info" , AV_LOG_INFO }, - { "verbose", AV_LOG_VERBOSE }, - { "debug" , AV_LOG_DEBUG }, - { "trace" , AV_LOG_TRACE }, - }; - char *tail; - int level; - int flags; - int i; - - flags = av_log_get_flags(); - tail = strstr(arg, "repeat"); - if (tail) - flags &= ~AV_LOG_SKIP_REPEATED; - else - flags |= AV_LOG_SKIP_REPEATED; - - av_log_set_flags(flags); - if (tail == arg) - arg += 6 + (arg[6]=='+'); - if(tail && !*arg) - return 0; - - for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) { - if (!strcmp(log_levels[i].name, arg)) { - av_log_set_level(log_levels[i].level); - return 0; - } - } - - level = strtol(arg, &tail, 10); - if (*tail) { - av_log(NULL, AV_LOG_FATAL, "Invalid loglevel \"%s\". " - "Possible levels are numbers or:\n", arg); - for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) - av_log(NULL, AV_LOG_FATAL, "\"%s\"\n", log_levels[i].name); - exit_program(1); - } - av_log_set_level(level); - return 0; -} - -static void expand_filename_template(AVBPrint *bp, const char *template, - struct tm *tm) -{ - int c; - - while ((c = *(template++))) { - if (c == '%') { - if (!(c = *(template++))) - break; - switch (c) { - case 'p': - av_bprintf(bp, "%s", program_name); - break; - case 't': - av_bprintf(bp, "%04d%02d%02d-%02d%02d%02d", - tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); - break; - case '%': - av_bprint_chars(bp, c, 1); - break; - } - } else { - av_bprint_chars(bp, c, 1); - } - } -} - -static int init_report(const char *env) -{ - char *filename_template = NULL; - char *key, *val; - int ret, count = 0; - time_t now; - struct tm *tm; - AVBPrint filename; - - if (report_file) /* already opened */ - return 0; - time(&now); - tm = localtime(&now); - - while (env && *env) { - if ((ret = av_opt_get_key_value(&env, "=", ":", 0, &key, &val)) < 0) { - if (count) - av_log(NULL, AV_LOG_ERROR, - "Failed to parse FFREPORT environment variable: %s\n", - av_err2str(ret)); - break; - } - if (*env) - env++; - count++; - if (!strcmp(key, "file")) { - av_free(filename_template); - filename_template = val; - val = NULL; - } else if (!strcmp(key, "level")) { - char *tail; - report_file_level = strtol(val, &tail, 10); - if (*tail) { - av_log(NULL, AV_LOG_FATAL, "Invalid report file level\n"); - exit_program(1); - } - } else { - av_log(NULL, AV_LOG_ERROR, "Unknown key '%s' in FFREPORT\n", key); - } - av_free(val); - av_free(key); - } - - av_bprint_init(&filename, 0, 1); - expand_filename_template(&filename, - av_x_if_null(filename_template, "%p-%t.log"), tm); - av_free(filename_template); - if (!av_bprint_is_complete(&filename)) { - av_log(NULL, AV_LOG_ERROR, "Out of memory building report file name\n"); - return AVERROR(ENOMEM); - } - - report_file = fopen(filename.str, "w"); - if (!report_file) { - int ret = AVERROR(errno); - av_log(NULL, AV_LOG_ERROR, "Failed to open report \"%s\": %s\n", - filename.str, strerror(errno)); - return ret; - } - av_log_set_callback(log_callback_report); - av_log(NULL, AV_LOG_INFO, - "%s started on %04d-%02d-%02d at %02d:%02d:%02d\n" - "Report written to \"%s\"\n", - program_name, - tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec, - filename.str); - av_bprint_finalize(&filename, NULL); - return 0; -} - -int opt_report(const char *opt) -{ - return init_report(NULL); -} - -int opt_max_alloc(void *optctx, const char *opt, const char *arg) -{ - char *tail; - size_t max; - - max = strtol(arg, &tail, 10); - if (*tail) { - av_log(NULL, AV_LOG_FATAL, "Invalid max_alloc \"%s\".\n", arg); - exit_program(1); - } - av_max_alloc(max); - return 0; -} - -int opt_timelimit(void *optctx, const char *opt, const char *arg) -{ -#if HAVE_SETRLIMIT - int lim = parse_number_or_die(opt, arg, OPT_INT64, 0, INT_MAX); - struct rlimit rl = { lim, lim + 1 }; - if (setrlimit(RLIMIT_CPU, &rl)) - perror("setrlimit"); -#else - av_log(NULL, AV_LOG_WARNING, "-%s not implemented on this OS\n", opt); -#endif - return 0; -} - -void print_error(const char *filename, int err) -{ - char errbuf[128]; - const char *errbuf_ptr = errbuf; - - if (av_strerror(err, errbuf, sizeof(errbuf)) < 0) - errbuf_ptr = strerror(AVUNERROR(err)); - av_log(NULL, AV_LOG_ERROR, "%s: %s\n", filename, errbuf_ptr); -} - -static int warned_cfg = 0; - -#define INDENT 1 -#define SHOW_VERSION 2 -#define SHOW_CONFIG 4 -#define SHOW_COPYRIGHT 8 - -#define PRINT_LIB_INFO(libname, LIBNAME, flags, level) \ - if (CONFIG_##LIBNAME) { \ - const char *indent = flags & INDENT? " " : ""; \ - if (flags & SHOW_VERSION) { \ - unsigned int version = libname##_version(); \ - av_log(NULL, level, \ - "%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n", \ - indent, #libname, \ - LIB##LIBNAME##_VERSION_MAJOR, \ - LIB##LIBNAME##_VERSION_MINOR, \ - LIB##LIBNAME##_VERSION_MICRO, \ - AV_VERSION_MAJOR(version), AV_VERSION_MINOR(version),\ - AV_VERSION_MICRO(version)); \ - } \ - if (flags & SHOW_CONFIG) { \ - const char *cfg = libname##_configuration(); \ - if (strcmp(FFMPEG_CONFIGURATION, cfg)) { \ - if (!warned_cfg) { \ - av_log(NULL, level, \ - "%sWARNING: library configuration mismatch\n", \ - indent); \ - warned_cfg = 1; \ - } \ - av_log(NULL, level, "%s%-11s configuration: %s\n", \ - indent, #libname, cfg); \ - } \ - } \ - } \ - -static void print_all_libs_info(int flags, int level) -{ - PRINT_LIB_INFO(avutil, AVUTIL, flags, level); - PRINT_LIB_INFO(avcodec, AVCODEC, flags, level); - PRINT_LIB_INFO(avformat, AVFORMAT, flags, level); - PRINT_LIB_INFO(avdevice, AVDEVICE, flags, level); - PRINT_LIB_INFO(avfilter, AVFILTER, flags, level); - PRINT_LIB_INFO(avresample, AVRESAMPLE, flags, level); - PRINT_LIB_INFO(swscale, SWSCALE, flags, level); - PRINT_LIB_INFO(swresample, SWRESAMPLE, flags, level); - PRINT_LIB_INFO(postproc, POSTPROC, flags, level); -} - -static void print_program_info(int flags, int level) -{ - const char *indent = flags & INDENT? " " : ""; - - av_log(NULL, level, "%s version " FFMPEG_VERSION, program_name); - if (flags & SHOW_COPYRIGHT) - av_log(NULL, level, " Copyright (c) %d-%d the FFmpeg developers", - program_birth_year, CONFIG_THIS_YEAR); - av_log(NULL, level, "\n"); - av_log(NULL, level, "%sbuilt with %s\n", indent, CC_IDENT); - - av_log(NULL, level, "%sconfiguration: " FFMPEG_CONFIGURATION "\n", indent); -} - -static void print_buildconf(int flags, int level) -{ - const char *indent = flags & INDENT ? " " : ""; - char str[] = { FFMPEG_CONFIGURATION }; - char *conflist, *remove_tilde, *splitconf; - - // Change all the ' --' strings to '~--' so that - // they can be identified as tokens. - while ((conflist = strstr(str, " --")) != NULL) { - strncpy(conflist, "~--", 3); - } - - // Compensate for the weirdness this would cause - // when passing 'pkg-config --static'. - while ((remove_tilde = strstr(str, "pkg-config~")) != NULL) { - strncpy(remove_tilde, "pkg-config ", 11); - } - - splitconf = strtok(str, "~"); - av_log(NULL, level, "\n%sconfiguration:\n", indent); - while (splitconf != NULL) { - av_log(NULL, level, "%s%s%s\n", indent, indent, splitconf); - splitconf = strtok(NULL, "~"); - } -} - -void show_banner(int argc, char **argv, const OptionDef *options) -{ - int idx = locate_option(argc, argv, options, "version"); - if (hide_banner || idx) - return; - - print_program_info (INDENT|SHOW_COPYRIGHT, AV_LOG_INFO); - print_all_libs_info(INDENT|SHOW_CONFIG, AV_LOG_INFO); - print_all_libs_info(INDENT|SHOW_VERSION, AV_LOG_INFO); -} - -int show_version(void *optctx, const char *opt, const char *arg) -{ - av_log_set_callback(log_callback_help); - print_program_info (SHOW_COPYRIGHT, AV_LOG_INFO); - print_all_libs_info(SHOW_VERSION, AV_LOG_INFO); - - return 0; -} - -int show_buildconf(void *optctx, const char *opt, const char *arg) -{ - av_log_set_callback(log_callback_help); - print_buildconf (INDENT|0, AV_LOG_INFO); - - return 0; -} - -int show_license(void *optctx, const char *opt, const char *arg) -{ -#if CONFIG_NONFREE - printf( - "This version of %s has nonfree parts compiled in.\n" - "Therefore it is not legally redistributable.\n", - program_name ); -#elif CONFIG_GPLV3 - printf( - "%s is free software; you can redistribute it and/or modify\n" - "it under the terms of the GNU General Public License as published by\n" - "the Free Software Foundation; either version 3 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "%s is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU General Public License\n" - "along with %s. If not, see .\n", - program_name, program_name, program_name ); -#elif CONFIG_GPL - printf( - "%s is free software; you can redistribute it and/or modify\n" - "it under the terms of the GNU General Public License as published by\n" - "the Free Software Foundation; either version 2 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "%s is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU General Public License\n" - "along with %s; if not, write to the Free Software\n" - "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", - program_name, program_name, program_name ); -#elif CONFIG_LGPLV3 - printf( - "%s is free software; you can redistribute it and/or modify\n" - "it under the terms of the GNU Lesser General Public License as published by\n" - "the Free Software Foundation; either version 3 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "%s is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU Lesser General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU Lesser General Public License\n" - "along with %s. If not, see .\n", - program_name, program_name, program_name ); -#else - printf( - "%s is free software; you can redistribute it and/or\n" - "modify it under the terms of the GNU Lesser General Public\n" - "License as published by the Free Software Foundation; either\n" - "version 2.1 of the License, or (at your option) any later version.\n" - "\n" - "%s is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" - "Lesser General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU Lesser General Public\n" - "License along with %s; if not, write to the Free Software\n" - "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", - program_name, program_name, program_name ); -#endif - - return 0; -} - -static int is_device(const AVClass *avclass) -{ - if (!avclass) - return 0; - return AV_IS_INPUT_DEVICE(avclass->category) || AV_IS_OUTPUT_DEVICE(avclass->category); -} - -static int show_formats_devices(void *optctx, const char *opt, const char *arg, int device_only) -{ - AVInputFormat *ifmt = NULL; - AVOutputFormat *ofmt = NULL; - const char *last_name; - int is_dev; - - printf("%s\n" - " D. = Demuxing supported\n" - " .E = Muxing supported\n" - " --\n", device_only ? "Devices:" : "File formats:"); - last_name = "000"; - for (;;) { - int decode = 0; - int encode = 0; - const char *name = NULL; - const char *long_name = NULL; - - while ((ofmt = av_oformat_next(ofmt))) { - is_dev = is_device(ofmt->priv_class); - if (!is_dev && device_only) - continue; - if ((!name || strcmp(ofmt->name, name) < 0) && - strcmp(ofmt->name, last_name) > 0) { - name = ofmt->name; - long_name = ofmt->long_name; - encode = 1; - } - } - while ((ifmt = av_iformat_next(ifmt))) { - is_dev = is_device(ifmt->priv_class); - if (!is_dev && device_only) - continue; - if ((!name || strcmp(ifmt->name, name) < 0) && - strcmp(ifmt->name, last_name) > 0) { - name = ifmt->name; - long_name = ifmt->long_name; - encode = 0; - } - if (name && strcmp(ifmt->name, name) == 0) - decode = 1; - } - if (!name) - break; - last_name = name; - - printf(" %s%s %-15s %s\n", - decode ? "D" : " ", - encode ? "E" : " ", - name, - long_name ? long_name:" "); - } - return 0; -} - -int show_formats(void *optctx, const char *opt, const char *arg) -{ - return show_formats_devices(optctx, opt, arg, 0); -} - -int show_devices(void *optctx, const char *opt, const char *arg) -{ - return show_formats_devices(optctx, opt, arg, 1); -} - -#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \ - if (codec->field) { \ - const type *p = codec->field; \ - \ - printf(" Supported " list_name ":"); \ - while (*p != term) { \ - get_name(*p); \ - printf(" %s", name); \ - p++; \ - } \ - printf("\n"); \ - } \ - -static void print_codec(const AVCodec *c) -{ - int encoder = av_codec_is_encoder(c); - - printf("%s %s [%s]:\n", encoder ? "Encoder" : "Decoder", c->name, - c->long_name ? c->long_name : ""); - - printf(" General capabilities: "); - if (c->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND) - printf("horizband "); - if (c->capabilities & AV_CODEC_CAP_DR1) - printf("dr1 "); - if (c->capabilities & AV_CODEC_CAP_TRUNCATED) - printf("trunc "); - if (c->capabilities & AV_CODEC_CAP_DELAY) - printf("delay "); - if (c->capabilities & AV_CODEC_CAP_SMALL_LAST_FRAME) - printf("small "); - if (c->capabilities & AV_CODEC_CAP_SUBFRAMES) - printf("subframes "); - if (c->capabilities & AV_CODEC_CAP_EXPERIMENTAL) - printf("exp "); - if (c->capabilities & AV_CODEC_CAP_CHANNEL_CONF) - printf("chconf "); - if (c->capabilities & AV_CODEC_CAP_PARAM_CHANGE) - printf("paramchange "); - if (c->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE) - printf("variable "); - if (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS | - AV_CODEC_CAP_SLICE_THREADS | - AV_CODEC_CAP_AUTO_THREADS)) - printf("threads "); - if (!c->capabilities) - printf("none"); - printf("\n"); - - if (c->type == AVMEDIA_TYPE_VIDEO || - c->type == AVMEDIA_TYPE_AUDIO) { - printf(" Threading capabilities: "); - switch (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS | - AV_CODEC_CAP_SLICE_THREADS | - AV_CODEC_CAP_AUTO_THREADS)) { - case AV_CODEC_CAP_FRAME_THREADS | - AV_CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break; - case AV_CODEC_CAP_FRAME_THREADS: printf("frame"); break; - case AV_CODEC_CAP_SLICE_THREADS: printf("slice"); break; - case AV_CODEC_CAP_AUTO_THREADS : printf("auto"); break; - default: printf("none"); break; - } - printf("\n"); - } - - if (c->supported_framerates) { - const AVRational *fps = c->supported_framerates; - - printf(" Supported framerates:"); - while (fps->num) { - printf(" %d/%d", fps->num, fps->den); - fps++; - } - printf("\n"); - } - PRINT_CODEC_SUPPORTED(c, pix_fmts, enum AVPixelFormat, "pixel formats", - AV_PIX_FMT_NONE, GET_PIX_FMT_NAME); - PRINT_CODEC_SUPPORTED(c, supported_samplerates, int, "sample rates", 0, - GET_SAMPLE_RATE_NAME); - PRINT_CODEC_SUPPORTED(c, sample_fmts, enum AVSampleFormat, "sample formats", - AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME); - PRINT_CODEC_SUPPORTED(c, channel_layouts, uint64_t, "channel layouts", - 0, GET_CH_LAYOUT_DESC); - - if (c->priv_class) { - show_help_children(c->priv_class, - AV_OPT_FLAG_ENCODING_PARAM | - AV_OPT_FLAG_DECODING_PARAM); - } -} - -static char get_media_type_char(enum AVMediaType type) -{ - switch (type) { - case AVMEDIA_TYPE_VIDEO: return 'V'; - case AVMEDIA_TYPE_AUDIO: return 'A'; - case AVMEDIA_TYPE_DATA: return 'D'; - case AVMEDIA_TYPE_SUBTITLE: return 'S'; - case AVMEDIA_TYPE_ATTACHMENT:return 'T'; - default: return '?'; - } -} - -static const AVCodec *next_codec_for_id(enum AVCodecID id, const AVCodec *prev, - int encoder) -{ - while ((prev = av_codec_next(prev))) { - if (prev->id == id && - (encoder ? av_codec_is_encoder(prev) : av_codec_is_decoder(prev))) - return prev; - } - return NULL; -} - -static int compare_codec_desc(const void *a, const void *b) -{ - const AVCodecDescriptor * const *da = a; - const AVCodecDescriptor * const *db = b; - - return (*da)->type != (*db)->type ? FFDIFFSIGN((*da)->type, (*db)->type) : - strcmp((*da)->name, (*db)->name); -} - -static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs) -{ - const AVCodecDescriptor *desc = NULL; - const AVCodecDescriptor **codecs; - unsigned nb_codecs = 0, i = 0; - - while ((desc = avcodec_descriptor_next(desc))) - nb_codecs++; - if (!(codecs = av_calloc(nb_codecs, sizeof(*codecs)))) { - av_log(NULL, AV_LOG_ERROR, "Out of memory\n"); - exit_program(1); - } - desc = NULL; - while ((desc = avcodec_descriptor_next(desc))) - codecs[i++] = desc; - av_assert0(i == nb_codecs); - qsort(codecs, nb_codecs, sizeof(*codecs), compare_codec_desc); - *rcodecs = codecs; - return nb_codecs; -} - -static void print_codecs_for_id(enum AVCodecID id, int encoder) -{ - const AVCodec *codec = NULL; - - printf(" (%s: ", encoder ? "encoders" : "decoders"); - - while ((codec = next_codec_for_id(id, codec, encoder))) - printf("%s ", codec->name); - - printf(")"); -} - -int show_codecs(void *optctx, const char *opt, const char *arg) -{ - const AVCodecDescriptor **codecs; - unsigned i, nb_codecs = get_codecs_sorted(&codecs); - - printf("Codecs:\n" - " D..... = Decoding supported\n" - " .E.... = Encoding supported\n" - " ..V... = Video codec\n" - " ..A... = Audio codec\n" - " ..S... = Subtitle codec\n" - " ...I.. = Intra frame-only codec\n" - " ....L. = Lossy compression\n" - " .....S = Lossless compression\n" - " -------\n"); - for (i = 0; i < nb_codecs; i++) { - const AVCodecDescriptor *desc = codecs[i]; - const AVCodec *codec = NULL; - - if (strstr(desc->name, "_deprecated")) - continue; - - printf(" "); - printf(avcodec_find_decoder(desc->id) ? "D" : "."); - printf(avcodec_find_encoder(desc->id) ? "E" : "."); - - printf("%c", get_media_type_char(desc->type)); - printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : "."); - printf((desc->props & AV_CODEC_PROP_LOSSY) ? "L" : "."); - printf((desc->props & AV_CODEC_PROP_LOSSLESS) ? "S" : "."); - - printf(" %-20s %s", desc->name, desc->long_name ? desc->long_name : ""); - - /* print decoders/encoders when there's more than one or their - * names are different from codec name */ - while ((codec = next_codec_for_id(desc->id, codec, 0))) { - if (strcmp(codec->name, desc->name)) { - print_codecs_for_id(desc->id, 0); - break; - } - } - codec = NULL; - while ((codec = next_codec_for_id(desc->id, codec, 1))) { - if (strcmp(codec->name, desc->name)) { - print_codecs_for_id(desc->id, 1); - break; - } - } - - printf("\n"); - } - av_free(codecs); - return 0; -} - -static void print_codecs(int encoder) -{ - const AVCodecDescriptor **codecs; - unsigned i, nb_codecs = get_codecs_sorted(&codecs); - - printf("%s:\n" - " V..... = Video\n" - " A..... = Audio\n" - " S..... = Subtitle\n" - " .F.... = Frame-level multithreading\n" - " ..S... = Slice-level multithreading\n" - " ...X.. = Codec is experimental\n" - " ....B. = Supports draw_horiz_band\n" - " .....D = Supports direct rendering method 1\n" - " ------\n", - encoder ? "Encoders" : "Decoders"); - for (i = 0; i < nb_codecs; i++) { - const AVCodecDescriptor *desc = codecs[i]; - const AVCodec *codec = NULL; - - while ((codec = next_codec_for_id(desc->id, codec, encoder))) { - printf(" %c", get_media_type_char(desc->type)); - printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS) ? "F" : "."); - printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS) ? "S" : "."); - printf((codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) ? "X" : "."); - printf((codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)?"B" : "."); - printf((codec->capabilities & AV_CODEC_CAP_DR1) ? "D" : "."); - - printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : ""); - if (strcmp(codec->name, desc->name)) - printf(" (codec %s)", desc->name); - - printf("\n"); - } - } - av_free(codecs); -} - -int show_decoders(void *optctx, const char *opt, const char *arg) -{ - print_codecs(0); - return 0; -} - -int show_encoders(void *optctx, const char *opt, const char *arg) -{ - print_codecs(1); - return 0; -} - -int show_bsfs(void *optctx, const char *opt, const char *arg) -{ - const AVBitStreamFilter *bsf = NULL; - void *opaque = NULL; - - printf("Bitstream filters:\n"); - while ((bsf = av_bsf_next(&opaque))) - printf("%s\n", bsf->name); - printf("\n"); - return 0; -} - -int show_protocols(void *optctx, const char *opt, const char *arg) -{ - void *opaque = NULL; - const char *name; - - printf("Supported file protocols:\n" - "Input:\n"); - while ((name = avio_enum_protocols(&opaque, 0))) - printf(" %s\n", name); - printf("Output:\n"); - while ((name = avio_enum_protocols(&opaque, 1))) - printf(" %s\n", name); - return 0; -} - -int show_filters(void *optctx, const char *opt, const char *arg) -{ -#if CONFIG_AVFILTER - const AVFilter *filter = NULL; - char descr[64], *descr_cur; - int i, j; - const AVFilterPad *pad; - - printf("Filters:\n" - " T.. = Timeline support\n" - " .S. = Slice threading\n" - " ..C = Command support\n" - " A = Audio input/output\n" - " V = Video input/output\n" - " N = Dynamic number and/or type of input/output\n" - " | = Source or sink filter\n"); - while ((filter = avfilter_next(filter))) { - descr_cur = descr; - for (i = 0; i < 2; i++) { - if (i) { - *(descr_cur++) = '-'; - *(descr_cur++) = '>'; - } - pad = i ? filter->outputs : filter->inputs; - for (j = 0; pad && avfilter_pad_get_name(pad, j); j++) { - if (descr_cur >= descr + sizeof(descr) - 4) - break; - *(descr_cur++) = get_media_type_char(avfilter_pad_get_type(pad, j)); - } - if (!j) - *(descr_cur++) = ((!i && (filter->flags & AVFILTER_FLAG_DYNAMIC_INPUTS)) || - ( i && (filter->flags & AVFILTER_FLAG_DYNAMIC_OUTPUTS))) ? 'N' : '|'; - } - *descr_cur = 0; - printf(" %c%c%c %-17s %-10s %s\n", - filter->flags & AVFILTER_FLAG_SUPPORT_TIMELINE ? 'T' : '.', - filter->flags & AVFILTER_FLAG_SLICE_THREADS ? 'S' : '.', - filter->process_command ? 'C' : '.', - filter->name, descr, filter->description); - } -#else - printf("No filters available: libavfilter disabled\n"); -#endif - return 0; -} - -int show_colors(void *optctx, const char *opt, const char *arg) -{ - const char *name; - const uint8_t *rgb; - int i; - - printf("%-32s #RRGGBB\n", "name"); - - for (i = 0; name = av_get_known_color_name(i, &rgb); i++) - printf("%-32s #%02x%02x%02x\n", name, rgb[0], rgb[1], rgb[2]); - - return 0; -} - -int show_pix_fmts(void *optctx, const char *opt, const char *arg) -{ - const AVPixFmtDescriptor *pix_desc = NULL; - - printf("Pixel formats:\n" - "I.... = Supported Input format for conversion\n" - ".O... = Supported Output format for conversion\n" - "..H.. = Hardware accelerated format\n" - "...P. = Paletted format\n" - "....B = Bitstream format\n" - "FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL\n" - "-----\n"); - -#if !CONFIG_SWSCALE -# define sws_isSupportedInput(x) 0 -# define sws_isSupportedOutput(x) 0 -#endif - - while ((pix_desc = av_pix_fmt_desc_next(pix_desc))) { - enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(pix_desc); - printf("%c%c%c%c%c %-16s %d %2d\n", - sws_isSupportedInput (pix_fmt) ? 'I' : '.', - sws_isSupportedOutput(pix_fmt) ? 'O' : '.', - pix_desc->flags & AV_PIX_FMT_FLAG_HWACCEL ? 'H' : '.', - pix_desc->flags & AV_PIX_FMT_FLAG_PAL ? 'P' : '.', - pix_desc->flags & AV_PIX_FMT_FLAG_BITSTREAM ? 'B' : '.', - pix_desc->name, - pix_desc->nb_components, - av_get_bits_per_pixel(pix_desc)); - } - return 0; -} - -int show_layouts(void *optctx, const char *opt, const char *arg) -{ - int i = 0; - uint64_t layout, j; - const char *name, *descr; - - printf("Individual channels:\n" - "NAME DESCRIPTION\n"); - for (i = 0; i < 63; i++) { - name = av_get_channel_name((uint64_t)1 << i); - if (!name) - continue; - descr = av_get_channel_description((uint64_t)1 << i); - printf("%-14s %s\n", name, descr); - } - printf("\nStandard channel layouts:\n" - "NAME DECOMPOSITION\n"); - for (i = 0; !av_get_standard_channel_layout(i, &layout, &name); i++) { - if (name) { - printf("%-14s ", name); - for (j = 1; j; j <<= 1) - if ((layout & j)) - printf("%s%s", (layout & (j - 1)) ? "+" : "", av_get_channel_name(j)); - printf("\n"); - } - } - return 0; -} - -int show_sample_fmts(void *optctx, const char *opt, const char *arg) -{ - int i; - char fmt_str[128]; - for (i = -1; i < AV_SAMPLE_FMT_NB; i++) - printf("%s\n", av_get_sample_fmt_string(fmt_str, sizeof(fmt_str), i)); - return 0; -} - -static void show_help_codec(const char *name, int encoder) -{ - const AVCodecDescriptor *desc; - const AVCodec *codec; - - if (!name) { - av_log(NULL, AV_LOG_ERROR, "No codec name specified.\n"); - return; - } - - codec = encoder ? avcodec_find_encoder_by_name(name) : - avcodec_find_decoder_by_name(name); - - if (codec) - print_codec(codec); - else if ((desc = avcodec_descriptor_get_by_name(name))) { - int printed = 0; - - while ((codec = next_codec_for_id(desc->id, codec, encoder))) { - printed = 1; - print_codec(codec); - } - - if (!printed) { - av_log(NULL, AV_LOG_ERROR, "Codec '%s' is known to FFmpeg, " - "but no %s for it are available. FFmpeg might need to be " - "recompiled with additional external libraries.\n", - name, encoder ? "encoders" : "decoders"); - } - } else { - av_log(NULL, AV_LOG_ERROR, "Codec '%s' is not recognized by FFmpeg.\n", - name); - } -} - -static void show_help_demuxer(const char *name) -{ - const AVInputFormat *fmt = av_find_input_format(name); - - if (!fmt) { - av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name); - return; - } - - printf("Demuxer %s [%s]:\n", fmt->name, fmt->long_name); - - if (fmt->extensions) - printf(" Common extensions: %s.\n", fmt->extensions); - - if (fmt->priv_class) - show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM); -} - -static void show_help_muxer(const char *name) -{ - const AVCodecDescriptor *desc; - const AVOutputFormat *fmt = av_guess_format(name, NULL, NULL); - - if (!fmt) { - av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name); - return; - } - - printf("Muxer %s [%s]:\n", fmt->name, fmt->long_name); - - if (fmt->extensions) - printf(" Common extensions: %s.\n", fmt->extensions); - if (fmt->mime_type) - printf(" Mime type: %s.\n", fmt->mime_type); - if (fmt->video_codec != AV_CODEC_ID_NONE && - (desc = avcodec_descriptor_get(fmt->video_codec))) { - printf(" Default video codec: %s.\n", desc->name); - } - if (fmt->audio_codec != AV_CODEC_ID_NONE && - (desc = avcodec_descriptor_get(fmt->audio_codec))) { - printf(" Default audio codec: %s.\n", desc->name); - } - if (fmt->subtitle_codec != AV_CODEC_ID_NONE && - (desc = avcodec_descriptor_get(fmt->subtitle_codec))) { - printf(" Default subtitle codec: %s.\n", desc->name); - } - - if (fmt->priv_class) - show_help_children(fmt->priv_class, AV_OPT_FLAG_ENCODING_PARAM); -} - -#if CONFIG_AVFILTER -static void show_help_filter(const char *name) -{ -#if CONFIG_AVFILTER - const AVFilter *f = avfilter_get_by_name(name); - int i, count; - - if (!name) { - av_log(NULL, AV_LOG_ERROR, "No filter name specified.\n"); - return; - } else if (!f) { - av_log(NULL, AV_LOG_ERROR, "Unknown filter '%s'.\n", name); - return; - } - - printf("Filter %s\n", f->name); - if (f->description) - printf(" %s\n", f->description); - - if (f->flags & AVFILTER_FLAG_SLICE_THREADS) - printf(" slice threading supported\n"); - - printf(" Inputs:\n"); - count = avfilter_pad_count(f->inputs); - for (i = 0; i < count; i++) { - printf(" #%d: %s (%s)\n", i, avfilter_pad_get_name(f->inputs, i), - media_type_string(avfilter_pad_get_type(f->inputs, i))); - } - if (f->flags & AVFILTER_FLAG_DYNAMIC_INPUTS) - printf(" dynamic (depending on the options)\n"); - else if (!count) - printf(" none (source filter)\n"); - - printf(" Outputs:\n"); - count = avfilter_pad_count(f->outputs); - for (i = 0; i < count; i++) { - printf(" #%d: %s (%s)\n", i, avfilter_pad_get_name(f->outputs, i), - media_type_string(avfilter_pad_get_type(f->outputs, i))); - } - if (f->flags & AVFILTER_FLAG_DYNAMIC_OUTPUTS) - printf(" dynamic (depending on the options)\n"); - else if (!count) - printf(" none (sink filter)\n"); - - if (f->priv_class) - show_help_children(f->priv_class, AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM | - AV_OPT_FLAG_AUDIO_PARAM); - if (f->flags & AVFILTER_FLAG_SUPPORT_TIMELINE) - printf("This filter has support for timeline through the 'enable' option.\n"); -#else - av_log(NULL, AV_LOG_ERROR, "Build without libavfilter; " - "can not to satisfy request\n"); -#endif -} -#endif - -int show_help(void *optctx, const char *opt, const char *arg) -{ - char *topic, *par; - av_log_set_callback(log_callback_help); - - topic = av_strdup(arg ? arg : ""); - if (!topic) - return AVERROR(ENOMEM); - par = strchr(topic, '='); - if (par) - *par++ = 0; - - if (!*topic) { - show_help_default(topic, par); - } else if (!strcmp(topic, "decoder")) { - show_help_codec(par, 0); - } else if (!strcmp(topic, "encoder")) { - show_help_codec(par, 1); - } else if (!strcmp(topic, "demuxer")) { - show_help_demuxer(par); - } else if (!strcmp(topic, "muxer")) { - show_help_muxer(par); -#if CONFIG_AVFILTER - } else if (!strcmp(topic, "filter")) { - show_help_filter(par); -#endif - } else { - show_help_default(topic, par); - } - - av_freep(&topic); - return 0; -} - -int read_yesno(void) -{ - int c = getchar(); - int yesno = (av_toupper(c) == 'Y'); - - while (c != '\n' && c != EOF) - c = getchar(); - - return yesno; -} - -FILE *get_preset_file(char *filename, size_t filename_size, - const char *preset_name, int is_path, - const char *codec_name) -{ - FILE *f = NULL; - int i; - const char *base[3] = { getenv("FFMPEG_DATADIR"), - getenv("HOME"), - FFMPEG_DATADIR, }; - - if (is_path) { - av_strlcpy(filename, preset_name, filename_size); - f = fopen(filename, "r"); - } else { -#ifdef _WIN32 - char datadir[MAX_PATH], *ls; - base[2] = NULL; - - if (GetModuleFileNameA(GetModuleHandleA(NULL), datadir, sizeof(datadir) - 1)) - { - for (ls = datadir; ls < datadir + strlen(datadir); ls++) - if (*ls == '\\') *ls = '/'; - - if (ls = strrchr(datadir, '/')) - { - *ls = 0; - strncat(datadir, "/ffpresets", sizeof(datadir) - 1 - strlen(datadir)); - base[2] = datadir; - } - } -#endif - for (i = 0; i < 3 && !f; i++) { - if (!base[i]) - continue; - snprintf(filename, filename_size, "%s%s/%s.ffpreset", base[i], - i != 1 ? "" : "/.ffmpeg", preset_name); - f = fopen(filename, "r"); - if (!f && codec_name) { - snprintf(filename, filename_size, - "%s%s/%s-%s.ffpreset", - base[i], i != 1 ? "" : "/.ffmpeg", codec_name, - preset_name); - f = fopen(filename, "r"); - } - } - } - - return f; -} - -int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec) -{ - int ret = avformat_match_stream_specifier(s, st, spec); - if (ret < 0) - av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec); - return ret; -} - -AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, - AVFormatContext *s, AVStream *st, AVCodec *codec) -{ - AVDictionary *ret = NULL; - AVDictionaryEntry *t = NULL; - int flags = s->oformat ? AV_OPT_FLAG_ENCODING_PARAM - : AV_OPT_FLAG_DECODING_PARAM; - char prefix = 0; - const AVClass *cc = avcodec_get_class(); - - if (!codec) - codec = s->oformat ? avcodec_find_encoder(codec_id) - : avcodec_find_decoder(codec_id); - - switch (st->codecpar->codec_type) { - case AVMEDIA_TYPE_VIDEO: - prefix = 'v'; - flags |= AV_OPT_FLAG_VIDEO_PARAM; - break; - case AVMEDIA_TYPE_AUDIO: - prefix = 'a'; - flags |= AV_OPT_FLAG_AUDIO_PARAM; - break; - case AVMEDIA_TYPE_SUBTITLE: - prefix = 's'; - flags |= AV_OPT_FLAG_SUBTITLE_PARAM; - break; - } - - while (t = av_dict_get(opts, "", t, AV_DICT_IGNORE_SUFFIX)) { - char *p = strchr(t->key, ':'); - - /* check stream specification in opt name */ - if (p) - switch (check_stream_specifier(s, st, p + 1)) { - case 1: *p = 0; break; - case 0: continue; - default: exit_program(1); - } - - if (av_opt_find(&cc, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ) || - !codec || - (codec->priv_class && - av_opt_find(&codec->priv_class, t->key, NULL, flags, - AV_OPT_SEARCH_FAKE_OBJ))) - av_dict_set(&ret, t->key, t->value, 0); - else if (t->key[0] == prefix && - av_opt_find(&cc, t->key + 1, NULL, flags, - AV_OPT_SEARCH_FAKE_OBJ)) - av_dict_set(&ret, t->key + 1, t->value, 0); - - if (p) - *p = ':'; - } - return ret; -} - -AVDictionary **setup_find_stream_info_opts(AVFormatContext *s, - AVDictionary *codec_opts) -{ - int i; - AVDictionary **opts; - - if (!s->nb_streams) - return NULL; - opts = av_mallocz_array(s->nb_streams, sizeof(*opts)); - if (!opts) { - av_log(NULL, AV_LOG_ERROR, - "Could not alloc memory for stream options.\n"); - return NULL; - } - for (i = 0; i < s->nb_streams; i++) - opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codecpar->codec_id, - s, s->streams[i], NULL); - return opts; -} - -void *grow_array(void *array, int elem_size, int *size, int new_size) -{ - if (new_size >= INT_MAX / elem_size) { - av_log(NULL, AV_LOG_ERROR, "Array too big.\n"); - exit_program(1); - } - if (*size < new_size) { - uint8_t *tmp = av_realloc_array(array, new_size, elem_size); - if (!tmp) { - av_log(NULL, AV_LOG_ERROR, "Could not alloc buffer.\n"); - exit_program(1); - } - memset(tmp + *size*elem_size, 0, (new_size-*size) * elem_size); - *size = new_size; - return tmp; - } - return array; -} - -double get_rotation(AVStream *st) -{ - AVDictionaryEntry *rotate_tag = av_dict_get(st->metadata, "rotate", NULL, 0); - uint8_t* displaymatrix = av_stream_get_side_data(st, - AV_PKT_DATA_DISPLAYMATRIX, NULL); - double theta = 0; - - if (rotate_tag && *rotate_tag->value && strcmp(rotate_tag->value, "0")) { - char *tail; - theta = av_strtod(rotate_tag->value, &tail); - if (*tail) - theta = 0; - } - if (displaymatrix && !theta) - theta = -av_display_rotation_get((int32_t*) displaymatrix); - - theta -= 360*floor(theta/360 + 0.9/360); - - if (fabs(theta - 90*round(theta/90)) > 2) - av_log(NULL, AV_LOG_WARNING, "Odd rotation angle.\n" - "If you want to help, upload a sample " - "of this file to ftp://upload.ffmpeg.org/incoming/ " - "and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)"); - - return theta; -} - -#if CONFIG_AVDEVICE -static int print_device_sources(AVInputFormat *fmt, AVDictionary *opts) -{ - int ret, i; - AVDeviceInfoList *device_list = NULL; - - if (!fmt || !fmt->priv_class || !AV_IS_INPUT_DEVICE(fmt->priv_class->category)) - return AVERROR(EINVAL); - - printf("Auto-detected sources for %s:\n", fmt->name); - if (!fmt->get_device_list) { - ret = AVERROR(ENOSYS); - printf("Cannot list sources. Not implemented.\n"); - goto fail; - } - - if ((ret = avdevice_list_input_sources(fmt, NULL, opts, &device_list)) < 0) { - printf("Cannot list sources.\n"); - goto fail; - } - - for (i = 0; i < device_list->nb_devices; i++) { - printf("%s %s [%s]\n", device_list->default_device == i ? "*" : " ", - device_list->devices[i]->device_name, device_list->devices[i]->device_description); - } - - fail: - avdevice_free_list_devices(&device_list); - return ret; -} - -static int print_device_sinks(AVOutputFormat *fmt, AVDictionary *opts) -{ - int ret, i; - AVDeviceInfoList *device_list = NULL; - - if (!fmt || !fmt->priv_class || !AV_IS_OUTPUT_DEVICE(fmt->priv_class->category)) - return AVERROR(EINVAL); - - printf("Auto-detected sinks for %s:\n", fmt->name); - if (!fmt->get_device_list) { - ret = AVERROR(ENOSYS); - printf("Cannot list sinks. Not implemented.\n"); - goto fail; - } - - if ((ret = avdevice_list_output_sinks(fmt, NULL, opts, &device_list)) < 0) { - printf("Cannot list sinks.\n"); - goto fail; - } - - for (i = 0; i < device_list->nb_devices; i++) { - printf("%s %s [%s]\n", device_list->default_device == i ? "*" : " ", - device_list->devices[i]->device_name, device_list->devices[i]->device_description); - } - - fail: - avdevice_free_list_devices(&device_list); - return ret; -} - -static int show_sinks_sources_parse_arg(const char *arg, char **dev, AVDictionary **opts) -{ - int ret; - if (arg) { - char *opts_str = NULL; - av_assert0(dev && opts); - *dev = av_strdup(arg); - if (!*dev) - return AVERROR(ENOMEM); - if ((opts_str = strchr(*dev, ','))) { - *(opts_str++) = '\0'; - if (opts_str[0] && ((ret = av_dict_parse_string(opts, opts_str, "=", ":", 0)) < 0)) { - av_freep(dev); - return ret; - } - } - } else - printf("\nDevice name is not provided.\n" - "You can pass devicename[,opt1=val1[,opt2=val2...]] as an argument.\n\n"); - return 0; -} - -int show_sources(void *optctx, const char *opt, const char *arg) -{ - AVInputFormat *fmt = NULL; - char *dev = NULL; - AVDictionary *opts = NULL; - int ret = 0; - int error_level = av_log_get_level(); - - av_log_set_level(AV_LOG_ERROR); - - if ((ret = show_sinks_sources_parse_arg(arg, &dev, &opts)) < 0) - goto fail; - - do { - fmt = av_input_audio_device_next(fmt); - if (fmt) { - if (!strcmp(fmt->name, "lavfi")) - continue; //it's pointless to probe lavfi - if (dev && !av_match_name(dev, fmt->name)) - continue; - print_device_sources(fmt, opts); - } - } while (fmt); - do { - fmt = av_input_video_device_next(fmt); - if (fmt) { - if (dev && !av_match_name(dev, fmt->name)) - continue; - print_device_sources(fmt, opts); - } - } while (fmt); - fail: - av_dict_free(&opts); - av_free(dev); - av_log_set_level(error_level); - return ret; -} - -int show_sinks(void *optctx, const char *opt, const char *arg) -{ - AVOutputFormat *fmt = NULL; - char *dev = NULL; - AVDictionary *opts = NULL; - int ret = 0; - int error_level = av_log_get_level(); - - av_log_set_level(AV_LOG_ERROR); - - if ((ret = show_sinks_sources_parse_arg(arg, &dev, &opts)) < 0) - goto fail; - - do { - fmt = av_output_audio_device_next(fmt); - if (fmt) { - if (dev && !av_match_name(dev, fmt->name)) - continue; - print_device_sinks(fmt, opts); - } - } while (fmt); - do { - fmt = av_output_video_device_next(fmt); - if (fmt) { - if (dev && !av_match_name(dev, fmt->name)) - continue; - print_device_sinks(fmt, opts); - } - } while (fmt); - fail: - av_dict_free(&opts); - av_free(dev); - av_log_set_level(error_level); - return ret; -} - -#endif diff --git a/app/src/main/cpp/cmdutils.h b/app/src/main/cpp/cmdutils.h deleted file mode 100644 index d9cfd83..0000000 --- a/app/src/main/cpp/cmdutils.h +++ /dev/null @@ -1,595 +0,0 @@ -/* - * Various utilities for command line tools - * copyright (c) 2003 Fabrice Bellard - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef CMDUTILS_H -#define CMDUTILS_H - -#include - -#include "config.h" -#include "libavcodec/avcodec.h" -#include "libavfilter/avfilter.h" -#include "libavformat/avformat.h" -#include "libswscale/swscale.h" - -#ifdef _WIN32 -#undef main /* We don't want SDL to override our main() */ -#endif - -/** - * program name, defined by the program for show_version(). - */ -extern const char program_name[]; - -/** - * program birth year, defined by the program for show_banner() - */ -extern const int program_birth_year; - -extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB]; -extern AVFormatContext *avformat_opts; -extern AVDictionary *sws_dict; -extern AVDictionary *swr_opts; -extern AVDictionary *format_opts, *codec_opts, *resample_opts; -extern int hide_banner; - -/** - * Register a program-specific cleanup routine. - */ -void register_exit(void (*cb)(int ret)); - -/** - * Wraps exit with a program-specific cleanup routine. - */ -int exit_program(int ret); - -/** - * Initialize dynamic library loading - */ -void init_dynload(void); - -/** - * Initialize the cmdutils option system, in particular - * allocate the *_opts contexts. - */ -void init_opts(void); -/** - * Uninitialize the cmdutils option system, in particular - * free the *_opts contexts and their contents. - */ -void uninit_opts(void); - -/** - * Trivial log callback. - * Only suitable for opt_help and similar since it lacks prefix handling. - */ -void log_callback_help(void* ptr, int level, const char* fmt, va_list vl); - -/** - * Override the cpuflags. - */ -int opt_cpuflags(void *optctx, const char *opt, const char *arg); - -/** - * Fallback for options that are not explicitly handled, these will be - * parsed through AVOptions. - */ -int opt_default(void *optctx, const char *opt, const char *arg); - -/** - * Set the libav* libraries log level. - */ -int opt_loglevel(void *optctx, const char *opt, const char *arg); - -int opt_report(const char *opt); - -int opt_max_alloc(void *optctx, const char *opt, const char *arg); - -int opt_codec_debug(void *optctx, const char *opt, const char *arg); - -#if CONFIG_OPENCL -int opt_opencl(void *optctx, const char *opt, const char *arg); - -int opt_opencl_bench(void *optctx, const char *opt, const char *arg); -#endif - -/** - * Limit the execution time. - */ -int opt_timelimit(void *optctx, const char *opt, const char *arg); - -/** - * Parse a string and return its corresponding value as a double. - * Exit from the application if the string cannot be correctly - * parsed or the corresponding value is invalid. - * - * @param context the context of the value to be set (e.g. the - * corresponding command line option name) - * @param numstr the string to be parsed - * @param type the type (OPT_INT64 or OPT_FLOAT) as which the - * string should be parsed - * @param min the minimum valid accepted value - * @param max the maximum valid accepted value - */ -double parse_number_or_die(const char *context, const char *numstr, int type, - double min, double max); - -/** - * Parse a string specifying a time and return its corresponding - * value as a number of microseconds. Exit from the application if - * the string cannot be correctly parsed. - * - * @param context the context of the value to be set (e.g. the - * corresponding command line option name) - * @param timestr the string to be parsed - * @param is_duration a flag which tells how to interpret timestr, if - * not zero timestr is interpreted as a duration, otherwise as a - * date - * - * @see av_parse_time() - */ -int64_t parse_time_or_die(const char *context, const char *timestr, - int is_duration); - -typedef struct SpecifierOpt { - char *specifier; /**< stream/chapter/program/... specifier */ - union { - uint8_t *str; - int i; - int64_t i64; - float f; - double dbl; - } u; -} SpecifierOpt; - -typedef struct OptionDef { - const char *name; - int flags; -#define HAS_ARG 0x0001 -#define OPT_BOOL 0x0002 -#define OPT_EXPERT 0x0004 -#define OPT_STRING 0x0008 -#define OPT_VIDEO 0x0010 -#define OPT_AUDIO 0x0020 -#define OPT_INT 0x0080 -#define OPT_FLOAT 0x0100 -#define OPT_SUBTITLE 0x0200 -#define OPT_INT64 0x0400 -#define OPT_EXIT 0x0800 -#define OPT_DATA 0x1000 -#define OPT_PERFILE 0x2000 /* the option is per-file (currently ffmpeg-only). - implied by OPT_OFFSET or OPT_SPEC */ -#define OPT_OFFSET 0x4000 /* option is specified as an offset in a passed optctx */ -#define OPT_SPEC 0x8000 /* option is to be stored in an array of SpecifierOpt. - Implies OPT_OFFSET. Next element after the offset is - an int containing element count in the array. */ -#define OPT_TIME 0x10000 -#define OPT_DOUBLE 0x20000 -#define OPT_INPUT 0x40000 -#define OPT_OUTPUT 0x80000 - union { - void *dst_ptr; - int (*func_arg)(void *, const char *, const char *); - size_t off; - } u; - const char *help; - const char *argname; -} OptionDef; - -/** - * Print help for all options matching specified flags. - * - * @param options a list of options - * @param msg title of this group. Only printed if at least one option matches. - * @param req_flags print only options which have all those flags set. - * @param rej_flags don't print options which have any of those flags set. - * @param alt_flags print only options that have at least one of those flags set - */ -void show_help_options(const OptionDef *options, const char *msg, int req_flags, - int rej_flags, int alt_flags); - -/** - * Show help for all options with given flags in class and all its - * children. - */ -void show_help_children(const AVClass *class, int flags); - -/** - * Per-fftool specific help handler. Implemented in each - * fftool, called by show_help(). - */ -void show_help_default(const char *opt, const char *arg); - -/** - * Generic -h handler common to all fftools. - */ -int show_help(void *optctx, const char *opt, const char *arg); - -/** - * Parse the command line arguments. - * - * @param optctx an opaque options context - * @param argc number of command line arguments - * @param argv values of command line arguments - * @param options Array with the definitions required to interpret every - * option of the form: -option_name [argument] - * @param parse_arg_function Name of the function called to process every - * argument without a leading option name flag. NULL if such arguments do - * not have to be processed. - */ -void parse_options(void *optctx, int argc, char **argv, const OptionDef *options, - void (* parse_arg_function)(void *optctx, const char*)); - -/** - * Parse one given option. - * - * @return on success 1 if arg was consumed, 0 otherwise; negative number on error - */ -int parse_option(void *optctx, const char *opt, const char *arg, - const OptionDef *options); - -/** - * An option extracted from the commandline. - * Cannot use AVDictionary because of options like -map which can be - * used multiple times. - */ -typedef struct Option { - const OptionDef *opt; - const char *key; - const char *val; -} Option; - -typedef struct OptionGroupDef { - /**< group name */ - const char *name; - /** - * Option to be used as group separator. Can be NULL for groups which - * are terminated by a non-option argument (e.g. ffmpeg output files) - */ - const char *sep; - /** - * Option flags that must be set on each option that is - * applied to this group - */ - int flags; -} OptionGroupDef; - -typedef struct OptionGroup { - const OptionGroupDef *group_def; - const char *arg; - - Option *opts; - int nb_opts; - - AVDictionary *codec_opts; - AVDictionary *format_opts; - AVDictionary *resample_opts; - AVDictionary *sws_dict; - AVDictionary *swr_opts; -} OptionGroup; - -/** - * A list of option groups that all have the same group type - * (e.g. input files or output files) - */ -typedef struct OptionGroupList { - const OptionGroupDef *group_def; - - OptionGroup *groups; - int nb_groups; -} OptionGroupList; - -typedef struct OptionParseContext { - OptionGroup global_opts; - - OptionGroupList *groups; - int nb_groups; - - /* parsing state */ - OptionGroup cur_group; -} OptionParseContext; - -/** - * Parse an options group and write results into optctx. - * - * @param optctx an app-specific options context. NULL for global options group - */ -int parse_optgroup(void *optctx, OptionGroup *g); - -/** - * Split the commandline into an intermediate form convenient for further - * processing. - * - * The commandline is assumed to be composed of options which either belong to a - * group (those with OPT_SPEC, OPT_OFFSET or OPT_PERFILE) or are global - * (everything else). - * - * A group (defined by an OptionGroupDef struct) is a sequence of options - * terminated by either a group separator option (e.g. -i) or a parameter that - * is not an option (doesn't start with -). A group without a separator option - * must always be first in the supplied groups list. - * - * All options within the same group are stored in one OptionGroup struct in an - * OptionGroupList, all groups with the same group definition are stored in one - * OptionGroupList in OptionParseContext.groups. The order of group lists is the - * same as the order of group definitions. - */ -int split_commandline(OptionParseContext *octx, int argc, char *argv[], - const OptionDef *options, - const OptionGroupDef *groups, int nb_groups); - -/** - * Free all allocated memory in an OptionParseContext. - */ -void uninit_parse_context(OptionParseContext *octx); - -/** - * Find the '-loglevel' option in the command line args and apply it. - */ -void parse_loglevel(int argc, char **argv, const OptionDef *options); - -/** - * Return index of option opt in argv or 0 if not found. - */ -int locate_option(int argc, char **argv, const OptionDef *options, - const char *optname); - -/** - * Check if the given stream matches a stream specifier. - * - * @param s Corresponding format context. - * @param st Stream from s to be checked. - * @param spec A stream specifier of the [v|a|s|d]:[\] form. - * - * @return 1 if the stream matches, 0 if it doesn't, <0 on error - */ -int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec); - -/** - * Filter out options for given codec. - * - * Create a new options dictionary containing only the options from - * opts which apply to the codec with ID codec_id. - * - * @param opts dictionary to place options in - * @param codec_id ID of the codec that should be filtered for - * @param s Corresponding format context. - * @param st A stream from s for which the options should be filtered. - * @param codec The particular codec for which the options should be filtered. - * If null, the default one is looked up according to the codec id. - * @return a pointer to the created dictionary - */ -AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, - AVFormatContext *s, AVStream *st, AVCodec *codec); - -/** - * Setup AVCodecContext options for avformat_find_stream_info(). - * - * Create an array of dictionaries, one dictionary for each stream - * contained in s. - * Each dictionary will contain the options from codec_opts which can - * be applied to the corresponding stream codec context. - * - * @return pointer to the created array of dictionaries, NULL if it - * cannot be created - */ -AVDictionary **setup_find_stream_info_opts(AVFormatContext *s, - AVDictionary *codec_opts); - -/** - * Print an error message to stderr, indicating filename and a human - * readable description of the error code err. - * - * If strerror_r() is not available the use of this function in a - * multithreaded application may be unsafe. - * - * @see av_strerror() - */ -void print_error(const char *filename, int err); - -/** - * Print the program banner to stderr. The banner contents depend on the - * current version of the repository and of the libav* libraries used by - * the program. - */ -void show_banner(int argc, char **argv, const OptionDef *options); - -/** - * Print the version of the program to stdout. The version message - * depends on the current versions of the repository and of the libav* - * libraries. - * This option processing function does not utilize the arguments. - */ -int show_version(void *optctx, const char *opt, const char *arg); - -/** - * Print the build configuration of the program to stdout. The contents - * depend on the definition of FFMPEG_CONFIGURATION. - * This option processing function does not utilize the arguments. - */ -int show_buildconf(void *optctx, const char *opt, const char *arg); - -/** - * Print the license of the program to stdout. The license depends on - * the license of the libraries compiled into the program. - * This option processing function does not utilize the arguments. - */ -int show_license(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the formats supported by the - * program (including devices). - * This option processing function does not utilize the arguments. - */ -int show_formats(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the devices supported by the - * program. - * This option processing function does not utilize the arguments. - */ -int show_devices(void *optctx, const char *opt, const char *arg); - -#if CONFIG_AVDEVICE -/** - * Print a listing containing autodetected sinks of the output device. - * Device name with options may be passed as an argument to limit results. - */ -int show_sinks(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing autodetected sources of the input device. - * Device name with options may be passed as an argument to limit results. - */ -int show_sources(void *optctx, const char *opt, const char *arg); -#endif - -/** - * Print a listing containing all the codecs supported by the - * program. - * This option processing function does not utilize the arguments. - */ -int show_codecs(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the decoders supported by the - * program. - */ -int show_decoders(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the encoders supported by the - * program. - */ -int show_encoders(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the filters supported by the - * program. - * This option processing function does not utilize the arguments. - */ -int show_filters(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the bit stream filters supported by the - * program. - * This option processing function does not utilize the arguments. - */ -int show_bsfs(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the protocols supported by the - * program. - * This option processing function does not utilize the arguments. - */ -int show_protocols(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the pixel formats supported by the - * program. - * This option processing function does not utilize the arguments. - */ -int show_pix_fmts(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the standard channel layouts supported by - * the program. - * This option processing function does not utilize the arguments. - */ -int show_layouts(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the sample formats supported by the - * program. - */ -int show_sample_fmts(void *optctx, const char *opt, const char *arg); - -/** - * Print a listing containing all the color names and values recognized - * by the program. - */ -int show_colors(void *optctx, const char *opt, const char *arg); - -/** - * Return a positive value if a line read from standard input - * starts with [yY], otherwise return 0. - */ -int read_yesno(void); - -/** - * Get a file corresponding to a preset file. - * - * If is_path is non-zero, look for the file in the path preset_name. - * Otherwise search for a file named arg.ffpreset in the directories - * $FFMPEG_DATADIR (if set), $HOME/.ffmpeg, and in the datadir defined - * at configuration time or in a "ffpresets" folder along the executable - * on win32, in that order. If no such file is found and - * codec_name is defined, then search for a file named - * codec_name-preset_name.avpreset in the above-mentioned directories. - * - * @param filename buffer where the name of the found filename is written - * @param filename_size size in bytes of the filename buffer - * @param preset_name name of the preset to search - * @param is_path tell if preset_name is a filename path - * @param codec_name name of the codec for which to look for the - * preset, may be NULL - */ -FILE *get_preset_file(char *filename, size_t filename_size, - const char *preset_name, int is_path, const char *codec_name); - -/** - * Realloc array to hold new_size elements of elem_size. - * Calls exit() on failure. - * - * @param array array to reallocate - * @param elem_size size in bytes of each element - * @param size new element count will be written here - * @param new_size number of elements to place in reallocated array - * @return reallocated array - */ -void *grow_array(void *array, int elem_size, int *size, int new_size); - -#define media_type_string av_get_media_type_string - -#define GROW_ARRAY(array, nb_elems)\ - array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1) - -#define GET_PIX_FMT_NAME(pix_fmt)\ - const char *name = av_get_pix_fmt_name(pix_fmt); - -#define GET_SAMPLE_FMT_NAME(sample_fmt)\ - const char *name = av_get_sample_fmt_name(sample_fmt) - -#define GET_SAMPLE_RATE_NAME(rate)\ - char name[16];\ - snprintf(name, sizeof(name), "%d", rate); - -#define GET_CH_LAYOUT_NAME(ch_layout)\ - char name[16];\ - snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout); - -#define GET_CH_LAYOUT_DESC(ch_layout)\ - char name[128];\ - av_get_channel_layout_string(name, sizeof(name), 0, ch_layout); - -double get_rotation(AVStream *st); - -#endif /* CMDUTILS_H */ diff --git a/app/src/main/cpp/cmdutils_common_opts.h b/app/src/main/cpp/cmdutils_common_opts.h deleted file mode 100644 index 758dac1..0000000 --- a/app/src/main/cpp/cmdutils_common_opts.h +++ /dev/null @@ -1,35 +0,0 @@ - { "L" , OPT_EXIT, {.func_arg = show_license}, "show license" }, - { "h" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, - { "?" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, - { "help" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, - { "-help" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" }, - { "version" , OPT_EXIT, {.func_arg = show_version}, "show version" }, - { "buildconf" , OPT_EXIT, {.func_arg = show_buildconf}, "show build configuration" }, - { "formats" , OPT_EXIT, {.func_arg = show_formats }, "show available formats" }, - { "devices" , OPT_EXIT, {.func_arg = show_devices }, "show available devices" }, - { "codecs" , OPT_EXIT, {.func_arg = show_codecs }, "show available codecs" }, - { "decoders" , OPT_EXIT, {.func_arg = show_decoders }, "show available decoders" }, - { "encoders" , OPT_EXIT, {.func_arg = show_encoders }, "show available encoders" }, - { "bsfs" , OPT_EXIT, {.func_arg = show_bsfs }, "show available bit stream filters" }, - { "protocols" , OPT_EXIT, {.func_arg = show_protocols}, "show available protocols" }, - { "filters" , OPT_EXIT, {.func_arg = show_filters }, "show available filters" }, - { "pix_fmts" , OPT_EXIT, {.func_arg = show_pix_fmts }, "show available pixel formats" }, - { "layouts" , OPT_EXIT, {.func_arg = show_layouts }, "show standard channel layouts" }, - { "sample_fmts", OPT_EXIT, {.func_arg = show_sample_fmts }, "show available audio sample formats" }, - { "colors" , OPT_EXIT, {.func_arg = show_colors }, "show available color names" }, - { "loglevel" , HAS_ARG, {.func_arg = opt_loglevel}, "set logging level", "loglevel" }, - { "v", HAS_ARG, {.func_arg = opt_loglevel}, "set logging level", "loglevel" }, - { "report" , 0, {(void*)opt_report}, "generate a report" }, - { "max_alloc" , HAS_ARG, {.func_arg = opt_max_alloc}, "set maximum size of a single allocated block", "bytes" }, - { "cpuflags" , HAS_ARG | OPT_EXPERT, { .func_arg = opt_cpuflags }, "force specific cpu flags", "flags" }, - { "hide_banner", OPT_BOOL | OPT_EXPERT, {&hide_banner}, "do not show program banner", "hide_banner" }, -#if CONFIG_OPENCL - { "opencl_bench", OPT_EXIT, {.func_arg = opt_opencl_bench}, "run benchmark on all OpenCL devices and show results" }, - { "opencl_options", HAS_ARG, {.func_arg = opt_opencl}, "set OpenCL environment options" }, -#endif -#if CONFIG_AVDEVICE - { "sources" , OPT_EXIT | HAS_ARG, { .func_arg = show_sources }, - "list sources of the input device", "device" }, - { "sinks" , OPT_EXIT | HAS_ARG, { .func_arg = show_sinks }, - "list sinks of the output device", "device" }, -#endif diff --git a/app/src/main/cpp/config.h b/app/src/main/cpp/config.h deleted file mode 100644 index 1b44b7f..0000000 --- a/app/src/main/cpp/config.h +++ /dev/null @@ -1,2230 +0,0 @@ -/* Automatically generated by configure - do not modify! */ -#ifndef FFMPEG_CONFIG_H -#define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "--prefix=./android/armv7-a-vfp --enable-cross-compile --disable-runtime-cpudetect --disable-asm --arch=arm --target-os=android --cc=/Users/jianxi/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --cross-prefix=/Users/jianxi/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi- --disable-stripping --nm=/Users/jianxi/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-nm --sysroot=/Users/jianxi/android/sdk/ndk-bundle/platforms/android-14/arch-arm --enable-gpl --enable-shared --disable-static --enable-version3 --enable-small --enable-pthreads --disable-vda --disable-iconv --disable-encoders --enable-libx264 --enable-neon --enable-yasm --enable-libfdk_aac --enable-encoder=libx264 --enable-encoder=libfdk_aac --enable-nonfree --enable-muxers --enable-muxer=mov --enable-muxer=mp4 --enable-muxer=aac --enable-muxer=h264 --enable-muxer=avi --disable-decoders --enable-decoder=aac --enable-decoder=aac_latm --enable-decoder=h264 --enable-decoder=mpeg4 --disable-demuxers --enable-demuxer=h264 --enable-demuxer=aac --enable-demuxer=avi --enable-demuxer=mpc --enable-demuxer=mov --disable-parsers --enable-parser=aac --enable-parser=ac3 --enable-parser=h264 --disable-protocols --enable-protocol=file --enable-avfilter --disable-outdevs --disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-debug --disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-postproc --disable-avdevice --disable-symver --disable-stripping --extra-cflags='-O3 -Wall -pipe -ffast-math -fstrict-aliasing -Werror=strict-aliasing -Wno-psabi -Wa,--noexecstack -DANDROID -DNDEBUG -I/Users/jianxi/Downloads/code/ffmpeg-3.2.5/mylib/include -I/Users/jianxi/Downloads/code/ffmpeg-3.2.5/mylib/include/fdk-aac -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -mthumb' --extra-ldflags='-Wl,-L./mylib/lib'" -#define FFMPEG_LICENSE "nonfree and unredistributable" -#define CONFIG_THIS_YEAR 2017 -#define FFMPEG_DATADIR "./android/armv7-a-vfp/share/ffmpeg" -#define AVCONV_DATADIR "./android/armv7-a-vfp/share/ffmpeg" -#define CC_IDENT "gcc 4.9.x (GCC) 20150123 (prerelease)" -#define av_restrict restrict -#define EXTERN_PREFIX "" -#define EXTERN_ASM -#define BUILDSUF "" -#define SLIBSUF ".so" -#define HAVE_MMX2 HAVE_MMXEXT -#define SWS_MAX_FILTER_SIZE 256 -#define ARCH_AARCH64 0 -#define ARCH_ALPHA 0 -#define ARCH_ARM 0 -#define ARCH_AVR32 0 -#define ARCH_AVR32_AP 0 -#define ARCH_AVR32_UC 0 -#define ARCH_BFIN 0 -#define ARCH_IA64 0 -#define ARCH_M68K 0 -#define ARCH_MIPS 0 -#define ARCH_MIPS64 0 -#define ARCH_PARISC 0 -#define ARCH_PPC 0 -#define ARCH_PPC64 0 -#define ARCH_S390 0 -#define ARCH_SH4 0 -#define ARCH_SPARC 0 -#define ARCH_SPARC64 0 -#define ARCH_TILEGX 0 -#define ARCH_TILEPRO 0 -#define ARCH_TOMI 0 -#define ARCH_X86 0 -#define ARCH_X86_32 0 -#define ARCH_X86_64 0 -#define HAVE_ARMV5TE 0 -#define HAVE_ARMV6 0 -#define HAVE_ARMV6T2 0 -#define HAVE_ARMV8 0 -#define HAVE_NEON 0 -#define HAVE_VFP 0 -#define HAVE_VFPV3 0 -#define HAVE_SETEND 0 -#define HAVE_ALTIVEC 0 -#define HAVE_DCBZL 0 -#define HAVE_LDBRX 0 -#define HAVE_POWER8 0 -#define HAVE_PPC4XX 0 -#define HAVE_VSX 0 -#define HAVE_AESNI 0 -#define HAVE_AMD3DNOW 0 -#define HAVE_AMD3DNOWEXT 0 -#define HAVE_AVX 0 -#define HAVE_AVX2 0 -#define HAVE_FMA3 0 -#define HAVE_FMA4 0 -#define HAVE_MMX 0 -#define HAVE_MMXEXT 0 -#define HAVE_SSE 0 -#define HAVE_SSE2 0 -#define HAVE_SSE3 0 -#define HAVE_SSE4 0 -#define HAVE_SSE42 0 -#define HAVE_SSSE3 0 -#define HAVE_XOP 0 -#define HAVE_CPUNOP 0 -#define HAVE_I686 0 -#define HAVE_MIPSFPU 0 -#define HAVE_MIPS32R2 0 -#define HAVE_MIPS32R5 0 -#define HAVE_MIPS64R2 0 -#define HAVE_MIPS32R6 0 -#define HAVE_MIPS64R6 0 -#define HAVE_MIPSDSP 0 -#define HAVE_MIPSDSPR2 0 -#define HAVE_MSA 0 -#define HAVE_LOONGSON2 0 -#define HAVE_LOONGSON3 0 -#define HAVE_MMI 0 -#define HAVE_ARMV5TE_EXTERNAL 1 -#define HAVE_ARMV6_EXTERNAL 1 -#define HAVE_ARMV6T2_EXTERNAL 1 -#define HAVE_ARMV8_EXTERNAL 0 -#define HAVE_NEON_EXTERNAL 0 -#define HAVE_VFP_EXTERNAL 1 -#define HAVE_VFPV3_EXTERNAL 1 -#define HAVE_SETEND_EXTERNAL 1 -#define HAVE_ALTIVEC_EXTERNAL 0 -#define HAVE_DCBZL_EXTERNAL 0 -#define HAVE_LDBRX_EXTERNAL 0 -#define HAVE_POWER8_EXTERNAL 0 -#define HAVE_PPC4XX_EXTERNAL 0 -#define HAVE_VSX_EXTERNAL 0 -#define HAVE_AESNI_EXTERNAL 0 -#define HAVE_AMD3DNOW_EXTERNAL 0 -#define HAVE_AMD3DNOWEXT_EXTERNAL 0 -#define HAVE_AVX_EXTERNAL 0 -#define HAVE_AVX2_EXTERNAL 0 -#define HAVE_FMA3_EXTERNAL 0 -#define HAVE_FMA4_EXTERNAL 0 -#define HAVE_MMX_EXTERNAL 0 -#define HAVE_MMXEXT_EXTERNAL 0 -#define HAVE_SSE_EXTERNAL 0 -#define HAVE_SSE2_EXTERNAL 0 -#define HAVE_SSE3_EXTERNAL 0 -#define HAVE_SSE4_EXTERNAL 0 -#define HAVE_SSE42_EXTERNAL 0 -#define HAVE_SSSE3_EXTERNAL 0 -#define HAVE_XOP_EXTERNAL 0 -#define HAVE_CPUNOP_EXTERNAL 0 -#define HAVE_I686_EXTERNAL 0 -#define HAVE_MIPSFPU_EXTERNAL 0 -#define HAVE_MIPS32R2_EXTERNAL 0 -#define HAVE_MIPS32R5_EXTERNAL 0 -#define HAVE_MIPS64R2_EXTERNAL 0 -#define HAVE_MIPS32R6_EXTERNAL 0 -#define HAVE_MIPS64R6_EXTERNAL 0 -#define HAVE_MIPSDSP_EXTERNAL 0 -#define HAVE_MIPSDSPR2_EXTERNAL 0 -#define HAVE_MSA_EXTERNAL 0 -#define HAVE_LOONGSON2_EXTERNAL 0 -#define HAVE_LOONGSON3_EXTERNAL 0 -#define HAVE_MMI_EXTERNAL 0 -#define HAVE_ARMV5TE_INLINE 1 -#define HAVE_ARMV6_INLINE 1 -#define HAVE_ARMV6T2_INLINE 1 -#define HAVE_ARMV8_INLINE 0 -#define HAVE_NEON_INLINE 0 -#define HAVE_VFP_INLINE 1 -#define HAVE_VFPV3_INLINE 1 -#define HAVE_SETEND_INLINE 1 -#define HAVE_ALTIVEC_INLINE 0 -#define HAVE_DCBZL_INLINE 0 -#define HAVE_LDBRX_INLINE 0 -#define HAVE_POWER8_INLINE 0 -#define HAVE_PPC4XX_INLINE 0 -#define HAVE_VSX_INLINE 0 -#define HAVE_AESNI_INLINE 0 -#define HAVE_AMD3DNOW_INLINE 0 -#define HAVE_AMD3DNOWEXT_INLINE 0 -#define HAVE_AVX_INLINE 0 -#define HAVE_AVX2_INLINE 0 -#define HAVE_FMA3_INLINE 0 -#define HAVE_FMA4_INLINE 0 -#define HAVE_MMX_INLINE 0 -#define HAVE_MMXEXT_INLINE 0 -#define HAVE_SSE_INLINE 0 -#define HAVE_SSE2_INLINE 0 -#define HAVE_SSE3_INLINE 0 -#define HAVE_SSE4_INLINE 0 -#define HAVE_SSE42_INLINE 0 -#define HAVE_SSSE3_INLINE 0 -#define HAVE_XOP_INLINE 0 -#define HAVE_CPUNOP_INLINE 0 -#define HAVE_I686_INLINE 0 -#define HAVE_MIPSFPU_INLINE 0 -#define HAVE_MIPS32R2_INLINE 0 -#define HAVE_MIPS32R5_INLINE 0 -#define HAVE_MIPS64R2_INLINE 0 -#define HAVE_MIPS32R6_INLINE 0 -#define HAVE_MIPS64R6_INLINE 0 -#define HAVE_MIPSDSP_INLINE 0 -#define HAVE_MIPSDSPR2_INLINE 0 -#define HAVE_MSA_INLINE 0 -#define HAVE_LOONGSON2_INLINE 0 -#define HAVE_LOONGSON3_INLINE 0 -#define HAVE_MMI_INLINE 0 -#define HAVE_ALIGNED_STACK 0 -#define HAVE_FAST_64BIT 0 -#define HAVE_FAST_CLZ 1 -#define HAVE_FAST_CMOV 0 -#define HAVE_LOCAL_ALIGNED_8 0 -#define HAVE_LOCAL_ALIGNED_16 0 -#define HAVE_LOCAL_ALIGNED_32 0 -#define HAVE_SIMD_ALIGN_16 0 -#define HAVE_ATOMICS_GCC 1 -#define HAVE_ATOMICS_SUNCC 0 -#define HAVE_ATOMICS_WIN32 0 -#define HAVE_ATOMIC_CAS_PTR 0 -#define HAVE_ATOMIC_COMPARE_EXCHANGE 1 -#define HAVE_MACHINE_RW_BARRIER 0 -#define HAVE_MEMORYBARRIER 0 -#define HAVE_MM_EMPTY 0 -#define HAVE_RDTSC 0 -#define HAVE_SARESTART 1 -#define HAVE_SEM_TIMEDWAIT 1 -#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 -#define HAVE_CABS 0 -#define HAVE_CEXP 0 -#define HAVE_INLINE_ASM 1 -#define HAVE_SYMVER 0 -#define HAVE_YASM 1 -#define HAVE_BIGENDIAN 0 -#define HAVE_FAST_UNALIGNED 1 -#define HAVE_ALSA_ASOUNDLIB_H 0 -#define HAVE_ALTIVEC_H 0 -#define HAVE_ARPA_INET_H 1 -#define HAVE_ASM_TYPES_H 1 -#define HAVE_CDIO_PARANOIA_H 0 -#define HAVE_CDIO_PARANOIA_PARANOIA_H 0 -#define HAVE_DISPATCH_DISPATCH_H 0 -#define HAVE_DEV_BKTR_IOCTL_BT848_H 0 -#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 -#define HAVE_DEV_IC_BT8XX_H 0 -#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 -#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 -#define HAVE_DIRECT_H 0 -#define HAVE_DIRENT_H 1 -#define HAVE_DLFCN_H 1 -#define HAVE_D3D11_H 0 -#define HAVE_DXVA_H 0 -#define HAVE_ES2_GL_H 0 -#define HAVE_GSM_H 0 -#define HAVE_IO_H 0 -#define HAVE_MACH_MACH_TIME_H 0 -#define HAVE_MACHINE_IOCTL_BT848_H 0 -#define HAVE_MACHINE_IOCTL_METEOR_H 0 -#define HAVE_MALLOC_H 1 -#define HAVE_OPENCV2_CORE_CORE_C_H 0 -#define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 -#define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 -#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 -#define HAVE_OPENGL_GL3_H 0 -#define HAVE_POLL_H 1 -#define HAVE_SNDIO_H 0 -#define HAVE_SOUNDCARD_H 0 -#define HAVE_SYS_MMAN_H 1 -#define HAVE_SYS_PARAM_H 1 -#define HAVE_SYS_RESOURCE_H 1 -#define HAVE_SYS_SELECT_H 1 -#define HAVE_SYS_SOUNDCARD_H 0 -#define HAVE_SYS_TIME_H 1 -#define HAVE_SYS_UN_H 1 -#define HAVE_SYS_VIDEOIO_H 0 -#define HAVE_TERMIOS_H 1 -#define HAVE_UDPLITE_H 0 -#define HAVE_UNISTD_H 1 -#define HAVE_VALGRIND_VALGRIND_H 0 -#define HAVE_WINDOWS_H 0 -#define HAVE_WINSOCK2_H 0 -#define HAVE_INTRINSICS_NEON 0 -#define HAVE_ATANF 1 -#define HAVE_ATAN2F 1 -#define HAVE_CBRT 1 -#define HAVE_CBRTF 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COSF 1 -#define HAVE_ERF 1 -#define HAVE_EXP2 1 -#define HAVE_EXP2F 1 -#define HAVE_EXPF 1 -#define HAVE_HYPOT 1 -#define HAVE_ISFINITE 1 -#define HAVE_ISINF 1 -#define HAVE_ISNAN 1 -#define HAVE_LDEXPF 1 -#define HAVE_LLRINT 1 -#define HAVE_LLRINTF 1 -#define HAVE_LOG2 0 -#define HAVE_LOG2F 0 -#define HAVE_LOG10F 1 -#define HAVE_LRINT 1 -#define HAVE_LRINTF 1 -#define HAVE_POWF 1 -#define HAVE_RINT 1 -#define HAVE_ROUND 1 -#define HAVE_ROUNDF 1 -#define HAVE_SINF 1 -#define HAVE_TRUNC 1 -#define HAVE_TRUNCF 1 -#define HAVE_ACCESS 1 -#define HAVE_ALIGNED_MALLOC 0 -#define HAVE_ARC4RANDOM 1 -#define HAVE_CLOCK_GETTIME 1 -#define HAVE_CLOSESOCKET 0 -#define HAVE_COMMANDLINETOARGVW 0 -#define HAVE_COTASKMEMFREE 0 -#define HAVE_CRYPTGENRANDOM 0 -#define HAVE_DLOPEN 1 -#define HAVE_FCNTL 1 -#define HAVE_FLT_LIM 1 -#define HAVE_FORK 1 -#define HAVE_GETADDRINFO 1 -#define HAVE_GETHRTIME 0 -#define HAVE_GETOPT 1 -#define HAVE_GETPROCESSAFFINITYMASK 0 -#define HAVE_GETPROCESSMEMORYINFO 0 -#define HAVE_GETPROCESSTIMES 0 -#define HAVE_GETRUSAGE 1 -#define HAVE_GETSYSTEMTIMEASFILETIME 0 -#define HAVE_GETTIMEOFDAY 1 -#define HAVE_GLOB 0 -#define HAVE_GLXGETPROCADDRESS 0 -#define HAVE_GMTIME_R 1 -#define HAVE_INET_ATON 1 -#define HAVE_ISATTY 1 -#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 -#define HAVE_KBHIT 0 -#define HAVE_LOADLIBRARY 0 -#define HAVE_LOCALTIME_R 1 -#define HAVE_LSTAT 1 -#define HAVE_LZO1X_999_COMPRESS 0 -#define HAVE_MACH_ABSOLUTE_TIME 0 -#define HAVE_MAPVIEWOFFILE 0 -#define HAVE_MEMALIGN 1 -#define HAVE_MKSTEMP 1 -#define HAVE_MMAP 1 -#define HAVE_MPROTECT 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_PEEKNAMEDPIPE 0 -#define HAVE_POSIX_MEMALIGN 0 -#define HAVE_PTHREAD_CANCEL 0 -#define HAVE_SCHED_GETAFFINITY 1 -#define HAVE_SETCONSOLETEXTATTRIBUTE 0 -#define HAVE_SETCONSOLECTRLHANDLER 0 -#define HAVE_SETMODE 0 -#define HAVE_SETRLIMIT 1 -#define HAVE_SLEEP 0 -#define HAVE_STRERROR_R 1 -#define HAVE_SYSCONF 1 -#define HAVE_SYSCTL 0 -#define HAVE_USLEEP 1 -#define HAVE_UTGETOSTYPEFROMSTRING 0 -#define HAVE_VIRTUALALLOC 0 -#define HAVE_WGLGETPROCADDRESS 0 -#define HAVE_PTHREADS 1 -#define HAVE_OS2THREADS 0 -#define HAVE_W32THREADS 0 -#define HAVE_AS_DN_DIRECTIVE 1 -#define HAVE_AS_FUNC 0 -#define HAVE_AS_OBJECT_ARCH 1 -#define HAVE_ASM_MOD_Q 1 -#define HAVE_ATTRIBUTE_MAY_ALIAS 1 -#define HAVE_ATTRIBUTE_PACKED 1 -#define HAVE_EBP_AVAILABLE 0 -#define HAVE_EBX_AVAILABLE 0 -#define HAVE_GNU_AS 0 -#define HAVE_GNU_WINDRES 0 -#define HAVE_IBM_ASM 0 -#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 -#define HAVE_INLINE_ASM_LABELS 1 -#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 -#define HAVE_PRAGMA_DEPRECATED 1 -#define HAVE_RSYNC_CONTIMEOUT 0 -#define HAVE_SYMVER_ASM_LABEL 0 -#define HAVE_SYMVER_GNU_ASM 1 -#define HAVE_VFP_ARGS 0 -#define HAVE_XFORM_ASM 0 -#define HAVE_XMM_CLOBBERS 0 -#define HAVE_CONDITION_VARIABLE_PTR 0 -#define HAVE_SOCKLEN_T 1 -#define HAVE_STRUCT_ADDRINFO 1 -#define HAVE_STRUCT_GROUP_SOURCE_REQ 1 -#define HAVE_STRUCT_IP_MREQ_SOURCE 1 -#define HAVE_STRUCT_IPV6_MREQ 1 -#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 1 -#define HAVE_STRUCT_POLLFD 1 -#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1 -#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 -#define HAVE_STRUCT_SOCKADDR_IN6 1 -#define HAVE_STRUCT_SOCKADDR_SA_LEN 0 -#define HAVE_STRUCT_SOCKADDR_STORAGE 1 -#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 -#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 -#define HAVE_ATOMICS_NATIVE 1 -#define HAVE_DOS_PATHS 0 -#define HAVE_DXVA2_LIB 0 -#define HAVE_DXVA2API_COBJ 0 -#define HAVE_LIBC_MSVCRT 0 -#define HAVE_LIBDC1394_1 0 -#define HAVE_LIBDC1394_2 0 -#define HAVE_MAKEINFO 1 -#define HAVE_MAKEINFO_HTML 0 -#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 -#define HAVE_PERL 1 -#define HAVE_POD2MAN 1 -#define HAVE_SDL2 0 -#define HAVE_SECTION_DATA_REL_RO 1 -#define HAVE_TEXI2HTML 0 -#define HAVE_THREADS 1 -#define HAVE_VAAPI_DRM 0 -#define HAVE_VAAPI_X11 0 -#define HAVE_VDPAU_X11 0 -#define HAVE_WINRT 0 -#define HAVE_XLIB 0 -#define CONFIG_BSFS 1 -#define CONFIG_DECODERS 1 -#define CONFIG_ENCODERS 1 -#define CONFIG_HWACCELS 0 -#define CONFIG_PARSERS 1 -#define CONFIG_INDEVS 0 -#define CONFIG_OUTDEVS 0 -#define CONFIG_FILTERS 1 -#define CONFIG_DEMUXERS 1 -#define CONFIG_MUXERS 1 -#define CONFIG_PROTOCOLS 1 -#define CONFIG_DOC 1 -#define CONFIG_HTMLPAGES 0 -#define CONFIG_MANPAGES 1 -#define CONFIG_PODPAGES 1 -#define CONFIG_TXTPAGES 1 -#define CONFIG_AVIO_DIR_CMD_EXAMPLE 1 -#define CONFIG_AVIO_READING_EXAMPLE 1 -#define CONFIG_DECODING_ENCODING_EXAMPLE 1 -#define CONFIG_DEMUXING_DECODING_EXAMPLE 1 -#define CONFIG_EXTRACT_MVS_EXAMPLE 1 -#define CONFIG_FILTER_AUDIO_EXAMPLE 1 -#define CONFIG_FILTERING_AUDIO_EXAMPLE 1 -#define CONFIG_FILTERING_VIDEO_EXAMPLE 1 -#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 1 -#define CONFIG_METADATA_EXAMPLE 1 -#define CONFIG_MUXING_EXAMPLE 1 -#define CONFIG_QSVDEC_EXAMPLE 0 -#define CONFIG_REMUXING_EXAMPLE 1 -#define CONFIG_RESAMPLING_AUDIO_EXAMPLE 1 -#define CONFIG_SCALING_VIDEO_EXAMPLE 1 -#define CONFIG_TRANSCODE_AAC_EXAMPLE 1 -#define CONFIG_TRANSCODING_EXAMPLE 1 -#define CONFIG_AVISYNTH 0 -#define CONFIG_BZLIB 0 -#define CONFIG_CHROMAPRINT 0 -#define CONFIG_CRYSTALHD 0 -#define CONFIG_DECKLINK 0 -#define CONFIG_FREI0R 0 -#define CONFIG_GCRYPT 0 -#define CONFIG_GMP 0 -#define CONFIG_GNUTLS 0 -#define CONFIG_ICONV 0 -#define CONFIG_JNI 0 -#define CONFIG_LADSPA 0 -#define CONFIG_LIBASS 0 -#define CONFIG_LIBBLURAY 0 -#define CONFIG_LIBBS2B 0 -#define CONFIG_LIBCACA 0 -#define CONFIG_LIBCDIO 0 -#define CONFIG_LIBCELT 0 -#define CONFIG_LIBDC1394 0 -#define CONFIG_LIBEBUR128 0 -#define CONFIG_LIBFDK_AAC 1 -#define CONFIG_LIBFLITE 0 -#define CONFIG_LIBFONTCONFIG 0 -#define CONFIG_LIBFREETYPE 0 -#define CONFIG_LIBFRIBIDI 0 -#define CONFIG_LIBGME 0 -#define CONFIG_LIBGSM 0 -#define CONFIG_LIBIEC61883 0 -#define CONFIG_LIBILBC 0 -#define CONFIG_LIBKVAZAAR 0 -#define CONFIG_LIBMODPLUG 0 -#define CONFIG_LIBMP3LAME 0 -#define CONFIG_LIBNUT 0 -#define CONFIG_LIBOPENCORE_AMRNB 0 -#define CONFIG_LIBOPENCORE_AMRWB 0 -#define CONFIG_LIBOPENCV 0 -#define CONFIG_LIBOPENH264 0 -#define CONFIG_LIBOPENJPEG 0 -#define CONFIG_LIBOPENMPT 0 -#define CONFIG_LIBOPUS 0 -#define CONFIG_LIBPULSE 0 -#define CONFIG_LIBRTMP 0 -#define CONFIG_LIBRUBBERBAND 0 -#define CONFIG_LIBSCHROEDINGER 0 -#define CONFIG_LIBSHINE 0 -#define CONFIG_LIBSMBCLIENT 0 -#define CONFIG_LIBSNAPPY 0 -#define CONFIG_LIBSOXR 0 -#define CONFIG_LIBSPEEX 0 -#define CONFIG_LIBSSH 0 -#define CONFIG_LIBTESSERACT 0 -#define CONFIG_LIBTHEORA 0 -#define CONFIG_LIBTWOLAME 0 -#define CONFIG_LIBV4L2 0 -#define CONFIG_LIBVIDSTAB 0 -#define CONFIG_LIBVO_AMRWBENC 0 -#define CONFIG_LIBVORBIS 0 -#define CONFIG_LIBVPX 0 -#define CONFIG_LIBWAVPACK 0 -#define CONFIG_LIBWEBP 0 -#define CONFIG_LIBX264 1 -#define CONFIG_LIBX265 0 -#define CONFIG_LIBXAVS 0 -#define CONFIG_LIBXCB 0 -#define CONFIG_LIBXCB_SHM 0 -#define CONFIG_LIBXCB_SHAPE 0 -#define CONFIG_LIBXCB_XFIXES 0 -#define CONFIG_LIBXVID 0 -#define CONFIG_LIBZIMG 0 -#define CONFIG_LIBZMQ 0 -#define CONFIG_LIBZVBI 0 -#define CONFIG_LZMA 0 -#define CONFIG_MEDIACODEC 0 -#define CONFIG_NETCDF 0 -#define CONFIG_OPENAL 0 -#define CONFIG_OPENCL 0 -#define CONFIG_OPENGL 0 -#define CONFIG_OPENSSL 0 -#define CONFIG_SCHANNEL 0 -#define CONFIG_SDL 0 -#define CONFIG_SDL2 0 -#define CONFIG_SECURETRANSPORT 0 -#define CONFIG_VIDEOTOOLBOX 0 -#define CONFIG_X11GRAB 0 -#define CONFIG_XLIB 0 -#define CONFIG_ZLIB 1 -#define CONFIG_AUDIOTOOLBOX 0 -#define CONFIG_CUDA 0 -#define CONFIG_CUVID 0 -#define CONFIG_D3D11VA 0 -#define CONFIG_DXVA2 0 -#define CONFIG_LIBMFX 0 -#define CONFIG_LIBNPP 0 -#define CONFIG_MMAL 0 -#define CONFIG_NVENC 0 -#define CONFIG_OMX 0 -#define CONFIG_VAAPI 0 -#define CONFIG_VDA 0 -#define CONFIG_VDPAU 0 -#define CONFIG_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_XVMC 0 -#define CONFIG_FTRAPV 0 -#define CONFIG_GRAY 0 -#define CONFIG_HARDCODED_TABLES 0 -#define CONFIG_OMX_RPI 0 -#define CONFIG_RUNTIME_CPUDETECT 0 -#define CONFIG_SAFE_BITSTREAM_READER 1 -#define CONFIG_SHARED 1 -#define CONFIG_SMALL 1 -#define CONFIG_STATIC 0 -#define CONFIG_SWSCALE_ALPHA 1 -#define CONFIG_GPL 1 -#define CONFIG_NONFREE 1 -#define CONFIG_VERSION3 1 -#define CONFIG_AVCODEC 1 -#define CONFIG_AVDEVICE 0 -#define CONFIG_AVFILTER 1 -#define CONFIG_AVFORMAT 1 -#define CONFIG_AVRESAMPLE 0 -#define CONFIG_AVUTIL 1 -#define CONFIG_POSTPROC 0 -#define CONFIG_SWRESAMPLE 1 -#define CONFIG_SWSCALE 1 -#define CONFIG_FFPLAY 0 -#define CONFIG_FFPROBE 0 -#define CONFIG_FFSERVER 0 -#define CONFIG_FFMPEG 0 -#define CONFIG_DCT 0 -#define CONFIG_DWT 0 -#define CONFIG_ERROR_RESILIENCE 1 -#define CONFIG_FAAN 1 -#define CONFIG_FAST_UNALIGNED 1 -#define CONFIG_FFT 1 -#define CONFIG_LSP 0 -#define CONFIG_LZO 0 -#define CONFIG_MDCT 1 -#define CONFIG_PIXELUTILS 1 -#define CONFIG_NETWORK 1 -#define CONFIG_RDFT 1 -#define CONFIG_FONTCONFIG 0 -#define CONFIG_MEMALIGN_HACK 0 -#define CONFIG_MEMORY_POISONING 0 -#define CONFIG_NEON_CLOBBER_TEST 0 -#define CONFIG_PIC 1 -#define CONFIG_POD2MAN 1 -#define CONFIG_RAISE_MAJOR 0 -#define CONFIG_THUMB 1 -#define CONFIG_VALGRIND_BACKTRACE 0 -#define CONFIG_XMM_CLOBBER_TEST 0 -#define CONFIG_AANDCTTABLES 0 -#define CONFIG_AC3DSP 0 -#define CONFIG_AUDIO_FRAME_QUEUE 1 -#define CONFIG_AUDIODSP 0 -#define CONFIG_BLOCKDSP 1 -#define CONFIG_BSWAPDSP 0 -#define CONFIG_CABAC 1 -#define CONFIG_DIRAC_PARSE 0 -#define CONFIG_DVPROFILE 1 -#define CONFIG_EXIF 1 -#define CONFIG_FAANDCT 1 -#define CONFIG_FAANIDCT 1 -#define CONFIG_FDCTDSP 1 -#define CONFIG_FLACDSP 0 -#define CONFIG_FMTCONVERT 0 -#define CONFIG_FRAME_THREAD_ENCODER 1 -#define CONFIG_G722DSP 0 -#define CONFIG_GOLOMB 1 -#define CONFIG_GPLV3 1 -#define CONFIG_H263DSP 1 -#define CONFIG_H264CHROMA 1 -#define CONFIG_H264DSP 1 -#define CONFIG_H264PRED 1 -#define CONFIG_H264QPEL 1 -#define CONFIG_HPELDSP 1 -#define CONFIG_HUFFMAN 0 -#define CONFIG_HUFFYUVDSP 0 -#define CONFIG_HUFFYUVENCDSP 0 -#define CONFIG_IDCTDSP 1 -#define CONFIG_IIRFILTER 0 -#define CONFIG_IMDCT15 1 -#define CONFIG_INTRAX8 0 -#define CONFIG_ISO_MEDIA 1 -#define CONFIG_IVIDSP 0 -#define CONFIG_JPEGTABLES 1 -#define CONFIG_LGPLV3 0 -#define CONFIG_LIBX262 0 -#define CONFIG_LLAUDDSP 0 -#define CONFIG_LLVIDDSP 0 -#define CONFIG_LPC 0 -#define CONFIG_LZF 0 -#define CONFIG_ME_CMP 1 -#define CONFIG_MPEG_ER 1 -#define CONFIG_MPEGAUDIO 0 -#define CONFIG_MPEGAUDIODSP 0 -#define CONFIG_MPEGVIDEO 1 -#define CONFIG_MPEGVIDEOENC 0 -#define CONFIG_MSS34DSP 0 -#define CONFIG_PIXBLOCKDSP 1 -#define CONFIG_QPELDSP 1 -#define CONFIG_QSV 0 -#define CONFIG_QSVDEC 0 -#define CONFIG_QSVENC 0 -#define CONFIG_RANGECODER 0 -#define CONFIG_RIFFDEC 1 -#define CONFIG_RIFFENC 1 -#define CONFIG_RTPDEC 0 -#define CONFIG_RTPENC_CHAIN 1 -#define CONFIG_RV34DSP 0 -#define CONFIG_SINEWIN 1 -#define CONFIG_SNAPPY 0 -#define CONFIG_SRTP 0 -#define CONFIG_STARTCODE 1 -#define CONFIG_TEXTUREDSP 0 -#define CONFIG_TEXTUREDSPENC 0 -#define CONFIG_TPELDSP 0 -#define CONFIG_VAAPI_ENCODE 0 -#define CONFIG_VC1DSP 0 -#define CONFIG_VIDEODSP 1 -#define CONFIG_VP3DSP 0 -#define CONFIG_VP56DSP 0 -#define CONFIG_VP8DSP 0 -#define CONFIG_VT_BT2020 0 -#define CONFIG_WMA_FREQS 0 -#define CONFIG_WMV2DSP 0 -#define CONFIG_AAC_ADTSTOASC_BSF 1 -#define CONFIG_CHOMP_BSF 1 -#define CONFIG_DUMP_EXTRADATA_BSF 1 -#define CONFIG_DCA_CORE_BSF 1 -#define CONFIG_H264_MP4TOANNEXB_BSF 1 -#define CONFIG_HEVC_MP4TOANNEXB_BSF 1 -#define CONFIG_IMX_DUMP_HEADER_BSF 1 -#define CONFIG_MJPEG2JPEG_BSF 1 -#define CONFIG_MJPEGA_DUMP_HEADER_BSF 1 -#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1 -#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1 -#define CONFIG_MOV2TEXTSUB_BSF 1 -#define CONFIG_NOISE_BSF 1 -#define CONFIG_REMOVE_EXTRADATA_BSF 1 -#define CONFIG_TEXT2MOVSUB_BSF 1 -#define CONFIG_VP9_SUPERFRAME_BSF 1 -#define CONFIG_AASC_DECODER 0 -#define CONFIG_AIC_DECODER 0 -#define CONFIG_ALIAS_PIX_DECODER 0 -#define CONFIG_AMV_DECODER 0 -#define CONFIG_ANM_DECODER 0 -#define CONFIG_ANSI_DECODER 0 -#define CONFIG_APNG_DECODER 0 -#define CONFIG_ASV1_DECODER 0 -#define CONFIG_ASV2_DECODER 0 -#define CONFIG_AURA_DECODER 0 -#define CONFIG_AURA2_DECODER 0 -#define CONFIG_AVRP_DECODER 0 -#define CONFIG_AVRN_DECODER 0 -#define CONFIG_AVS_DECODER 0 -#define CONFIG_AVUI_DECODER 0 -#define CONFIG_AYUV_DECODER 0 -#define CONFIG_BETHSOFTVID_DECODER 0 -#define CONFIG_BFI_DECODER 0 -#define CONFIG_BINK_DECODER 0 -#define CONFIG_BMP_DECODER 0 -#define CONFIG_BMV_VIDEO_DECODER 0 -#define CONFIG_BRENDER_PIX_DECODER 0 -#define CONFIG_C93_DECODER 0 -#define CONFIG_CAVS_DECODER 0 -#define CONFIG_CDGRAPHICS_DECODER 0 -#define CONFIG_CDXL_DECODER 0 -#define CONFIG_CFHD_DECODER 0 -#define CONFIG_CINEPAK_DECODER 0 -#define CONFIG_CLJR_DECODER 0 -#define CONFIG_CLLC_DECODER 0 -#define CONFIG_COMFORTNOISE_DECODER 0 -#define CONFIG_CPIA_DECODER 0 -#define CONFIG_CSCD_DECODER 0 -#define CONFIG_CYUV_DECODER 0 -#define CONFIG_DDS_DECODER 0 -#define CONFIG_DFA_DECODER 0 -#define CONFIG_DIRAC_DECODER 0 -#define CONFIG_DNXHD_DECODER 0 -#define CONFIG_DPX_DECODER 0 -#define CONFIG_DSICINVIDEO_DECODER 0 -#define CONFIG_DVAUDIO_DECODER 0 -#define CONFIG_DVVIDEO_DECODER 0 -#define CONFIG_DXA_DECODER 0 -#define CONFIG_DXTORY_DECODER 0 -#define CONFIG_DXV_DECODER 0 -#define CONFIG_EACMV_DECODER 0 -#define CONFIG_EAMAD_DECODER 0 -#define CONFIG_EATGQ_DECODER 0 -#define CONFIG_EATGV_DECODER 0 -#define CONFIG_EATQI_DECODER 0 -#define CONFIG_EIGHTBPS_DECODER 0 -#define CONFIG_EIGHTSVX_EXP_DECODER 0 -#define CONFIG_EIGHTSVX_FIB_DECODER 0 -#define CONFIG_ESCAPE124_DECODER 0 -#define CONFIG_ESCAPE130_DECODER 0 -#define CONFIG_EXR_DECODER 0 -#define CONFIG_FFV1_DECODER 0 -#define CONFIG_FFVHUFF_DECODER 0 -#define CONFIG_FIC_DECODER 0 -#define CONFIG_FLASHSV_DECODER 0 -#define CONFIG_FLASHSV2_DECODER 0 -#define CONFIG_FLIC_DECODER 0 -#define CONFIG_FLV_DECODER 0 -#define CONFIG_FOURXM_DECODER 0 -#define CONFIG_FRAPS_DECODER 0 -#define CONFIG_FRWU_DECODER 0 -#define CONFIG_G2M_DECODER 0 -#define CONFIG_GIF_DECODER 0 -#define CONFIG_H261_DECODER 0 -#define CONFIG_H263_DECODER 1 -#define CONFIG_H263I_DECODER 0 -#define CONFIG_H263P_DECODER 0 -#define CONFIG_H264_DECODER 1 -#define CONFIG_H264_CRYSTALHD_DECODER 0 -#define CONFIG_H264_MEDIACODEC_DECODER 0 -#define CONFIG_H264_MMAL_DECODER 0 -#define CONFIG_H264_QSV_DECODER 0 -#define CONFIG_H264_VDA_DECODER 0 -#define CONFIG_H264_VDPAU_DECODER 0 -#define CONFIG_HAP_DECODER 0 -#define CONFIG_HEVC_DECODER 0 -#define CONFIG_HEVC_QSV_DECODER 0 -#define CONFIG_HNM4_VIDEO_DECODER 0 -#define CONFIG_HQ_HQA_DECODER 0 -#define CONFIG_HQX_DECODER 0 -#define CONFIG_HUFFYUV_DECODER 0 -#define CONFIG_IDCIN_DECODER 0 -#define CONFIG_IFF_ILBM_DECODER 0 -#define CONFIG_INDEO2_DECODER 0 -#define CONFIG_INDEO3_DECODER 0 -#define CONFIG_INDEO4_DECODER 0 -#define CONFIG_INDEO5_DECODER 0 -#define CONFIG_INTERPLAY_VIDEO_DECODER 0 -#define CONFIG_JPEG2000_DECODER 0 -#define CONFIG_JPEGLS_DECODER 0 -#define CONFIG_JV_DECODER 0 -#define CONFIG_KGV1_DECODER 0 -#define CONFIG_KMVC_DECODER 0 -#define CONFIG_LAGARITH_DECODER 0 -#define CONFIG_LOCO_DECODER 0 -#define CONFIG_M101_DECODER 0 -#define CONFIG_MAGICYUV_DECODER 0 -#define CONFIG_MDEC_DECODER 0 -#define CONFIG_MIMIC_DECODER 0 -#define CONFIG_MJPEG_DECODER 0 -#define CONFIG_MJPEGB_DECODER 0 -#define CONFIG_MMVIDEO_DECODER 0 -#define CONFIG_MOTIONPIXELS_DECODER 0 -#define CONFIG_MPEG_XVMC_DECODER 0 -#define CONFIG_MPEG1VIDEO_DECODER 0 -#define CONFIG_MPEG2VIDEO_DECODER 0 -#define CONFIG_MPEG4_DECODER 1 -#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG4_MMAL_DECODER 0 -#define CONFIG_MPEG4_VDPAU_DECODER 0 -#define CONFIG_MPEGVIDEO_DECODER 0 -#define CONFIG_MPEG_VDPAU_DECODER 0 -#define CONFIG_MPEG1_VDPAU_DECODER 0 -#define CONFIG_MPEG2_MMAL_DECODER 0 -#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 -#define CONFIG_MPEG2_QSV_DECODER 0 -#define CONFIG_MSA1_DECODER 0 -#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 -#define CONFIG_MSMPEG4V1_DECODER 0 -#define CONFIG_MSMPEG4V2_DECODER 0 -#define CONFIG_MSMPEG4V3_DECODER 0 -#define CONFIG_MSRLE_DECODER 0 -#define CONFIG_MSS1_DECODER 0 -#define CONFIG_MSS2_DECODER 0 -#define CONFIG_MSVIDEO1_DECODER 0 -#define CONFIG_MSZH_DECODER 0 -#define CONFIG_MTS2_DECODER 0 -#define CONFIG_MVC1_DECODER 0 -#define CONFIG_MVC2_DECODER 0 -#define CONFIG_MXPEG_DECODER 0 -#define CONFIG_NUV_DECODER 0 -#define CONFIG_PAF_VIDEO_DECODER 0 -#define CONFIG_PAM_DECODER 0 -#define CONFIG_PBM_DECODER 0 -#define CONFIG_PCX_DECODER 0 -#define CONFIG_PGM_DECODER 0 -#define CONFIG_PGMYUV_DECODER 0 -#define CONFIG_PICTOR_DECODER 0 -#define CONFIG_PNG_DECODER 0 -#define CONFIG_PPM_DECODER 0 -#define CONFIG_PRORES_DECODER 0 -#define CONFIG_PRORES_LGPL_DECODER 0 -#define CONFIG_PTX_DECODER 0 -#define CONFIG_QDRAW_DECODER 0 -#define CONFIG_QPEG_DECODER 0 -#define CONFIG_QTRLE_DECODER 0 -#define CONFIG_R10K_DECODER 0 -#define CONFIG_R210_DECODER 0 -#define CONFIG_RAWVIDEO_DECODER 0 -#define CONFIG_RL2_DECODER 0 -#define CONFIG_ROQ_DECODER 0 -#define CONFIG_RPZA_DECODER 0 -#define CONFIG_RSCC_DECODER 0 -#define CONFIG_RV10_DECODER 0 -#define CONFIG_RV20_DECODER 0 -#define CONFIG_RV30_DECODER 0 -#define CONFIG_RV40_DECODER 0 -#define CONFIG_S302M_DECODER 0 -#define CONFIG_SANM_DECODER 0 -#define CONFIG_SCREENPRESSO_DECODER 0 -#define CONFIG_SDX2_DPCM_DECODER 0 -#define CONFIG_SGI_DECODER 0 -#define CONFIG_SGIRLE_DECODER 0 -#define CONFIG_SHEERVIDEO_DECODER 0 -#define CONFIG_SMACKER_DECODER 0 -#define CONFIG_SMC_DECODER 0 -#define CONFIG_SMVJPEG_DECODER 0 -#define CONFIG_SNOW_DECODER 0 -#define CONFIG_SP5X_DECODER 0 -#define CONFIG_SUNRAST_DECODER 0 -#define CONFIG_SVQ1_DECODER 0 -#define CONFIG_SVQ3_DECODER 0 -#define CONFIG_TARGA_DECODER 0 -#define CONFIG_TARGA_Y216_DECODER 0 -#define CONFIG_TDSC_DECODER 0 -#define CONFIG_THEORA_DECODER 0 -#define CONFIG_THP_DECODER 0 -#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 -#define CONFIG_TIFF_DECODER 0 -#define CONFIG_TMV_DECODER 0 -#define CONFIG_TRUEMOTION1_DECODER 0 -#define CONFIG_TRUEMOTION2_DECODER 0 -#define CONFIG_TRUEMOTION2RT_DECODER 0 -#define CONFIG_TSCC_DECODER 0 -#define CONFIG_TSCC2_DECODER 0 -#define CONFIG_TXD_DECODER 0 -#define CONFIG_ULTI_DECODER 0 -#define CONFIG_UTVIDEO_DECODER 0 -#define CONFIG_V210_DECODER 0 -#define CONFIG_V210X_DECODER 0 -#define CONFIG_V308_DECODER 0 -#define CONFIG_V408_DECODER 0 -#define CONFIG_V410_DECODER 0 -#define CONFIG_VB_DECODER 0 -#define CONFIG_VBLE_DECODER 0 -#define CONFIG_VC1_DECODER 0 -#define CONFIG_VC1_CRYSTALHD_DECODER 0 -#define CONFIG_VC1_VDPAU_DECODER 0 -#define CONFIG_VC1IMAGE_DECODER 0 -#define CONFIG_VC1_MMAL_DECODER 0 -#define CONFIG_VC1_QSV_DECODER 0 -#define CONFIG_VCR1_DECODER 0 -#define CONFIG_VMDVIDEO_DECODER 0 -#define CONFIG_VMNC_DECODER 0 -#define CONFIG_VP3_DECODER 0 -#define CONFIG_VP5_DECODER 0 -#define CONFIG_VP6_DECODER 0 -#define CONFIG_VP6A_DECODER 0 -#define CONFIG_VP6F_DECODER 0 -#define CONFIG_VP7_DECODER 0 -#define CONFIG_VP8_DECODER 0 -#define CONFIG_VP9_DECODER 0 -#define CONFIG_VQA_DECODER 0 -#define CONFIG_WEBP_DECODER 0 -#define CONFIG_WMV1_DECODER 0 -#define CONFIG_WMV2_DECODER 0 -#define CONFIG_WMV3_DECODER 0 -#define CONFIG_WMV3_CRYSTALHD_DECODER 0 -#define CONFIG_WMV3_VDPAU_DECODER 0 -#define CONFIG_WMV3IMAGE_DECODER 0 -#define CONFIG_WNV1_DECODER 0 -#define CONFIG_XAN_WC3_DECODER 0 -#define CONFIG_XAN_WC4_DECODER 0 -#define CONFIG_XBM_DECODER 0 -#define CONFIG_XFACE_DECODER 0 -#define CONFIG_XL_DECODER 0 -#define CONFIG_XWD_DECODER 0 -#define CONFIG_Y41P_DECODER 0 -#define CONFIG_YLC_DECODER 0 -#define CONFIG_YOP_DECODER 0 -#define CONFIG_YUV4_DECODER 0 -#define CONFIG_ZERO12V_DECODER 0 -#define CONFIG_ZEROCODEC_DECODER 0 -#define CONFIG_ZLIB_DECODER 0 -#define CONFIG_ZMBV_DECODER 0 -#define CONFIG_AAC_DECODER 1 -#define CONFIG_AAC_FIXED_DECODER 0 -#define CONFIG_AAC_LATM_DECODER 1 -#define CONFIG_AC3_DECODER 0 -#define CONFIG_AC3_FIXED_DECODER 0 -#define CONFIG_ALAC_DECODER 0 -#define CONFIG_ALS_DECODER 0 -#define CONFIG_AMRNB_DECODER 0 -#define CONFIG_AMRWB_DECODER 0 -#define CONFIG_APE_DECODER 0 -#define CONFIG_ATRAC1_DECODER 0 -#define CONFIG_ATRAC3_DECODER 0 -#define CONFIG_ATRAC3P_DECODER 0 -#define CONFIG_BINKAUDIO_DCT_DECODER 0 -#define CONFIG_BINKAUDIO_RDFT_DECODER 0 -#define CONFIG_BMV_AUDIO_DECODER 0 -#define CONFIG_COOK_DECODER 0 -#define CONFIG_DCA_DECODER 0 -#define CONFIG_DSD_LSBF_DECODER 0 -#define CONFIG_DSD_MSBF_DECODER 0 -#define CONFIG_DSD_LSBF_PLANAR_DECODER 0 -#define CONFIG_DSD_MSBF_PLANAR_DECODER 0 -#define CONFIG_DSICINAUDIO_DECODER 0 -#define CONFIG_DSS_SP_DECODER 0 -#define CONFIG_DST_DECODER 0 -#define CONFIG_EAC3_DECODER 0 -#define CONFIG_EVRC_DECODER 0 -#define CONFIG_FFWAVESYNTH_DECODER 0 -#define CONFIG_FLAC_DECODER 0 -#define CONFIG_G723_1_DECODER 0 -#define CONFIG_G729_DECODER 0 -#define CONFIG_GSM_DECODER 0 -#define CONFIG_GSM_MS_DECODER 0 -#define CONFIG_IAC_DECODER 0 -#define CONFIG_IMC_DECODER 0 -#define CONFIG_INTERPLAY_ACM_DECODER 0 -#define CONFIG_MACE3_DECODER 0 -#define CONFIG_MACE6_DECODER 0 -#define CONFIG_METASOUND_DECODER 0 -#define CONFIG_MLP_DECODER 0 -#define CONFIG_MP1_DECODER 0 -#define CONFIG_MP1FLOAT_DECODER 0 -#define CONFIG_MP2_DECODER 0 -#define CONFIG_MP2FLOAT_DECODER 0 -#define CONFIG_MP3_DECODER 0 -#define CONFIG_MP3FLOAT_DECODER 0 -#define CONFIG_MP3ADU_DECODER 0 -#define CONFIG_MP3ADUFLOAT_DECODER 0 -#define CONFIG_MP3ON4_DECODER 0 -#define CONFIG_MP3ON4FLOAT_DECODER 0 -#define CONFIG_MPC7_DECODER 0 -#define CONFIG_MPC8_DECODER 0 -#define CONFIG_NELLYMOSER_DECODER 0 -#define CONFIG_ON2AVC_DECODER 0 -#define CONFIG_OPUS_DECODER 0 -#define CONFIG_PAF_AUDIO_DECODER 0 -#define CONFIG_QCELP_DECODER 0 -#define CONFIG_QDM2_DECODER 0 -#define CONFIG_RA_144_DECODER 0 -#define CONFIG_RA_288_DECODER 0 -#define CONFIG_RALF_DECODER 0 -#define CONFIG_SHORTEN_DECODER 0 -#define CONFIG_SIPR_DECODER 0 -#define CONFIG_SMACKAUD_DECODER 0 -#define CONFIG_SONIC_DECODER 0 -#define CONFIG_TAK_DECODER 0 -#define CONFIG_TRUEHD_DECODER 0 -#define CONFIG_TRUESPEECH_DECODER 0 -#define CONFIG_TTA_DECODER 0 -#define CONFIG_TWINVQ_DECODER 0 -#define CONFIG_VMDAUDIO_DECODER 0 -#define CONFIG_VORBIS_DECODER 0 -#define CONFIG_WAVPACK_DECODER 0 -#define CONFIG_WMALOSSLESS_DECODER 0 -#define CONFIG_WMAPRO_DECODER 0 -#define CONFIG_WMAV1_DECODER 0 -#define CONFIG_WMAV2_DECODER 0 -#define CONFIG_WMAVOICE_DECODER 0 -#define CONFIG_WS_SND1_DECODER 0 -#define CONFIG_XMA1_DECODER 0 -#define CONFIG_XMA2_DECODER 0 -#define CONFIG_PCM_ALAW_DECODER 0 -#define CONFIG_PCM_BLURAY_DECODER 0 -#define CONFIG_PCM_DVD_DECODER 0 -#define CONFIG_PCM_F32BE_DECODER 0 -#define CONFIG_PCM_F32LE_DECODER 0 -#define CONFIG_PCM_F64BE_DECODER 0 -#define CONFIG_PCM_F64LE_DECODER 0 -#define CONFIG_PCM_LXF_DECODER 0 -#define CONFIG_PCM_MULAW_DECODER 0 -#define CONFIG_PCM_S8_DECODER 0 -#define CONFIG_PCM_S8_PLANAR_DECODER 0 -#define CONFIG_PCM_S16BE_DECODER 0 -#define CONFIG_PCM_S16BE_PLANAR_DECODER 0 -#define CONFIG_PCM_S16LE_DECODER 0 -#define CONFIG_PCM_S16LE_PLANAR_DECODER 0 -#define CONFIG_PCM_S24BE_DECODER 0 -#define CONFIG_PCM_S24DAUD_DECODER 0 -#define CONFIG_PCM_S24LE_DECODER 0 -#define CONFIG_PCM_S24LE_PLANAR_DECODER 0 -#define CONFIG_PCM_S32BE_DECODER 0 -#define CONFIG_PCM_S32LE_DECODER 0 -#define CONFIG_PCM_S32LE_PLANAR_DECODER 0 -#define CONFIG_PCM_S64BE_DECODER 0 -#define CONFIG_PCM_S64LE_DECODER 0 -#define CONFIG_PCM_U8_DECODER 0 -#define CONFIG_PCM_U16BE_DECODER 0 -#define CONFIG_PCM_U16LE_DECODER 0 -#define CONFIG_PCM_U24BE_DECODER 0 -#define CONFIG_PCM_U24LE_DECODER 0 -#define CONFIG_PCM_U32BE_DECODER 0 -#define CONFIG_PCM_U32LE_DECODER 0 -#define CONFIG_PCM_ZORK_DECODER 0 -#define CONFIG_INTERPLAY_DPCM_DECODER 0 -#define CONFIG_ROQ_DPCM_DECODER 0 -#define CONFIG_SOL_DPCM_DECODER 0 -#define CONFIG_XAN_DPCM_DECODER 0 -#define CONFIG_ADPCM_4XM_DECODER 0 -#define CONFIG_ADPCM_ADX_DECODER 0 -#define CONFIG_ADPCM_AFC_DECODER 0 -#define CONFIG_ADPCM_AICA_DECODER 0 -#define CONFIG_ADPCM_CT_DECODER 0 -#define CONFIG_ADPCM_DTK_DECODER 0 -#define CONFIG_ADPCM_EA_DECODER 0 -#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0 -#define CONFIG_ADPCM_EA_R1_DECODER 0 -#define CONFIG_ADPCM_EA_R2_DECODER 0 -#define CONFIG_ADPCM_EA_R3_DECODER 0 -#define CONFIG_ADPCM_EA_XAS_DECODER 0 -#define CONFIG_ADPCM_G722_DECODER 0 -#define CONFIG_ADPCM_G726_DECODER 0 -#define CONFIG_ADPCM_G726LE_DECODER 0 -#define CONFIG_ADPCM_IMA_AMV_DECODER 0 -#define CONFIG_ADPCM_IMA_APC_DECODER 0 -#define CONFIG_ADPCM_IMA_DAT4_DECODER 0 -#define CONFIG_ADPCM_IMA_DK3_DECODER 0 -#define CONFIG_ADPCM_IMA_DK4_DECODER 0 -#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0 -#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0 -#define CONFIG_ADPCM_IMA_ISS_DECODER 0 -#define CONFIG_ADPCM_IMA_OKI_DECODER 0 -#define CONFIG_ADPCM_IMA_QT_DECODER 0 -#define CONFIG_ADPCM_IMA_RAD_DECODER 0 -#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0 -#define CONFIG_ADPCM_IMA_WAV_DECODER 0 -#define CONFIG_ADPCM_IMA_WS_DECODER 0 -#define CONFIG_ADPCM_MS_DECODER 0 -#define CONFIG_ADPCM_MTAF_DECODER 0 -#define CONFIG_ADPCM_PSX_DECODER 0 -#define CONFIG_ADPCM_SBPRO_2_DECODER 0 -#define CONFIG_ADPCM_SBPRO_3_DECODER 0 -#define CONFIG_ADPCM_SBPRO_4_DECODER 0 -#define CONFIG_ADPCM_SWF_DECODER 0 -#define CONFIG_ADPCM_THP_DECODER 0 -#define CONFIG_ADPCM_THP_LE_DECODER 0 -#define CONFIG_ADPCM_VIMA_DECODER 0 -#define CONFIG_ADPCM_XA_DECODER 0 -#define CONFIG_ADPCM_YAMAHA_DECODER 0 -#define CONFIG_SSA_DECODER 0 -#define CONFIG_ASS_DECODER 0 -#define CONFIG_CCAPTION_DECODER 0 -#define CONFIG_DVBSUB_DECODER 0 -#define CONFIG_DVDSUB_DECODER 0 -#define CONFIG_JACOSUB_DECODER 0 -#define CONFIG_MICRODVD_DECODER 0 -#define CONFIG_MOVTEXT_DECODER 0 -#define CONFIG_MPL2_DECODER 0 -#define CONFIG_PGSSUB_DECODER 0 -#define CONFIG_PJS_DECODER 0 -#define CONFIG_REALTEXT_DECODER 0 -#define CONFIG_SAMI_DECODER 0 -#define CONFIG_SRT_DECODER 0 -#define CONFIG_STL_DECODER 0 -#define CONFIG_SUBRIP_DECODER 0 -#define CONFIG_SUBVIEWER_DECODER 0 -#define CONFIG_SUBVIEWER1_DECODER 0 -#define CONFIG_TEXT_DECODER 0 -#define CONFIG_VPLAYER_DECODER 0 -#define CONFIG_WEBVTT_DECODER 0 -#define CONFIG_XSUB_DECODER 0 -#define CONFIG_AAC_AT_DECODER 0 -#define CONFIG_AC3_AT_DECODER 0 -#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 -#define CONFIG_ALAC_AT_DECODER 0 -#define CONFIG_AMR_NB_AT_DECODER 0 -#define CONFIG_EAC3_AT_DECODER 0 -#define CONFIG_GSM_MS_AT_DECODER 0 -#define CONFIG_ILBC_AT_DECODER 0 -#define CONFIG_MP1_AT_DECODER 0 -#define CONFIG_MP2_AT_DECODER 0 -#define CONFIG_MP3_AT_DECODER 0 -#define CONFIG_PCM_ALAW_AT_DECODER 0 -#define CONFIG_PCM_MULAW_AT_DECODER 0 -#define CONFIG_QDMC_AT_DECODER 0 -#define CONFIG_QDM2_AT_DECODER 0 -#define CONFIG_LIBCELT_DECODER 0 -#define CONFIG_LIBFDK_AAC_DECODER 0 -#define CONFIG_LIBGSM_DECODER 0 -#define CONFIG_LIBGSM_MS_DECODER 0 -#define CONFIG_LIBILBC_DECODER 0 -#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 -#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 -#define CONFIG_LIBOPENJPEG_DECODER 0 -#define CONFIG_LIBOPUS_DECODER 0 -#define CONFIG_LIBSCHROEDINGER_DECODER 0 -#define CONFIG_LIBSPEEX_DECODER 0 -#define CONFIG_LIBVORBIS_DECODER 0 -#define CONFIG_LIBVPX_VP8_DECODER 0 -#define CONFIG_LIBVPX_VP9_DECODER 0 -#define CONFIG_LIBZVBI_TELETEXT_DECODER 0 -#define CONFIG_BINTEXT_DECODER 0 -#define CONFIG_XBIN_DECODER 0 -#define CONFIG_IDF_DECODER 0 -#define CONFIG_LIBOPENH264_DECODER 0 -#define CONFIG_H263_CUVID_DECODER 0 -#define CONFIG_H264_CUVID_DECODER 0 -#define CONFIG_HEVC_CUVID_DECODER 0 -#define CONFIG_HEVC_MEDIACODEC_DECODER 0 -#define CONFIG_MJPEG_CUVID_DECODER 0 -#define CONFIG_MPEG1_CUVID_DECODER 0 -#define CONFIG_MPEG2_CUVID_DECODER 0 -#define CONFIG_MPEG4_CUVID_DECODER 0 -#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 -#define CONFIG_VC1_CUVID_DECODER 0 -#define CONFIG_VP8_CUVID_DECODER 0 -#define CONFIG_VP8_MEDIACODEC_DECODER 0 -#define CONFIG_VP9_CUVID_DECODER 0 -#define CONFIG_VP9_MEDIACODEC_DECODER 0 -#define CONFIG_AA_DEMUXER 0 -#define CONFIG_AAC_DEMUXER 1 -#define CONFIG_AC3_DEMUXER 0 -#define CONFIG_ACM_DEMUXER 0 -#define CONFIG_ACT_DEMUXER 0 -#define CONFIG_ADF_DEMUXER 0 -#define CONFIG_ADP_DEMUXER 0 -#define CONFIG_ADS_DEMUXER 0 -#define CONFIG_ADX_DEMUXER 0 -#define CONFIG_AEA_DEMUXER 0 -#define CONFIG_AFC_DEMUXER 0 -#define CONFIG_AIFF_DEMUXER 0 -#define CONFIG_AIX_DEMUXER 0 -#define CONFIG_AMR_DEMUXER 0 -#define CONFIG_ANM_DEMUXER 0 -#define CONFIG_APC_DEMUXER 0 -#define CONFIG_APE_DEMUXER 0 -#define CONFIG_APNG_DEMUXER 0 -#define CONFIG_AQTITLE_DEMUXER 0 -#define CONFIG_ASF_DEMUXER 0 -#define CONFIG_ASF_O_DEMUXER 0 -#define CONFIG_ASS_DEMUXER 0 -#define CONFIG_AST_DEMUXER 0 -#define CONFIG_AU_DEMUXER 0 -#define CONFIG_AVI_DEMUXER 1 -#define CONFIG_AVISYNTH_DEMUXER 0 -#define CONFIG_AVR_DEMUXER 0 -#define CONFIG_AVS_DEMUXER 0 -#define CONFIG_BETHSOFTVID_DEMUXER 0 -#define CONFIG_BFI_DEMUXER 0 -#define CONFIG_BINTEXT_DEMUXER 0 -#define CONFIG_BINK_DEMUXER 0 -#define CONFIG_BIT_DEMUXER 0 -#define CONFIG_BMV_DEMUXER 0 -#define CONFIG_BFSTM_DEMUXER 0 -#define CONFIG_BRSTM_DEMUXER 0 -#define CONFIG_BOA_DEMUXER 0 -#define CONFIG_C93_DEMUXER 0 -#define CONFIG_CAF_DEMUXER 0 -#define CONFIG_CAVSVIDEO_DEMUXER 0 -#define CONFIG_CDG_DEMUXER 0 -#define CONFIG_CDXL_DEMUXER 0 -#define CONFIG_CINE_DEMUXER 0 -#define CONFIG_CONCAT_DEMUXER 0 -#define CONFIG_DATA_DEMUXER 0 -#define CONFIG_DAUD_DEMUXER 0 -#define CONFIG_DCSTR_DEMUXER 0 -#define CONFIG_DFA_DEMUXER 0 -#define CONFIG_DIRAC_DEMUXER 0 -#define CONFIG_DNXHD_DEMUXER 0 -#define CONFIG_DSF_DEMUXER 0 -#define CONFIG_DSICIN_DEMUXER 0 -#define CONFIG_DSS_DEMUXER 0 -#define CONFIG_DTS_DEMUXER 0 -#define CONFIG_DTSHD_DEMUXER 0 -#define CONFIG_DV_DEMUXER 0 -#define CONFIG_DVBSUB_DEMUXER 0 -#define CONFIG_DVBTXT_DEMUXER 0 -#define CONFIG_DXA_DEMUXER 0 -#define CONFIG_EA_DEMUXER 0 -#define CONFIG_EA_CDATA_DEMUXER 0 -#define CONFIG_EAC3_DEMUXER 0 -#define CONFIG_EPAF_DEMUXER 0 -#define CONFIG_FFM_DEMUXER 0 -#define CONFIG_FFMETADATA_DEMUXER 0 -#define CONFIG_FILMSTRIP_DEMUXER 0 -#define CONFIG_FLAC_DEMUXER 0 -#define CONFIG_FLIC_DEMUXER 0 -#define CONFIG_FLV_DEMUXER 0 -#define CONFIG_LIVE_FLV_DEMUXER 0 -#define CONFIG_FOURXM_DEMUXER 0 -#define CONFIG_FRM_DEMUXER 0 -#define CONFIG_FSB_DEMUXER 0 -#define CONFIG_G722_DEMUXER 0 -#define CONFIG_G723_1_DEMUXER 0 -#define CONFIG_G729_DEMUXER 0 -#define CONFIG_GENH_DEMUXER 0 -#define CONFIG_GIF_DEMUXER 0 -#define CONFIG_GSM_DEMUXER 0 -#define CONFIG_GXF_DEMUXER 0 -#define CONFIG_H261_DEMUXER 0 -#define CONFIG_H263_DEMUXER 0 -#define CONFIG_H264_DEMUXER 1 -#define CONFIG_HEVC_DEMUXER 0 -#define CONFIG_HLS_DEMUXER 0 -#define CONFIG_HNM_DEMUXER 0 -#define CONFIG_ICO_DEMUXER 0 -#define CONFIG_IDCIN_DEMUXER 0 -#define CONFIG_IDF_DEMUXER 0 -#define CONFIG_IFF_DEMUXER 0 -#define CONFIG_ILBC_DEMUXER 0 -#define CONFIG_IMAGE2_DEMUXER 0 -#define CONFIG_IMAGE2PIPE_DEMUXER 0 -#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 -#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 -#define CONFIG_INGENIENT_DEMUXER 0 -#define CONFIG_IPMOVIE_DEMUXER 0 -#define CONFIG_IRCAM_DEMUXER 0 -#define CONFIG_ISS_DEMUXER 0 -#define CONFIG_IV8_DEMUXER 0 -#define CONFIG_IVF_DEMUXER 0 -#define CONFIG_IVR_DEMUXER 0 -#define CONFIG_JACOSUB_DEMUXER 0 -#define CONFIG_JV_DEMUXER 0 -#define CONFIG_LMLM4_DEMUXER 0 -#define CONFIG_LOAS_DEMUXER 0 -#define CONFIG_LRC_DEMUXER 0 -#define CONFIG_LVF_DEMUXER 0 -#define CONFIG_LXF_DEMUXER 0 -#define CONFIG_M4V_DEMUXER 0 -#define CONFIG_MATROSKA_DEMUXER 0 -#define CONFIG_MGSTS_DEMUXER 0 -#define CONFIG_MICRODVD_DEMUXER 0 -#define CONFIG_MJPEG_DEMUXER 0 -#define CONFIG_MLP_DEMUXER 0 -#define CONFIG_MLV_DEMUXER 0 -#define CONFIG_MM_DEMUXER 0 -#define CONFIG_MMF_DEMUXER 0 -#define CONFIG_MOV_DEMUXER 1 -#define CONFIG_MP3_DEMUXER 0 -#define CONFIG_MPC_DEMUXER 1 -#define CONFIG_MPC8_DEMUXER 0 -#define CONFIG_MPEGPS_DEMUXER 0 -#define CONFIG_MPEGTS_DEMUXER 0 -#define CONFIG_MPEGTSRAW_DEMUXER 0 -#define CONFIG_MPEGVIDEO_DEMUXER 0 -#define CONFIG_MPJPEG_DEMUXER 0 -#define CONFIG_MPL2_DEMUXER 0 -#define CONFIG_MPSUB_DEMUXER 0 -#define CONFIG_MSF_DEMUXER 0 -#define CONFIG_MSNWC_TCP_DEMUXER 0 -#define CONFIG_MTAF_DEMUXER 0 -#define CONFIG_MTV_DEMUXER 0 -#define CONFIG_MUSX_DEMUXER 0 -#define CONFIG_MV_DEMUXER 0 -#define CONFIG_MVI_DEMUXER 0 -#define CONFIG_MXF_DEMUXER 0 -#define CONFIG_MXG_DEMUXER 0 -#define CONFIG_NC_DEMUXER 0 -#define CONFIG_NISTSPHERE_DEMUXER 0 -#define CONFIG_NSV_DEMUXER 0 -#define CONFIG_NUT_DEMUXER 0 -#define CONFIG_NUV_DEMUXER 0 -#define CONFIG_OGG_DEMUXER 0 -#define CONFIG_OMA_DEMUXER 0 -#define CONFIG_PAF_DEMUXER 0 -#define CONFIG_PCM_ALAW_DEMUXER 0 -#define CONFIG_PCM_MULAW_DEMUXER 0 -#define CONFIG_PCM_F64BE_DEMUXER 0 -#define CONFIG_PCM_F64LE_DEMUXER 0 -#define CONFIG_PCM_F32BE_DEMUXER 0 -#define CONFIG_PCM_F32LE_DEMUXER 0 -#define CONFIG_PCM_S32BE_DEMUXER 0 -#define CONFIG_PCM_S32LE_DEMUXER 0 -#define CONFIG_PCM_S24BE_DEMUXER 0 -#define CONFIG_PCM_S24LE_DEMUXER 0 -#define CONFIG_PCM_S16BE_DEMUXER 0 -#define CONFIG_PCM_S16LE_DEMUXER 0 -#define CONFIG_PCM_S8_DEMUXER 0 -#define CONFIG_PCM_U32BE_DEMUXER 0 -#define CONFIG_PCM_U32LE_DEMUXER 0 -#define CONFIG_PCM_U24BE_DEMUXER 0 -#define CONFIG_PCM_U24LE_DEMUXER 0 -#define CONFIG_PCM_U16BE_DEMUXER 0 -#define CONFIG_PCM_U16LE_DEMUXER 0 -#define CONFIG_PCM_U8_DEMUXER 0 -#define CONFIG_PJS_DEMUXER 0 -#define CONFIG_PMP_DEMUXER 0 -#define CONFIG_PVA_DEMUXER 0 -#define CONFIG_PVF_DEMUXER 0 -#define CONFIG_QCP_DEMUXER 0 -#define CONFIG_R3D_DEMUXER 0 -#define CONFIG_RAWVIDEO_DEMUXER 0 -#define CONFIG_REALTEXT_DEMUXER 0 -#define CONFIG_REDSPARK_DEMUXER 0 -#define CONFIG_RL2_DEMUXER 0 -#define CONFIG_RM_DEMUXER 0 -#define CONFIG_ROQ_DEMUXER 0 -#define CONFIG_RPL_DEMUXER 0 -#define CONFIG_RSD_DEMUXER 0 -#define CONFIG_RSO_DEMUXER 0 -#define CONFIG_RTP_DEMUXER 0 -#define CONFIG_RTSP_DEMUXER 0 -#define CONFIG_SAMI_DEMUXER 0 -#define CONFIG_SAP_DEMUXER 0 -#define CONFIG_SBG_DEMUXER 0 -#define CONFIG_SDP_DEMUXER 0 -#define CONFIG_SDR2_DEMUXER 0 -#define CONFIG_SEGAFILM_DEMUXER 0 -#define CONFIG_SHORTEN_DEMUXER 0 -#define CONFIG_SIFF_DEMUXER 0 -#define CONFIG_SLN_DEMUXER 0 -#define CONFIG_SMACKER_DEMUXER 0 -#define CONFIG_SMJPEG_DEMUXER 0 -#define CONFIG_SMUSH_DEMUXER 0 -#define CONFIG_SOL_DEMUXER 0 -#define CONFIG_SOX_DEMUXER 0 -#define CONFIG_SPDIF_DEMUXER 0 -#define CONFIG_SRT_DEMUXER 0 -#define CONFIG_STR_DEMUXER 0 -#define CONFIG_STL_DEMUXER 0 -#define CONFIG_SUBVIEWER1_DEMUXER 0 -#define CONFIG_SUBVIEWER_DEMUXER 0 -#define CONFIG_SUP_DEMUXER 0 -#define CONFIG_SVAG_DEMUXER 0 -#define CONFIG_SWF_DEMUXER 0 -#define CONFIG_TAK_DEMUXER 0 -#define CONFIG_TEDCAPTIONS_DEMUXER 0 -#define CONFIG_THP_DEMUXER 0 -#define CONFIG_THREEDOSTR_DEMUXER 0 -#define CONFIG_TIERTEXSEQ_DEMUXER 0 -#define CONFIG_TMV_DEMUXER 0 -#define CONFIG_TRUEHD_DEMUXER 0 -#define CONFIG_TTA_DEMUXER 0 -#define CONFIG_TXD_DEMUXER 0 -#define CONFIG_TTY_DEMUXER 0 -#define CONFIG_V210_DEMUXER 0 -#define CONFIG_V210X_DEMUXER 0 -#define CONFIG_VAG_DEMUXER 0 -#define CONFIG_VC1_DEMUXER 0 -#define CONFIG_VC1T_DEMUXER 0 -#define CONFIG_VIVO_DEMUXER 0 -#define CONFIG_VMD_DEMUXER 0 -#define CONFIG_VOBSUB_DEMUXER 0 -#define CONFIG_VOC_DEMUXER 0 -#define CONFIG_VPK_DEMUXER 0 -#define CONFIG_VPLAYER_DEMUXER 0 -#define CONFIG_VQF_DEMUXER 0 -#define CONFIG_W64_DEMUXER 0 -#define CONFIG_WAV_DEMUXER 0 -#define CONFIG_WC3_DEMUXER 0 -#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 -#define CONFIG_WEBVTT_DEMUXER 0 -#define CONFIG_WSAUD_DEMUXER 0 -#define CONFIG_WSD_DEMUXER 0 -#define CONFIG_WSVQA_DEMUXER 0 -#define CONFIG_WTV_DEMUXER 0 -#define CONFIG_WVE_DEMUXER 0 -#define CONFIG_WV_DEMUXER 0 -#define CONFIG_XA_DEMUXER 0 -#define CONFIG_XBIN_DEMUXER 0 -#define CONFIG_XMV_DEMUXER 0 -#define CONFIG_XVAG_DEMUXER 0 -#define CONFIG_XWMA_DEMUXER 0 -#define CONFIG_YOP_DEMUXER 0 -#define CONFIG_YUV4MPEGPIPE_DEMUXER 0 -#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 -#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 -#define CONFIG_LIBGME_DEMUXER 0 -#define CONFIG_LIBMODPLUG_DEMUXER 0 -#define CONFIG_LIBNUT_DEMUXER 0 -#define CONFIG_LIBOPENMPT_DEMUXER 0 -#define CONFIG_A64MULTI_ENCODER 0 -#define CONFIG_A64MULTI5_ENCODER 0 -#define CONFIG_ALIAS_PIX_ENCODER 0 -#define CONFIG_AMV_ENCODER 0 -#define CONFIG_APNG_ENCODER 0 -#define CONFIG_ASV1_ENCODER 0 -#define CONFIG_ASV2_ENCODER 0 -#define CONFIG_AVRP_ENCODER 0 -#define CONFIG_AVUI_ENCODER 0 -#define CONFIG_AYUV_ENCODER 0 -#define CONFIG_BMP_ENCODER 0 -#define CONFIG_CINEPAK_ENCODER 0 -#define CONFIG_CLJR_ENCODER 0 -#define CONFIG_COMFORTNOISE_ENCODER 0 -#define CONFIG_DNXHD_ENCODER 0 -#define CONFIG_DPX_ENCODER 0 -#define CONFIG_DVVIDEO_ENCODER 0 -#define CONFIG_FFV1_ENCODER 0 -#define CONFIG_FFVHUFF_ENCODER 0 -#define CONFIG_FLASHSV_ENCODER 0 -#define CONFIG_FLASHSV2_ENCODER 0 -#define CONFIG_FLV_ENCODER 0 -#define CONFIG_GIF_ENCODER 0 -#define CONFIG_H261_ENCODER 0 -#define CONFIG_H263_ENCODER 0 -#define CONFIG_H263P_ENCODER 0 -#define CONFIG_HAP_ENCODER 0 -#define CONFIG_HUFFYUV_ENCODER 0 -#define CONFIG_JPEG2000_ENCODER 0 -#define CONFIG_JPEGLS_ENCODER 0 -#define CONFIG_LJPEG_ENCODER 0 -#define CONFIG_MJPEG_ENCODER 0 -#define CONFIG_MPEG1VIDEO_ENCODER 0 -#define CONFIG_MPEG2VIDEO_ENCODER 0 -#define CONFIG_MPEG4_ENCODER 0 -#define CONFIG_MSMPEG4V2_ENCODER 0 -#define CONFIG_MSMPEG4V3_ENCODER 0 -#define CONFIG_MSVIDEO1_ENCODER 0 -#define CONFIG_PAM_ENCODER 0 -#define CONFIG_PBM_ENCODER 0 -#define CONFIG_PCX_ENCODER 0 -#define CONFIG_PGM_ENCODER 0 -#define CONFIG_PGMYUV_ENCODER 0 -#define CONFIG_PNG_ENCODER 0 -#define CONFIG_PPM_ENCODER 0 -#define CONFIG_PRORES_ENCODER 0 -#define CONFIG_PRORES_AW_ENCODER 0 -#define CONFIG_PRORES_KS_ENCODER 0 -#define CONFIG_QTRLE_ENCODER 0 -#define CONFIG_R10K_ENCODER 0 -#define CONFIG_R210_ENCODER 0 -#define CONFIG_RAWVIDEO_ENCODER 0 -#define CONFIG_ROQ_ENCODER 0 -#define CONFIG_RV10_ENCODER 0 -#define CONFIG_RV20_ENCODER 0 -#define CONFIG_S302M_ENCODER 0 -#define CONFIG_SGI_ENCODER 0 -#define CONFIG_SNOW_ENCODER 0 -#define CONFIG_SUNRAST_ENCODER 0 -#define CONFIG_SVQ1_ENCODER 0 -#define CONFIG_TARGA_ENCODER 0 -#define CONFIG_TIFF_ENCODER 0 -#define CONFIG_UTVIDEO_ENCODER 0 -#define CONFIG_V210_ENCODER 0 -#define CONFIG_V308_ENCODER 0 -#define CONFIG_V408_ENCODER 0 -#define CONFIG_V410_ENCODER 0 -#define CONFIG_VC2_ENCODER 0 -#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 -#define CONFIG_WMV1_ENCODER 0 -#define CONFIG_WMV2_ENCODER 0 -#define CONFIG_XBM_ENCODER 0 -#define CONFIG_XFACE_ENCODER 0 -#define CONFIG_XWD_ENCODER 0 -#define CONFIG_Y41P_ENCODER 0 -#define CONFIG_YUV4_ENCODER 0 -#define CONFIG_ZLIB_ENCODER 0 -#define CONFIG_ZMBV_ENCODER 0 -#define CONFIG_AAC_ENCODER 0 -#define CONFIG_AC3_ENCODER 0 -#define CONFIG_AC3_FIXED_ENCODER 0 -#define CONFIG_ALAC_ENCODER 0 -#define CONFIG_DCA_ENCODER 0 -#define CONFIG_EAC3_ENCODER 0 -#define CONFIG_FLAC_ENCODER 0 -#define CONFIG_G723_1_ENCODER 0 -#define CONFIG_MLP_ENCODER 0 -#define CONFIG_MP2_ENCODER 0 -#define CONFIG_MP2FIXED_ENCODER 0 -#define CONFIG_NELLYMOSER_ENCODER 0 -#define CONFIG_RA_144_ENCODER 0 -#define CONFIG_SONIC_ENCODER 0 -#define CONFIG_SONIC_LS_ENCODER 0 -#define CONFIG_TRUEHD_ENCODER 0 -#define CONFIG_TTA_ENCODER 0 -#define CONFIG_VORBIS_ENCODER 0 -#define CONFIG_WAVPACK_ENCODER 0 -#define CONFIG_WMAV1_ENCODER 0 -#define CONFIG_WMAV2_ENCODER 0 -#define CONFIG_PCM_ALAW_ENCODER 0 -#define CONFIG_PCM_F32BE_ENCODER 0 -#define CONFIG_PCM_F32LE_ENCODER 0 -#define CONFIG_PCM_F64BE_ENCODER 0 -#define CONFIG_PCM_F64LE_ENCODER 0 -#define CONFIG_PCM_MULAW_ENCODER 0 -#define CONFIG_PCM_S8_ENCODER 0 -#define CONFIG_PCM_S8_PLANAR_ENCODER 0 -#define CONFIG_PCM_S16BE_ENCODER 0 -#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S16LE_ENCODER 0 -#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S24BE_ENCODER 0 -#define CONFIG_PCM_S24DAUD_ENCODER 0 -#define CONFIG_PCM_S24LE_ENCODER 0 -#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S32BE_ENCODER 0 -#define CONFIG_PCM_S32LE_ENCODER 0 -#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 -#define CONFIG_PCM_S64BE_ENCODER 0 -#define CONFIG_PCM_S64LE_ENCODER 0 -#define CONFIG_PCM_U8_ENCODER 0 -#define CONFIG_PCM_U16BE_ENCODER 0 -#define CONFIG_PCM_U16LE_ENCODER 0 -#define CONFIG_PCM_U24BE_ENCODER 0 -#define CONFIG_PCM_U24LE_ENCODER 0 -#define CONFIG_PCM_U32BE_ENCODER 0 -#define CONFIG_PCM_U32LE_ENCODER 0 -#define CONFIG_ROQ_DPCM_ENCODER 0 -#define CONFIG_ADPCM_ADX_ENCODER 0 -#define CONFIG_ADPCM_G722_ENCODER 0 -#define CONFIG_ADPCM_G726_ENCODER 0 -#define CONFIG_ADPCM_IMA_QT_ENCODER 0 -#define CONFIG_ADPCM_IMA_WAV_ENCODER 0 -#define CONFIG_ADPCM_MS_ENCODER 0 -#define CONFIG_ADPCM_SWF_ENCODER 0 -#define CONFIG_ADPCM_YAMAHA_ENCODER 0 -#define CONFIG_SSA_ENCODER 0 -#define CONFIG_ASS_ENCODER 0 -#define CONFIG_DVBSUB_ENCODER 0 -#define CONFIG_DVDSUB_ENCODER 0 -#define CONFIG_MOVTEXT_ENCODER 0 -#define CONFIG_SRT_ENCODER 0 -#define CONFIG_SUBRIP_ENCODER 0 -#define CONFIG_TEXT_ENCODER 0 -#define CONFIG_WEBVTT_ENCODER 0 -#define CONFIG_XSUB_ENCODER 0 -#define CONFIG_AAC_AT_ENCODER 0 -#define CONFIG_ALAC_AT_ENCODER 0 -#define CONFIG_ILBC_AT_ENCODER 0 -#define CONFIG_PCM_ALAW_AT_ENCODER 0 -#define CONFIG_PCM_MULAW_AT_ENCODER 0 -#define CONFIG_LIBFDK_AAC_ENCODER 1 -#define CONFIG_LIBGSM_ENCODER 0 -#define CONFIG_LIBGSM_MS_ENCODER 0 -#define CONFIG_LIBILBC_ENCODER 0 -#define CONFIG_LIBMP3LAME_ENCODER 0 -#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 -#define CONFIG_LIBOPENJPEG_ENCODER 0 -#define CONFIG_LIBOPUS_ENCODER 0 -#define CONFIG_LIBSCHROEDINGER_ENCODER 0 -#define CONFIG_LIBSHINE_ENCODER 0 -#define CONFIG_LIBSPEEX_ENCODER 0 -#define CONFIG_LIBTHEORA_ENCODER 0 -#define CONFIG_LIBTWOLAME_ENCODER 0 -#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 -#define CONFIG_LIBVORBIS_ENCODER 0 -#define CONFIG_LIBVPX_VP8_ENCODER 0 -#define CONFIG_LIBVPX_VP9_ENCODER 0 -#define CONFIG_LIBWAVPACK_ENCODER 0 -#define CONFIG_LIBWEBP_ANIM_ENCODER 0 -#define CONFIG_LIBWEBP_ENCODER 0 -#define CONFIG_LIBX262_ENCODER 0 -#define CONFIG_LIBX264_ENCODER 1 -#define CONFIG_LIBX264RGB_ENCODER 0 -#define CONFIG_LIBX265_ENCODER 0 -#define CONFIG_LIBXAVS_ENCODER 0 -#define CONFIG_LIBXVID_ENCODER 0 -#define CONFIG_LIBOPENH264_ENCODER 0 -#define CONFIG_H264_NVENC_ENCODER 0 -#define CONFIG_H264_OMX_ENCODER 0 -#define CONFIG_H264_QSV_ENCODER 0 -#define CONFIG_H264_VAAPI_ENCODER 0 -#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 -#define CONFIG_NVENC_ENCODER 0 -#define CONFIG_NVENC_H264_ENCODER 0 -#define CONFIG_NVENC_HEVC_ENCODER 0 -#define CONFIG_HEVC_NVENC_ENCODER 0 -#define CONFIG_HEVC_QSV_ENCODER 0 -#define CONFIG_HEVC_VAAPI_ENCODER 0 -#define CONFIG_LIBKVAZAAR_ENCODER 0 -#define CONFIG_MJPEG_VAAPI_ENCODER 0 -#define CONFIG_MPEG2_QSV_ENCODER 0 -#define CONFIG_ABENCH_FILTER 1 -#define CONFIG_ACOMPRESSOR_FILTER 1 -#define CONFIG_ACROSSFADE_FILTER 1 -#define CONFIG_ACRUSHER_FILTER 1 -#define CONFIG_ADELAY_FILTER 1 -#define CONFIG_AECHO_FILTER 1 -#define CONFIG_AEMPHASIS_FILTER 1 -#define CONFIG_AEVAL_FILTER 1 -#define CONFIG_AFADE_FILTER 1 -#define CONFIG_AFFTFILT_FILTER 1 -#define CONFIG_AFORMAT_FILTER 1 -#define CONFIG_AGATE_FILTER 1 -#define CONFIG_AINTERLEAVE_FILTER 1 -#define CONFIG_ALIMITER_FILTER 1 -#define CONFIG_ALLPASS_FILTER 1 -#define CONFIG_ALOOP_FILTER 1 -#define CONFIG_AMERGE_FILTER 1 -#define CONFIG_AMETADATA_FILTER 1 -#define CONFIG_AMIX_FILTER 1 -#define CONFIG_ANEQUALIZER_FILTER 1 -#define CONFIG_ANULL_FILTER 1 -#define CONFIG_APAD_FILTER 1 -#define CONFIG_APERMS_FILTER 1 -#define CONFIG_APHASER_FILTER 1 -#define CONFIG_APULSATOR_FILTER 1 -#define CONFIG_AREALTIME_FILTER 1 -#define CONFIG_ARESAMPLE_FILTER 1 -#define CONFIG_AREVERSE_FILTER 1 -#define CONFIG_ASELECT_FILTER 1 -#define CONFIG_ASENDCMD_FILTER 1 -#define CONFIG_ASETNSAMPLES_FILTER 1 -#define CONFIG_ASETPTS_FILTER 1 -#define CONFIG_ASETRATE_FILTER 1 -#define CONFIG_ASETTB_FILTER 1 -#define CONFIG_ASHOWINFO_FILTER 1 -#define CONFIG_ASIDEDATA_FILTER 1 -#define CONFIG_ASPLIT_FILTER 1 -#define CONFIG_ASTATS_FILTER 1 -#define CONFIG_ASTREAMSELECT_FILTER 1 -#define CONFIG_ASYNCTS_FILTER 0 -#define CONFIG_ATEMPO_FILTER 1 -#define CONFIG_ATRIM_FILTER 1 -#define CONFIG_AZMQ_FILTER 0 -#define CONFIG_BANDPASS_FILTER 1 -#define CONFIG_BANDREJECT_FILTER 1 -#define CONFIG_BASS_FILTER 1 -#define CONFIG_BIQUAD_FILTER 1 -#define CONFIG_BS2B_FILTER 0 -#define CONFIG_CHANNELMAP_FILTER 1 -#define CONFIG_CHANNELSPLIT_FILTER 1 -#define CONFIG_CHORUS_FILTER 1 -#define CONFIG_COMPAND_FILTER 1 -#define CONFIG_COMPENSATIONDELAY_FILTER 1 -#define CONFIG_CRYSTALIZER_FILTER 1 -#define CONFIG_DCSHIFT_FILTER 1 -#define CONFIG_DYNAUDNORM_FILTER 1 -#define CONFIG_EARWAX_FILTER 1 -#define CONFIG_EBUR128_FILTER 1 -#define CONFIG_EQUALIZER_FILTER 1 -#define CONFIG_EXTRASTEREO_FILTER 1 -#define CONFIG_FIREQUALIZER_FILTER 1 -#define CONFIG_FLANGER_FILTER 1 -#define CONFIG_HDCD_FILTER 1 -#define CONFIG_HIGHPASS_FILTER 1 -#define CONFIG_JOIN_FILTER 1 -#define CONFIG_LADSPA_FILTER 0 -#define CONFIG_LOUDNORM_FILTER 0 -#define CONFIG_LOWPASS_FILTER 1 -#define CONFIG_PAN_FILTER 1 -#define CONFIG_REPLAYGAIN_FILTER 1 -#define CONFIG_RESAMPLE_FILTER 0 -#define CONFIG_RUBBERBAND_FILTER 0 -#define CONFIG_SIDECHAINCOMPRESS_FILTER 1 -#define CONFIG_SIDECHAINGATE_FILTER 1 -#define CONFIG_SILENCEDETECT_FILTER 1 -#define CONFIG_SILENCEREMOVE_FILTER 1 -#define CONFIG_SOFALIZER_FILTER 0 -#define CONFIG_STEREOTOOLS_FILTER 1 -#define CONFIG_STEREOWIDEN_FILTER 1 -#define CONFIG_TREBLE_FILTER 1 -#define CONFIG_TREMOLO_FILTER 1 -#define CONFIG_VIBRATO_FILTER 1 -#define CONFIG_VOLUME_FILTER 1 -#define CONFIG_VOLUMEDETECT_FILTER 1 -#define CONFIG_AEVALSRC_FILTER 1 -#define CONFIG_ANOISESRC_FILTER 1 -#define CONFIG_ANULLSRC_FILTER 1 -#define CONFIG_FLITE_FILTER 0 -#define CONFIG_SINE_FILTER 1 -#define CONFIG_ANULLSINK_FILTER 1 -#define CONFIG_ALPHAEXTRACT_FILTER 1 -#define CONFIG_ALPHAMERGE_FILTER 1 -#define CONFIG_ASS_FILTER 0 -#define CONFIG_ATADENOISE_FILTER 1 -#define CONFIG_AVGBLUR_FILTER 1 -#define CONFIG_BBOX_FILTER 1 -#define CONFIG_BENCH_FILTER 1 -#define CONFIG_BITPLANENOISE_FILTER 1 -#define CONFIG_BLACKDETECT_FILTER 1 -#define CONFIG_BLACKFRAME_FILTER 1 -#define CONFIG_BLEND_FILTER 1 -#define CONFIG_BOXBLUR_FILTER 1 -#define CONFIG_BWDIF_FILTER 1 -#define CONFIG_CHROMAKEY_FILTER 1 -#define CONFIG_CIESCOPE_FILTER 1 -#define CONFIG_CODECVIEW_FILTER 1 -#define CONFIG_COLORBALANCE_FILTER 1 -#define CONFIG_COLORCHANNELMIXER_FILTER 1 -#define CONFIG_COLORKEY_FILTER 1 -#define CONFIG_COLORLEVELS_FILTER 1 -#define CONFIG_COLORMATRIX_FILTER 1 -#define CONFIG_COLORSPACE_FILTER 1 -#define CONFIG_CONVOLUTION_FILTER 1 -#define CONFIG_COPY_FILTER 1 -#define CONFIG_COREIMAGE_FILTER 0 -#define CONFIG_COVER_RECT_FILTER 1 -#define CONFIG_CROP_FILTER 1 -#define CONFIG_CROPDETECT_FILTER 1 -#define CONFIG_CURVES_FILTER 1 -#define CONFIG_DATASCOPE_FILTER 1 -#define CONFIG_DCTDNOIZ_FILTER 1 -#define CONFIG_DEBAND_FILTER 1 -#define CONFIG_DECIMATE_FILTER 1 -#define CONFIG_DEFLATE_FILTER 1 -#define CONFIG_DEJUDDER_FILTER 1 -#define CONFIG_DELOGO_FILTER 1 -#define CONFIG_DESHAKE_FILTER 1 -#define CONFIG_DETELECINE_FILTER 1 -#define CONFIG_DILATION_FILTER 1 -#define CONFIG_DISPLACE_FILTER 1 -#define CONFIG_DRAWBOX_FILTER 1 -#define CONFIG_DRAWGRAPH_FILTER 1 -#define CONFIG_DRAWGRID_FILTER 1 -#define CONFIG_DRAWTEXT_FILTER 0 -#define CONFIG_EDGEDETECT_FILTER 1 -#define CONFIG_ELBG_FILTER 1 -#define CONFIG_EQ_FILTER 1 -#define CONFIG_EROSION_FILTER 1 -#define CONFIG_EXTRACTPLANES_FILTER 1 -#define CONFIG_FADE_FILTER 1 -#define CONFIG_FFTFILT_FILTER 1 -#define CONFIG_FIELD_FILTER 1 -#define CONFIG_FIELDHINT_FILTER 1 -#define CONFIG_FIELDMATCH_FILTER 1 -#define CONFIG_FIELDORDER_FILTER 1 -#define CONFIG_FIND_RECT_FILTER 1 -#define CONFIG_FORMAT_FILTER 1 -#define CONFIG_FPS_FILTER 1 -#define CONFIG_FRAMEPACK_FILTER 1 -#define CONFIG_FRAMERATE_FILTER 1 -#define CONFIG_FRAMESTEP_FILTER 1 -#define CONFIG_FREI0R_FILTER 0 -#define CONFIG_FSPP_FILTER 1 -#define CONFIG_GBLUR_FILTER 1 -#define CONFIG_GEQ_FILTER 1 -#define CONFIG_GRADFUN_FILTER 1 -#define CONFIG_HALDCLUT_FILTER 1 -#define CONFIG_HFLIP_FILTER 1 -#define CONFIG_HISTEQ_FILTER 1 -#define CONFIG_HISTOGRAM_FILTER 1 -#define CONFIG_HQDN3D_FILTER 1 -#define CONFIG_HQX_FILTER 1 -#define CONFIG_HSTACK_FILTER 1 -#define CONFIG_HUE_FILTER 1 -#define CONFIG_HWDOWNLOAD_FILTER 1 -#define CONFIG_HWUPLOAD_FILTER 1 -#define CONFIG_HWUPLOAD_CUDA_FILTER 0 -#define CONFIG_HYSTERESIS_FILTER 1 -#define CONFIG_IDET_FILTER 1 -#define CONFIG_IL_FILTER 1 -#define CONFIG_INFLATE_FILTER 1 -#define CONFIG_INTERLACE_FILTER 1 -#define CONFIG_INTERLEAVE_FILTER 1 -#define CONFIG_KERNDEINT_FILTER 1 -#define CONFIG_LENSCORRECTION_FILTER 1 -#define CONFIG_LOOP_FILTER 1 -#define CONFIG_LUT_FILTER 1 -#define CONFIG_LUT2_FILTER 1 -#define CONFIG_LUT3D_FILTER 1 -#define CONFIG_LUTRGB_FILTER 1 -#define CONFIG_LUTYUV_FILTER 1 -#define CONFIG_MASKEDCLAMP_FILTER 1 -#define CONFIG_MASKEDMERGE_FILTER 1 -#define CONFIG_MCDEINT_FILTER 1 -#define CONFIG_MERGEPLANES_FILTER 1 -#define CONFIG_MESTIMATE_FILTER 1 -#define CONFIG_METADATA_FILTER 1 -#define CONFIG_MINTERPOLATE_FILTER 1 -#define CONFIG_MPDECIMATE_FILTER 1 -#define CONFIG_NEGATE_FILTER 1 -#define CONFIG_NLMEANS_FILTER 1 -#define CONFIG_NNEDI_FILTER 1 -#define CONFIG_NOFORMAT_FILTER 1 -#define CONFIG_NOISE_FILTER 1 -#define CONFIG_NULL_FILTER 1 -#define CONFIG_OCR_FILTER 0 -#define CONFIG_OCV_FILTER 0 -#define CONFIG_OVERLAY_FILTER 1 -#define CONFIG_OWDENOISE_FILTER 1 -#define CONFIG_PAD_FILTER 1 -#define CONFIG_PALETTEGEN_FILTER 1 -#define CONFIG_PALETTEUSE_FILTER 1 -#define CONFIG_PERMS_FILTER 1 -#define CONFIG_PERSPECTIVE_FILTER 1 -#define CONFIG_PHASE_FILTER 1 -#define CONFIG_PIXDESCTEST_FILTER 1 -#define CONFIG_PP_FILTER 0 -#define CONFIG_PP7_FILTER 1 -#define CONFIG_PREWITT_FILTER 1 -#define CONFIG_PSNR_FILTER 1 -#define CONFIG_PULLUP_FILTER 1 -#define CONFIG_QP_FILTER 1 -#define CONFIG_RANDOM_FILTER 1 -#define CONFIG_READVITC_FILTER 1 -#define CONFIG_REALTIME_FILTER 1 -#define CONFIG_REMAP_FILTER 1 -#define CONFIG_REMOVEGRAIN_FILTER 1 -#define CONFIG_REMOVELOGO_FILTER 1 -#define CONFIG_REPEATFIELDS_FILTER 1 -#define CONFIG_REVERSE_FILTER 1 -#define CONFIG_ROTATE_FILTER 1 -#define CONFIG_SAB_FILTER 1 -#define CONFIG_SCALE_FILTER 1 -#define CONFIG_SCALE_NPP_FILTER 0 -#define CONFIG_SCALE_VAAPI_FILTER 0 -#define CONFIG_SCALE2REF_FILTER 1 -#define CONFIG_SELECT_FILTER 1 -#define CONFIG_SELECTIVECOLOR_FILTER 1 -#define CONFIG_SENDCMD_FILTER 1 -#define CONFIG_SEPARATEFIELDS_FILTER 1 -#define CONFIG_SETDAR_FILTER 1 -#define CONFIG_SETFIELD_FILTER 1 -#define CONFIG_SETPTS_FILTER 1 -#define CONFIG_SETSAR_FILTER 1 -#define CONFIG_SETTB_FILTER 1 -#define CONFIG_SHOWINFO_FILTER 1 -#define CONFIG_SHOWPALETTE_FILTER 1 -#define CONFIG_SHUFFLEFRAMES_FILTER 1 -#define CONFIG_SHUFFLEPLANES_FILTER 1 -#define CONFIG_SIDEDATA_FILTER 1 -#define CONFIG_SIGNALSTATS_FILTER 1 -#define CONFIG_SMARTBLUR_FILTER 1 -#define CONFIG_SOBEL_FILTER 1 -#define CONFIG_SPLIT_FILTER 1 -#define CONFIG_SPP_FILTER 1 -#define CONFIG_SSIM_FILTER 1 -#define CONFIG_STEREO3D_FILTER 1 -#define CONFIG_STREAMSELECT_FILTER 1 -#define CONFIG_SUBTITLES_FILTER 0 -#define CONFIG_SUPER2XSAI_FILTER 1 -#define CONFIG_SWAPRECT_FILTER 1 -#define CONFIG_SWAPUV_FILTER 1 -#define CONFIG_TBLEND_FILTER 1 -#define CONFIG_TELECINE_FILTER 1 -#define CONFIG_THUMBNAIL_FILTER 1 -#define CONFIG_TILE_FILTER 1 -#define CONFIG_TINTERLACE_FILTER 1 -#define CONFIG_TRANSPOSE_FILTER 1 -#define CONFIG_TRIM_FILTER 1 -#define CONFIG_UNSHARP_FILTER 1 -#define CONFIG_USPP_FILTER 1 -#define CONFIG_VAGUEDENOISER_FILTER 1 -#define CONFIG_VECTORSCOPE_FILTER 1 -#define CONFIG_VFLIP_FILTER 1 -#define CONFIG_VIDSTABDETECT_FILTER 0 -#define CONFIG_VIDSTABTRANSFORM_FILTER 0 -#define CONFIG_VIGNETTE_FILTER 1 -#define CONFIG_VSTACK_FILTER 1 -#define CONFIG_W3FDIF_FILTER 1 -#define CONFIG_WAVEFORM_FILTER 1 -#define CONFIG_WEAVE_FILTER 1 -#define CONFIG_XBR_FILTER 1 -#define CONFIG_YADIF_FILTER 1 -#define CONFIG_ZMQ_FILTER 0 -#define CONFIG_ZOOMPAN_FILTER 1 -#define CONFIG_ZSCALE_FILTER 0 -#define CONFIG_ALLRGB_FILTER 1 -#define CONFIG_ALLYUV_FILTER 1 -#define CONFIG_CELLAUTO_FILTER 1 -#define CONFIG_COLOR_FILTER 1 -#define CONFIG_COREIMAGESRC_FILTER 0 -#define CONFIG_FREI0R_SRC_FILTER 0 -#define CONFIG_HALDCLUTSRC_FILTER 1 -#define CONFIG_LIFE_FILTER 1 -#define CONFIG_MANDELBROT_FILTER 1 -#define CONFIG_MPTESTSRC_FILTER 1 -#define CONFIG_NULLSRC_FILTER 1 -#define CONFIG_RGBTESTSRC_FILTER 1 -#define CONFIG_SMPTEBARS_FILTER 1 -#define CONFIG_SMPTEHDBARS_FILTER 1 -#define CONFIG_TESTSRC_FILTER 1 -#define CONFIG_TESTSRC2_FILTER 1 -#define CONFIG_YUVTESTSRC_FILTER 1 -#define CONFIG_NULLSINK_FILTER 1 -#define CONFIG_ADRAWGRAPH_FILTER 1 -#define CONFIG_AHISTOGRAM_FILTER 1 -#define CONFIG_APHASEMETER_FILTER 1 -#define CONFIG_AVECTORSCOPE_FILTER 1 -#define CONFIG_CONCAT_FILTER 1 -#define CONFIG_SHOWCQT_FILTER 1 -#define CONFIG_SHOWFREQS_FILTER 1 -#define CONFIG_SHOWSPECTRUM_FILTER 1 -#define CONFIG_SHOWSPECTRUMPIC_FILTER 1 -#define CONFIG_SHOWVOLUME_FILTER 1 -#define CONFIG_SHOWWAVES_FILTER 1 -#define CONFIG_SHOWWAVESPIC_FILTER 1 -#define CONFIG_SPECTRUMSYNTH_FILTER 1 -#define CONFIG_AMOVIE_FILTER 1 -#define CONFIG_MOVIE_FILTER 1 -#define CONFIG_H263_CUVID_HWACCEL 0 -#define CONFIG_H263_VAAPI_HWACCEL 0 -#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_H264_CUVID_HWACCEL 0 -#define CONFIG_H264_D3D11VA_HWACCEL 0 -#define CONFIG_H264_DXVA2_HWACCEL 0 -#define CONFIG_H264_MEDIACODEC_HWACCEL 0 -#define CONFIG_H264_MMAL_HWACCEL 0 -#define CONFIG_H264_QSV_HWACCEL 0 -#define CONFIG_H264_VAAPI_HWACCEL 0 -#define CONFIG_H264_VDA_HWACCEL 0 -#define CONFIG_H264_VDA_OLD_HWACCEL 0 -#define CONFIG_H264_VDPAU_HWACCEL 0 -#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_HEVC_CUVID_HWACCEL 0 -#define CONFIG_HEVC_D3D11VA_HWACCEL 0 -#define CONFIG_HEVC_DXVA2_HWACCEL 0 -#define CONFIG_HEVC_MEDIACODEC_HWACCEL 0 -#define CONFIG_HEVC_QSV_HWACCEL 0 -#define CONFIG_HEVC_VAAPI_HWACCEL 0 -#define CONFIG_HEVC_VDPAU_HWACCEL 0 -#define CONFIG_MJPEG_CUVID_HWACCEL 0 -#define CONFIG_MPEG1_CUVID_HWACCEL 0 -#define CONFIG_MPEG1_XVMC_HWACCEL 0 -#define CONFIG_MPEG1_VDPAU_HWACCEL 0 -#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEG2_CUVID_HWACCEL 0 -#define CONFIG_MPEG2_XVMC_HWACCEL 0 -#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 -#define CONFIG_MPEG2_DXVA2_HWACCEL 0 -#define CONFIG_MPEG2_MMAL_HWACCEL 0 -#define CONFIG_MPEG2_QSV_HWACCEL 0 -#define CONFIG_MPEG2_VAAPI_HWACCEL 0 -#define CONFIG_MPEG2_VDPAU_HWACCEL 0 -#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_MPEG4_CUVID_HWACCEL 0 -#define CONFIG_MPEG4_MEDIACODEC_HWACCEL 0 -#define CONFIG_MPEG4_MMAL_HWACCEL 0 -#define CONFIG_MPEG4_VAAPI_HWACCEL 0 -#define CONFIG_MPEG4_VDPAU_HWACCEL 0 -#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 -#define CONFIG_VC1_CUVID_HWACCEL 0 -#define CONFIG_VC1_D3D11VA_HWACCEL 0 -#define CONFIG_VC1_DXVA2_HWACCEL 0 -#define CONFIG_VC1_VAAPI_HWACCEL 0 -#define CONFIG_VC1_VDPAU_HWACCEL 0 -#define CONFIG_VC1_MMAL_HWACCEL 0 -#define CONFIG_VC1_QSV_HWACCEL 0 -#define CONFIG_VP8_CUVID_HWACCEL 0 -#define CONFIG_VP8_MEDIACODEC_HWACCEL 0 -#define CONFIG_VP9_CUVID_HWACCEL 0 -#define CONFIG_VP9_D3D11VA_HWACCEL 0 -#define CONFIG_VP9_DXVA2_HWACCEL 0 -#define CONFIG_VP9_MEDIACODEC_HWACCEL 0 -#define CONFIG_VP9_VAAPI_HWACCEL 0 -#define CONFIG_WMV3_D3D11VA_HWACCEL 0 -#define CONFIG_WMV3_DXVA2_HWACCEL 0 -#define CONFIG_WMV3_VAAPI_HWACCEL 0 -#define CONFIG_WMV3_VDPAU_HWACCEL 0 -#define CONFIG_ALSA_INDEV 0 -#define CONFIG_AVFOUNDATION_INDEV 0 -#define CONFIG_BKTR_INDEV 0 -#define CONFIG_DECKLINK_INDEV 0 -#define CONFIG_DSHOW_INDEV 0 -#define CONFIG_DV1394_INDEV 0 -#define CONFIG_FBDEV_INDEV 0 -#define CONFIG_GDIGRAB_INDEV 0 -#define CONFIG_IEC61883_INDEV 0 -#define CONFIG_JACK_INDEV 0 -#define CONFIG_LAVFI_INDEV 0 -#define CONFIG_OPENAL_INDEV 0 -#define CONFIG_OSS_INDEV 0 -#define CONFIG_PULSE_INDEV 0 -#define CONFIG_QTKIT_INDEV 0 -#define CONFIG_SNDIO_INDEV 0 -#define CONFIG_V4L2_INDEV 0 -#define CONFIG_VFWCAP_INDEV 0 -#define CONFIG_X11GRAB_INDEV 0 -#define CONFIG_X11GRAB_XCB_INDEV 0 -#define CONFIG_LIBCDIO_INDEV 0 -#define CONFIG_LIBDC1394_INDEV 0 -#define CONFIG_A64_MUXER 1 -#define CONFIG_AC3_MUXER 1 -#define CONFIG_ADTS_MUXER 1 -#define CONFIG_ADX_MUXER 1 -#define CONFIG_AIFF_MUXER 1 -#define CONFIG_AMR_MUXER 1 -#define CONFIG_APNG_MUXER 1 -#define CONFIG_ASF_MUXER 1 -#define CONFIG_ASS_MUXER 1 -#define CONFIG_AST_MUXER 1 -#define CONFIG_ASF_STREAM_MUXER 1 -#define CONFIG_AU_MUXER 1 -#define CONFIG_AVI_MUXER 1 -#define CONFIG_AVM2_MUXER 1 -#define CONFIG_BIT_MUXER 1 -#define CONFIG_CAF_MUXER 1 -#define CONFIG_CAVSVIDEO_MUXER 1 -#define CONFIG_CRC_MUXER 1 -#define CONFIG_DASH_MUXER 1 -#define CONFIG_DATA_MUXER 1 -#define CONFIG_DAUD_MUXER 1 -#define CONFIG_DIRAC_MUXER 1 -#define CONFIG_DNXHD_MUXER 1 -#define CONFIG_DTS_MUXER 1 -#define CONFIG_DV_MUXER 1 -#define CONFIG_EAC3_MUXER 1 -#define CONFIG_F4V_MUXER 1 -#define CONFIG_FFM_MUXER 1 -#define CONFIG_FFMETADATA_MUXER 1 -#define CONFIG_FIFO_MUXER 1 -#define CONFIG_FILMSTRIP_MUXER 1 -#define CONFIG_FLAC_MUXER 1 -#define CONFIG_FLV_MUXER 1 -#define CONFIG_FRAMECRC_MUXER 1 -#define CONFIG_FRAMEHASH_MUXER 1 -#define CONFIG_FRAMEMD5_MUXER 1 -#define CONFIG_G722_MUXER 1 -#define CONFIG_G723_1_MUXER 1 -#define CONFIG_GIF_MUXER 1 -#define CONFIG_GSM_MUXER 1 -#define CONFIG_GXF_MUXER 1 -#define CONFIG_H261_MUXER 1 -#define CONFIG_H263_MUXER 1 -#define CONFIG_H264_MUXER 1 -#define CONFIG_HASH_MUXER 1 -#define CONFIG_HDS_MUXER 1 -#define CONFIG_HEVC_MUXER 1 -#define CONFIG_HLS_MUXER 1 -#define CONFIG_ICO_MUXER 1 -#define CONFIG_ILBC_MUXER 1 -#define CONFIG_IMAGE2_MUXER 1 -#define CONFIG_IMAGE2PIPE_MUXER 1 -#define CONFIG_IPOD_MUXER 1 -#define CONFIG_IRCAM_MUXER 1 -#define CONFIG_ISMV_MUXER 1 -#define CONFIG_IVF_MUXER 1 -#define CONFIG_JACOSUB_MUXER 1 -#define CONFIG_LATM_MUXER 1 -#define CONFIG_LRC_MUXER 1 -#define CONFIG_M4V_MUXER 1 -#define CONFIG_MD5_MUXER 1 -#define CONFIG_MATROSKA_MUXER 1 -#define CONFIG_MATROSKA_AUDIO_MUXER 1 -#define CONFIG_MICRODVD_MUXER 1 -#define CONFIG_MJPEG_MUXER 1 -#define CONFIG_MLP_MUXER 1 -#define CONFIG_MMF_MUXER 1 -#define CONFIG_MOV_MUXER 1 -#define CONFIG_MP2_MUXER 1 -#define CONFIG_MP3_MUXER 1 -#define CONFIG_MP4_MUXER 1 -#define CONFIG_MPEG1SYSTEM_MUXER 1 -#define CONFIG_MPEG1VCD_MUXER 1 -#define CONFIG_MPEG1VIDEO_MUXER 1 -#define CONFIG_MPEG2DVD_MUXER 1 -#define CONFIG_MPEG2SVCD_MUXER 1 -#define CONFIG_MPEG2VIDEO_MUXER 1 -#define CONFIG_MPEG2VOB_MUXER 1 -#define CONFIG_MPEGTS_MUXER 1 -#define CONFIG_MPJPEG_MUXER 1 -#define CONFIG_MXF_MUXER 1 -#define CONFIG_MXF_D10_MUXER 1 -#define CONFIG_MXF_OPATOM_MUXER 1 -#define CONFIG_NULL_MUXER 1 -#define CONFIG_NUT_MUXER 1 -#define CONFIG_OGA_MUXER 1 -#define CONFIG_OGG_MUXER 1 -#define CONFIG_OGV_MUXER 1 -#define CONFIG_OMA_MUXER 1 -#define CONFIG_OPUS_MUXER 1 -#define CONFIG_PCM_ALAW_MUXER 1 -#define CONFIG_PCM_MULAW_MUXER 1 -#define CONFIG_PCM_F64BE_MUXER 1 -#define CONFIG_PCM_F64LE_MUXER 1 -#define CONFIG_PCM_F32BE_MUXER 1 -#define CONFIG_PCM_F32LE_MUXER 1 -#define CONFIG_PCM_S32BE_MUXER 1 -#define CONFIG_PCM_S32LE_MUXER 1 -#define CONFIG_PCM_S24BE_MUXER 1 -#define CONFIG_PCM_S24LE_MUXER 1 -#define CONFIG_PCM_S16BE_MUXER 1 -#define CONFIG_PCM_S16LE_MUXER 1 -#define CONFIG_PCM_S8_MUXER 1 -#define CONFIG_PCM_U32BE_MUXER 1 -#define CONFIG_PCM_U32LE_MUXER 1 -#define CONFIG_PCM_U24BE_MUXER 1 -#define CONFIG_PCM_U24LE_MUXER 1 -#define CONFIG_PCM_U16BE_MUXER 1 -#define CONFIG_PCM_U16LE_MUXER 1 -#define CONFIG_PCM_U8_MUXER 1 -#define CONFIG_PSP_MUXER 1 -#define CONFIG_RAWVIDEO_MUXER 1 -#define CONFIG_RM_MUXER 1 -#define CONFIG_ROQ_MUXER 1 -#define CONFIG_RSO_MUXER 1 -#define CONFIG_RTP_MUXER 1 -#define CONFIG_RTP_MPEGTS_MUXER 1 -#define CONFIG_RTSP_MUXER 1 -#define CONFIG_SAP_MUXER 1 -#define CONFIG_SEGMENT_MUXER 1 -#define CONFIG_STREAM_SEGMENT_MUXER 1 -#define CONFIG_SINGLEJPEG_MUXER 1 -#define CONFIG_SMJPEG_MUXER 1 -#define CONFIG_SMOOTHSTREAMING_MUXER 1 -#define CONFIG_SOX_MUXER 1 -#define CONFIG_SPX_MUXER 1 -#define CONFIG_SPDIF_MUXER 1 -#define CONFIG_SRT_MUXER 1 -#define CONFIG_SWF_MUXER 1 -#define CONFIG_TEE_MUXER 1 -#define CONFIG_TG2_MUXER 1 -#define CONFIG_TGP_MUXER 1 -#define CONFIG_MKVTIMESTAMP_V2_MUXER 1 -#define CONFIG_TRUEHD_MUXER 1 -#define CONFIG_TTA_MUXER 1 -#define CONFIG_UNCODEDFRAMECRC_MUXER 1 -#define CONFIG_VC1_MUXER 1 -#define CONFIG_VC1T_MUXER 1 -#define CONFIG_VOC_MUXER 1 -#define CONFIG_W64_MUXER 1 -#define CONFIG_WAV_MUXER 1 -#define CONFIG_WEBM_MUXER 1 -#define CONFIG_WEBM_DASH_MANIFEST_MUXER 1 -#define CONFIG_WEBM_CHUNK_MUXER 1 -#define CONFIG_WEBP_MUXER 1 -#define CONFIG_WEBVTT_MUXER 1 -#define CONFIG_WTV_MUXER 1 -#define CONFIG_WV_MUXER 1 -#define CONFIG_YUV4MPEGPIPE_MUXER 1 -#define CONFIG_CHROMAPRINT_MUXER 0 -#define CONFIG_LIBNUT_MUXER 0 -#define CONFIG_ALSA_OUTDEV 0 -#define CONFIG_CACA_OUTDEV 0 -#define CONFIG_DECKLINK_OUTDEV 0 -#define CONFIG_FBDEV_OUTDEV 0 -#define CONFIG_OPENGL_OUTDEV 0 -#define CONFIG_OSS_OUTDEV 0 -#define CONFIG_PULSE_OUTDEV 0 -#define CONFIG_SDL2_OUTDEV 0 -#define CONFIG_SNDIO_OUTDEV 0 -#define CONFIG_V4L2_OUTDEV 0 -#define CONFIG_XV_OUTDEV 0 -#define CONFIG_AAC_PARSER 1 -#define CONFIG_AAC_LATM_PARSER 1 -#define CONFIG_AC3_PARSER 1 -#define CONFIG_ADX_PARSER 0 -#define CONFIG_BMP_PARSER 0 -#define CONFIG_CAVSVIDEO_PARSER 0 -#define CONFIG_COOK_PARSER 0 -#define CONFIG_DCA_PARSER 0 -#define CONFIG_DIRAC_PARSER 0 -#define CONFIG_DNXHD_PARSER 0 -#define CONFIG_DPX_PARSER 0 -#define CONFIG_DVAUDIO_PARSER 0 -#define CONFIG_DVBSUB_PARSER 0 -#define CONFIG_DVDSUB_PARSER 0 -#define CONFIG_DVD_NAV_PARSER 0 -#define CONFIG_FLAC_PARSER 0 -#define CONFIG_G729_PARSER 0 -#define CONFIG_GSM_PARSER 0 -#define CONFIG_H261_PARSER 0 -#define CONFIG_H263_PARSER 1 -#define CONFIG_H264_PARSER 1 -#define CONFIG_HEVC_PARSER 0 -#define CONFIG_MJPEG_PARSER 0 -#define CONFIG_MLP_PARSER 0 -#define CONFIG_MPEG4VIDEO_PARSER 1 -#define CONFIG_MPEGAUDIO_PARSER 0 -#define CONFIG_MPEGVIDEO_PARSER 0 -#define CONFIG_OPUS_PARSER 0 -#define CONFIG_PNG_PARSER 0 -#define CONFIG_PNM_PARSER 0 -#define CONFIG_RV30_PARSER 0 -#define CONFIG_RV40_PARSER 0 -#define CONFIG_TAK_PARSER 0 -#define CONFIG_VC1_PARSER 0 -#define CONFIG_VORBIS_PARSER 0 -#define CONFIG_VP3_PARSER 0 -#define CONFIG_VP8_PARSER 0 -#define CONFIG_VP9_PARSER 0 -#define CONFIG_ASYNC_PROTOCOL 0 -#define CONFIG_BLURAY_PROTOCOL 0 -#define CONFIG_CACHE_PROTOCOL 0 -#define CONFIG_CONCAT_PROTOCOL 0 -#define CONFIG_CRYPTO_PROTOCOL 0 -#define CONFIG_DATA_PROTOCOL 0 -#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 -#define CONFIG_FFRTMPHTTP_PROTOCOL 0 -#define CONFIG_FILE_PROTOCOL 1 -#define CONFIG_FTP_PROTOCOL 0 -#define CONFIG_GOPHER_PROTOCOL 0 -#define CONFIG_HLS_PROTOCOL 0 -#define CONFIG_HTTP_PROTOCOL 1 -#define CONFIG_HTTPPROXY_PROTOCOL 0 -#define CONFIG_HTTPS_PROTOCOL 0 -#define CONFIG_ICECAST_PROTOCOL 0 -#define CONFIG_MMSH_PROTOCOL 0 -#define CONFIG_MMST_PROTOCOL 0 -#define CONFIG_MD5_PROTOCOL 0 -#define CONFIG_PIPE_PROTOCOL 0 -#define CONFIG_RTMP_PROTOCOL 0 -#define CONFIG_RTMPE_PROTOCOL 0 -#define CONFIG_RTMPS_PROTOCOL 0 -#define CONFIG_RTMPT_PROTOCOL 0 -#define CONFIG_RTMPTE_PROTOCOL 0 -#define CONFIG_RTMPTS_PROTOCOL 0 -#define CONFIG_RTP_PROTOCOL 1 -#define CONFIG_SCTP_PROTOCOL 0 -#define CONFIG_SRTP_PROTOCOL 0 -#define CONFIG_SUBFILE_PROTOCOL 0 -#define CONFIG_TEE_PROTOCOL 0 -#define CONFIG_TCP_PROTOCOL 1 -#define CONFIG_TLS_GNUTLS_PROTOCOL 0 -#define CONFIG_TLS_SCHANNEL_PROTOCOL 0 -#define CONFIG_TLS_SECURETRANSPORT_PROTOCOL 0 -#define CONFIG_TLS_OPENSSL_PROTOCOL 0 -#define CONFIG_UDP_PROTOCOL 1 -#define CONFIG_UDPLITE_PROTOCOL 0 -#define CONFIG_UNIX_PROTOCOL 0 -#define CONFIG_LIBRTMP_PROTOCOL 0 -#define CONFIG_LIBRTMPE_PROTOCOL 0 -#define CONFIG_LIBRTMPS_PROTOCOL 0 -#define CONFIG_LIBRTMPT_PROTOCOL 0 -#define CONFIG_LIBRTMPTE_PROTOCOL 0 -#define CONFIG_LIBSSH_PROTOCOL 0 -#define CONFIG_LIBSMBCLIENT_PROTOCOL 0 -#endif /* FFMPEG_CONFIG_H */ diff --git a/app/src/main/cpp/ffmpeg.c b/app/src/main/cpp/ffmpeg.c deleted file mode 100644 index 2da1213..0000000 --- a/app/src/main/cpp/ffmpeg.c +++ /dev/null @@ -1,4674 +0,0 @@ -/* - * Copyright (c) 2000-2003 Fabrice Bellard - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * multimedia converter based on the FFmpeg libraries - */ - -#include "config.h" -#include -#include -#include -#include -#include -#include -#include - -#if HAVE_IO_H -#include -#endif -#if HAVE_UNISTD_H - -#include - -#endif - -#include "libavformat/avformat.h" -#include "libavdevice/avdevice.h" -#include "libswresample/swresample.h" -#include "libavutil/opt.h" -#include "libavutil/channel_layout.h" -#include "libavutil/parseutils.h" -#include "libavutil/samplefmt.h" -#include "libavutil/fifo.h" -#include "libavutil/internal.h" -#include "libavutil/intreadwrite.h" -#include "libavutil/dict.h" -#include "libavutil/mathematics.h" -#include "libavutil/pixdesc.h" -#include "libavutil/avstring.h" -#include "libavutil/libm.h" -#include "libavutil/imgutils.h" -#include "libavutil/timestamp.h" -#include "libavutil/bprint.h" -#include "libavutil/time.h" -#include "libavutil/threadmessage.h" -#include "libavcodec/mathops.h" -#include "libavformat/os_support.h" - -# include "libavfilter/avfilter.h" -# include "libavfilter/buffersrc.h" -# include "libavfilter/buffersink.h" -#include "jx_ffmpeg_cmd_run.h" - -#if HAVE_SYS_RESOURCE_H - -#include -#include -#include - -#elif HAVE_GETPROCESSTIMES -#include -#endif -#if HAVE_GETPROCESSMEMORYINFO -#include -#include -#endif -#if HAVE_SETCONSOLECTRLHANDLER -#include -#endif - - -#if HAVE_SYS_SELECT_H - -#include - -#endif - -#if HAVE_TERMIOS_H - -#include -#include -#include -#include - -#elif HAVE_KBHIT -#include -#endif - -#if HAVE_PTHREADS - -#include - -#endif - -#include - -#include "ffmpeg.h" -#include "cmdutils.h" -#include "libavutil/avassert.h" -#include "libavcodec/avfft.h" -#include "jx_log.h" -#include "jx_ffmpeg_cmd_run.h" -const char program_name[] = "ffmpeg"; -const int program_birth_year = 2000; - -static FILE *vstats_file; - -const char *const forced_keyframes_const_names[] = { - "n", - "n_forced", - "prev_forced_n", - "prev_forced_t", - "t", - NULL -}; - -static void do_video_stats(OutputStream *ost, int frame_size); - -static int64_t getutime(void); - -static int64_t getmaxrss(void); - -static int run_as_daemon = 0; -static int nb_frames_dup = 0; -static int nb_frames_drop = 0; -static int64_t decode_error_stat[2]; - -static int want_sdp = 1; - -static int current_time; -AVIOContext *progress_avio = NULL; - -static uint8_t *subtitle_out; - -InputStream **input_streams = NULL; -int nb_input_streams = 0; -InputFile **input_files = NULL; -int nb_input_files = 0; - -OutputStream **output_streams = NULL; -int nb_output_streams = 0; -OutputFile **output_files = NULL; -int nb_output_files = 0; - -FilterGraph **filtergraphs; -int nb_filtergraphs; - -#if HAVE_TERMIOS_H - -/* init terminal so that we can grab keys */ -static struct termios oldtty; -static int restore_tty; -#endif - -#if HAVE_PTHREADS - -static void free_input_threads(void); - -#endif - -/* sub2video hack: - Convert subtitles to video with alpha to insert them in filter graphs. - This is a temporary solution until libavfilter gets real subtitles support. - */ - -static int sub2video_get_blank_frame(InputStream *ist) { - int ret; - AVFrame *frame = ist->sub2video.frame; - - av_frame_unref(frame); - ist->sub2video.frame->width = ist->dec_ctx->width ? ist->dec_ctx->width : ist->sub2video.w; - ist->sub2video.frame->height = ist->dec_ctx->height ? ist->dec_ctx->height : ist->sub2video.h; - ist->sub2video.frame->format = AV_PIX_FMT_RGB32; - if ((ret = av_frame_get_buffer(frame, 32)) < 0) - return ret; - memset(frame->data[0], 0, frame->height * frame->linesize[0]); - return 0; -} - -static void sub2video_copy_rect(uint8_t *dst, int dst_linesize, int w, int h, - AVSubtitleRect *r) { - uint32_t *pal, *dst2; - uint8_t *src, *src2; - int x, y; - - if (r->type != SUBTITLE_BITMAP) { - av_log(NULL, AV_LOG_WARNING, "sub2video: non-bitmap subtitle\n"); - return; - } - if (r->x < 0 || r->x + r->w > w || r->y < 0 || r->y + r->h > h) { - av_log(NULL, AV_LOG_WARNING, "sub2video: rectangle (%d %d %d %d) overflowing %d %d\n", - r->x, r->y, r->w, r->h, w, h - ); - return; - } - - dst += r->y * dst_linesize + r->x * 4; - src = r->data[0]; - pal = (uint32_t *) r->data[1]; - for (y = 0; y < r->h; y++) { - dst2 = (uint32_t *) dst; - src2 = src; - for (x = 0; x < r->w; x++) - *(dst2++) = pal[*(src2++)]; - dst += dst_linesize; - src += r->linesize[0]; - } -} - -static void sub2video_push_ref(InputStream *ist, int64_t pts) { - AVFrame *frame = ist->sub2video.frame; - int i; - - av_assert1(frame->data[0]); - ist->sub2video.last_pts = frame->pts = pts; - for (i = 0; i < ist->nb_filters; i++) - av_buffersrc_add_frame_flags(ist->filters[i]->filter, frame, - AV_BUFFERSRC_FLAG_KEEP_REF | - AV_BUFFERSRC_FLAG_PUSH); -} - -static void sub2video_update(InputStream *ist, AVSubtitle *sub) { - AVFrame *frame = ist->sub2video.frame; - int8_t *dst; - int dst_linesize; - int num_rects, i; - int64_t pts, end_pts; - - if (!frame) - return; - if (sub) { - pts = av_rescale_q(sub->pts + sub->start_display_time * 1000LL, - AV_TIME_BASE_Q, ist->st->time_base); - end_pts = av_rescale_q(sub->pts + sub->end_display_time * 1000LL, - AV_TIME_BASE_Q, ist->st->time_base); - num_rects = sub->num_rects; - } else { - pts = ist->sub2video.end_pts; - end_pts = INT64_MAX; - num_rects = 0; - } - if (sub2video_get_blank_frame(ist) < 0) { - av_log(ist->dec_ctx, AV_LOG_ERROR, - "Impossible to get a blank canvas.\n"); - return; - } - dst = frame->data[0]; - dst_linesize = frame->linesize[0]; - for (i = 0; i < num_rects; i++) - sub2video_copy_rect(dst, dst_linesize, frame->width, frame->height, sub->rects[i]); - sub2video_push_ref(ist, pts); - ist->sub2video.end_pts = end_pts; -} - -static void sub2video_heartbeat(InputStream *ist, int64_t pts) { - InputFile *infile = input_files[ist->file_index]; - int i, j, nb_reqs; - int64_t pts2; - - /* When a frame is read from a file, examine all sub2video streams in - the same file and send the sub2video frame again. Otherwise, decoded - video frames could be accumulating in the filter graph while a filter - (possibly overlay) is desperately waiting for a subtitle frame. */ - for (i = 0; i < infile->nb_streams; i++) { - InputStream *ist2 = input_streams[infile->ist_index + i]; - if (!ist2->sub2video.frame) - continue; - /* subtitles seem to be usually muxed ahead of other streams; - if not, subtracting a larger time here is necessary */ - pts2 = av_rescale_q(pts, ist->st->time_base, ist2->st->time_base) - 1; - /* do not send the heartbeat frame if the subtitle is already ahead */ - if (pts2 <= ist2->sub2video.last_pts) - continue; - if (pts2 >= ist2->sub2video.end_pts || !ist2->sub2video.frame->data[0]) - sub2video_update(ist2, NULL); - for (j = 0, nb_reqs = 0; j < ist2->nb_filters; j++) - nb_reqs += av_buffersrc_get_nb_failed_requests(ist2->filters[j]->filter); - if (nb_reqs) - sub2video_push_ref(ist2, pts2); - } -} - -static void sub2video_flush(InputStream *ist) { - int i; - - if (ist->sub2video.end_pts < INT64_MAX) - sub2video_update(ist, NULL); - for (i = 0; i < ist->nb_filters; i++) - av_buffersrc_add_frame(ist->filters[i]->filter, NULL); -} - -/* recordEnd of sub2video hack */ - -static void term_exit_sigsafe(void) { -#if HAVE_TERMIOS_H - if (restore_tty) - tcsetattr(0, TCSANOW, &oldtty); -#endif -} - -void term_exit(void) { - av_log(NULL, AV_LOG_QUIET, "%s", ""); - term_exit_sigsafe(); -} - -static volatile int received_sigterm = 0; -static volatile int received_nb_signals = 0; -static volatile int transcode_init_done = 0; -static volatile int ffmpeg_exited = 0; -static int main_return_code = 0; - -static void -sigterm_handler(int sig) { - received_sigterm = sig; - received_nb_signals++; - term_exit_sigsafe(); - if (received_nb_signals > 3) { - write(2/*STDERR_FILENO*/, "Received > 3 system signals, hard exiting\n", - strlen("Received > 3 system signals, hard exiting\n")); - - exit(123); - } -} - -#if HAVE_SETCONSOLECTRLHANDLER -static BOOL WINAPI CtrlHandler(DWORD fdwCtrlType) -{ - av_log(NULL, AV_LOG_DEBUG, "\nReceived windows signal %ld\n", fdwCtrlType); - - switch (fdwCtrlType) - { - case CTRL_C_EVENT: - case CTRL_BREAK_EVENT: - sigterm_handler(SIGINT); - return TRUE; - - case CTRL_CLOSE_EVENT: - case CTRL_LOGOFF_EVENT: - case CTRL_SHUTDOWN_EVENT: - sigterm_handler(SIGTERM); - /* Basically, with these 3 events, when we return from this method the - process is hard terminated, so stall as long as we need to - to try and let the main thread(s) clean up and gracefully terminate - (we have at most 5 seconds, but should be done far before that). */ - while (!ffmpeg_exited) { - Sleep(0); - } - return TRUE; - - default: - av_log(NULL, AV_LOG_ERROR, "Received unknown windows signal %ld\n", fdwCtrlType); - return FALSE; - } -} -#endif - -void term_init(void) { -#if HAVE_TERMIOS_H - if (!run_as_daemon && stdin_interaction) { - struct termios tty; - if (tcgetattr(0, &tty) == 0) { - oldtty = tty; - restore_tty = 1; - - tty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP - | INLCR | IGNCR | ICRNL | IXON); - tty.c_oflag |= OPOST; - tty.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN); - tty.c_cflag &= ~(CSIZE | PARENB); - tty.c_cflag |= CS8; - tty.c_cc[VMIN] = 1; - tty.c_cc[VTIME] = 0; - - tcsetattr(0, TCSANOW, &tty); - } - signal(SIGQUIT, sigterm_handler); /* Quit (POSIX). */ - } -#endif - - signal(SIGINT, sigterm_handler); /* Interrupt (ANSI). */ - signal(SIGTERM, sigterm_handler); /* Termination (ANSI). */ -#ifdef SIGXCPU - signal(SIGXCPU, sigterm_handler); -#endif -#if HAVE_SETCONSOLECTRLHANDLER - SetConsoleCtrlHandler((PHANDLER_ROUTINE) CtrlHandler, TRUE); -#endif -} - -/* read a key without blocking */ -static int read_key(void) { - unsigned char ch; -#if HAVE_TERMIOS_H - int n = 1; - struct timeval tv; - fd_set rfds; - - FD_ZERO(&rfds); - FD_SET(0, &rfds); - tv.tv_sec = 0; - tv.tv_usec = 0; - n = select(1, &rfds, NULL, NULL, &tv); - if (n > 0) { - n = read(0, &ch, 1); - if (n == 1) - return ch; - - return n; - } -#elif HAVE_KBHIT -# if HAVE_PEEKNAMEDPIPE - static int is_pipe; - static HANDLE input_handle; - DWORD dw, nchars; - if(!input_handle){ - input_handle = GetStdHandle(STD_INPUT_HANDLE); - is_pipe = !GetConsoleMode(input_handle, &dw); - } - - if (is_pipe) { - /* When running under a GUI, you will recordEnd here. */ - if (!PeekNamedPipe(input_handle, NULL, 0, NULL, &nchars, NULL)) { - // input pipe may have been closed by the program that ran ffmpeg - return -1; - } - //Read it - if(nchars != 0) { - read(0, &ch, 1); - return ch; - }else{ - return -1; - } - } -# endif - if(kbhit()) - return(getch()); -#endif - return -1; -} - -static int decode_interrupt_cb(void *ctx) { - return received_nb_signals > transcode_init_done; -} - -const AVIOInterruptCB int_cb = {decode_interrupt_cb, NULL}; - -static void ffmpeg_cleanup(int ret) { - - LOGI(JNI_DEBUG, "开始执行清理"); - - int i, j; - - if (do_benchmark) { - int maxrss = getmaxrss() / 1024; - av_log(NULL, AV_LOG_INFO, "bench: maxrss=%ikB\n", maxrss); - } - - for (i = 0; i < nb_filtergraphs; i++) { - FilterGraph *fg = filtergraphs[i]; - avfilter_graph_free(&fg->graph); - for (j = 0; j < fg->nb_inputs; j++) { - av_freep(&fg->inputs[j]->name); - av_freep(&fg->inputs[j]); - } - av_freep(&fg->inputs); - for (j = 0; j < fg->nb_outputs; j++) { - av_freep(&fg->outputs[j]->name); - av_freep(&fg->outputs[j]); - } - av_freep(&fg->outputs); - av_freep(&fg->graph_desc); - - av_freep(&filtergraphs[i]); - } - av_freep(&filtergraphs); - - av_freep(&subtitle_out); - - /* close files */ - for (i = 0; i < nb_output_files; i++) { - OutputFile *of = output_files[i]; - AVFormatContext *s; - if (!of) - continue; - s = of->ctx; - if (s && s->oformat && !(s->oformat->flags & AVFMT_NOFILE)) - avio_closep(&s->pb); - avformat_free_context(s); - av_dict_free(&of->opts); - - av_freep(&output_files[i]); - } - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - - if (!ost) - continue; - - for (j = 0; j < ost->nb_bitstream_filters; j++) - av_bsf_free(&ost->bsf_ctx[j]); - av_freep(&ost->bsf_ctx); - av_freep(&ost->bsf_extradata_updated); - - av_frame_free(&ost->filtered_frame); - av_frame_free(&ost->last_frame); - av_dict_free(&ost->encoder_opts); - - av_parser_close(ost->parser); - avcodec_free_context(&ost->parser_avctx); - - av_freep(&ost->forced_keyframes); - av_expr_free(ost->forced_keyframes_pexpr); - av_freep(&ost->avfilter); - av_freep(&ost->logfile_prefix); - - av_freep(&ost->audio_channels_map); - ost->audio_channels_mapped = 0; - - av_dict_free(&ost->sws_dict); - - avcodec_free_context(&ost->enc_ctx); - avcodec_parameters_free(&ost->ref_par); - - while (ost->muxing_queue && av_fifo_size(ost->muxing_queue)) { - AVPacket pkt; - av_fifo_generic_read(ost->muxing_queue, &pkt, sizeof(pkt), NULL); - av_packet_unref(&pkt); - } - av_fifo_freep(&ost->muxing_queue); - - av_freep(&output_streams[i]); - } -#if HAVE_PTHREADS - free_input_threads(); -#endif - for (i = 0; i < nb_input_files; i++) { - avformat_close_input(&input_files[i]->ctx); - av_freep(&input_files[i]); - } - for (i = 0; i < nb_input_streams; i++) { - InputStream *ist = input_streams[i]; - - av_frame_free(&ist->decoded_frame); - av_frame_free(&ist->filter_frame); - av_dict_free(&ist->decoder_opts); - avsubtitle_free(&ist->prev_sub.subtitle); - av_frame_free(&ist->sub2video.frame); - av_freep(&ist->filters); - av_freep(&ist->hwaccel_device); - av_freep(&ist->dts_buffer); - - avcodec_free_context(&ist->dec_ctx); - - av_freep(&input_streams[i]); - } - - if (vstats_file) { - if (fclose(vstats_file)) - av_log(NULL, AV_LOG_ERROR, - "Error closing vstats file, loss of information possible: %s\n", - av_err2str(AVERROR(errno))); - } - av_freep(&vstats_filename); - - av_freep(&input_streams); - av_freep(&input_files); - av_freep(&output_streams); - av_freep(&output_files); - - uninit_opts(); - - avformat_network_deinit(); - - if (received_sigterm) { - av_log(NULL, AV_LOG_INFO, "Exiting normally, received signal %d.\n", - (int) received_sigterm); - } else if (ret && transcode_init_done) { - av_log(NULL, AV_LOG_INFO, "Conversion failed!\n"); - } - term_exit(); - ffmpeg_exited = 1; - LOGI(JNI_DEBUG, "清理完成"); - -} - -void remove_avoptions(AVDictionary **a, AVDictionary *b) { - AVDictionaryEntry *t = NULL; - - while ((t = av_dict_get(b, "", t, AV_DICT_IGNORE_SUFFIX))) { - av_dict_set(a, t->key, NULL, AV_DICT_MATCH_CASE); - } -} - -void assert_avoptions(AVDictionary *m) { - AVDictionaryEntry *t; - if ((t = av_dict_get(m, "", NULL, AV_DICT_IGNORE_SUFFIX))) { - av_log(NULL, AV_LOG_FATAL, "Option %s not found.\n", t->key); - exit_program(1); - } -} - -static void abort_codec_experimental(AVCodec *c, int encoder) { - exit_program(1); -} - -static void update_benchmark(const char *fmt, ...) { - if (do_benchmark_all) { - int64_t t = getutime(); - va_list va; - char buf[1024]; - - if (fmt) { - va_start(va, fmt); - vsnprintf(buf, sizeof(buf), fmt, va); - va_end(va); - av_log(NULL, AV_LOG_INFO, "bench: %8"PRIu64" %s \n", t - current_time, buf); - } - current_time = t; - } -} - -static void -close_all_output_streams(OutputStream *ost, OSTFinished this_stream, OSTFinished others) { - int i; - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost2 = output_streams[i]; - ost2->finished |= ost == ost2 ? this_stream : others; - } -} - -static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost) { - AVFormatContext *s = of->ctx; - AVStream *st = ost->st; - int ret; - - if (!of->header_written) { - AVPacket tmp_pkt; - /* the muxer is not initialized yet, buffer the packet */ - if (!av_fifo_space(ost->muxing_queue)) { - int new_size = FFMIN(2 * av_fifo_size(ost->muxing_queue), - ost->max_muxing_queue_size); - if (new_size <= av_fifo_size(ost->muxing_queue)) { - av_log(NULL, AV_LOG_ERROR, - "Too many packets buffered for output stream %d:%d.\n", - ost->file_index, ost->st->index); - exit_program(1); - } - ret = av_fifo_realloc2(ost->muxing_queue, new_size); - if (ret < 0) - exit_program(1); - } - av_packet_move_ref(&tmp_pkt, pkt); - av_fifo_generic_write(ost->muxing_queue, &tmp_pkt, sizeof(tmp_pkt), NULL); - return; - } - - if ((st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && video_sync_method == VSYNC_DROP) || - (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && audio_sync_method < 0)) - pkt->pts = pkt->dts = AV_NOPTS_VALUE; - - /* - * Audio encoders may split the packets -- #frames in != #packets out. - * But there is no reordering, so we can limit the number of output packets - * by simply dropping them here. - * Counting encoded video frames needs to be done separately because of - * reordering, see do_video_out() - */ - if (!(st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && ost->encoding_needed)) { - if (ost->frame_number >= ost->max_frames) { - av_packet_unref(pkt); - return; - } - ost->frame_number++; - } - if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { - int i; - uint8_t *sd = av_packet_get_side_data(pkt, AV_PKT_DATA_QUALITY_STATS, - NULL); - ost->quality = sd ? AV_RL32(sd) : -1; - ost->pict_type = sd ? sd[4] : AV_PICTURE_TYPE_NONE; - - for (i = 0; i < FF_ARRAY_ELEMS(ost->error); i++) { - if (sd && i < sd[5]) - ost->error[i] = AV_RL64(sd + 8 + 8 * i); - else - ost->error[i] = -1; - } - - if (ost->frame_rate.num && ost->is_cfr) { - if (pkt->duration > 0) - av_log(NULL, AV_LOG_WARNING, - "Overriding packet duration by frame rate, this should not happen\n"); - pkt->duration = av_rescale_q(1, av_inv_q(ost->frame_rate), - ost->st->time_base); - } - } - - if (!(s->oformat->flags & AVFMT_NOTIMESTAMPS)) { - if (pkt->dts != AV_NOPTS_VALUE && - pkt->pts != AV_NOPTS_VALUE && - pkt->dts > pkt->pts) { - av_log(s, AV_LOG_WARNING, - "Invalid DTS: %"PRId64" PTS: %"PRId64" in output stream %d:%d, replacing by guess\n", - pkt->dts, pkt->pts, - ost->file_index, ost->st->index); - pkt->pts = - pkt->dts = pkt->pts + pkt->dts + ost->last_mux_dts + 1 - - FFMIN3(pkt->pts, pkt->dts, ost->last_mux_dts + 1) - - FFMAX3(pkt->pts, pkt->dts, ost->last_mux_dts + 1); - } - if ((st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO || - st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) && - pkt->dts != AV_NOPTS_VALUE && - !(st->codecpar->codec_id == AV_CODEC_ID_VP9 && ost->stream_copy) && - ost->last_mux_dts != AV_NOPTS_VALUE) { - int64_t max = ost->last_mux_dts + !(s->oformat->flags & AVFMT_TS_NONSTRICT); - if (pkt->dts < max) { - int loglevel = max - pkt->dts > 2 || st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO - ? AV_LOG_WARNING : AV_LOG_DEBUG; - av_log(s, loglevel, "Non-monotonous DTS in output stream " - "%d:%d; previous: %"PRId64", current: %"PRId64"; ", - ost->file_index, ost->st->index, ost->last_mux_dts, pkt->dts); - if (exit_on_error) { - av_log(NULL, AV_LOG_FATAL, "aborting.\n"); - exit_program(1); - } - av_log(s, loglevel, "changing to %"PRId64". This may result " - "in incorrect timestamps in the output file.\n", - max); - if (pkt->pts >= pkt->dts) - pkt->pts = FFMAX(pkt->pts, max); - pkt->dts = max; - } - } - } - ost->last_mux_dts = pkt->dts; - - ost->data_size += pkt->size; - ost->packets_written++; - - pkt->stream_index = ost->index; - - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "muxer <- type:%s " - "pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s size:%d\n", - av_get_media_type_string(ost->enc_ctx->codec_type), - av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &ost->st->time_base), - av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &ost->st->time_base), - pkt->size - ); - } - - ret = av_interleaved_write_frame(s, pkt); - if (ret < 0) { - print_error("av_interleaved_write_frame()", ret); - main_return_code = 1; - close_all_output_streams(ost, MUXER_FINISHED | ENCODER_FINISHED, ENCODER_FINISHED); - } - av_packet_unref(pkt); -} - -static void close_output_stream(OutputStream *ost) { - OutputFile *of = output_files[ost->file_index]; - - ost->finished |= ENCODER_FINISHED; - if (of->shortest) { - int64_t end = av_rescale_q(ost->sync_opts - ost->first_pts, ost->enc_ctx->time_base, - AV_TIME_BASE_Q); - of->recording_time = FFMIN(of->recording_time, end); - } -} - -static void output_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost) { - int ret = 0; - - /* apply the output bitstream filters, if any */ - if (ost->nb_bitstream_filters) { - int idx; - - av_packet_split_side_data(pkt); - ret = av_bsf_send_packet(ost->bsf_ctx[0], pkt); - if (ret < 0) - goto finish; - - idx = 1; - while (idx) { - /* get a packet from the previous filter up the chain */ - ret = av_bsf_receive_packet(ost->bsf_ctx[idx - 1], pkt); - /* HACK! - aac_adtstoasc updates extradata after filtering the first frame when - * the api states this shouldn't happen after init(). Propagate it here to the - * muxer and to the next filters in the chain to workaround this. - * TODO/FIXME - Make aac_adtstoasc use new packet side data instead of changing - * par_out->extradata and adapt muxers accordingly to get rid of this. */ - if (!(ost->bsf_extradata_updated[idx - 1] & 1)) { - ret = avcodec_parameters_copy(ost->st->codecpar, ost->bsf_ctx[idx - 1]->par_out); - if (ret < 0) - goto finish; - ost->bsf_extradata_updated[idx - 1] |= 1; - } - if (ret == AVERROR(EAGAIN)) { - ret = 0; - idx--; - continue; - } else if (ret < 0) - goto finish; - - /* send it to the next filter down the chain or to the muxer */ - if (idx < ost->nb_bitstream_filters) { - /* HACK/FIXME! - See above */ - if (!(ost->bsf_extradata_updated[idx] & 2)) { - ret = avcodec_parameters_copy(ost->bsf_ctx[idx]->par_out, - ost->bsf_ctx[idx - 1]->par_out); - if (ret < 0) - goto finish; - ost->bsf_extradata_updated[idx] |= 2; - } - ret = av_bsf_send_packet(ost->bsf_ctx[idx], pkt); - if (ret < 0) - goto finish; - idx++; - } else - write_packet(of, pkt, ost); - } - } else - write_packet(of, pkt, ost); - - finish: - if (ret < 0 && ret != AVERROR_EOF) { - av_log(NULL, AV_LOG_ERROR, "Error applying bitstream filters to an output " - "packet for stream #%d:%d.\n", ost->file_index, ost->index); - if (exit_on_error) - exit_program(1); - } -} - -static int check_recording_time(OutputStream *ost) { - OutputFile *of = output_files[ost->file_index]; - - if (of->recording_time != INT64_MAX && - av_compare_ts(ost->sync_opts - ost->first_pts, ost->enc_ctx->time_base, of->recording_time, - AV_TIME_BASE_Q) >= 0) { - close_output_stream(ost); - return 0; - } - return 1; -} - -static void do_audio_out(OutputFile *of, OutputStream *ost, - AVFrame *frame) { - AVCodecContext *enc = ost->enc_ctx; - AVPacket pkt; - int ret; - - av_init_packet(&pkt); - pkt.data = NULL; - pkt.size = 0; - - if (!check_recording_time(ost)) - return; - - if (frame->pts == AV_NOPTS_VALUE || audio_sync_method < 0) - frame->pts = ost->sync_opts; - ost->sync_opts = frame->pts + frame->nb_samples; - ost->samples_encoded += frame->nb_samples; - ost->frames_encoded++; - - av_assert0(pkt.size || !pkt.data); - update_benchmark(NULL); - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "encoder <- type:audio " - "frame_pts:%s frame_pts_time:%s time_base:%d/%d\n", - av_ts2str(frame->pts), av_ts2timestr(frame->pts, &enc->time_base), - enc->time_base.num, enc->time_base.den); - } - - ret = avcodec_send_frame(enc, frame); - if (ret < 0) - goto error; - - while (1) { - ret = avcodec_receive_packet(enc, &pkt); - if (ret == AVERROR(EAGAIN)) - break; - if (ret < 0) - goto error; - - update_benchmark("encode_audio %d.%d", ost->file_index, ost->index); - - av_packet_rescale_ts(&pkt, enc->time_base, ost->st->time_base); - - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "encoder -> type:audio " - "pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s\n", - av_ts2str(pkt.pts), av_ts2timestr(pkt.pts, &ost->st->time_base), - av_ts2str(pkt.dts), av_ts2timestr(pkt.dts, &ost->st->time_base)); - } - - output_packet(of, &pkt, ost); - } - - return; - error: - av_log(NULL, AV_LOG_FATAL, "Audio encoding failed\n"); - exit_program(1); -} - -static void do_subtitle_out(OutputFile *of, - OutputStream *ost, - AVSubtitle *sub) { - int subtitle_out_max_size = 1024 * 1024; - int subtitle_out_size, nb, i; - AVCodecContext *enc; - AVPacket pkt; - int64_t pts; - - if (sub->pts == AV_NOPTS_VALUE) { - av_log(NULL, AV_LOG_ERROR, "Subtitle packets must have a pts\n"); - if (exit_on_error) - exit_program(1); - return; - } - - enc = ost->enc_ctx; - - if (!subtitle_out) { - subtitle_out = av_malloc(subtitle_out_max_size); - if (!subtitle_out) { - av_log(NULL, AV_LOG_FATAL, "Failed to allocate subtitle_out\n"); - exit_program(1); - } - } - - /* Note: DVB subtitle need one packet to draw them and one other - packet to clear them */ - /* XXX: signal it in the codec context ? */ - if (enc->codec_id == AV_CODEC_ID_DVB_SUBTITLE) - nb = 2; - else - nb = 1; - - /* shift timestamp to honor -ss and make check_recording_time() work with -t */ - pts = sub->pts; - if (output_files[ost->file_index]->start_time != AV_NOPTS_VALUE) - pts -= output_files[ost->file_index]->start_time; - for (i = 0; i < nb; i++) { - unsigned save_num_rects = sub->num_rects; - - ost->sync_opts = av_rescale_q(pts, AV_TIME_BASE_Q, enc->time_base); - if (!check_recording_time(ost)) - return; - - sub->pts = pts; - // start_display_time is required to be 0 - sub->pts += av_rescale_q(sub->start_display_time, (AVRational) {1, 1000}, AV_TIME_BASE_Q); - sub->end_display_time -= sub->start_display_time; - sub->start_display_time = 0; - if (i == 1) - sub->num_rects = 0; - - ost->frames_encoded++; - - subtitle_out_size = avcodec_encode_subtitle(enc, subtitle_out, - subtitle_out_max_size, sub); - if (i == 1) - sub->num_rects = save_num_rects; - if (subtitle_out_size < 0) { - av_log(NULL, AV_LOG_FATAL, "Subtitle encoding failed\n"); - exit_program(1); - } - - av_init_packet(&pkt); - pkt.data = subtitle_out; - pkt.size = subtitle_out_size; - pkt.pts = av_rescale_q(sub->pts, AV_TIME_BASE_Q, ost->st->time_base); - pkt.duration = av_rescale_q(sub->end_display_time, (AVRational) {1, 1000}, - ost->st->time_base); - if (enc->codec_id == AV_CODEC_ID_DVB_SUBTITLE) { - /* XXX: the pts correction is handled here. Maybe handling - it in the codec would be better */ - if (i == 0) - pkt.pts += 90 * sub->start_display_time; - else - pkt.pts += 90 * sub->end_display_time; - } - pkt.dts = pkt.pts; - output_packet(of, &pkt, ost); - } -} - -static void do_video_out(OutputFile *of, - OutputStream *ost, - AVFrame *next_picture, - double sync_ipts) { - int ret, format_video_sync; - AVPacket pkt; - AVCodecContext *enc = ost->enc_ctx; - AVCodecParameters *mux_par = ost->st->codecpar; - int nb_frames, nb0_frames, i; - double delta, delta0; - double duration = 0; - int frame_size = 0; - InputStream *ist = NULL; - AVFilterContext *filter = ost->filter->filter; - - if (ost->source_index >= 0) - ist = input_streams[ost->source_index]; - - if (filter->inputs[0]->frame_rate.num > 0 && - filter->inputs[0]->frame_rate.den > 0) - duration = 1 / (av_q2d(filter->inputs[0]->frame_rate) * av_q2d(enc->time_base)); - - if (ist && ist->st->start_time != AV_NOPTS_VALUE && ist->st->first_dts != AV_NOPTS_VALUE && - ost->frame_rate.num) - duration = FFMIN(duration, 1 / (av_q2d(ost->frame_rate) * av_q2d(enc->time_base))); - - if (!ost->filters_script && - !ost->filters && - next_picture && - ist && - lrintf(av_frame_get_pkt_duration(next_picture) * av_q2d(ist->st->time_base) / - av_q2d(enc->time_base)) > 0) { - duration = lrintf(av_frame_get_pkt_duration(next_picture) * av_q2d(ist->st->time_base) / - av_q2d(enc->time_base)); - } - - if (!next_picture) { - //recordEnd, flushing - nb0_frames = nb_frames = mid_pred(ost->last_nb0_frames[0], - ost->last_nb0_frames[1], - ost->last_nb0_frames[2]); - } else { - delta0 = sync_ipts - - ost->sync_opts; // delta0 is the "drift" between the input frame (next_picture) and where it would fall in the output. - delta = delta0 + duration; - - /* by default, we output a single frame */ - nb0_frames = 0; // tracks the number of times the PREVIOUS frame should be duplicated, mostly for variable framerate (VFR) - nb_frames = 1; - - format_video_sync = video_sync_method; - if (format_video_sync == VSYNC_AUTO) { - if (!strcmp(of->ctx->oformat->name, "avi")) { - format_video_sync = VSYNC_VFR; - } else - format_video_sync = (of->ctx->oformat->flags & AVFMT_VARIABLE_FPS) - ? ((of->ctx->oformat->flags & AVFMT_NOTIMESTAMPS) - ? VSYNC_PASSTHROUGH : VSYNC_VFR) : VSYNC_CFR; - if (ist - && format_video_sync == VSYNC_CFR - && input_files[ist->file_index]->ctx->nb_streams == 1 - && input_files[ist->file_index]->input_ts_offset == 0) { - format_video_sync = VSYNC_VSCFR; - } - if (format_video_sync == VSYNC_CFR && copy_ts) { - format_video_sync = VSYNC_VSCFR; - } - } - ost->is_cfr = (format_video_sync == VSYNC_CFR || format_video_sync == VSYNC_VSCFR); - - if (delta0 < 0 && - delta > 0 && - format_video_sync != VSYNC_PASSTHROUGH && - format_video_sync != VSYNC_DROP) { - if (delta0 < -0.6) { - av_log(NULL, AV_LOG_WARNING, "Past duration %f too large\n", -delta0); - } else - av_log(NULL, AV_LOG_DEBUG, "Clipping frame in rate conversion by %f\n", -delta0); - sync_ipts = ost->sync_opts; - duration += delta0; - delta0 = 0; - } - - switch (format_video_sync) { - case VSYNC_VSCFR: - if (ost->frame_number == 0 && delta0 >= 0.5) { - av_log(NULL, AV_LOG_DEBUG, "Not duplicating %d initial frames\n", - (int) lrintf(delta0)); - delta = duration; - delta0 = 0; - ost->sync_opts = lrint(sync_ipts); - } - case VSYNC_CFR: - // FIXME set to 0.5 after we fix some dts/pts bugs like in avidec.c - if (frame_drop_threshold && delta < frame_drop_threshold && ost->frame_number) { - nb_frames = 0; - } else if (delta < -1.1) - nb_frames = 0; - else if (delta > 1.1) { - nb_frames = lrintf(delta); - if (delta0 > 1.1) - nb0_frames = lrintf(delta0 - 0.6); - } - break; - case VSYNC_VFR: - if (delta <= -0.6) - nb_frames = 0; - else if (delta > 0.6) - ost->sync_opts = lrint(sync_ipts); - break; - case VSYNC_DROP: - case VSYNC_PASSTHROUGH: - ost->sync_opts = lrint(sync_ipts); - break; - default: - av_assert0(0); - } - } - - nb_frames = FFMIN(nb_frames, ost->max_frames - ost->frame_number); - nb0_frames = FFMIN(nb0_frames, nb_frames); - - memmove(ost->last_nb0_frames + 1, - ost->last_nb0_frames, - sizeof(ost->last_nb0_frames[0]) * (FF_ARRAY_ELEMS(ost->last_nb0_frames) - 1)); - ost->last_nb0_frames[0] = nb0_frames; - - if (nb0_frames == 0 && ost->last_dropped) { - nb_frames_drop++; - av_log(NULL, AV_LOG_VERBOSE, - "*** dropping frame %d from stream %d at ts %"PRId64"\n", - ost->frame_number, ost->st->index, ost->last_frame->pts); - } - if (nb_frames > (nb0_frames && ost->last_dropped) + (nb_frames > nb0_frames)) { - if (nb_frames > dts_error_threshold * 30) { - av_log(NULL, AV_LOG_ERROR, "%d frame duplication too large, skipping\n", nb_frames - 1); - nb_frames_drop++; - return; - } - nb_frames_dup += nb_frames - (nb0_frames && ost->last_dropped) - (nb_frames > nb0_frames); - av_log(NULL, AV_LOG_VERBOSE, "*** %d dup!\n", nb_frames - 1); - } - ost->last_dropped = nb_frames == nb0_frames && next_picture; - - /* duplicates frame if needed */ - for (i = 0; i < nb_frames; i++) { - AVFrame *in_picture; - av_init_packet(&pkt); - pkt.data = NULL; - pkt.size = 0; - - if (i < nb0_frames && ost->last_frame) { - in_picture = ost->last_frame; - } else - in_picture = next_picture; - - if (!in_picture) - return; - - in_picture->pts = ost->sync_opts; - -#if 1 - if (!check_recording_time(ost)) -#else - if (ost->frame_number >= ost->max_frames) -#endif - return; - -#if FF_API_LAVF_FMT_RAWPICTURE - if (of->ctx->oformat->flags & AVFMT_RAWPICTURE && - enc->codec->id == AV_CODEC_ID_RAWVIDEO) { - /* raw pictures are written as AVPicture structure to - avoid any copies. We support temporarily the older - method. */ - if (in_picture->interlaced_frame) - mux_par->field_order = in_picture->top_field_first ? AV_FIELD_TB : AV_FIELD_BT; - else - mux_par->field_order = AV_FIELD_PROGRESSIVE; - pkt.data = (uint8_t *) in_picture; - pkt.size = sizeof(AVPicture); - pkt.pts = av_rescale_q(in_picture->pts, enc->time_base, ost->st->time_base); - pkt.flags |= AV_PKT_FLAG_KEY; - - output_packet(of, &pkt, ost); - } else -#endif - { - int forced_keyframe = 0; - double pts_time; - - if (enc->flags & (AV_CODEC_FLAG_INTERLACED_DCT | AV_CODEC_FLAG_INTERLACED_ME) && - ost->top_field_first >= 0) - in_picture->top_field_first = !!ost->top_field_first; - - if (in_picture->interlaced_frame) { - if (enc->codec->id == AV_CODEC_ID_MJPEG) - mux_par->field_order = in_picture->top_field_first ? AV_FIELD_TT : AV_FIELD_BB; - else - mux_par->field_order = in_picture->top_field_first ? AV_FIELD_TB : AV_FIELD_BT; - } else - mux_par->field_order = AV_FIELD_PROGRESSIVE; - - in_picture->quality = enc->global_quality; - in_picture->pict_type = 0; - - pts_time = in_picture->pts != AV_NOPTS_VALUE ? - in_picture->pts * av_q2d(enc->time_base) : NAN; - if (ost->forced_kf_index < ost->forced_kf_count && - in_picture->pts >= ost->forced_kf_pts[ost->forced_kf_index]) { - ost->forced_kf_index++; - forced_keyframe = 1; - } else if (ost->forced_keyframes_pexpr) { - double res; - ost->forced_keyframes_expr_const_values[FKF_T] = pts_time; - res = av_expr_eval(ost->forced_keyframes_pexpr, - ost->forced_keyframes_expr_const_values, NULL); - ff_dlog(NULL, - "force_key_frame: n:%f n_forced:%f prev_forced_n:%f t:%f prev_forced_t:%f -> res:%f\n", - ost->forced_keyframes_expr_const_values[FKF_N], - ost->forced_keyframes_expr_const_values[FKF_N_FORCED], - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N], - ost->forced_keyframes_expr_const_values[FKF_T], - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T], - res); - if (res) { - forced_keyframe = 1; - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N] = - ost->forced_keyframes_expr_const_values[FKF_N]; - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T] = - ost->forced_keyframes_expr_const_values[FKF_T]; - ost->forced_keyframes_expr_const_values[FKF_N_FORCED] += 1; - } - - ost->forced_keyframes_expr_const_values[FKF_N] += 1; - } else if (ost->forced_keyframes - && !strncmp(ost->forced_keyframes, "source", 6) - && in_picture->key_frame == 1) { - forced_keyframe = 1; - } - - if (forced_keyframe) { - in_picture->pict_type = AV_PICTURE_TYPE_I; - av_log(NULL, AV_LOG_DEBUG, "Forced keyframe at time %f\n", pts_time); - } - - update_benchmark(NULL); - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "encoder <- type:video " - "frame_pts:%s frame_pts_time:%s time_base:%d/%d\n", - av_ts2str(in_picture->pts), av_ts2timestr(in_picture->pts, &enc->time_base), - enc->time_base.num, enc->time_base.den); - } - - ost->frames_encoded++; - - ret = avcodec_send_frame(enc, in_picture); - if (ret < 0) - goto error; - - while (1) { - ret = avcodec_receive_packet(enc, &pkt); - update_benchmark("encode_video %d.%d", ost->file_index, ost->index); - if (ret == AVERROR(EAGAIN)) - break; - if (ret < 0) - goto error; - - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "encoder -> type:video " - "pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s\n", - av_ts2str(pkt.pts), av_ts2timestr(pkt.pts, &enc->time_base), - av_ts2str(pkt.dts), av_ts2timestr(pkt.dts, &enc->time_base)); - } - - if (pkt.pts == AV_NOPTS_VALUE && !(enc->codec->capabilities & AV_CODEC_CAP_DELAY)) - pkt.pts = ost->sync_opts; - - av_packet_rescale_ts(&pkt, enc->time_base, ost->st->time_base); - - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "encoder -> type:video " - "pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s\n", - av_ts2str(pkt.pts), av_ts2timestr(pkt.pts, &ost->st->time_base), - av_ts2str(pkt.dts), av_ts2timestr(pkt.dts, &ost->st->time_base)); - } - - frame_size = pkt.size; - output_packet(of, &pkt, ost); - - /* if two pass, output log */ - if (ost->logfile && enc->stats_out) { - fprintf(ost->logfile, "%s", enc->stats_out); - } - } - } - ost->sync_opts++; - /* - * For video, number of frames in == number of packets out. - * But there may be reordering, so we can't throw away frames on encoder - * flush, we need to limit them here, before they go into encoder. - */ - ost->frame_number++; - - if (vstats_filename && frame_size) - do_video_stats(ost, frame_size); - } - - if (!ost->last_frame) - ost->last_frame = av_frame_alloc(); - av_frame_unref(ost->last_frame); - if (next_picture && ost->last_frame) - av_frame_ref(ost->last_frame, next_picture); - else - av_frame_free(&ost->last_frame); - - return; - error: - av_log(NULL, AV_LOG_FATAL, "Video encoding failed\n"); - exit_program(1); -} - -static double psnr(double d) { - return -10.0 * log10(d); -} - -static void do_video_stats(OutputStream *ost, int frame_size) { - AVCodecContext *enc; - int frame_number; - double ti1, bitrate, avg_bitrate; - - /* this is executed just the first time do_video_stats is called */ - if (!vstats_file) { - vstats_file = fopen(vstats_filename, "w"); - if (!vstats_file) { - perror("fopen"); - exit_program(1); - } - } - - enc = ost->enc_ctx; - if (enc->codec_type == AVMEDIA_TYPE_VIDEO) { - frame_number = ost->st->nb_frames; - fprintf(vstats_file, "frame= %5d q= %2.1f ", frame_number, - ost->quality / (float) FF_QP2LAMBDA); - - if (ost->error[0] >= 0 && (enc->flags & AV_CODEC_FLAG_PSNR)) - fprintf(vstats_file, "PSNR= %6.2f ", - psnr(ost->error[0] / (enc->width * enc->height * 255.0 * 255.0))); - - fprintf(vstats_file, "f_size= %6d ", frame_size); - /* compute pts value */ - ti1 = av_stream_get_end_pts(ost->st) * av_q2d(ost->st->time_base); - if (ti1 < 0.01) - ti1 = 0.01; - - bitrate = (frame_size * 8) / av_q2d(enc->time_base) / 1000.0; - avg_bitrate = (double) (ost->data_size * 8) / ti1 / 1000.0; - fprintf(vstats_file, "s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s ", - (double) ost->data_size / 1024, ti1, bitrate, avg_bitrate); - fprintf(vstats_file, "type= %c\n", av_get_picture_type_char(ost->pict_type)); - } -} - -static void finish_output_stream(OutputStream *ost) { - OutputFile *of = output_files[ost->file_index]; - int i; - - ost->finished = ENCODER_FINISHED | MUXER_FINISHED; - - if (of->shortest) { - for (i = 0; i < of->ctx->nb_streams; i++) - output_streams[of->ost_index + i]->finished = ENCODER_FINISHED | MUXER_FINISHED; - } -} - -/** - * Get and encode new output from any of the filtergraphs, without causing - * activity. - * - * @return 0 for success, <0 for severe errors - */ -static int reap_filters(int flush) { - AVFrame *filtered_frame = NULL; - int i; - - /* Reap all buffers present in the buffer sinks */ - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - OutputFile *of = output_files[ost->file_index]; - AVFilterContext *filter; - AVCodecContext *enc = ost->enc_ctx; - int ret = 0; - - if (!ost->filter) - continue; - filter = ost->filter->filter; - - if (!ost->filtered_frame && !(ost->filtered_frame = av_frame_alloc())) { - return AVERROR(ENOMEM); - } - filtered_frame = ost->filtered_frame; - - while (1) { - double float_pts = AV_NOPTS_VALUE; // this is identical to filtered_frame.pts but with higher precision - ret = av_buffersink_get_frame_flags(filter, filtered_frame, - AV_BUFFERSINK_FLAG_NO_REQUEST); - if (ret < 0) { - if (ret != AVERROR(EAGAIN) && ret != AVERROR_EOF) { - av_log(NULL, AV_LOG_WARNING, - "Error in av_buffersink_get_frame_flags(): %s\n", av_err2str(ret)); - } else if (flush && ret == AVERROR_EOF) { - if (filter->inputs[0]->type == AVMEDIA_TYPE_VIDEO) - do_video_out(of, ost, NULL, AV_NOPTS_VALUE); - } - break; - } - if (ost->finished) { - av_frame_unref(filtered_frame); - continue; - } - if (filtered_frame->pts != AV_NOPTS_VALUE) { - int64_t start_time = (of->start_time == AV_NOPTS_VALUE) ? 0 : of->start_time; - AVRational tb = enc->time_base; - int extra_bits = av_clip(29 - av_log2(tb.den), 0, 16); - - tb.den <<= extra_bits; - float_pts = - av_rescale_q(filtered_frame->pts, filter->inputs[0]->time_base, tb) - - av_rescale_q(start_time, AV_TIME_BASE_Q, tb); - float_pts /= 1 << extra_bits; - // avoid exact midoints to reduce the chance of rounding differences, this can be removed in case the fps code is changed to work with integers - float_pts += FFSIGN(float_pts) * 1.0 / (1 << 17); - - filtered_frame->pts = - av_rescale_q(filtered_frame->pts, filter->inputs[0]->time_base, - enc->time_base) - - av_rescale_q(start_time, AV_TIME_BASE_Q, enc->time_base); - } - //if (ost->source_index >= 0) - // *filtered_frame= *input_streams[ost->source_index]->decoded_frame; //for me_threshold - - switch (filter->inputs[0]->type) { - case AVMEDIA_TYPE_VIDEO: - if (!ost->frame_aspect_ratio.num) - enc->sample_aspect_ratio = filtered_frame->sample_aspect_ratio; - - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, - "filter -> pts:%s pts_time:%s exact:%f time_base:%d/%d\n", - av_ts2str(filtered_frame->pts), - av_ts2timestr(filtered_frame->pts, &enc->time_base), - float_pts, - enc->time_base.num, enc->time_base.den); - } - - do_video_out(of, ost, filtered_frame, float_pts); - break; - case AVMEDIA_TYPE_AUDIO: - if (!(enc->codec->capabilities & AV_CODEC_CAP_PARAM_CHANGE) && - enc->channels != av_frame_get_channels(filtered_frame)) { - av_log(NULL, AV_LOG_ERROR, - "Audio filter graph output is not normalized and encoder does not support parameter changes\n"); - break; - } - do_audio_out(of, ost, filtered_frame); - break; - default: - // TODO support subtitle filters - av_assert0(0); - } - - av_frame_unref(filtered_frame); - } - } - - return 0; -} - -static void print_final_stats(int64_t total_size) { - uint64_t video_size = 0, audio_size = 0, extra_size = 0, other_size = 0; - uint64_t subtitle_size = 0; - uint64_t data_size = 0; - float percent = -1.0; - int i, j; - int pass1_used = 1; - - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - switch (ost->enc_ctx->codec_type) { - case AVMEDIA_TYPE_VIDEO: - video_size += ost->data_size; - break; - case AVMEDIA_TYPE_AUDIO: - audio_size += ost->data_size; - break; - case AVMEDIA_TYPE_SUBTITLE: - subtitle_size += ost->data_size; - break; - default: - other_size += ost->data_size; - break; - } - extra_size += ost->enc_ctx->extradata_size; - data_size += ost->data_size; - if ((ost->enc_ctx->flags & (AV_CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2)) - != AV_CODEC_FLAG_PASS1) - pass1_used = 0; - } - - if (data_size && total_size > 0 && total_size >= data_size) - percent = 100.0 * (total_size - data_size) / data_size; - - av_log(NULL, AV_LOG_INFO, - "video:%1.0fkB audio:%1.0fkB subtitle:%1.0fkB other streams:%1.0fkB global headers:%1.0fkB muxing overhead: ", - video_size / 1024.0, - audio_size / 1024.0, - subtitle_size / 1024.0, - other_size / 1024.0, - extra_size / 1024.0); - if (percent >= 0.0) - av_log(NULL, AV_LOG_INFO, "%f%%", percent); - else - av_log(NULL, AV_LOG_INFO, "unknown"); - av_log(NULL, AV_LOG_INFO, "\n"); - - /* print verbose per-stream stats */ - for (i = 0; i < nb_input_files; i++) { - InputFile *f = input_files[i]; - uint64_t total_packets = 0, total_size = 0; - - av_log(NULL, AV_LOG_VERBOSE, "Input file #%d (%s):\n", - i, f->ctx->filename); - - for (j = 0; j < f->nb_streams; j++) { - InputStream *ist = input_streams[f->ist_index + j]; - enum AVMediaType type = ist->dec_ctx->codec_type; - - total_size += ist->data_size; - total_packets += ist->nb_packets; - - av_log(NULL, AV_LOG_VERBOSE, " Input stream #%d:%d (%s): ", - i, j, media_type_string(type)); - av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" packets read (%"PRIu64" bytes); ", - ist->nb_packets, ist->data_size); - - if (ist->decoding_needed) { - av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" frames decoded", - ist->frames_decoded); - if (type == AVMEDIA_TYPE_AUDIO) - av_log(NULL, AV_LOG_VERBOSE, " (%"PRIu64" samples)", ist->samples_decoded); - av_log(NULL, AV_LOG_VERBOSE, "; "); - } - - av_log(NULL, AV_LOG_VERBOSE, "\n"); - } - - av_log(NULL, AV_LOG_VERBOSE, " Total: %"PRIu64" packets (%"PRIu64" bytes) demuxed\n", - total_packets, total_size); - } - - for (i = 0; i < nb_output_files; i++) { - OutputFile *of = output_files[i]; - uint64_t total_packets = 0, total_size = 0; - - av_log(NULL, AV_LOG_VERBOSE, "Output file #%d (%s):\n", - i, of->ctx->filename); - - for (j = 0; j < of->ctx->nb_streams; j++) { - OutputStream *ost = output_streams[of->ost_index + j]; - enum AVMediaType type = ost->enc_ctx->codec_type; - - total_size += ost->data_size; - total_packets += ost->packets_written; - - av_log(NULL, AV_LOG_VERBOSE, " Output stream #%d:%d (%s): ", - i, j, media_type_string(type)); - if (ost->encoding_needed) { - av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" frames encoded", - ost->frames_encoded); - if (type == AVMEDIA_TYPE_AUDIO) - av_log(NULL, AV_LOG_VERBOSE, " (%"PRIu64" samples)", ost->samples_encoded); - av_log(NULL, AV_LOG_VERBOSE, "; "); - } - - av_log(NULL, AV_LOG_VERBOSE, "%"PRIu64" packets muxed (%"PRIu64" bytes); ", - ost->packets_written, ost->data_size); - - av_log(NULL, AV_LOG_VERBOSE, "\n"); - } - - av_log(NULL, AV_LOG_VERBOSE, " Total: %"PRIu64" packets (%"PRIu64" bytes) muxed\n", - total_packets, total_size); - } - if (video_size + data_size + audio_size + subtitle_size + extra_size == 0) { - av_log(NULL, AV_LOG_WARNING, "Output file is empty, nothing was encoded "); - if (pass1_used) { - av_log(NULL, AV_LOG_WARNING, "\n"); - } else { - av_log(NULL, AV_LOG_WARNING, "(check -ss / -t / -frames parameters if used)\n"); - } - } -} - -static void print_report(int is_last_report, int64_t timer_start, int64_t cur_time) { - char buf[1024]; - AVBPrint buf_script; - OutputStream *ost; - AVFormatContext *oc; - int64_t total_size; - AVCodecContext *enc; - int frame_number, vid, i; - double bitrate; - double speed; - int64_t pts = INT64_MIN + 1; - static int64_t last_time = -1; - static int qp_histogram[52]; - int hours, mins, secs, us; - int ret; - float t; - - if (!print_stats && !is_last_report && !progress_avio) - return; - - if (!is_last_report) { - if (last_time == -1) { - last_time = cur_time; - return; - } - if ((cur_time - last_time) < 500000) - return; - last_time = cur_time; - } - - t = (cur_time - timer_start) / 1000000.0; - - - oc = output_files[0]->ctx; - - total_size = avio_size(oc->pb); - if (total_size <= 0) // FIXME improve avio_size() so it works with non seekable output too - total_size = avio_tell(oc->pb); - - buf[0] = '\0'; - vid = 0; - av_bprint_init(&buf_script, 0, 1); - for (i = 0; i < nb_output_streams; i++) { - float q = -1; - ost = output_streams[i]; - enc = ost->enc_ctx; - if (!ost->stream_copy) - q = ost->quality / (float) FF_QP2LAMBDA; - - if (vid && enc->codec_type == AVMEDIA_TYPE_VIDEO) { - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "q=%2.1f ", q); - av_bprintf(&buf_script, "stream_%d_%d_q=%.1f\n", - ost->file_index, ost->index, q); - } - if (!vid && enc->codec_type == AVMEDIA_TYPE_VIDEO) { - float fps; - - frame_number = ost->frame_number; - fps = t > 1 ? frame_number / t : 0; - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "frame=%5d fps=%3.*f q=%3.1f ", - frame_number, fps < 9.95, fps, q); - av_bprintf(&buf_script, "frame=%d\n", frame_number); - av_bprintf(&buf_script, "fps=%.1f\n", fps); - av_bprintf(&buf_script, "stream_%d_%d_q=%.1f\n", - ost->file_index, ost->index, q); - if (is_last_report) - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "L"); - if (qp_hist) { - int j; - int qp = lrintf(q); - if (qp >= 0 && qp < FF_ARRAY_ELEMS(qp_histogram)) - qp_histogram[qp]++; - for (j = 0; j < 32; j++) - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%X", - av_log2(qp_histogram[j] + 1)); - } - - if ((enc->flags & AV_CODEC_FLAG_PSNR) && - (ost->pict_type != AV_PICTURE_TYPE_NONE || is_last_report)) { - int j; - double error, error_sum = 0; - double scale, scale_sum = 0; - double p; - char type[3] = {'Y', 'U', 'V'}; - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "PSNR="); - for (j = 0; j < 3; j++) { - if (is_last_report) { - error = enc->error[j]; - scale = enc->width * enc->height * 255.0 * 255.0 * frame_number; - } else { - error = ost->error[j]; - scale = enc->width * enc->height * 255.0 * 255.0; - } - if (j) - scale /= 4; - error_sum += error; - scale_sum += scale; - p = psnr(error / scale); - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%c:%2.2f ", type[j], p); - av_bprintf(&buf_script, "stream_%d_%d_psnr_%c=%2.2f\n", - ost->file_index, ost->index, type[j] | 32, p); - } - p = psnr(error_sum / scale_sum); - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "*:%2.2f ", - psnr(error_sum / scale_sum)); - av_bprintf(&buf_script, "stream_%d_%d_psnr_all=%2.2f\n", - ost->file_index, ost->index, p); - } - vid = 1; - } - /* compute min output value */ - if (av_stream_get_end_pts(ost->st) != AV_NOPTS_VALUE) - pts = FFMAX(pts, av_rescale_q(av_stream_get_end_pts(ost->st), - ost->st->time_base, AV_TIME_BASE_Q)); - if (is_last_report) - nb_frames_drop += ost->last_dropped; - } - - secs = FFABS(pts) / AV_TIME_BASE; - us = FFABS(pts) % AV_TIME_BASE; - mins = secs / 60; - secs %= 60; - hours = mins / 60; - mins %= 60; - - bitrate = pts && total_size >= 0 ? total_size * 8 / (pts / 1000.0) : -1; - speed = t != 0.0 ? (double) pts / AV_TIME_BASE / t : -1; - - if (total_size < 0) - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "size=N/A time="); - else - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "size=%8.0fkB time=", total_size / 1024.0); - if (pts < 0) - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "-"); - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "%02d:%02d:%02d.%02d ", hours, mins, secs, - (100 * us) / AV_TIME_BASE); - - if (bitrate < 0) { - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "bitrate=N/A"); - av_bprintf(&buf_script, "bitrate=N/A\n"); - } else { - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "bitrate=%6.1fkbits/s", bitrate); - av_bprintf(&buf_script, "bitrate=%6.1fkbits/s\n", bitrate); - } - - if (total_size < 0) av_bprintf(&buf_script, "total_size=N/A\n"); - else av_bprintf(&buf_script, "total_size=%"PRId64"\n", total_size); - av_bprintf(&buf_script, "out_time_ms=%"PRId64"\n", pts); - av_bprintf(&buf_script, "out_time=%02d:%02d:%02d.%06d\n", - hours, mins, secs, us); - - if (nb_frames_dup || nb_frames_drop) - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " dup=%d drop=%d", - nb_frames_dup, nb_frames_drop); - av_bprintf(&buf_script, "dup_frames=%d\n", nb_frames_dup); - av_bprintf(&buf_script, "drop_frames=%d\n", nb_frames_drop); - - if (speed < 0) { - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " speed=N/A"); - av_bprintf(&buf_script, "speed=N/A\n"); - } else { - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " speed=%4.3gx", speed); - av_bprintf(&buf_script, "speed=%4.3gx\n", speed); - } - - if (print_stats || is_last_report) { - const char end = is_last_report ? '\n' : '\r'; - if (print_stats == 1 && AV_LOG_INFO > av_log_get_level()) { - fprintf(stderr, "%s %c", buf, end); - } else - av_log(NULL, AV_LOG_INFO, "%s %c", buf, end); - - fflush(stderr); - } - - if (progress_avio) { - av_bprintf(&buf_script, "progress=%s\n", - is_last_report ? "recordEnd" : "continue"); - avio_write(progress_avio, buf_script.str, - FFMIN(buf_script.len, buf_script.size - 1)); - avio_flush(progress_avio); - av_bprint_finalize(&buf_script, NULL); - if (is_last_report) { - if ((ret = avio_closep(&progress_avio)) < 0) - av_log(NULL, AV_LOG_ERROR, - "Error closing progress log, loss of information possible: %s\n", - av_err2str(ret)); - } - } - - if (is_last_report) - print_final_stats(total_size); -} - -static void flush_encoders(void) { - int i, ret; - - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - AVCodecContext *enc = ost->enc_ctx; - OutputFile *of = output_files[ost->file_index]; - int stop_encoding = 0; - - if (!ost->encoding_needed) - continue; - - if (enc->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <= 1) - continue; -#if FF_API_LAVF_FMT_RAWPICTURE - if (enc->codec_type == AVMEDIA_TYPE_VIDEO && (of->ctx->oformat->flags & AVFMT_RAWPICTURE) && - enc->codec->id == AV_CODEC_ID_RAWVIDEO) - continue; -#endif - - if (enc->codec_type != AVMEDIA_TYPE_VIDEO && enc->codec_type != AVMEDIA_TYPE_AUDIO) - continue; - - avcodec_send_frame(enc, NULL); - - for (;;) { - const char *desc = NULL; - - switch (enc->codec_type) { - case AVMEDIA_TYPE_AUDIO: - desc = "audio"; - break; - case AVMEDIA_TYPE_VIDEO: - desc = "video"; - break; - default: - av_assert0(0); - } - - if (1) { - AVPacket pkt; - int pkt_size; - av_init_packet(&pkt); - pkt.data = NULL; - pkt.size = 0; - - update_benchmark(NULL); - ret = avcodec_receive_packet(enc, &pkt); - update_benchmark("flush_%s %d.%d", desc, ost->file_index, ost->index); - if (ret < 0 && ret != AVERROR_EOF) { - av_log(NULL, AV_LOG_FATAL, "%s encoding failed: %s\n", - desc, - av_err2str(ret)); - exit_program(1); - } - if (ost->logfile && enc->stats_out) { - fprintf(ost->logfile, "%s", enc->stats_out); - } - if (ret == AVERROR_EOF) { - stop_encoding = 1; - break; - } - if (ost->finished & MUXER_FINISHED) { - av_packet_unref(&pkt); - continue; - } - av_packet_rescale_ts(&pkt, enc->time_base, ost->st->time_base); - pkt_size = pkt.size; - output_packet(of, &pkt, ost); - if (ost->enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO && vstats_filename) { - do_video_stats(ost, pkt_size); - } - } - - if (stop_encoding) - break; - } - } -} - -/* - * Check whether a packet from ist should be written into ost at this time - */ -static int check_output_constraints(InputStream *ist, OutputStream *ost) { - OutputFile *of = output_files[ost->file_index]; - int ist_index = input_files[ist->file_index]->ist_index + ist->st->index; - - if (ost->source_index != ist_index) - return 0; - - if (ost->finished) - return 0; - - if (of->start_time != AV_NOPTS_VALUE && ist->pts < of->start_time) - return 0; - - return 1; -} - -static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *pkt) { - OutputFile *of = output_files[ost->file_index]; - InputFile *f = input_files[ist->file_index]; - int64_t start_time = (of->start_time == AV_NOPTS_VALUE) ? 0 : of->start_time; - int64_t ost_tb_start_time = av_rescale_q(start_time, AV_TIME_BASE_Q, ost->st->time_base); - AVPicture pict; - AVPacket opkt; - - av_init_packet(&opkt); - - if ((!ost->frame_number && !(pkt->flags & AV_PKT_FLAG_KEY)) && - !ost->copy_initial_nonkeyframes) - return; - - if (!ost->frame_number && !ost->copy_prior_start) { - int64_t comp_start = start_time; - if (copy_ts && f->start_time != AV_NOPTS_VALUE) - comp_start = FFMAX(start_time, f->start_time + f->ts_offset); - if (pkt->pts == AV_NOPTS_VALUE ? - ist->pts < comp_start : - pkt->pts < av_rescale_q(comp_start, AV_TIME_BASE_Q, ist->st->time_base)) - return; - } - - if (of->recording_time != INT64_MAX && - ist->pts >= of->recording_time + start_time) { - close_output_stream(ost); - return; - } - - if (f->recording_time != INT64_MAX) { - start_time = f->ctx->start_time; - if (f->start_time != AV_NOPTS_VALUE && copy_ts) - start_time += f->start_time; - if (ist->pts >= f->recording_time + start_time) { - close_output_stream(ost); - return; - } - } - - /* force the input stream PTS */ - if (ost->enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO) - ost->sync_opts++; - - if (pkt->pts != AV_NOPTS_VALUE) - opkt.pts = - av_rescale_q(pkt->pts, ist->st->time_base, ost->st->time_base) - ost_tb_start_time; - else - opkt.pts = AV_NOPTS_VALUE; - - if (pkt->dts == AV_NOPTS_VALUE) - opkt.dts = av_rescale_q(ist->dts, AV_TIME_BASE_Q, ost->st->time_base); - else - opkt.dts = av_rescale_q(pkt->dts, ist->st->time_base, ost->st->time_base); - opkt.dts -= ost_tb_start_time; - - if (ost->st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && pkt->dts != AV_NOPTS_VALUE) { - int duration = av_get_audio_frame_duration(ist->dec_ctx, pkt->size); - if (!duration) - duration = ist->dec_ctx->frame_size; - opkt.dts = opkt.pts = av_rescale_delta(ist->st->time_base, pkt->dts, - (AVRational) {1, ist->dec_ctx->sample_rate}, - duration, &ist->filter_in_rescale_delta_last, - ost->st->time_base) - ost_tb_start_time; - } - - opkt.duration = av_rescale_q(pkt->duration, ist->st->time_base, ost->st->time_base); - opkt.flags = pkt->flags; - // FIXME remove the following 2 lines they shall be replaced by the bitstream filters - if (ost->st->codecpar->codec_id != AV_CODEC_ID_H264 - && ost->st->codecpar->codec_id != AV_CODEC_ID_MPEG1VIDEO - && ost->st->codecpar->codec_id != AV_CODEC_ID_MPEG2VIDEO - && ost->st->codecpar->codec_id != AV_CODEC_ID_VC1 - ) { - int ret = av_parser_change(ost->parser, ost->parser_avctx, - &opkt.data, &opkt.size, - pkt->data, pkt->size, - pkt->flags & AV_PKT_FLAG_KEY); - if (ret < 0) { - av_log(NULL, AV_LOG_FATAL, "av_parser_change failed: %s\n", - av_err2str(ret)); - exit_program(1); - } - if (ret) { - opkt.buf = av_buffer_create(opkt.data, opkt.size, av_buffer_default_free, NULL, 0); - if (!opkt.buf) - exit_program(1); - } - } else { - opkt.data = pkt->data; - opkt.size = pkt->size; - } - av_copy_packet_side_data(&opkt, pkt); - -#if FF_API_LAVF_FMT_RAWPICTURE - if (ost->st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO && - ost->st->codecpar->codec_id == AV_CODEC_ID_RAWVIDEO && - (of->ctx->oformat->flags & AVFMT_RAWPICTURE)) { - /* store AVPicture in AVPacket, as expected by the output format */ - int ret = avpicture_fill(&pict, opkt.data, ost->st->codecpar->format, - ost->st->codecpar->width, ost->st->codecpar->height); - if (ret < 0) { - av_log(NULL, AV_LOG_FATAL, "avpicture_fill failed: %s\n", - av_err2str(ret)); - exit_program(1); - } - opkt.data = (uint8_t *) &pict; - opkt.size = sizeof(AVPicture); - opkt.flags |= AV_PKT_FLAG_KEY; - } -#endif - - output_packet(of, &opkt, ost); -} - -int guess_input_channel_layout(InputStream *ist) { - AVCodecContext *dec = ist->dec_ctx; - - if (!dec->channel_layout) { - char layout_name[256]; - - if (dec->channels > ist->guess_layout_max) - return 0; - dec->channel_layout = av_get_default_channel_layout(dec->channels); - if (!dec->channel_layout) - return 0; - av_get_channel_layout_string(layout_name, sizeof(layout_name), - dec->channels, dec->channel_layout); - av_log(NULL, AV_LOG_WARNING, "Guessed Channel Layout for Input Stream " - "#%d.%d : %s\n", ist->file_index, ist->st->index, layout_name); - } - return 1; -} - -static void check_decode_result(InputStream *ist, int *got_output, int ret) { - if (*got_output || ret < 0) - decode_error_stat[ret < 0]++; - - if (ret < 0 && exit_on_error) - exit_program(1); - - if (exit_on_error && *got_output && ist) { - if (av_frame_get_decode_error_flags(ist->decoded_frame) || - (ist->decoded_frame->flags & AV_FRAME_FLAG_CORRUPT)) { - av_log(NULL, AV_LOG_FATAL, "%s: corrupt decoded frame in stream %d\n", - input_files[ist->file_index]->ctx->filename, ist->st->index); - exit_program(1); - } - } -} - -// This does not quite work like avcodec_decode_audio4/avcodec_decode_video2. -// There is the following difference: if you got a frame, you must call -// it again with pkt=NULL. pkt==NULL is treated differently from pkt.size==0 -// (pkt==NULL means get more output, pkt.size==0 is a flush/drain packet) -static int decode(AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *pkt) { - int ret; - - *got_frame = 0; - - if (pkt) { - ret = avcodec_send_packet(avctx, pkt); - // In particular, we don't expect AVERROR(EAGAIN), because we read all - // decoded frames with avcodec_receive_frame() until done. - if (ret < 0 && ret != AVERROR_EOF) - return ret; - } - - ret = avcodec_receive_frame(avctx, frame); - if (ret < 0 && ret != AVERROR(EAGAIN)) - return ret; - if (ret >= 0) - *got_frame = 1; - - return 0; -} - -static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) { - AVFrame *decoded_frame, *f; - AVCodecContext *avctx = ist->dec_ctx; - int i, ret, err = 0, resample_changed; - AVRational decoded_frame_tb; - - if (!ist->decoded_frame && !(ist->decoded_frame = av_frame_alloc())) - return AVERROR(ENOMEM); - if (!ist->filter_frame && !(ist->filter_frame = av_frame_alloc())) - return AVERROR(ENOMEM); - decoded_frame = ist->decoded_frame; - - update_benchmark(NULL); - ret = decode(avctx, decoded_frame, got_output, pkt); - update_benchmark("decode_audio %d.%d", ist->file_index, ist->st->index); - - if (ret >= 0 && avctx->sample_rate <= 0) { - av_log(avctx, AV_LOG_ERROR, "Sample rate %d invalid\n", avctx->sample_rate); - ret = AVERROR_INVALIDDATA; - } - - if (ret != AVERROR_EOF) - check_decode_result(ist, got_output, ret); - - if (!*got_output || ret < 0) - return ret; - - ist->samples_decoded += decoded_frame->nb_samples; - ist->frames_decoded++; - -#if 1 - /* increment next_dts to use for the case where the input stream does not - have timestamps or there are multiple frames in the packet */ - ist->next_pts += ((int64_t) AV_TIME_BASE * decoded_frame->nb_samples) / - avctx->sample_rate; - ist->next_dts += ((int64_t) AV_TIME_BASE * decoded_frame->nb_samples) / - avctx->sample_rate; -#endif - - resample_changed = ist->resample_sample_fmt != decoded_frame->format || - ist->resample_channels != avctx->channels || - ist->resample_channel_layout != decoded_frame->channel_layout || - ist->resample_sample_rate != decoded_frame->sample_rate; - if (resample_changed) { - char layout1[64], layout2[64]; - - if (!guess_input_channel_layout(ist)) { - av_log(NULL, AV_LOG_FATAL, "Unable to find default channel " - "layout for Input Stream #%d.%d\n", ist->file_index, - ist->st->index); - exit_program(1); - } - decoded_frame->channel_layout = avctx->channel_layout; - - av_get_channel_layout_string(layout1, sizeof(layout1), ist->resample_channels, - ist->resample_channel_layout); - av_get_channel_layout_string(layout2, sizeof(layout2), avctx->channels, - decoded_frame->channel_layout); - - av_log(NULL, AV_LOG_INFO, - "Input stream #%d:%d frame changed from rate:%d fmt:%s ch:%d chl:%s to rate:%d fmt:%s ch:%d chl:%s\n", - ist->file_index, ist->st->index, - ist->resample_sample_rate, av_get_sample_fmt_name(ist->resample_sample_fmt), - ist->resample_channels, layout1, - decoded_frame->sample_rate, av_get_sample_fmt_name(decoded_frame->format), - avctx->channels, layout2); - - ist->resample_sample_fmt = decoded_frame->format; - ist->resample_sample_rate = decoded_frame->sample_rate; - ist->resample_channel_layout = decoded_frame->channel_layout; - ist->resample_channels = avctx->channels; - - for (i = 0; i < nb_filtergraphs; i++) - if (ist_in_filtergraph(filtergraphs[i], ist)) { - FilterGraph *fg = filtergraphs[i]; - if (configure_filtergraph(fg) < 0) { - av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n"); - exit_program(1); - } - } - } - - if (decoded_frame->pts != AV_NOPTS_VALUE) { - decoded_frame_tb = ist->st->time_base; - } else if (pkt && pkt->pts != AV_NOPTS_VALUE) { - decoded_frame->pts = pkt->pts; - decoded_frame_tb = ist->st->time_base; - } else { - decoded_frame->pts = ist->dts; - decoded_frame_tb = AV_TIME_BASE_Q; - } - if (decoded_frame->pts != AV_NOPTS_VALUE) - decoded_frame->pts = av_rescale_delta(decoded_frame_tb, decoded_frame->pts, - (AVRational) {1, avctx->sample_rate}, - decoded_frame->nb_samples, - &ist->filter_in_rescale_delta_last, - (AVRational) {1, avctx->sample_rate}); - ist->nb_samples = decoded_frame->nb_samples; - for (i = 0; i < ist->nb_filters; i++) { - if (i < ist->nb_filters - 1) { - f = ist->filter_frame; - err = av_frame_ref(f, decoded_frame); - if (err < 0) - break; - } else - f = decoded_frame; - err = av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, - AV_BUFFERSRC_FLAG_PUSH); - if (err == AVERROR_EOF) - err = 0; /* ignore */ - if (err < 0) - break; - } - decoded_frame->pts = AV_NOPTS_VALUE; - - av_frame_unref(ist->filter_frame); - av_frame_unref(decoded_frame); - return err < 0 ? err : ret; -} - -static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output, int eof) { - AVFrame *decoded_frame, *f; - int i, ret = 0, err = 0, resample_changed; - int64_t best_effort_timestamp; - int64_t dts = AV_NOPTS_VALUE; - AVRational *frame_sample_aspect; - AVPacket avpkt; - - // With fate-indeo3-2, we're getting 0-sized packets before EOF for some - // reason. This seems like a semi-critical bug. Don't trigger EOF, and - // skip the packet. - if (!eof && pkt && pkt->size == 0) - return 0; - - if (!ist->decoded_frame && !(ist->decoded_frame = av_frame_alloc())) - return AVERROR(ENOMEM); - if (!ist->filter_frame && !(ist->filter_frame = av_frame_alloc())) - return AVERROR(ENOMEM); - decoded_frame = ist->decoded_frame; - if (ist->dts != AV_NOPTS_VALUE) - dts = av_rescale_q(ist->dts, AV_TIME_BASE_Q, ist->st->time_base); - if (pkt) { - avpkt = *pkt; - avpkt.dts = dts; // ffmpeg.c probably shouldn't do this - } - - // The old code used to set dts on the drain packet, which does not work - // with the new API anymore. - if (eof) { - void *new = av_realloc_array(ist->dts_buffer, ist->nb_dts_buffer + 1, - sizeof(ist->dts_buffer[0])); - if (!new) - return AVERROR(ENOMEM); - ist->dts_buffer = new; - ist->dts_buffer[ist->nb_dts_buffer++] = dts; - } - - update_benchmark(NULL); - ret = decode(ist->dec_ctx, decoded_frame, got_output, pkt ? &avpkt : NULL); - update_benchmark("decode_video %d.%d", ist->file_index, ist->st->index); - - // The following line may be required in some cases where there is no parser - // or the parser does not has_b_frames correctly - if (ist->st->codecpar->video_delay < ist->dec_ctx->has_b_frames) { - if (ist->dec_ctx->codec_id == AV_CODEC_ID_H264) { - ist->st->codecpar->video_delay = ist->dec_ctx->has_b_frames; - } else - av_log(ist->dec_ctx, AV_LOG_WARNING, - "video_delay is larger in decoder than demuxer %d > %d.\n" - "If you want to help, upload a sample " - "of this file to ftp://upload.ffmpeg.org/incoming/ " - "and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)", - ist->dec_ctx->has_b_frames, - ist->st->codecpar->video_delay); - } - - if (ret != AVERROR_EOF) - check_decode_result(ist, got_output, ret); - - if (*got_output && ret >= 0) { - if (ist->dec_ctx->width != decoded_frame->width || - ist->dec_ctx->height != decoded_frame->height || - ist->dec_ctx->pix_fmt != decoded_frame->format) { - av_log(NULL, AV_LOG_DEBUG, "Frame parameters mismatch context %d,%d,%d != %d,%d,%d\n", - decoded_frame->width, - decoded_frame->height, - decoded_frame->format, - ist->dec_ctx->width, - ist->dec_ctx->height, - ist->dec_ctx->pix_fmt); - } - } - - if (!*got_output || ret < 0) - return ret; - - if (ist->top_field_first >= 0) - decoded_frame->top_field_first = ist->top_field_first; - - ist->frames_decoded++; - - if (ist->hwaccel_retrieve_data && decoded_frame->format == ist->hwaccel_pix_fmt) { - err = ist->hwaccel_retrieve_data(ist->dec_ctx, decoded_frame); - if (err < 0) - goto fail; - } - ist->hwaccel_retrieved_pix_fmt = decoded_frame->format; - - best_effort_timestamp = av_frame_get_best_effort_timestamp(decoded_frame); - - if (eof && best_effort_timestamp == AV_NOPTS_VALUE && ist->nb_dts_buffer > 0) { - best_effort_timestamp = ist->dts_buffer[0]; - - for (i = 0; i < ist->nb_dts_buffer - 1; i++) - ist->dts_buffer[i] = ist->dts_buffer[i + 1]; - ist->nb_dts_buffer--; - } - - if (best_effort_timestamp != AV_NOPTS_VALUE) { - int64_t ts = av_rescale_q(decoded_frame->pts = best_effort_timestamp, ist->st->time_base, - AV_TIME_BASE_Q); - - if (ts != AV_NOPTS_VALUE) - ist->next_pts = ist->pts = ts; - } - - if (debug_ts) { - av_log(NULL, AV_LOG_INFO, "decoder -> ist_index:%d type:video " - "frame_pts:%s frame_pts_time:%s best_effort_ts:%"PRId64" best_effort_ts_time:%s keyframe:%d frame_type:%d time_base:%d/%d\n", - ist->st->index, av_ts2str(decoded_frame->pts), - av_ts2timestr(decoded_frame->pts, &ist->st->time_base), - best_effort_timestamp, - av_ts2timestr(best_effort_timestamp, &ist->st->time_base), - decoded_frame->key_frame, decoded_frame->pict_type, - ist->st->time_base.num, ist->st->time_base.den); - } - - if (ist->st->sample_aspect_ratio.num) - decoded_frame->sample_aspect_ratio = ist->st->sample_aspect_ratio; - - resample_changed = ist->resample_width != decoded_frame->width || - ist->resample_height != decoded_frame->height || - ist->resample_pix_fmt != decoded_frame->format; - if (resample_changed) { - av_log(NULL, AV_LOG_INFO, - "Input stream #%d:%d frame changed from size:%dx%d fmt:%s to size:%dx%d fmt:%s\n", - ist->file_index, ist->st->index, - ist->resample_width, ist->resample_height, - av_get_pix_fmt_name(ist->resample_pix_fmt), - decoded_frame->width, decoded_frame->height, - av_get_pix_fmt_name(decoded_frame->format)); - - ist->resample_width = decoded_frame->width; - ist->resample_height = decoded_frame->height; - ist->resample_pix_fmt = decoded_frame->format; - - for (i = 0; i < nb_filtergraphs; i++) { - if (ist_in_filtergraph(filtergraphs[i], ist) && ist->reinit_filters && - configure_filtergraph(filtergraphs[i]) < 0) { - av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n"); - exit_program(1); - } - } - } - - frame_sample_aspect = av_opt_ptr(avcodec_get_frame_class(), decoded_frame, - "sample_aspect_ratio"); - for (i = 0; i < ist->nb_filters; i++) { - if (!frame_sample_aspect->num) - *frame_sample_aspect = ist->st->sample_aspect_ratio; - - if (i < ist->nb_filters - 1) { - f = ist->filter_frame; - err = av_frame_ref(f, decoded_frame); - if (err < 0) - break; - } else - f = decoded_frame; - err = av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, AV_BUFFERSRC_FLAG_PUSH); - if (err == AVERROR_EOF) { - err = 0; /* ignore */ - } else if (err < 0) { - av_log(NULL, AV_LOG_FATAL, - "Failed to inject frame into filter network: %s\n", av_err2str(err)); - exit_program(1); - } - } - - fail: - av_frame_unref(ist->filter_frame); - av_frame_unref(decoded_frame); - return err < 0 ? err : ret; -} - -static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output) { - AVSubtitle subtitle; - int i, ret = avcodec_decode_subtitle2(ist->dec_ctx, - &subtitle, got_output, pkt); - - check_decode_result(NULL, got_output, ret); - - if (ret < 0 || !*got_output) { - if (!pkt->size) - sub2video_flush(ist); - return ret; - } - - if (ist->fix_sub_duration) { - int end = 1; - if (ist->prev_sub.got_output) { - end = av_rescale(subtitle.pts - ist->prev_sub.subtitle.pts, - 1000, AV_TIME_BASE); - if (end < ist->prev_sub.subtitle.end_display_time) { - av_log(ist->dec_ctx, AV_LOG_DEBUG, - "Subtitle duration reduced from %d to %d%s\n", - ist->prev_sub.subtitle.end_display_time, end, - end <= 0 ? ", dropping it" : ""); - ist->prev_sub.subtitle.end_display_time = end; - } - } - FFSWAP(int, *got_output, ist->prev_sub.got_output); - FFSWAP(int, ret, ist->prev_sub.ret); - FFSWAP(AVSubtitle, subtitle, ist->prev_sub.subtitle); - if (end <= 0) - goto out; - } - - if (!*got_output) - return ret; - - sub2video_update(ist, &subtitle); - - if (!subtitle.num_rects) - goto out; - - ist->frames_decoded++; - - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - - if (!check_output_constraints(ist, ost) || !ost->encoding_needed - || ost->enc->type != AVMEDIA_TYPE_SUBTITLE) - continue; - - do_subtitle_out(output_files[ost->file_index], ost, &subtitle); - } - - out: - avsubtitle_free(&subtitle); - return ret; -} - -static int send_filter_eof(InputStream *ist) { - int i, ret; - for (i = 0; i < ist->nb_filters; i++) { - ret = av_buffersrc_add_frame(ist->filters[i]->filter, NULL); - if (ret < 0) - return ret; - } - return 0; -} - -/* pkt = NULL means EOF (needed to flush decoder buffers) */ -static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eof) { - int ret = 0, i; - int repeating = 0; - int eof_reached = 0; - - AVPacket avpkt; - if (!ist->saw_first_ts) { - ist->dts = ist->st->avg_frame_rate.num ? -ist->dec_ctx->has_b_frames * AV_TIME_BASE / - av_q2d(ist->st->avg_frame_rate) : 0; - ist->pts = 0; - if (pkt && pkt->pts != AV_NOPTS_VALUE && !ist->decoding_needed) { - ist->dts += av_rescale_q(pkt->pts, ist->st->time_base, AV_TIME_BASE_Q); - ist->pts = ist->dts; //unused but better to set it to a value thats not totally wrong - } - ist->saw_first_ts = 1; - } - - if (ist->next_dts == AV_NOPTS_VALUE) - ist->next_dts = ist->dts; - if (ist->next_pts == AV_NOPTS_VALUE) - ist->next_pts = ist->pts; - - if (!pkt) { - /* EOF handling */ - av_init_packet(&avpkt); - avpkt.data = NULL; - avpkt.size = 0; - } else { - avpkt = *pkt; - } - - if (pkt && pkt->dts != AV_NOPTS_VALUE) { - ist->next_dts = ist->dts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q); - if (ist->dec_ctx->codec_type != AVMEDIA_TYPE_VIDEO || !ist->decoding_needed) - ist->next_pts = ist->pts = ist->dts; - } - - // while we have more to decode or while the decoder did output something on EOF - while (ist->decoding_needed) { - int duration = 0; - int got_output = 0; - - ist->pts = ist->next_pts; - ist->dts = ist->next_dts; - - switch (ist->dec_ctx->codec_type) { - case AVMEDIA_TYPE_AUDIO: - ret = decode_audio(ist, repeating ? NULL : &avpkt, &got_output); - break; - case AVMEDIA_TYPE_VIDEO: - ret = decode_video(ist, repeating ? NULL : &avpkt, &got_output, !pkt); - if (!repeating || !pkt || got_output) { - if (pkt && pkt->duration) { - duration = av_rescale_q(pkt->duration, ist->st->time_base, AV_TIME_BASE_Q); - } else if (ist->dec_ctx->framerate.num != 0 && - ist->dec_ctx->framerate.den != 0) { - int ticks = av_stream_get_parser(ist->st) ? - av_stream_get_parser(ist->st)->repeat_pict + 1 - : ist->dec_ctx->ticks_per_frame; - duration = ((int64_t) AV_TIME_BASE * - ist->dec_ctx->framerate.den * ticks) / - ist->dec_ctx->framerate.num / ist->dec_ctx->ticks_per_frame; - } - - if (ist->dts != AV_NOPTS_VALUE && duration) { - ist->next_dts += duration; - } else - ist->next_dts = AV_NOPTS_VALUE; - } - - if (got_output) - ist->next_pts += duration; //FIXME the duration is not correct in some cases - break; - case AVMEDIA_TYPE_SUBTITLE: - if (repeating) - break; - ret = transcode_subtitles(ist, &avpkt, &got_output); - if (!pkt && ret >= 0) - ret = AVERROR_EOF; - break; - default: - return -1; - } - - if (ret == AVERROR_EOF) { - eof_reached = 1; - break; - } - - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, "Error while decoding stream #%d:%d: %s\n", - ist->file_index, ist->st->index, av_err2str(ret)); - if (exit_on_error) - exit_program(1); - // Decoding might not terminate if we're draining the decoder, and - // the decoder keeps returning an error. - // This should probably be considered a libavcodec issue. - // Sample: fate-vsynth1-dnxhd-720p-hr-lb - if (!pkt) - eof_reached = 1; - break; - } - - if (!got_output) - break; - - // During draining, we might get multiple output frames in this loop. - // ffmpeg.c does not drain the filter chain on configuration changes, - // which means if we send multiple frames at once to the filters, and - // one of those frames changes configuration, the buffered frames will - // be lost. This can upset certain FATE tests. - // Decode only 1 frame per call on EOF to appease these FATE tests. - // The ideal solution would be to rewrite decoding to use the new - // decoding API in a better way. - if (!pkt) - break; - - repeating = 1; - } - - /* after flushing, send an EOF on all the filter inputs attached to the stream */ - /* except when looping we need to flush but not to send an EOF */ - if (!pkt && ist->decoding_needed && eof_reached && !no_eof) { - int ret = send_filter_eof(ist); - if (ret < 0) { - av_log(NULL, AV_LOG_FATAL, "Error marking filters as finished\n"); - exit_program(1); - } - } - - /* handle stream copy */ - if (!ist->decoding_needed) { - ist->dts = ist->next_dts; - switch (ist->dec_ctx->codec_type) { - case AVMEDIA_TYPE_AUDIO: - ist->next_dts += ((int64_t) AV_TIME_BASE * ist->dec_ctx->frame_size) / - ist->dec_ctx->sample_rate; - break; - case AVMEDIA_TYPE_VIDEO: - if (ist->framerate.num) { - // TODO: Remove work-around for c99-to-c89 issue 7 - AVRational time_base_q = AV_TIME_BASE_Q; - int64_t next_dts = av_rescale_q(ist->next_dts, time_base_q, - av_inv_q(ist->framerate)); - ist->next_dts = av_rescale_q(next_dts + 1, av_inv_q(ist->framerate), - time_base_q); - } else if (pkt->duration) { - ist->next_dts += av_rescale_q(pkt->duration, ist->st->time_base, - AV_TIME_BASE_Q); - } else if (ist->dec_ctx->framerate.num != 0) { - int ticks = av_stream_get_parser(ist->st) ? - av_stream_get_parser(ist->st)->repeat_pict + 1 - : ist->dec_ctx->ticks_per_frame; - ist->next_dts += ((int64_t) AV_TIME_BASE * - ist->dec_ctx->framerate.den * ticks) / - ist->dec_ctx->framerate.num / ist->dec_ctx->ticks_per_frame; - } - break; - } - ist->pts = ist->dts; - ist->next_pts = ist->next_dts; - } - for (i = 0; pkt && i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - - if (!check_output_constraints(ist, ost) || ost->encoding_needed) - continue; - - do_streamcopy(ist, ost, pkt); - } - - return !eof_reached; -} - -static void print_sdp(void) { - char sdp[16384]; - int i; - int j; - AVIOContext *sdp_pb; - AVFormatContext **avc; - - for (i = 0; i < nb_output_files; i++) { - if (!output_files[i]->header_written) - return; - } - - avc = av_malloc_array(nb_output_files, sizeof(*avc)); - if (!avc) - exit_program(1); - for (i = 0, j = 0; i < nb_output_files; i++) { - if (!strcmp(output_files[i]->ctx->oformat->name, "rtp")) { - avc[j] = output_files[i]->ctx; - j++; - } - } - - if (!j) - goto fail; - - av_sdp_create(avc, j, sdp, sizeof(sdp)); - - if (!sdp_filename) { - printf("SDP:\n%s\n", sdp); - fflush(stdout); - } else { - if (avio_open2(&sdp_pb, sdp_filename, AVIO_FLAG_WRITE, &int_cb, NULL) < 0) { - av_log(NULL, AV_LOG_ERROR, "Failed to open sdp file '%s'\n", sdp_filename); - } else { - avio_printf(sdp_pb, "SDP:\n%s", sdp); - avio_closep(&sdp_pb); - av_freep(&sdp_filename); - } - } - - fail: - av_freep(&avc); -} - -static const HWAccel *get_hwaccel(enum AVPixelFormat pix_fmt) { - int i; - for (i = 0; hwaccels[i].name; i++) - if (hwaccels[i].pix_fmt == pix_fmt) - return &hwaccels[i]; - return NULL; -} - -static enum AVPixelFormat get_format(AVCodecContext *s, const enum AVPixelFormat *pix_fmts) { - InputStream *ist = s->opaque; - const enum AVPixelFormat *p; - int ret; - - for (p = pix_fmts; *p != -1; p++) { - const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(*p); - const HWAccel *hwaccel; - - if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) - break; - - hwaccel = get_hwaccel(*p); - if (!hwaccel || - (ist->active_hwaccel_id && ist->active_hwaccel_id != hwaccel->id) || - (ist->hwaccel_id != HWACCEL_AUTO && ist->hwaccel_id != hwaccel->id)) - continue; - - ret = hwaccel->init(s); - if (ret < 0) { - if (ist->hwaccel_id == hwaccel->id) { - av_log(NULL, AV_LOG_FATAL, - "%s hwaccel requested for input stream #%d:%d, " - "but cannot be initialized.\n", hwaccel->name, - ist->file_index, ist->st->index); - return AV_PIX_FMT_NONE; - } - continue; - } - - if (ist->hw_frames_ctx) { - s->hw_frames_ctx = av_buffer_ref(ist->hw_frames_ctx); - if (!s->hw_frames_ctx) - return AV_PIX_FMT_NONE; - } - - ist->active_hwaccel_id = hwaccel->id; - ist->hwaccel_pix_fmt = *p; - break; - } - - return *p; -} - -static int get_buffer(AVCodecContext *s, AVFrame *frame, int flags) { - InputStream *ist = s->opaque; - - if (ist->hwaccel_get_buffer && frame->format == ist->hwaccel_pix_fmt) - return ist->hwaccel_get_buffer(s, frame, flags); - - return avcodec_default_get_buffer2(s, frame, flags); -} - -static int init_input_stream(int ist_index, char *error, int error_len) { - int ret; - InputStream *ist = input_streams[ist_index]; - - if (ist->decoding_needed) { - AVCodec *codec = ist->dec; - if (!codec) { - snprintf(error, error_len, "Decoder (codec %s) not found for input stream #%d:%d", - avcodec_get_name(ist->dec_ctx->codec_id), ist->file_index, ist->st->index); - return AVERROR(EINVAL); - } - - ist->dec_ctx->opaque = ist; - ist->dec_ctx->get_format = get_format; - ist->dec_ctx->get_buffer2 = get_buffer; - ist->dec_ctx->thread_safe_callbacks = 1; - - av_opt_set_int(ist->dec_ctx, "refcounted_frames", 1, 0); - if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE && - (ist->decoding_needed & DECODING_FOR_OST)) { - av_dict_set(&ist->decoder_opts, "compute_edt", "1", AV_DICT_DONT_OVERWRITE); - if (ist->decoding_needed & DECODING_FOR_FILTER) - av_log(NULL, AV_LOG_WARNING, - "Warning using DVB subtitles for filtering and output at the same time is not fully supported, also see -compute_edt [0|1]\n"); - } - - av_dict_set(&ist->decoder_opts, "sub_text_format", "ass", AV_DICT_DONT_OVERWRITE); - - /* Useful for subtitles retiming by lavf (FIXME), skipping samples in - * audio, and video decoders such as cuvid or mediacodec */ - av_codec_set_pkt_timebase(ist->dec_ctx, ist->st->time_base); - - if (!av_dict_get(ist->decoder_opts, "threads", NULL, 0)) - av_dict_set(&ist->decoder_opts, "threads", "auto", 0); - if ((ret = avcodec_open2(ist->dec_ctx, codec, &ist->decoder_opts)) < 0) { - if (ret == AVERROR_EXPERIMENTAL) - abort_codec_experimental(codec, 0); - - snprintf(error, error_len, - "Error while opening decoder for input stream " - "#%d:%d : %s", - ist->file_index, ist->st->index, av_err2str(ret)); - return ret; - } - assert_avoptions(ist->decoder_opts); - } - - ist->next_pts = AV_NOPTS_VALUE; - ist->next_dts = AV_NOPTS_VALUE; - - return 0; -} - -static InputStream *get_input_stream(OutputStream *ost) { - if (ost->source_index >= 0) - return input_streams[ost->source_index]; - return NULL; -} - -static int compare_int64(const void *a, const void *b) { - return FFDIFFSIGN(*(const int64_t *) a, *(const int64_t *) b); -} - -/* open the muxer when all the streams are initialized */ -static int check_init_output_file(OutputFile *of, int file_index) { - int ret, i; - - for (i = 0; i < of->ctx->nb_streams; i++) { - OutputStream *ost = output_streams[of->ost_index + i]; - if (!ost->initialized) - return 0; - } - - of->ctx->interrupt_callback = int_cb; - - ret = avformat_write_header(of->ctx, &of->opts); - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, - "Could not write header for output file #%d " - "(incorrect codec parameters ?): %s", - file_index, av_err2str(ret)); - return ret; - } - //assert_avoptions(of->opts); - of->header_written = 1; - - av_dump_format(of->ctx, file_index, of->ctx->filename, 1); - - if (sdp_filename || want_sdp) - print_sdp(); - - /* flush the muxing queues */ - for (i = 0; i < of->ctx->nb_streams; i++) { - OutputStream *ost = output_streams[of->ost_index + i]; - - while (av_fifo_size(ost->muxing_queue)) { - AVPacket pkt; - av_fifo_generic_read(ost->muxing_queue, &pkt, sizeof(pkt), NULL); - write_packet(of, &pkt, ost); - } - } - - return 0; -} - -static int init_output_bsfs(OutputStream *ost) { - AVBSFContext *ctx; - int i, ret; - - if (!ost->nb_bitstream_filters) - return 0; - - for (i = 0; i < ost->nb_bitstream_filters; i++) { - ctx = ost->bsf_ctx[i]; - - ret = avcodec_parameters_copy(ctx->par_in, - i ? ost->bsf_ctx[i - 1]->par_out : ost->st->codecpar); - if (ret < 0) - return ret; - - ctx->time_base_in = i ? ost->bsf_ctx[i - 1]->time_base_out : ost->st->time_base; - - ret = av_bsf_init(ctx); - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, "Error initializing bitstream filter: %s\n", - ost->bsf_ctx[i]->filter->name); - return ret; - } - } - - ctx = ost->bsf_ctx[ost->nb_bitstream_filters - 1]; - ret = avcodec_parameters_copy(ost->st->codecpar, ctx->par_out); - if (ret < 0) - return ret; - - ost->st->time_base = ctx->time_base_out; - - return 0; -} - -static int init_output_stream_streamcopy(OutputStream *ost) { - OutputFile *of = output_files[ost->file_index]; - InputStream *ist = get_input_stream(ost); - AVCodecParameters *par_dst = ost->st->codecpar; - AVCodecParameters *par_src = ost->ref_par; - AVRational sar; - int i, ret; - uint64_t extra_size; - - av_assert0(ist && !ost->filter); - - avcodec_parameters_to_context(ost->enc_ctx, ist->st->codecpar); - ret = av_opt_set_dict(ost->enc_ctx, &ost->encoder_opts); - if (ret < 0) { - av_log(NULL, AV_LOG_FATAL, - "Error setting up codec context options.\n"); - return ret; - } - avcodec_parameters_from_context(par_src, ost->enc_ctx); - - extra_size = (uint64_t) par_src->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE; - - if (extra_size > INT_MAX) { - return AVERROR(EINVAL); - } - - /* if stream_copy is selected, no need to decode or encode */ - par_dst->codec_id = par_src->codec_id; - par_dst->codec_type = par_src->codec_type; - - if (!par_dst->codec_tag) { - unsigned int codec_tag; - if (!of->ctx->oformat->codec_tag || - av_codec_get_id(of->ctx->oformat->codec_tag, par_src->codec_tag) == par_dst->codec_id || - !av_codec_get_tag2(of->ctx->oformat->codec_tag, par_src->codec_id, &codec_tag)) - par_dst->codec_tag = par_src->codec_tag; - } - - par_dst->bit_rate = par_src->bit_rate; - par_dst->field_order = par_src->field_order; - par_dst->chroma_location = par_src->chroma_location; - - if (par_src->extradata_size) { - par_dst->extradata = av_mallocz(extra_size); - if (!par_dst->extradata) { - return AVERROR(ENOMEM); - } - memcpy(par_dst->extradata, par_src->extradata, par_src->extradata_size); - par_dst->extradata_size = par_src->extradata_size; - } - par_dst->bits_per_coded_sample = par_src->bits_per_coded_sample; - par_dst->bits_per_raw_sample = par_src->bits_per_raw_sample; - - if (!ost->frame_rate.num) - ost->frame_rate = ist->framerate; - ost->st->avg_frame_rate = ost->frame_rate; - - ret = avformat_transfer_internal_stream_timing_info(of->ctx->oformat, ost->st, ist->st, - copy_tb); - if (ret < 0) - return ret; - - // copy timebase while removing common factors - ost->st->time_base = av_add_q(av_stream_get_codec_timebase(ost->st), (AVRational) {0, 1}); - - if (ist->st->nb_side_data) { - ost->st->side_data = av_realloc_array(NULL, ist->st->nb_side_data, - sizeof(*ist->st->side_data)); - if (!ost->st->side_data) - return AVERROR(ENOMEM); - - ost->st->nb_side_data = 0; - for (i = 0; i < ist->st->nb_side_data; i++) { - const AVPacketSideData *sd_src = &ist->st->side_data[i]; - AVPacketSideData *sd_dst = &ost->st->side_data[ost->st->nb_side_data]; - - if (ost->rotate_overridden && sd_src->type == AV_PKT_DATA_DISPLAYMATRIX) - continue; - - sd_dst->data = av_malloc(sd_src->size); - if (!sd_dst->data) - return AVERROR(ENOMEM); - memcpy(sd_dst->data, sd_src->data, sd_src->size); - sd_dst->size = sd_src->size; - sd_dst->type = sd_src->type; - ost->st->nb_side_data++; - } - } - - ost->parser = av_parser_init(par_dst->codec_id); - ost->parser_avctx = avcodec_alloc_context3(NULL); - if (!ost->parser_avctx) - return AVERROR(ENOMEM); - - switch (par_dst->codec_type) { - case AVMEDIA_TYPE_AUDIO: - if (audio_volume != 256) { - av_log(NULL, AV_LOG_FATAL, - "-acodec copy and -vol are incompatible (frames are not decoded)\n"); - exit_program(1); - } - par_dst->channel_layout = par_src->channel_layout; - par_dst->sample_rate = par_src->sample_rate; - par_dst->channels = par_src->channels; - par_dst->frame_size = par_src->frame_size; - par_dst->block_align = par_src->block_align; - par_dst->initial_padding = par_src->initial_padding; - par_dst->trailing_padding = par_src->trailing_padding; - par_dst->profile = par_src->profile; - if ((par_dst->block_align == 1 || par_dst->block_align == 1152 || - par_dst->block_align == 576) && par_dst->codec_id == AV_CODEC_ID_MP3) - par_dst->block_align = 0; - if (par_dst->codec_id == AV_CODEC_ID_AC3) - par_dst->block_align = 0; - break; - case AVMEDIA_TYPE_VIDEO: - par_dst->format = par_src->format; - par_dst->color_space = par_src->color_space; - par_dst->color_range = par_src->color_range; - par_dst->color_primaries = par_src->color_primaries; - par_dst->color_trc = par_src->color_trc; - par_dst->width = par_src->width; - par_dst->height = par_src->height; - par_dst->video_delay = par_src->video_delay; - par_dst->profile = par_src->profile; - if (ost->frame_aspect_ratio.num) { // overridden by the -aspect cli option - sar = - av_mul_q(ost->frame_aspect_ratio, - (AVRational) {par_dst->height, par_dst->width}); - av_log(NULL, AV_LOG_WARNING, "Overriding aspect ratio " - "with stream copy may produce invalid files\n"); - } else if (ist->st->sample_aspect_ratio.num) - sar = ist->st->sample_aspect_ratio; - else - sar = par_src->sample_aspect_ratio; - ost->st->sample_aspect_ratio = par_dst->sample_aspect_ratio = sar; - ost->st->avg_frame_rate = ist->st->avg_frame_rate; - ost->st->r_frame_rate = ist->st->r_frame_rate; - break; - case AVMEDIA_TYPE_SUBTITLE: - par_dst->width = par_src->width; - par_dst->height = par_src->height; - break; - case AVMEDIA_TYPE_UNKNOWN: - case AVMEDIA_TYPE_DATA: - case AVMEDIA_TYPE_ATTACHMENT: - break; - default: - abort(); - } - - return 0; -} - -static int init_output_stream(OutputStream *ost, char *error, int error_len) { - int ret = 0; - - if (ost->encoding_needed) { - AVCodec *codec = ost->enc; - AVCodecContext *dec = NULL; - InputStream *ist; - - if ((ist = get_input_stream(ost))) - dec = ist->dec_ctx; - if (dec && dec->subtitle_header) { - /* ASS code assumes this buffer is null terminated so add extra byte. */ - ost->enc_ctx->subtitle_header = av_mallocz(dec->subtitle_header_size + 1); - if (!ost->enc_ctx->subtitle_header) - return AVERROR(ENOMEM); - memcpy(ost->enc_ctx->subtitle_header, dec->subtitle_header, dec->subtitle_header_size); - ost->enc_ctx->subtitle_header_size = dec->subtitle_header_size; - } - if (!av_dict_get(ost->encoder_opts, "threads", NULL, 0)) - av_dict_set(&ost->encoder_opts, "threads", "auto", 0); - if (ost->enc->type == AVMEDIA_TYPE_AUDIO && - !codec->defaults && - !av_dict_get(ost->encoder_opts, "b", NULL, 0) && - !av_dict_get(ost->encoder_opts, "ab", NULL, 0)) - av_dict_set(&ost->encoder_opts, "b", "128000", 0); - - if (ost->filter && ost->filter->filter->inputs[0]->hw_frames_ctx) { - ost->enc_ctx->hw_frames_ctx = av_buffer_ref( - ost->filter->filter->inputs[0]->hw_frames_ctx); - if (!ost->enc_ctx->hw_frames_ctx) - return AVERROR(ENOMEM); - } - - if ((ret = avcodec_open2(ost->enc_ctx, codec, &ost->encoder_opts)) < 0) { - if (ret == AVERROR_EXPERIMENTAL) - abort_codec_experimental(codec, 1); - snprintf(error, error_len, - "Error while opening encoder for output stream #%d:%d - " - "maybe incorrect parameters such as bit_rate, rate, width or height", - ost->file_index, ost->index); - return ret; - } - if (ost->enc->type == AVMEDIA_TYPE_AUDIO && - !(ost->enc->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)) - av_buffersink_set_frame_size(ost->filter->filter, - ost->enc_ctx->frame_size); - assert_avoptions(ost->encoder_opts); - if (ost->enc_ctx->bit_rate && ost->enc_ctx->bit_rate < 1000) - av_log(NULL, AV_LOG_WARNING, "The bitrate parameter is set too low." - " It takes bits/s as argument, not kbits/s\n"); - - ret = avcodec_parameters_from_context(ost->st->codecpar, ost->enc_ctx); - if (ret < 0) { - av_log(NULL, AV_LOG_FATAL, - "Error initializing the output stream codec context.\n"); - exit_program(1); - } - /* - * FIXME: ost->st->codec should't be needed here anymore. - */ - ret = avcodec_copy_context(ost->st->codec, ost->enc_ctx); - if (ret < 0) - return ret; - - if (ost->enc_ctx->nb_coded_side_data) { - int i; - - ost->st->side_data = av_realloc_array(NULL, ost->enc_ctx->nb_coded_side_data, - sizeof(*ost->st->side_data)); - if (!ost->st->side_data) - return AVERROR(ENOMEM); - - for (i = 0; i < ost->enc_ctx->nb_coded_side_data; i++) { - const AVPacketSideData *sd_src = &ost->enc_ctx->coded_side_data[i]; - AVPacketSideData *sd_dst = &ost->st->side_data[i]; - - sd_dst->data = av_malloc(sd_src->size); - if (!sd_dst->data) - return AVERROR(ENOMEM); - memcpy(sd_dst->data, sd_src->data, sd_src->size); - sd_dst->size = sd_src->size; - sd_dst->type = sd_src->type; - ost->st->nb_side_data++; - } - } - - // copy timebase while removing common factors - ost->st->time_base = av_add_q(ost->enc_ctx->time_base, (AVRational) {0, 1}); - ost->st->codec->codec = ost->enc_ctx->codec; - } else if (ost->stream_copy) { - ret = init_output_stream_streamcopy(ost); - if (ret < 0) - return ret; - - /* - * FIXME: will the codec context used by the parser during streamcopy - * This should go away with the new parser API. - */ - ret = avcodec_parameters_to_context(ost->parser_avctx, ost->st->codecpar); - if (ret < 0) - return ret; - } - - /* initialize bitstream filters for the output stream - * needs to be done here, because the codec id for streamcopy is not - * known until now */ - ret = init_output_bsfs(ost); - if (ret < 0) - return ret; - - ost->initialized = 1; - - ret = check_init_output_file(output_files[ost->file_index], ost->file_index); - if (ret < 0) - return ret; - - return ret; -} - -static void parse_forced_key_frames(char *kf, OutputStream *ost, - AVCodecContext *avctx) { - char *p; - int n = 1, i, size, index = 0; - int64_t t, *pts; - - for (p = kf; *p; p++) - if (*p == ',') - n++; - size = n; - pts = av_malloc_array(size, sizeof(*pts)); - if (!pts) { - av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n"); - exit_program(1); - } - - p = kf; - for (i = 0; i < n; i++) { - char *next = strchr(p, ','); - - if (next) - *next++ = 0; - - if (!memcmp(p, "chapters", 8)) { - - AVFormatContext *avf = output_files[ost->file_index]->ctx; - int j; - - if (avf->nb_chapters > INT_MAX - size || - !(pts = av_realloc_f(pts, size += avf->nb_chapters - 1, - sizeof(*pts)))) { - av_log(NULL, AV_LOG_FATAL, - "Could not allocate forced key frames array.\n"); - exit_program(1); - } - t = p[8] ? parse_time_or_die("force_key_frames", p + 8, 1) : 0; - t = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base); - - for (j = 0; j < avf->nb_chapters; j++) { - AVChapter *c = avf->chapters[j]; - av_assert1(index < size); - pts[index++] = av_rescale_q(c->start, c->time_base, - avctx->time_base) + t; - } - - } else { - - t = parse_time_or_die("force_key_frames", p, 1); - av_assert1(index < size); - pts[index++] = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base); - - } - - p = next; - } - - av_assert0(index == size); - qsort(pts, size, sizeof(*pts), compare_int64); - ost->forced_kf_count = size; - ost->forced_kf_pts = pts; -} - -static void report_new_stream(int input_index, AVPacket *pkt) { - InputFile *file = input_files[input_index]; - AVStream *st = file->ctx->streams[pkt->stream_index]; - - if (pkt->stream_index < file->nb_streams_warn) - return; - av_log(file->ctx, AV_LOG_WARNING, - "New %s stream %d:%d at pos:%"PRId64" and DTS:%ss\n", - av_get_media_type_string(st->codecpar->codec_type), - input_index, pkt->stream_index, - pkt->pos, av_ts2timestr(pkt->dts, &st->time_base)); - file->nb_streams_warn = pkt->stream_index + 1; -} - -static void set_encoder_id(OutputFile *of, OutputStream *ost) { - AVDictionaryEntry *e; - - uint8_t *encoder_string; - int encoder_string_len; - int format_flags = 0; - int codec_flags = 0; - - if (av_dict_get(ost->st->metadata, "encoder", NULL, 0)) - return; - - e = av_dict_get(of->opts, "fflags", NULL, 0); - if (e) { - const AVOption *o = av_opt_find(of->ctx, "fflags", NULL, 0, 0); - if (!o) - return; - av_opt_eval_flags(of->ctx, o, e->value, &format_flags); - } - e = av_dict_get(ost->encoder_opts, "flags", NULL, 0); - if (e) { - const AVOption *o = av_opt_find(ost->enc_ctx, "flags", NULL, 0, 0); - if (!o) - return; - av_opt_eval_flags(ost->enc_ctx, o, e->value, &codec_flags); - } - - encoder_string_len = sizeof(LIBAVCODEC_IDENT) + strlen(ost->enc->name) + 2; - encoder_string = av_mallocz(encoder_string_len); - if (!encoder_string) - exit_program(1); - - if (!(format_flags & AVFMT_FLAG_BITEXACT) && !(codec_flags & AV_CODEC_FLAG_BITEXACT)) - av_strlcpy(encoder_string, LIBAVCODEC_IDENT " ", encoder_string_len); - else - av_strlcpy(encoder_string, "Lavc ", encoder_string_len); - av_strlcat(encoder_string, ost->enc->name, encoder_string_len); - av_dict_set(&ost->st->metadata, "encoder", encoder_string, - AV_DICT_DONT_STRDUP_VAL | AV_DICT_DONT_OVERWRITE); -} - -static int transcode_init(void) { - int ret = 0, i, j, k; - AVFormatContext *oc; - OutputStream *ost; - InputStream *ist; - char error[1024] = {0}; - - for (i = 0; i < nb_filtergraphs; i++) { - FilterGraph *fg = filtergraphs[i]; - for (j = 0; j < fg->nb_outputs; j++) { - OutputFilter *ofilter = fg->outputs[j]; - if (!ofilter->ost || ofilter->ost->source_index >= 0) - continue; - if (fg->nb_inputs != 1) - continue; - for (k = nb_input_streams - 1; k >= 0; k--) - if (fg->inputs[0]->ist == input_streams[k]) - break; - ofilter->ost->source_index = k; - } - } - - /* init framerate emulation */ - for (i = 0; i < nb_input_files; i++) { - InputFile *ifile = input_files[i]; - if (ifile->rate_emu) - for (j = 0; j < ifile->nb_streams; j++) - input_streams[j + ifile->ist_index]->start = av_gettime_relative(); - } - - /* for each output stream, we compute the right encoding parameters */ - for (i = 0; i < nb_output_streams; i++) { - ost = output_streams[i]; - oc = output_files[ost->file_index]->ctx; - ist = get_input_stream(ost); - - if (ost->attachment_filename) - continue; - - if (ist) { - ost->st->disposition = ist->st->disposition; - } else { - for (j = 0; j < oc->nb_streams; j++) { - AVStream *st = oc->streams[j]; - if (st != ost->st && st->codecpar->codec_type == ost->st->codecpar->codec_type) - break; - } - if (j == oc->nb_streams) - if (ost->st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO || - ost->st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) - ost->st->disposition = AV_DISPOSITION_DEFAULT; - } - - if (!ost->stream_copy) { - AVCodecContext *enc_ctx = ost->enc_ctx; - AVCodecContext *dec_ctx = NULL; - - set_encoder_id(output_files[ost->file_index], ost); - - if (ist) { - dec_ctx = ist->dec_ctx; - - enc_ctx->chroma_sample_location = dec_ctx->chroma_sample_location; - } - -#if CONFIG_LIBMFX - if (qsv_transcode_init(ost)) - exit_program(1); -#endif - -#if CONFIG_CUVID - if (cuvid_transcode_init(ost)) - exit_program(1); -#endif - - if ((enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO || - enc_ctx->codec_type == AVMEDIA_TYPE_AUDIO) && - filtergraph_is_simple(ost->filter->graph)) { - FilterGraph *fg = ost->filter->graph; - if (configure_filtergraph(fg)) { - av_log(NULL, AV_LOG_FATAL, "Error opening filters!\n"); - exit_program(1); - } - } - - if (enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO) { - if (!ost->frame_rate.num) - ost->frame_rate = av_buffersink_get_frame_rate(ost->filter->filter); - if (ist && !ost->frame_rate.num) - ost->frame_rate = ist->framerate; - if (ist && !ost->frame_rate.num) - ost->frame_rate = ist->st->r_frame_rate; - if (ist && !ost->frame_rate.num) { - ost->frame_rate = (AVRational) {25, 1}; - av_log(NULL, AV_LOG_WARNING, - "No information " - "about the input framerate is available. Falling " - "back to a default value of 25fps for output stream #%d:%d. Use the -r option " - "if you want a different framerate.\n", - ost->file_index, ost->index); - } -// ost->frame_rate = ist->st->avg_frame_rate.num ? ist->st->avg_frame_rate : (AVRational){25, 1}; - if (ost->enc && ost->enc->supported_framerates && !ost->force_fps) { - int idx = av_find_nearest_q_idx(ost->frame_rate, - ost->enc->supported_framerates); - ost->frame_rate = ost->enc->supported_framerates[idx]; - } - // reduce frame rate for mpeg4 to be within the spec limits - if (enc_ctx->codec_id == AV_CODEC_ID_MPEG4) { - av_reduce(&ost->frame_rate.num, &ost->frame_rate.den, - ost->frame_rate.num, ost->frame_rate.den, 65535); - } - } - - switch (enc_ctx->codec_type) { - case AVMEDIA_TYPE_AUDIO: - enc_ctx->sample_fmt = ost->filter->filter->inputs[0]->format; - if (dec_ctx) - enc_ctx->bits_per_raw_sample = FFMIN(dec_ctx->bits_per_raw_sample, - av_get_bytes_per_sample( - enc_ctx->sample_fmt) << 3); - enc_ctx->sample_rate = ost->filter->filter->inputs[0]->sample_rate; - enc_ctx->channel_layout = ost->filter->filter->inputs[0]->channel_layout; - enc_ctx->channels = avfilter_link_get_channels(ost->filter->filter->inputs[0]); - enc_ctx->time_base = (AVRational) {1, enc_ctx->sample_rate}; - break; - case AVMEDIA_TYPE_VIDEO: - enc_ctx->time_base = av_inv_q(ost->frame_rate); - if (!(enc_ctx->time_base.num && enc_ctx->time_base.den)) - enc_ctx->time_base = ost->filter->filter->inputs[0]->time_base; - if (av_q2d(enc_ctx->time_base) < 0.001 && video_sync_method != VSYNC_PASSTHROUGH - && (video_sync_method == VSYNC_CFR || video_sync_method == VSYNC_VSCFR || - (video_sync_method == VSYNC_AUTO && - !(oc->oformat->flags & AVFMT_VARIABLE_FPS)))) { - av_log(oc, AV_LOG_WARNING, - "Frame rate very high for a muxer not efficiently supporting it.\n" - "Please consider specifying a lower framerate, a different muxer or -vsync 2\n"); - } - for (j = 0; j < ost->forced_kf_count; j++) - ost->forced_kf_pts[j] = av_rescale_q(ost->forced_kf_pts[j], - AV_TIME_BASE_Q, - enc_ctx->time_base); - - enc_ctx->width = ost->filter->filter->inputs[0]->w; - enc_ctx->height = ost->filter->filter->inputs[0]->h; - enc_ctx->sample_aspect_ratio = ost->st->sample_aspect_ratio = - ost->frame_aspect_ratio.num ? // overridden by the -aspect cli option - av_mul_q(ost->frame_aspect_ratio, - (AVRational) {enc_ctx->height, enc_ctx->width}) : - ost->filter->filter->inputs[0]->sample_aspect_ratio; - if (!strncmp(ost->enc->name, "libx264", 7) && - enc_ctx->pix_fmt == AV_PIX_FMT_NONE && - ost->filter->filter->inputs[0]->format != AV_PIX_FMT_YUV420P) - av_log(NULL, AV_LOG_WARNING, - "No pixel format specified, %s for H.264 encoding chosen.\n" - "Use -pix_fmt yuv420p for compatibility with outdated media players.\n", - av_get_pix_fmt_name(ost->filter->filter->inputs[0]->format)); - if (!strncmp(ost->enc->name, "mpeg2video", 10) && - enc_ctx->pix_fmt == AV_PIX_FMT_NONE && - ost->filter->filter->inputs[0]->format != AV_PIX_FMT_YUV420P) - av_log(NULL, AV_LOG_WARNING, - "No pixel format specified, %s for MPEG-2 encoding chosen.\n" - "Use -pix_fmt yuv420p for compatibility with outdated media players.\n", - av_get_pix_fmt_name(ost->filter->filter->inputs[0]->format)); - enc_ctx->pix_fmt = ost->filter->filter->inputs[0]->format; - if (dec_ctx) - enc_ctx->bits_per_raw_sample = FFMIN(dec_ctx->bits_per_raw_sample, - av_pix_fmt_desc_get( - enc_ctx->pix_fmt)->comp[0].depth); - - ost->st->avg_frame_rate = ost->frame_rate; - - if (!dec_ctx || - enc_ctx->width != dec_ctx->width || - enc_ctx->height != dec_ctx->height || - enc_ctx->pix_fmt != dec_ctx->pix_fmt) { - enc_ctx->bits_per_raw_sample = frame_bits_per_raw_sample; - } - - if (ost->forced_keyframes) { - if (!strncmp(ost->forced_keyframes, "expr:", 5)) { - ret = av_expr_parse(&ost->forced_keyframes_pexpr, - ost->forced_keyframes + 5, - forced_keyframes_const_names, NULL, NULL, NULL, - NULL, 0, NULL); - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, - "Invalid force_key_frames expression '%s'\n", - ost->forced_keyframes + 5); - return ret; - } - ost->forced_keyframes_expr_const_values[FKF_N] = 0; - ost->forced_keyframes_expr_const_values[FKF_N_FORCED] = 0; - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N] = NAN; - ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T] = NAN; - - // Don't parse the 'forced_keyframes' in case of 'keep-source-keyframes', - // parse it only for static kf timings - } else if (strncmp(ost->forced_keyframes, "source", 6)) { - parse_forced_key_frames(ost->forced_keyframes, ost, ost->enc_ctx); - } - } - break; - case AVMEDIA_TYPE_SUBTITLE: - enc_ctx->time_base = (AVRational) {1, 1000}; - if (!enc_ctx->width) { - enc_ctx->width = input_streams[ost->source_index]->st->codecpar->width; - enc_ctx->height = input_streams[ost->source_index]->st->codecpar->height; - } - break; - case AVMEDIA_TYPE_DATA: - break; - default: - abort(); - break; - } - } - - if (ost->disposition) { - static const AVOption opts[] = { - {"disposition", NULL, 0, AV_OPT_TYPE_FLAGS, {.i64 = 0}, INT64_MIN, INT64_MAX, .unit = "flags"}, - {"default", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_DEFAULT}, .unit = "flags"}, - {"dub", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_DUB}, .unit = "flags"}, - {"original", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_ORIGINAL}, .unit = "flags"}, - {"comment", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_COMMENT}, .unit = "flags"}, - {"lyrics", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_LYRICS}, .unit = "flags"}, - {"karaoke", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_KARAOKE}, .unit = "flags"}, - {"forced", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_FORCED}, .unit = "flags"}, - {"hearing_impaired", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_HEARING_IMPAIRED}, .unit = "flags"}, - {"visual_impaired", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_VISUAL_IMPAIRED}, .unit = "flags"}, - {"clean_effects", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_CLEAN_EFFECTS}, .unit = "flags"}, - {"captions", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_CAPTIONS}, .unit = "flags"}, - {"descriptions", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_DESCRIPTIONS}, .unit = "flags"}, - {"metadata", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_DISPOSITION_METADATA}, .unit = "flags"}, - {NULL}, - }; - static const AVClass class = { - .class_name = "", - .item_name = av_default_item_name, - .option = opts, - .version = LIBAVUTIL_VERSION_INT, - }; - const AVClass *pclass = &class; - - ret = av_opt_eval_flags(&pclass, &opts[0], ost->disposition, &ost->st->disposition); - if (ret < 0) - goto dump_format; - } - } - - /* init input streams */ - for (i = 0; i < nb_input_streams; i++) - if ((ret = init_input_stream(i, error, sizeof(error))) < 0) { - for (i = 0; i < nb_output_streams; i++) { - ost = output_streams[i]; - avcodec_close(ost->enc_ctx); - } - goto dump_format; - } - - /* open each encoder */ - for (i = 0; i < nb_output_streams; i++) { - ret = init_output_stream(output_streams[i], error, sizeof(error)); - if (ret < 0) - goto dump_format; - } - - /* discard unused programs */ - for (i = 0; i < nb_input_files; i++) { - InputFile *ifile = input_files[i]; - for (j = 0; j < ifile->ctx->nb_programs; j++) { - AVProgram *p = ifile->ctx->programs[j]; - int discard = AVDISCARD_ALL; - - for (k = 0; k < p->nb_stream_indexes; k++) - if (!input_streams[ifile->ist_index + p->stream_index[k]]->discard) { - discard = AVDISCARD_DEFAULT; - break; - } - p->discard = discard; - } - } - - /* write headers for files with no streams */ - for (i = 0; i < nb_output_files; i++) { - oc = output_files[i]->ctx; - if (oc->oformat->flags & AVFMT_NOSTREAMS && oc->nb_streams == 0) { - ret = check_init_output_file(output_files[i], i); - if (ret < 0) - goto dump_format; - } - } - - dump_format: - /* dump the stream mapping */ - av_log(NULL, AV_LOG_INFO, "Stream mapping:\n"); - for (i = 0; i < nb_input_streams; i++) { - ist = input_streams[i]; - - for (j = 0; j < ist->nb_filters; j++) { - if (!filtergraph_is_simple(ist->filters[j]->graph)) { - av_log(NULL, AV_LOG_INFO, " Stream #%d:%d (%s) -> %s", - ist->file_index, ist->st->index, ist->dec ? ist->dec->name : "?", - ist->filters[j]->name); - if (nb_filtergraphs > 1) - av_log(NULL, AV_LOG_INFO, " (graph %d)", ist->filters[j]->graph->index); - av_log(NULL, AV_LOG_INFO, "\n"); - } - } - } - - for (i = 0; i < nb_output_streams; i++) { - ost = output_streams[i]; - - if (ost->attachment_filename) { - /* an attached file */ - av_log(NULL, AV_LOG_INFO, " File %s -> Stream #%d:%d\n", - ost->attachment_filename, ost->file_index, ost->index); - continue; - } - - if (ost->filter && !filtergraph_is_simple(ost->filter->graph)) { - /* output from a complex graph */ - av_log(NULL, AV_LOG_INFO, " %s", ost->filter->name); - if (nb_filtergraphs > 1) - av_log(NULL, AV_LOG_INFO, " (graph %d)", ost->filter->graph->index); - - av_log(NULL, AV_LOG_INFO, " -> Stream #%d:%d (%s)\n", ost->file_index, - ost->index, ost->enc ? ost->enc->name : "?"); - continue; - } - - av_log(NULL, AV_LOG_INFO, " Stream #%d:%d -> #%d:%d", - input_streams[ost->source_index]->file_index, - input_streams[ost->source_index]->st->index, - ost->file_index, - ost->index); - if (ost->sync_ist != input_streams[ost->source_index]) - av_log(NULL, AV_LOG_INFO, " [sync #%d:%d]", - ost->sync_ist->file_index, - ost->sync_ist->st->index); - if (ost->stream_copy) - av_log(NULL, AV_LOG_INFO, " (copy)"); - else { - const AVCodec *in_codec = input_streams[ost->source_index]->dec; - const AVCodec *out_codec = ost->enc; - const char *decoder_name = "?"; - const char *in_codec_name = "?"; - const char *encoder_name = "?"; - const char *out_codec_name = "?"; - const AVCodecDescriptor *desc; - - if (in_codec) { - decoder_name = in_codec->name; - desc = avcodec_descriptor_get(in_codec->id); - if (desc) - in_codec_name = desc->name; - if (!strcmp(decoder_name, in_codec_name)) - decoder_name = "native"; - } - - if (out_codec) { - encoder_name = out_codec->name; - desc = avcodec_descriptor_get(out_codec->id); - if (desc) - out_codec_name = desc->name; - if (!strcmp(encoder_name, out_codec_name)) - encoder_name = "native"; - } - - av_log(NULL, AV_LOG_INFO, " (%s (%s) -> %s (%s))", - in_codec_name, decoder_name, - out_codec_name, encoder_name); - } - av_log(NULL, AV_LOG_INFO, "\n"); - } - - if (ret) { - av_log(NULL, AV_LOG_ERROR, "%s\n", error); - return ret; - } - - transcode_init_done = 1; - - return 0; -} - -/* Return 1 if there remain streams where more output is wanted, 0 otherwise. */ -static int need_output(void) { - int i; - - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - OutputFile *of = output_files[ost->file_index]; - AVFormatContext *os = output_files[ost->file_index]->ctx; - - if (ost->finished || - (os->pb && avio_tell(os->pb) >= of->limit_filesize)) - continue; - if (ost->frame_number >= ost->max_frames) { - int j; - for (j = 0; j < of->ctx->nb_streams; j++) - close_output_stream(output_streams[of->ost_index + j]); - continue; - } - - return 1; - } - - return 0; -} - -/** - * Select the output stream to process. - * - * @return selected output stream, or NULL if none available - */ -static OutputStream *choose_output(void) { - int i; - int64_t opts_min = INT64_MAX; - OutputStream *ost_min = NULL; - - for (i = 0; i < nb_output_streams; i++) { - OutputStream *ost = output_streams[i]; - int64_t opts = ost->st->cur_dts == AV_NOPTS_VALUE ? INT64_MIN : - av_rescale_q(ost->st->cur_dts, ost->st->time_base, - AV_TIME_BASE_Q); - if (ost->st->cur_dts == AV_NOPTS_VALUE) - av_log(NULL, AV_LOG_DEBUG, - "cur_dts is invalid (this is harmless if it occurs once at the start per stream)\n"); - - if (!ost->finished && opts < opts_min) { - opts_min = opts; - ost_min = ost->unavailable ? NULL : ost; - } - } - return ost_min; -} - -static void set_tty_echo(int on) { -#if HAVE_TERMIOS_H - struct termios tty; - if (tcgetattr(0, &tty) == 0) { - if (on) tty.c_lflag |= ECHO; - else tty.c_lflag &= ~ECHO; - tcsetattr(0, TCSANOW, &tty); - } -#endif -} - -static int check_keyboard_interaction(int64_t cur_time) { - int i, ret, key; - static int64_t last_time; - if (received_nb_signals) - return AVERROR_EXIT; - /* read_key() returns 0 on EOF */ - if (cur_time - last_time >= 100000 && !run_as_daemon) { - key = read_key(); - last_time = cur_time; - } else - key = -1; - if (key == 'q') - return AVERROR_EXIT; - if (key == '+') av_log_set_level(av_log_get_level() + 10); - if (key == '-') av_log_set_level(av_log_get_level() - 10); - if (key == 's') qp_hist ^= 1; - if (key == 'h') { - if (do_hex_dump) { - do_hex_dump = do_pkt_dump = 0; - } else if (do_pkt_dump) { - do_hex_dump = 1; - } else - do_pkt_dump = 1; - av_log_set_level(AV_LOG_DEBUG); - } - if (key == 'c' || key == 'C') { - char buf[4096], target[64], command[256], arg[256] = {0}; - double time; - int k, n = 0; - fprintf(stderr, "\nEnter command: |all

{=Z8Hpq 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfByte.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfByte.class new file mode 100644 index 0000000000000000000000000000000000000000..c085330d2bc31abac7195d58ce2594960534ce9b GIT binary patch literal 3632 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfFloat4.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfFloat4.class new file mode 100644 index 0000000000000000000000000000000000000000..8eb4b5491f2c5eb3a5d3a8d79f46e84f358bf24e GIT binary patch literal 3084 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfInt.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfInt.class new file mode 100644 index 0000000000000000000000000000000000000000..32f9b1d6c9360694616c410bd1b0d68deb73b80e GIT binary patch literal 3076 zcma)8O>-Mn7CkMs+_v1Z9mP&UY$vjv5PjGYLr7+ZILX+73=Xmlad2V`gtpv~JCV9I zQp=OT@Hydg1{h$bib_!|*sx$jHgZD1uwub~;1^KE51^=obGtj1FoK#=Rlk1k-FNP} z_n!M&-`@Is9l!znPs5ogMsQXh3sFSyxQ0a;pV07RJD!R{!#SCA^Jy4jwj|Sh6bhDQ zYRdGyJPI0CG+0q=#o2aTkny6d7v+tQxQ|rogbhbSS;oI5N=khCtZJWiaEGRrOZrPT5R6#hInpdD6 zca}{B-8suPXKJM-vvS&4Dsm;BbMi)U-l$kI4;EE-#i}aUnR6wLv2%^0q=YEF1|gFN+ns5_Fa zb`OgurKF&*<*t{bNOEz?Gcy!~7MZ7rQ7k%nA?mG1&7xWILua~#*F>daTxNpo8j&^E z3Fc}twK%1LscRRjoKb%X1@i~dH@unSq{ z%`BJ|=5E_BlYY5;C-HkX;f%L9ev|+mb5_AN+**YdOm3#u`jF(N&2{{6;>pw|PXyif ztHstx3ZipPt&%rSSfZfV9Z~F;3^BOPqB*{Lni1+qBO{ML=(q&teaB|IJ2*O?!Ltg6 zy@dOjD;CXyQJkn0Y9-TlAH0-jJ6Mj*#826Ir&OlGsNMt-#KS){Jg4J%ydaYobxdMh z$4hut$IJMqj$`Z*0!F70WJ6)~w>PNwFt=MT@({icw9} zZ1Ymt%)91t!eyihr;?~z&zScobi9h!bi9r?bi9dIH2h1)zwwrWEe-5I6*?Zk+dAIC zTk`gxj{o3Y4e#lAAOEHNTI7lfH%nz#6r4;wuAno&V&*T-lZQi&k>u1=ie1nbsKd*n zABQL1zRifIC{b23%&t*z7p2hBfHKLpZqeVc7umI!jEkmdfC|i4Ov9BI^7HyKT&}Ud zG)~#SB;00{dEqQ87;DA6sULn(6!L0!9e;^!cSp(1Q8TuJNmpH7?l&5l7lahc%Oc$; zlg%wVyL5s1Je+E=Mu%2#2b2D)+{Lr!seaxzO(YvV-_vmGT{OI3+l;E;j(b}=-Q1xV z;-_JR*Lw&%u?Ktk;knzJ?c+SzG*3Z3N^CbiM`>|@qrx$gUPI`bcVvvuD1m?&RCHlK z-*n#yS=_^!Dyq2nvT4nwfxJP&Lk z;W+yE)!WUd_}J$8OawlNh8ZT5llSRl&Bn#dlHRNR&(D*cjkOx{3J0O>A9QLvOsVPEppe zokJZv)^OKX{p!jW(dquHh>U(lo}+c_JTofN@kKh!$^r-Z&+ZU9skId4l4UIqu$l*1 zyd%s&gYdC{utqDP$(s;89(A9vj?hm?DLA&wtJi>93`O`Bu(67MD zVfaf7+`wQ6Ut`zw==vAYneZXCPaR$V7`eR?dAi|Wb#Zl)I$ zL5zj#VyyAm#5?A|JkVG!C&Pb=j zM+Y+uEj~J!8QgyzLvvTc4D5%|>lkj-#23#=GJcpf$?@u#Cc7M4YQ~EtP1qPO6NyDM lxi5$%LJPk+Iz4-d#qY<^EyPHbgvquyV0)TuAM<$6{|wz5Y9jyu literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfInt4.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfInt4.class new file mode 100644 index 0000000000000000000000000000000000000000..061ecf92ef756a29c20b21d1582d50338a613973 GIT binary patch literal 3075 zcma)7SyLQk6g@o)4MPu*31nl*0Kv=x8BJnbAc+tYB@Un=5)m~vLucq@rh6QEFo|n4 z?)&m!r7RzO@xd2;8PF*D}xF)Yi!r3f5UR4glKIJ;n!oJ9r7 zxPs_0+gfsT%bC#&6(dOaAq7ombBnrV8HFWUkC>L}98nNVBxe+aj@b)_g4V2Q8IzUb zyiq=_&lh+S%i1};Fr$}E+53kfXVIjO&a7R|XY7(;<(4x!yKH18bZ6?^xaAxirpv@h z*R#H`P$sC81U2pGxeF6|$#uijDQG!Ywu_UxV=fz`u3Zn``cJnz67{Z!C6rQB&{6l+ zO;9*7H}0D03IcOXQdln(?3^HV&m%^`D0<|XD*-lIF6)<=BCA5rs$={6P$D@uuHvwQ zMzPA8OOArAiR^iOSZKEuozd85qaZM!+` zmr8%9eqfWIkvgv*p@XJrGjHimrOX;8HbblblH{hru{}DmL~>IkI^Fw^!}^{SM5gUZ zIcJAHIktS76g4D~lEVLY zFj~%6iiYJJznEh;n6|~#k6SsrSfa?N;5c1Kh-XwhtKm63FPj%MjAB^Bi@2=e3SQE1 z1V=TzjH?QE)k2)ASdLjVHn`qiyPS5)rj;M7n1uy{dQW(wmT>V!eJNhCjEf~B=NJod zhg9QsIlg3GHtvpVcm=O&cnz;>cmr2eys6&bn;651@$n@4pu^XPn@5j_E8dRH9#2uE ztY?sY!{Sg3bqy$#O#LSP7kd$2V^P0ghzO{`T-nea`9pkeX9i0Zc9_a7JD7kQ^b&{8 zf`XxX$TxJvO+_KDM#uJ!*m!?yc_V9b%Nq>U;^uz6l{q4$SZ)>>K9Shiv{Uovna|;5 zoiheB{Si#~%QA|m&QboHHyc3Ky1uOz)*Ur6r}ZVTAqVOP-Q1(-<(HwK<3500*n*O${?Q+Is&2yp#?+yr+G%$hYWWi=~dss z5`z2z@zm}W1XERnu3=kBRjX+D6w&KYXJd^kX!=2X2O+*=d>`0Cz%g|2qqmz+iLuR% z8TVt*BW}ZfMmfN{D3m{G7*KIgUT(teIOGF3Kz9PR={mx*Ju8TO#ZADC)Ibwp#|8#X zu21khi937;7l}(8^rzCRXkLN#|4DSA5#0>XgFeEok?3D1(T_WE7Xt~2Rw2>nl2CCs z53Uf!u#e&dF$ju?6e5+bB3i3Pi<{wo65T`U0~-QG)&oT_g2VKs$PDv+KFl18&$iCb z(30v5sp=|PR?u3jh37fpRZ+nG6%3NdmNT_@yU;-6A+p#rikQj}F}=TgOv73}<>Q(gQn zGSPVr;lZznbFhkCX9h(&o=E#xSx{vvb=FL&Bw5D{D|vv0yPfP06Ic!KQ6I2MD}l*L zh&C6x2UtVk4U7A+8;v{Z;Iqx*Afx`19A)kS~{zEBjlRUa)9U)=ARV#YFWoRcXdP z#C3%6M~Oi2A7u1BRPg;oEuA&Cp87G2<0P?magscMEb;d8Cn5`Cf|lM$5UWXAi8!_( z6vYj6sOTY0<#%ky6psUVkOmLolu!8+29i*FS&(=(y+)=J!6V&iQi~0Cr@Qy9qIddg zki>o)Tt#24CZ2ds67d79NtUByg6OhrsY#bhif*GECc;HDx!30sriIrW&9wKpc>Nf- VfheI8FwwUAXs3zxw2S-UzW@jpYBm4> literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfKeyPoint.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfKeyPoint.class new file mode 100644 index 0000000000000000000000000000000000000000..0f0aa004409ea5f0187283683787b898efe06f63 GIT binary patch literal 3271 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 BHaGwP literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfPoint3.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfPoint3.class new file mode 100644 index 0000000000000000000000000000000000000000..6878603263f2591d42d530923804ed802096d5f5 GIT binary patch literal 2957 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 Rv-8Ts;J*lIK%M{q literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRect.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRect.class new file mode 100644 index 0000000000000000000000000000000000000000..12f85863eee20e0df7c8b9a330a8d94f079320d0 GIT binary patch literal 2972 zcma)7TT@e46#hgAvus+!wF*VwzjqR zcc;?_U;3&u9k8|9KJ}pw{T=-col*PkeFD)K9Vat;XYI?kzHhCy*ZKRwZ}$Kk#19(I zdC`VxG0b@3!dn_<#e81FTm|0tLc;}NbMqZs6vyU;se7SdL6|XNE_%=mLkvq|h>Ia1 zHcT-rYgiF;(#z#kCDO=fI4V}MUc8H(hE)abi;G6qN+?jG3aSP(=~YWlThn?nZ#ckmO4JXeOp7r}dmE z?82gIB}`%jMl-p1B$GALv9(AnlQSY?x;3#hX~eAKgba>IWPNclM^YmsHD&3sl`%al zVHhU`)l0cdYFxL>HDf@YYvZkF!tMx`+deK_DJcd1vb!=sJA-piY)Y>3uCAc@DflpQ8URY(}f<@C#BK&4IPop94+w9|Q#R2T9~O9~uwQ4OaQXjZ0h zza`l9R1OuwX-DQF0eF6(Q0ByX9?h**;H9Z7nxE#09TJu6u~n#ar8tz4Eu^_QoA zf*JKpnenu4<#Viy@N?f20drd!n|Xb(s~kZR4?VH-3?|;GOgW0mub`#$+%}L8Yq+GKLq<8Nr{j@mGHJy1=4;aZb zr2I>L%6U;H6)Ani5UFCt#Bzpii9h5gADyz!CqxmhOXi|zbMAy;#uHTM%;q_2JU1tm zxU7t&lN;5t={Vy?Vb_MKe*EPq2(m2{^E|PzEZP^J;S+02b@8rzu%eIZt9E7YD+^Ov z?AXJm-Ntt8z)tK&J3j(@q}4&Y^D$d|AXu;*Uyz>~s^{zqZNhO&UU`wDmq0)jR8%9# ze?I#Vx)7qJ5+GavScQ{6pgpvE6VA{E)az&pY1#(dKceamwAuQKO?dtg*iH!Sdfo@> zNVpz;G?1=e`e>3q+Y3I3h;H=IOD|7XL3zl74h<1;*@OK!P#|!SaDuGo4qUTsoABPG z;gFu(JOb=^M1e-+Y!_|E=AY)@o+A$+z z6u5!DZohg5&9gmzRZH~BQJuGES7CO~_imzPN`~a0Zc*y?qYBZLt>`2w$+U(X>&UVh zgM2rqsdorxIL}a}(0+)-IvATR#j^#)ZcIs?Z09m&N2$1(I7P(`aNb89^#<;v)>bVF zd>F6ssAwrk&Y~kUhMg4rD|R~YCjw)k?m|u5gzd_UGKC}T0dGiB?e@Lx;5XuRM2TI^ zM2)bz9Xz+yi^Se2_r|#5AXNnuc(cIZ6fIHrUdFw3l&^YMu_xG_ZJhEaq)+?7ZoMNH R*U!jzWaCZ}X-axH`#(?RJ}UqK literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRect2d.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRect2d.class new file mode 100644 index 0000000000000000000000000000000000000000..8f737247e9b80d08c3e0402889f3cf9837ce5b64 GIT binary patch literal 3008 zcmb7FTUS(N7=HH5p4rSezyJ=Qg9-{c3?QD;6b~Utp&SYfA~M|!o0*MsYS@F)*|M^8 z-MU&`c+;(})dI`3uDa-=-_dVqEw$(U_6Ue*D_MS<_xs-O{hsG}5Bz!mm%9M=;X4Ck zL2SjiEUyOP!-Rp?FtR1g{xVor-`1yF|>S(37(WU=L7 zR+b9}((=s&xt-mB9P$PZ$A(t649edvDR(_4V^&f%jW9vC|$zxhZLuB1krBp*~^0C7bUUl2l zu<3~&8hmCtol6L_esK?4X)EK(MTvz-ccEY|5C!?xKj|SJ+tfWI5VTcGudmP zM}y(yN)e*5)~DboleY%!Ip)45HZW_>o1I0+PIt?3&~=}$~q@6CD?~{E=vgg*+edrXI-;x8W}_$SupTc2yf#ZG2RW~C=Q139xjFO zK0XNHFuFpxj1NQjNR}(Id@Rc+_%wv8_-q{-Zt;fjxwy383j<$@1i{|bI_l% z>|~1F;msGh8uXp)6*fL6=a|Gt#vDi9q@_-K`A^=dc(ju=#5gWivOPRCOL4l`n2+r- z;VXAl3v)jD%{jNqTh9LPr zjbC4U37(tkN{nlefq-)8s6Z=!3%O2+qm7o%0PUp!4!ryUn&R7*;EgXrzlOTF5%w>_ z|2@iY!oOc(%l%QdsOzEDRi=^JT&~SmMz~5CS78sff2NqI@ME z6-whBWZF#bEvp_1EjG*#5V=z9(@}A%1`w3Me%FvZj?HWF1)VPLU85>8g=-Q7D?!>*`jzvVq zSHK@;eS#?suuy_5lydB5QSCuJtD}ht-bwLA{%)#0M8uQaH>r|MjfChiA{U=yI8LRa z=)?0QDit=nOn$bcYdOv`4r`FnM{oi?%!!mH`3GAgdirsCiI2CXi9mfXps3h7d;;bXmZRlk~oW#rgjuV`4-%nuMsm(*i6D7uej4Ga- z>eNhX%EK5ZRxz%D_a3UqH+m0Ym-T+~eE~1hRXQrouMCBaZC(=o8Jj)$9nryfd#R{h zz;5OBGli!(1x_najqbf=@i(HMryQ?L)M*7}fN|Y%Bxi#>8{&=!!~E?f5_A!qpe2PL nr0xv^?CUKnQ^6f>L!>{vs@fkml8^f%s*&8dql|P$z3|GvN-9V* literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRotatedRect.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/MatOfRotatedRect.class new file mode 100644 index 0000000000000000000000000000000000000000..595b0824c61e7420c6ae8f3f947a399c6bd3f28a GIT binary patch literal 3320 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Point3.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Point3.class new file mode 100644 index 0000000000000000000000000000000000000000..e19f55b6042f16f7a3b2d9a9f07a630f937a6fdf GIT binary patch literal 2526 zcma)7U2_vv7=BK6x0@~@#F7*UwI9ewvME$PM4+XmZCWU{fD}iHjW!& zz9*Y+ns{G9J>*m5^C_Rt6xxQ|s_PHa$Q6sl{7nUY+?#h4c1^og=SpLF&Z*xh%~j~> znD)x0%FR;UmG{W0`-|?1!rp1GzA)g`oND>OK-sH11J^va>Yp4`&~k#B&9&Y!D2uA5 zuxFcf1tWJS6!xH0Ayw=SOO0_@?lVRcr_m?YPm3p(ed~3`=)x1Z5 z{oANIIhZGjQLcL{WIVC`uI&lpi=~ytFqO=}6wzvRcbT#j?Y6qJ(x^~??mNp2UR|co z`J@p9n8{7wFFhy?R7%x_fva=(ow7fezs;Dvx%*OuEsM;FORTu>&H8n>x}cC|=6INtl?JXojQ~7c>*8dt_&YDr2byI9wji0kp%j2R3Wu~ zG}NweaNRX7Rlnl-vyEEKtNYG;Gb)8lOI5ER7QIH$<*E6=xZzEE)rB$FXZ`hDF)sxw z)!5(j3P(2|qZrUZ-ege)*oDhe_tx#kXbd zG&yJNXHfQ$r-<44r_k)Z##87&b0LP;Id;O}7>AB_{wyT118G8a(`(a90Q8`jvsgl` z0!yg1z!GvJpze#PPm@@7#qDG=`3%N7n?+V&7uQn(gGd(kkU``hh%oLFUG`=J`Gr-q zNd%lt2_o4dh7PLTP339+GHkidfT1%)X~vMn8#qV~;W`v?O>&QLS>%e_g*CLVD^3Pc z?jv@V`Psh#(`sT`IE*6!CVM-={43HwRrmvE?81w0(O%GwKZZ`}jN^s=9UXe)(C9G4 zVMGr7F*+p3m<;RTYC*{kFkzq&odVJ<%^~*2S%x*tz{dG@iDIODVdzs$nNyL>JlDn% zzh=Vzmu8H!i9#@ISO2%uNHS91wXx|@mVC9cAoI3D3Q z*d%t+(+R{Q~1+>Di2QIO+mr7zw3oQaWu|dLUQ^IId!U_I!hqvi)v^`&|reevZzacZrc`W9!`lV&Oovq^!s*?eb+e-1k_$i^Mw zwK~uA4s&G$MO+AUhSz&C(y6g0PT?);GcbzNv|>DcmM6{-P0>0RY5#_uCs%*OE_@F| ze^U4z*4Hq!Cxzc&%}6Z$e7^b`JrV+KjrMNZI&Gb{$@bPY5gj(P++1LSUxi727cTPl zUJ3;EhBVDYjxd-ZipcQGbe>g>L0UNh-HiW@es=B!sWblwBBAmPk)AyD9En@cu(Kn% zhFzj>4XKXTLR;Hl>tc7%zlPnLdv+#J6!z??P*G}>{eOWfpU{XXPkBn#s2_=2dS|D literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Range.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Range.class new file mode 100644 index 0000000000000000000000000000000000000000..ae7032b58f9d02c23422c6fbd207044890ec26aa GIT binary patch literal 2538 zcmZ`)-*XdH6#i~D>84?6)6i0(6{v#bM`@_FqO@RX3$~>Nq==UKquXR@x1`yaY#4OL z(HS4~MPGc<2ZtFQdEr53q%bnW=!*~jO^)?Dcb6tmI+@&ia_+g`{qFhBx%ub6KOO@Z zLMef6oNtARSsCUM94^RkQHDz<-Z636_>!^47n_@#3C!b)4DTjz74MmNKY=!!k7GgR zYcedx@j)CPiusXXd~9M#Ay)J4s;{7?6%40bRA?D>%dUT#OX=z9%vFWxgjaMF+GpLe zbD_Sz>{PGV%O!eJvtGe2UA3#O{0^N_f7PuibkBO#mAqGR%7vTxf>(9&m+kV3Gs2U& zs<_)o3wSKOIH?c0X_vSVS)Alb%^{=R^S)iUF=tmau)gq7lBv0$1)E7Y=B!uzPc_sv zj&`Y}urHn2@o38}`%bmy6nxh!D;!Vn5VA$0juoAfZ!@@1 z^2%f#U$twiK{jKRs=H2COVz2>O9YDgybQ5t=yN`)>uhwTXV>hTcD}^act3?Yg)?~QB>-Ha_D`R02XDz%5s*`MN4eq6IxZ#=*B`$dW ze7#cfs=ia)y0JoABW%w0$--E-Z%K)=52QWTT^3Cf{G?aceUL0_NfCya_qb0mhjV`;lg&N;35lFB_}v{u4ar3Aar75@qE9@=9qi8P z6%IN_1|&!ONgvqDFg%W2xk*HJuAN7 z+nupi67R>ckp2wGOIEwG8)*3fCiz*}-(m0@DcVu z!(XrRpDifOI;lx%=4D5YSCVTz#4eh0L*pSVV$AjT)8|j-C*II) zq2%QWQBN`zlHTMKRKa`>;)$m0CPPGplUwqC&$5dVXDE4aG$;IgKP{*k0$GbR68u^B^gY^VlxFY!g~Xscj2UGyX3Qu$RW9#Q7HxQoF2`2GWnv zw(tP$spN((_s9lPsXc*hh}}th16_@(3e>*Tq)j?tkvv0je7E}CA(~e-~f3&Kc>Hq)$ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Rect.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Rect.class new file mode 100644 index 0000000000000000000000000000000000000000..9e5fee2aa5dd8510330824abf046e57f75a4540f GIT binary patch literal 3563 zcmbtWTTfJ16#mYQ8OBk^5rk2!Xsr%|idd~$FGWNUi&yZ1SBBxp931D2!@+BF=?9!G&LdZOCS2uAJnGyTl*Y_5r(8qfwT5HYwi8*wZ66XKK%ao&$9sD z#YYh|puZYXTo!Rf#8na3A{5uFu^cx<3{+z!(jo@MkqKca1Uo{{%@BqowBL*%3nzq; z2;%4u)o9+iVm-ti7= z2qnAu({w?DdDI=UHLUD$^7g5*+kvbO52V^s?z^7s!Y6_W4Ug=Qm+)d{=PruT^+(vCLguQfTa&Dds)hC-4 z#T)RTdpQk>3VxplA`Y@v<|qTIj1$CRri*r3(aHcU`*y)&SxNF`4dINN_tH+D;jLYY z0W~k19?kki=0bLcRVX^QxouU^9v#cED@>2TB;*8b_MI`6ac#0^Bz-sCl1t}@TTTy- zNO=X#a0f@EHx@aWl0&Sp=k|I==GR_a&{wF}Lv zKms;aVU1KJgu7AP1CLqV!tC0|oZOHthwxDp5AaaLBNDT%k*3E{oI`IE?}H@7=9l^m zXxKb&Ix78j%Jq833I(_5*+V66h$D@V>`>iVhSK4VsZ$#pQc9oOuvQtPK+rfSV8SU=LM;~klUD#|eTsOE13E3gc!xo?73Q4+d z6Ofb-q8%rQZ16;-)cg{mZG4`7g^1|S{nrV}l<#5s!htXB`@-}Y;#2Fs`1;Ltsh7}) zgq*p>!GzLcPB1t@@n)3qwwk%t@Ho`sAlBd->hLk@RVs~sxFz16pc&g#dQY&OnvNYz z=MKWJxxfgaC4`;)gGTi=*Or-dnv9G8(SCJ_`3zwbT76b=g~b0=t6z68uc>W`45Ko?xR+zDuV>{PIm>*?beMP$5XyY+wgAD)cq} z>=Jqe?_n>oG`VnmOfA86f|+Ul4JT90vrcZpL-oO|`7JHxoQ2h&wZvl0Sy=Ab zDzQ|}S*+)%OR3cqhG?dUva+XmM8Jb)@}SkS5w5;4f~%JK0N z$&?bw1c^xTFClVPRf%VjV~9X9YG?kR(OOM{coX_Gp`A6B<5&L*(SB)k>1949AB!da zfj<8#@aMIvxc!q@AH=P(y$=O=2LrtLD=b%d;{rH7gB1&r_LL#TOGt-HNSy&v!yJ-C zHK5=mwt-5R`^zvJN|+y@ZEh!Y$IqDCOto`UiWAyZoP1?~P#;?sVt467!bgMj+DTxw6BVV{g*kj)0hdHrpnW{5jXcS1%n@FBHySB|4w#o@PYM-T^h z3Qo5~6oURI+EqwhI39%b2LqK)&W+fHgXSUGWBezqYL9Jb$Zp&iYkd6a=L2FjD_Zr6 zR%5ZXL0I#fbqBvw;IT7snj4?xck3M1@d$24AFsFbJOCHag^M_YOFWSMDytNEV~9ak z2Ckx;Un_p|aTzD5=|nk;579$Z4JV22^ZgAya!q!nn!kf(zG(gx(Jx^cFPeWr^d!^L zd0*<2NK!SZ8k1Nr$x<~Z5vOWVwI&x)9#;WfC#5$K!vJrTv$vm}apqj* literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Rect2d.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Rect2d.class new file mode 100644 index 0000000000000000000000000000000000000000..6717a22543d0936c0961827681b40e0f292f7a68 GIT binary patch literal 3531 zcmbtWT~8EO7=C7FW@i}}SovH51+7-tRS_$Gp%xKs5doTC#n5OAX z|AEG|UN!Z`q-`S5)P%G*y=ebZQ~SI#!?G@rv?(xW-g)11p7Xq4=kUkhzpMfH01r(x zVZ01cOvv!544=tx+vG4=hH^2Ki=k2smA>JQfs}zMla{oBX_NZ22@7`(%$TUccm%WZ zwq=-$;9dl~Bgn|tyZ~nnI0}@9e0uqOu0VfaPrI`U!n2k=GwV_~YiDiuyaJ=Omp^Tz z3bc#Pw56bOz|LBOi}O=fek3)Op{8oUNvATSsk|-Ufl_m4?F9w#0VhAx?&Pd&dZ|6_ z2rH5%N=h{wo!2sEq z!_HzpZC$pdCU^M3JtA;X>_b}=yRj#VW*J&!*ek<6ycfkObTYkL*QtWqQiGQiS$dz; zN{x~U1NkTxK;P<1z3ExBGt(B6sXUHi5lb>WU?2{)Q1v8=VT?p^26Q^MvDEii!Tt@^ zMX9Pm#~ohG<(#~0O&4Mz_2~C&5kjxC=yhsr+7m{c0Vg}tW4o*dt+lsJ(wNGzN2e7W zE>2^Rg3Vb8{2iW){3R6T$aRT9^%v`}y@HRFv`E zm{^69IJk^ZqHP&!BCan(OT>+3=s(dM!U2vA2y={ZlQRCAsK5@?aN`D^kMGlR96HBF z97HSMA_*16lZ1@wNkYe;Cxi@-PFq0dBynYaS)zhJs|aswZjuBLgqN)zdp;#!!#Kp}**7pne(8UTr~Hi26bVcb-xLx5*H=A#@y@EmYlLPbGV4nN z`}$JaRocCnsYNlXX3T1skXqJU9mY|QM~HiFwD?pDF?)<84tcIU#$ie!9HA@s5qZl6 zs)2R`NBIYZ;#;mQQiZ5eNB^UKVw?G-un!%6L~)a8k%-oMaS41cW9ZB+Qq)LKn~Hp^ zE%;W8V}WnAypxa9H`$~!*yJ+5CB>$nwiWEyNPdO4{T@cKnN(Ul^g4fb0o}w2oFtYa z=Zuf3)N-9*P9}dxUn05o0%b|H<0Z5TFaK-WcT{MBf>~eFMWF`@rg<$aig2LNU!p$Y zE#;t!q{&c}?gZNc>@JPnRl@=}K&mH5@e0~7#0ni@ddC=q+f1vpjPJx`!HLPh2}$}b znAg1Qu>bfraN2vTL;p{yS2H*~`uq@~hm57=;%^Wgllqn#=A-e^ncg31^V>h{&Fk=Z z``s50cq=%Ia{=BN9uk5VdxP=<-YP0eaXO1|Vg;P@1)N@Xy5KYv;b`fAoSxnS@pKVl zLjmzabZ=%>Da-;7W2MZ_72#|!yTC~KXXbHcSD2aW825fCiP4231hc^8B6AWA{6c=jy}jm4?HBA$PI__4fHgts1ZsgN+#Dz#fm{t_++*k4d9CErcRkQ`$~ z?Uc8C%YJDdcl#-*(#JH$w#;doGd+dlg};6A&mV45wKAJ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/RotatedRect.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/RotatedRect.class new file mode 100644 index 0000000000000000000000000000000000000000..f41e6eb39b60b4043bb8988c192d1619ff6fd534 GIT binary patch literal 3800 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 TyEVQ_XPJ#_{J&1wgNgqDB23X& literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Size.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/core/Size.class new file mode 100644 index 0000000000000000000000000000000000000000..f8d9ff64b60100ea0178098a4a44fa9f1bbd50b0 GIT binary patch literal 2213 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/DictValue.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/DictValue.class new file mode 100644 index 0000000000000000000000000000000000000000..65f810b36940b954c2a99e4c1be3afd05f9ac3e6 GIT binary patch literal 2491 zcma)+ZF3V<6vzL!N%Ob~wIvlP1$?4O3Ir%pwWSJ_hs3m0TC1QEw#hc#PS|vkv@(nz z!10~q2XK7nI6A-#4jrBG1NfmF|L5-Jp?LsbC@P zh7Vr^aW}&Co|rGid?n^)M)TF8Sy?x0w(LEpzp-W46^`bs zwQ{DqV>!jWOv!OFi*~WGZdP`!ITFoMsirVewi?ULyRT@MFPUNl(L!OfR(-hAs1*td zlMLf!v_vw$ZSI+wis_UytBsoNl;kw>Gy~g*c;fDLPz* z1fTcA`0Uans#UWjFNMR&zNd!mde&(uFtdBSfWLrUzhlW8A-nEgq+sw;ae7xuNQ{i{ z&_?-;h>k~$l8+C?8hty9n3j${ZY}{Y1mb#9t0DLwq!4ylT3Q^(0aE|opa#;634LI zPLU2i&{^cfAL|gWb)L!{@O#JU4wS5l)u5b_)#`4oXx*@-(c>*C&PwnG5|}eEhQkU+ z2DP~y8aJ?jj|_Z_D+aFOnt?@JH*f-k=?)kEd`H6I|urG1Az%|hhSSe6^gI7_Vn#H^a1VHxFizm4 z_wo$Gk}JZ0!FTug3;3UQ0meE2VST$~m0*T$CRyeofSAr?dLP3Fl8NgyCwR*w4Bp#L zD%MIWhPUuGae{rP11kc#*r|O4`e0MUP7`}(0QOy+@~~4K*mkrN`v~^I&Jz0pv2z2k zNu)G3&C6X8mb`LCr39pgmQJ^IjA(ssB8;pCp45^=Tj@t}S_8v8cZNbpHPbljp|5hU zdqB|p2P`;c@GBi&Xc2XVGu9c%d3#* zyn;6~h-dWj9+UU&D|i?2o|mtb#?K6!rHN&ePr4HRj-~lt17BX6Q@S)4aj8Q}_aoM& ziQk&)CjY=te;gR9+nlp_zav!PHA6jg`B-;teqyLU|Bp~pI@DRVvD=_sT{P0G>MsoS z*MXr*!~5|eKZzkdzb2k0C2S%M|v;Y7A literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/Dnn.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/Dnn.class new file mode 100644 index 0000000000000000000000000000000000000000..2c4daeb2f4900e3ee2a659060b0309132962c082 GIT binary patch literal 12328 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 LpkJUYqhJ0X{f@Rj literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/Layer.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/dnn/Layer.class new file mode 100644 index 0000000000000000000000000000000000000000..8cb52f61db91cff53aad809498cdf7557e69145b GIT binary patch literal 3483 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/engine/OpenCVEngineInterface$Stub.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/engine/OpenCVEngineInterface$Stub.class new file mode 100644 index 0000000000000000000000000000000000000000..30fe74197aa3013a19bbd18717253d77099c2cbd GIT binary patch literal 2653 zcmb7F-E$LF6#w01lTFj5Eon<>DOQw^H2nyI0=5X0P#_T6(u4@8)NQg&7s77Y-6Fi` z3y(bb>Nw;0q!0E1XPBZg!{7_f^gnWj5r21+#!ZPcFzvm2&pE$)zR%6ZKYu&}a2TG7 zb8+wE(l0 zXE;lG$=ECN$-K1dZi6RqGMUq@vSXX&wC$#|r%kJDIFrL~s+9V|_To)}o>pooG)?BV zuSwXjE{l}+^wO1N$KR^PS?j&8Yn$rBh!W`n3X-6 z$rh~a@O1%o!7<#`D(^)Wbf|R#+^+IUai+uv4Z&PA{ z1B8#)I%2%m5#ufGYWNbmhDDTWciyCn1P;B8Gkg7Um0^^b9SsJSG*sla3{%5R?9*@y zRSmacX|S=P;SL-Pt~`B&BLdq4S=sE1-T*J#XeWWLtUImO*~Rt-+MoY)3bHfalVu+9F9gJaRxY;todslELx$MlTa zBPYjDmRz5e9!)yWd;Yn-tIIf(fzUglsVvoff-W9a2gt34dct(m6N z-L*Ha>9G{p-^#^S*E^aY(fF8+EeU?L)DwhKsf4nQ$gjSo1Kc|(1-A1}0`2HV zQX*@33?oIV4I>z>>-vW15P8YeUx>A0pmXF;sNW$r@*L`;r-)snxwc2d zh9T_?AnNZ5V~b)pIvLXdhWNL~x4EOH7h@PFu9Nvl;~=emK&lO)=u7NWafpn=_^|Gb zbV>#mN=Y*z-%Ql!>=cg!VJ(G2YooC=-!gzwiV+<%)1gjgwq5%siJ& zkISWSeZMeMILq(hvHr+9;>y~n{I;jop&f~itz+9*Z*(0UoBYvrbWTK5{p58`sJ^^k z4crUJw;!p=dznI2`58*MwVp(?p46_Cz!}n%-UJz zEyo(HO}Dy&f_7n_!bxN11{o6%;G0p#v11F zn3?$v1w6wQJjXRZ+Yhjf`Za1EWP!_U?qe)sl)5FapN;;2k{a(JrAP5Gd20>a;|7j( zsn<-NCj8cxr%4?5tFl3_kNb7mpzni>RKW{I(9inGb~%sOOB_>iO6?nZ#rBG+m=Y>Z y^Pitn{Ab^gctvb0Sx5r^hBAZ<5ptN$(C#$PA!cz0zX_hg^uAYVV;_alhxorKj$qCJ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/engine/OpenCVEngineInterface.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/engine/OpenCVEngineInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..f6412ef3e059729a440bface3176962770c96dab GIT binary patch literal 521 zcma)(&q_i;6vn^NTQ|+jG7DTsDMYhq*)B1-AQ%ZQ+Kt!KZR9prW=6?ZYtaMrP|-2r zR_3C`a5x{o^PNBQ{_*+-;0h-p4nx#K9EE5I1Oq=C2~;9u$aYfY965nnLcVJfZD>f= z>C6ZeTkS}o+RE9ijs@xr_VnmZ`KOyj&Yrb;6E#;dRVI-GZ?#FT+kYj2sy5E6 zG|ej;n<^g|T=lWaE_&K|9%PWsY)rR0C4pvtN~SYhO&l3d_EE)jxtu}ZJhO?+7>MVR zzIKuuao+lS=>BLzF}GAW+~}9!S=J^@4Kg~tE@ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/AKAZE.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/AKAZE.class new file mode 100644 index 0000000000000000000000000000000000000000..3d5688fad6eaf7b90061a84c53d48cbe23606e8a GIT binary patch literal 4665 zcmai0>2nlS5bw#}o5{H>AqkLhFX0GB2m&Dz5(0sc#3V!kb)D=^lEuw#*qsD|f_RGp z-WTG1AyTDQS+b>7ezN@FN6SCJ@(-~511!p4znRR=&N41ky65%l_v_z#-S2JxcIU^R ziD*0B3es}A;-jlUDx)hbUS{zMi&t5^#^QArZ?Jfi#ak@i4nVxaU+=QG#^OB|*IB&J z;sX{RviOL_$1FZ!@hOYXSbWan3l?9pxZ$I(B&zELAeSMfBPJra345~+mN zDUmyJc>NeucRH@ZyFZaq2WF?o)y$|eo`j{gKOIw&V@f8$W5ejyrV?3+mi4DIldb6) zH5Hp{olq5RHlt>@#ap|0M|%LO#N!$4=&(fP(da}bJw2plqEU&O5wyfwZ!7~q5Lg@O z>+9>qU#S&UaWxyuBxba9CaTTP@NO)YY~ma&A&Vt8rKD1768i{fQy@N-PR2pDS0aCE zFs3PUDyAxo&wgcI&0t&}PfSeAW)pJ>Z62qXQ8`5ttuaWJ;<#G(E9JIIxRvr+$zG+L zR=}y0PjjTCOH-s2Nadue^{5ldY*HIgrg7Gbu;i37r?e)O)MV?3mPw>0Q53azGs;*z znooi&vc3nYz+YIPF66b_Oc^|IPihKgM?{JXZKI+P1UGBqsWr4a>*AxEaL_MVbPJ~R%0#i?wl3JW;%*pr zt9ctdbhFjE9fX9{YHY(LVWZWyLn04sR#Q7aL?1xJM7qE@_dHL3D@8yrc`W@2h@f?xljc*-~P zSc5B5zC6ZIZqdm>YSFd7>)X1i2V-*s_^gq4{eIZN+?mPu0NL z4pjCE{6uBPm)|DWw-}UB9;#MA$pSVY0N_k*w8H?nL_YFkO}L?P>6)-R>MuYDR#?W_uz}Y!?a86lfU-B<`%XNe0jvzUVM3h z=%P;S&?ji!YtTB686Uht3$$_sUY_0Fdas?-MykdUF{wlP5|dQOBo#7Ag-lW*lT?Uw zQq=|(ub{HepmG{?y+E(gspQDVL_GB#JCPk!iGWO`Q(s^bsWFMvm_%w!A~gn)N+Y~S zgzqxKt2j44uPP3oBR>as*Sqb(J4vQ}B6yqbZU(P1gIAfstBl~X5z;L}?l(d{04pa; zM#vlm5OH9WJ>EeIQlE&|qWhZhWHX*@#N*=O6uU%}ZX?Q3SosQ+H#Fubh#*Hd+Jg*X z!LSI@th<^)%8el0l{0jifbKD%_hZZz7;MNFU-eurjb;RSx zQKA7SyqaRXYrwl+0&ma>ueKQP2Jmi{z#DSH3l-!20K8lYy!)K+78T?D0=!>K;0-(B zg^Tfi2i_kg@J49V$Zr>}5a&0*`Nfr6od4C)%jHkN{bhj*n7=#$I)=BJ(>vw}S7(R& z8*u+Pz};`aJ>Uqp#18i_;O;oU9XH@kIKtK2;G`h=CD{S)qyhJ!BV2ighux#G#Wsm(E|#NHc)7Ef}(V2 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/AgastFeatureDetector.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/AgastFeatureDetector.class new file mode 100644 index 0000000000000000000000000000000000000000..8c87816eb530cd921a63d96ee0cdfe5acbfcbddf GIT binary patch literal 2726 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BOWKMeansTrainer.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BOWKMeansTrainer.class new file mode 100644 index 0000000000000000000000000000000000000000..9b4d0f21af51a5ad463377f81d1d29c1167f5c15 GIT binary patch literal 2007 zcma)63sVzU7(F)xHXF7@pb2SFq&{Onf?&0ZwM9Tp45B51j?QG3P-{anY|NHwN0LyqD#{^al+>0ZERTFDiSHp%H z?kn2^H9S;9P7Qejk4(-56Qd|7%VwObRkeDohAjh61V-*St`po9h^F&bb~vqh6)7-Q za9sJgS=*C-(cY`lGEwl#c6G=09kmaQ(crby5J(q1{~+ttrCUDC?n^sp`m(W9$==)A zeY7cUw^8(M;`uAYw<{H2K;#8ROQn6^t33()Qb}Nr{9g`pA)V`XE_=Sr7NuWX^PNCa z;z};3qOr==W`l+`ujvM4%?ZS~t(EB}F!TQq^tFRP*6IO69Nw?m2b|A;mRRwg`<$0f zby{mQLX86RJ$ckIZQ8*~Pg*)w=C2|f45S`-K7}Pt1f$Nfz`hK2?5e<2`cpu$eaE${ z&L6DuP+BRAZ@ewbdf<3&!@yJ4zQ2&AMFBIN%jMRYXO{A$!!>5F?J)TJl7OMV5B|KY z8d5`>VR{tha5|q?{v8`xRNvAxQjt{|FoO8D*YwNszN4Bp(Jy@AjeTfan8Y^%m%glN z4g6|h8?zRQYIuen3rkqGa2-EbxPhA%e#9+-$u77LRkE;)X$!ZpV&M*cvT#=s&vtqC z-j?v55KQUJR&DnnTYT+%zqRk+>8^t(TAry0ey=m=Sj~PLHoPJ04X5h4Z2fhn&9wvP zP;TwL!S{RsCit!Zrw~=?0F%YtZ4B`TjAYIpL;S^61WC2$cVG-t9Fw#uOA6m|R;%wY z&F>~o<4lONOjPA%zC+~2%rS=kHLPJ>^*3DmD#I&_H+ zT_U7YB$q>yRZ{4RWTsn)4*?f#5~Xp20nI^~*(s~3O`8&{8jp7{>w ZnNNY9dFA!YTd!wce4ZBgnPUXMyaywUa#a8T literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BOWTrainer.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/BOWTrainer.class new file mode 100644 index 0000000000000000000000000000000000000000..d84c745f1ce532a08517a694bde46222673040f9 GIT binary patch literal 2076 zcma)7Yg5}s6g`U#wuBnLf|Hh(04a?P6qBS$AGowULSn~2S}25k@d#UhGLFT_vfJc0 zwKMHZIxuCXKOjG<)3YmKD+Z?hVD0YJz31M0?$P?)KY#rV;67gHNMlVy1dn5QqH`_9 zP}VSr$MW!0=dL7o75P|?VME6-*5qMR$20sOcR$LwWo8H2EC|xVl)vZ>|wU0f=Wd|dd#*!Y_@^;LI zz>VBhK*?EBQe zK0c@aPG4N{(k>R6LEEwqIeE@SAb+8RtK%XZn!wE~sHI*8YYodJ`)rw~_<`Lt8}=J! z(I5R%vyMI6X|`hED=ipQb)G@Fa#@bNYrE^~kEV1#o6=uulVnQigveA#tgnm6ER+Mw zk(Qyl)v!ES$d=P~Yu1`ARh;Naa!!uHzz7}~$l$ub_siiAz7h=$obEb!~JY8<=|qD*KfRKQZtJPXoBg=Ma6Q|A%~LX`>fD!YEg{`yuC1i$vQ{2gxCh%F1 zq!d({I!|&6jR`6<{R!rfzX_IA?Wn z5^;r>Cyu~0W_XfQeZw*(7h`7_-aCO&>6QC|;$!9%*Hq0BHR&|{ff93+8UK{*Rzl>A z1+~Yif+@_Znq&A}ku%3QIaL2$fxCHH25^_Vd;HJyRkj+?X7uKg=;_Sw@HzkMUW7U{ zx+5`ykqCT&2La+k=8#&8`-~;~(GC#9kwWt&7Z1>)ct{MNr9O;QKSq-n&LtRMGH;aG nzY@BOrP|UZSzt9JxGacv`qCfM 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/DescriptorMatcher.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/DescriptorMatcher.class new file mode 100644 index 0000000000000000000000000000000000000000..d5ac9631d3fb67a0c176676cb3a23432e9e36ebb GIT binary patch literal 10063 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FastFeatureDetector.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FastFeatureDetector.class new file mode 100644 index 0000000000000000000000000000000000000000..e06f85a05b52a561ee5cdefee0297e3c98a32d3a GIT binary patch literal 2710 zcmb7_>rxz55Xb*#S=bAca0$T#Vu;r)*X3d$H)9AFfxv=Uf`BpOusguwGJ~@NVjjTq z0W2RNJ(6AWPvEhz6G%ALO7-pVKWoH)WCuz9Ztk9ZS%q)zrn%SpI zOPtBhE@ot=MWJDOJiBaat(DsSf>ZDxC`40p-76d>+`O&OG+%J+%>M3%?JZjyMOs?t z-JDfivAlxlp)u-j7fK4f^RBm*cK2*2caYw+Eq~v$OT+o}v{mw_19j5&?VRs=_vpgP z=RKZwPNC5>H$8WE$@ffCVSpi=i`0k4zv4v zd$g4buEX%w8L9ux9_bC9E!UxtrknG58AzQotp3#b99-P8{YiV%+AsPUYnQ>c5wK$& zSm~nWY^AflS8%qN^ww&|Hg3+GJ$hZLn};_zxqO-<8d;t(G3unWm8$NIrq-p5)FuI3 zQ3i-I6`YBQRTJWy1;;8DUNC6FIhC9`%-MTB(_e~Vk541GUUQIFpf8veb8H(@sF&L) zGYv}-&z4(8G?`19U(b>dFH5miNmP5aoX7@wAWVxS{Nz-}c4j6KW=2fy)p8>f^{F|X zo{QzF2`6-R5@B}4){wW0d^OBV*4_7V_H;qs;gu?nYCz6m;4QqZ(EY!kqJbIA8t6f< zfjK-jFpmWT87vz33f%^l@QHyZ$QoG2Qv)j^KEOvE$s*j2-0@bHHx6)v6T znW=NX4mwK0vHZe;y|}T%$Rlj8Km)Gg6581EE=ylSJM}lp^efb_mgybTI?MEH)ZZ-A zuT$?T({G>yQOOfMyh9InQOAG!?df_2^_%wjuIQWxn(!WFJL3?``?$$bex=YYO<6J* zaz;p%Rf#_lS-buUb-z-H;1t!WQHI7QG=PiIhyD<-$}pnbV{~+0J3{mb^_l)thI}nR zLXsg!NIk(?4De|3XCRG1%{DMZTZAhk80P9a?PVnNvOudGx3Q!12n}?y&{yeXfExz2 zlN-U(6DN(K6ZymmI-=1Zgy=`qCCFsQ5n?3I_g0d}5XT)&4lF2z{xXVPsb#tctq(1qa3B;;z6;rRMLK8k^QV`!84ABXPxGrD0hCWlG0FF yfk|nndSpk{Bb%xo*;4h$uBt~iRz0$}>XGeLkL<8|WRuk+`z*aEd`=m`^M3(+zt(5~ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Feature2D.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Feature2D.class new file mode 100644 index 0000000000000000000000000000000000000000..dfa081fa468a74bb0dce90b334f299af1718eb3d GIT binary patch literal 4994 zcmcInYj+!072RV!#*)W&;v{aA)KQxjB0F}R*dZ>q8*q{)jqBKR1{(iY1L0 zjh(s;l$J+Jq0my^kG`Q$%4@AIBANwXVD$t4fYtxN;uCzM>~m){l4Y5=UEtXF-nox` z_c>?Zb8r6o@3;R1U>I-2aT~7b_*@(>~BcVH|6tLX+0->-;&~aDZVYmccl2P6yKBL`%?Ts ziXZCuk%s7au9$O=YY3+%d*@i4w6m6m&Z%6{nqDa^Sk47=A z?wW>Bs`nDf@UJcFgW66(^`B)w|2nc(IpgF?uIw` z_U3f2R~CKitLs1m_;@p0$Bxq@N47Gv&MUH}ebzNI%je9J+Kq=($B%io=-%1fQc-DG z!xN3}*^I;cCa{$Sv`u+CYq?g2!3r15^0J1J4+dK;=irJIZGqtdFBR|kVyCnPWTq#@U9eXvGwX!^y)k9_epZAun!;WQUdB%Oe z)+aF;Ze7gfEichUt~xo%GVCgvd6kQpzBng-&%+t3(Gp8z;zC-UNZ=U0`NqQFm%`qZed`u6!#~qFF1?V@9ve z+AB`RI!*sG=?7QXA@QPt+p(WX_a@h!ffvwgU;!BeSy%=Zv1H(~6gerbU|GkD242F; z8g|t3?S$i)Ym$VSiVVDhqq5(t242HYIj?Th>J=m7X#;sI8~7PsH}G@${Drg%(pQ9S zpd_u&O3OjnfQuCatGH_5VJX(cphP3~M1IMp>Mk>3chvX^wJKpH*bA2(`>OXoh%sg6 zR;`(ZD;oCJ!O2BZ9z1CmS1rf2944Rbt4wCLljaqfc5SIN9B520W9!}oRePDX!)0{> z!l|d11%T#T}SA*{HTZOR#1k5jVS=I-H!nu-~?w2K)mlQge!C-ai35tM-O3;I2sP)NOQdC_}(`IMjqZF;vL=;Z%E+{<7jg{eIwpD@s4kb_YsA6 zY%{#pjd+v9o4N_!$Yyx4jd%|d@6t{1?!rfXdmYY>&||y%N5c}5gKr_82(uXAUj=P7 zsdOj-Su7WE3)7E8=%}|gkj!ohZH&mo!#M6%@!U;sjVbxj;OgqjNOUpNLejZ8UlV+b>>6*QhR370pCc2!QSLH;dpN4&G}rWz zkF1=)nE>tH0PPIXJd88MILn!1XnBu5kLZ}xabNX!3N5XO^7lPX*)SIJ#x$JcXbYyf z(act(eoJH2pCqNH$l&Ss5%u$=ElH;q^%;DEEF>K*&|Tt!uKww&=sdmcZru4^ZJ02uN3;w=Q3AE!d`99#Z!DD#N=Bq|W_Dsw(qj6ro0p(P&Lf5fPIps)9r! zqQn&O6%!4R#~2lxWrB@TX*tL0etiNVv=W1~*EI9eT@ z3ic$z%Es_I8~1Q6@CMia5* z@opHI@9AFVi!Gi74=`kN_@pn9XV9knm>lo|B#EiN8Xm=e7jweiM!mevO>dC$AL~Mq z45%gpy(A&}lmnb3iMy4PlPXh*E|Yi=Lv%pMr!Uv!94`9Q9%mX67xfH`Mym2v)RcTA zc~)?1Be6dd>@S3SM-e;j0R+T)0%AP@v7UgKWCKZ@A?)!rqA^F!`*bGQFNVYvmkN4n zTYER)->Cj~)wW&$V!^gCe9FI3KfNj3zDBse6Yd}X6)ud=Anhyh7;Cu@T7_K&$wst) zGRpr_Xx^it)hG85*T_|2YH@k`@~Vi->sQr$0IQmBU{&)OtZKf5Rm~Tys`+YFH6O03 l=G#@(e7>rhFIZLc5vyvxV^z(ktg88%B@2zWf~3$#{{t%u03iSX literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FeatureDetector.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FeatureDetector.class new file mode 100644 index 0000000000000000000000000000000000000000..43a733ddbb636bbcada8a8f75a75f86fb05137b5 GIT binary patch literal 5082 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 GA^!%C0tK`H literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Features2d.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Features2d.class new file mode 100644 index 0000000000000000000000000000000000000000..3e6872628f5d53dbbda440d7a63d673836b9b0e6 GIT binary patch literal 12492 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FlannBasedMatcher.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/FlannBasedMatcher.class new file mode 100644 index 0000000000000000000000000000000000000000..277c54f334eb7738ef5e696e1331a88a858d976f GIT binary patch literal 965 zcmb7?Yikoh6o%hP*1dJLHr0BmZEd|YmtwSq3Mzi^(hoIWz!LCNnCwoPDcjvJ*;MgY zDF_V;{s4cJc+O^ND+RF(oH=u5<~i@2GrxX+{|R6NYd$=zIJo7bgcUZo+1z1s*CVsa zUe!TOz<#0=ojnz>s@t_TP0!Ov2~4+iqTY=5yUOgyZcLF%D-C7bmPYfs2wGWR4+Uzi z)a*9Xfl9)IW>3j%WYlmyYHr0cNuJ4}ieAes>?`w_638er0%BWWs?+J2bpKsuIvs&E z5^x4ixyo|w&`>&(*QlQ5vTan>ma%}_(}|4rXCnA7KZRNd~8M>tk4dN#TDC%)`OL35Hw9@krj4g7J_}GQ%6=+!*$&`mu-!q(+d& z5yYY6SMxVnxJE)sc||r0h+F>#XAJkaCKJX3VyquAxSo@`T&KhqrJol*ca&b|b5rw~ Nx=FhNH_4W;{0HmWvseHC literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/GFTTDetector.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/GFTTDetector.class new file mode 100644 index 0000000000000000000000000000000000000000..59ebb97565dbea5cfc9128eb0af006f5dda16437 GIT binary patch literal 4655 zcmbVP`)?H275>KFw+BDgYZn^|d3(JC42D2LC=IX>48|eFC5`)V#_O>eSntAk?2xog z^J>%PowRwhP19%cLlvp5R4J=e>W@{GpQHW(RsVphe?ZjloEgu~j#;saET41d+;hM4 z-Fwfy_w1*ifAV(#`|)88JMcmpKhB{GFNpYwh!;h?B;sWeuZVb6#A_m67x9LOH%0t3 zOYt*ly(Qvp5$}k2SH#an{6fSpMZ72CS0dgQ@oN#k5%F6Qzf0ry22w|yn&TZckSLxR zzeshWzGxfhn|5mU%-YI=?ao>YRa)}X^@>%!Xt|Dj2gZbV$yqgU$8_CYo~U27YnAnh zCEN1WTzhqLapJ*Kv$JK}vnyWRy`R|D;-YK7IAfq^etyZVublVX`FR6ljNKVTs^Su! zbaoe~%H^r4xpIdCb1T;M6Lq&{yX0$388EM{Syjh-V%lD}t2C8KYQ?FQomJ1ORTv?= zP_0+4TyUOb+gx_7MaQan{^!8js(spWU1xP;b_AH?{}nE%YkLKt?JEKE8NurM_#tp zt%<5tTb{V!xlV1FX_~*0ae#y4Ti#t9=cXsvbJhSqm_iccTr`XNXn43K(@a{9H&ct_ zn2kElx_&A+JIuJ%7Ow=CgQs(V);NnqaZb9r*Cpu^bRd~Tu`IS;ew~Y=_V5%mV`z5^ zS^Bq2Ll=ZWX|tpm!HbaPM-7)`#zqi zz#cVE(!)1Lt@}5eTQLr7IL}3$?=g^8h^X-(Pofy3wnGMzv_(z#%34iDE%)gJNxYx? z6iFAE*pS>)H^`Vly0&hMc*~8-{7A9$?8Y}!L~tW1B0Z8^(RCM_WJH)I8^f6?I=s1y z>dI|vaZMJ_Xu1rtV>2)IYR074tHfx~bm^xdk}d+Rre=zWNpdhwHnnJ1dCzm}FVxrE zihatFCu1Ob|L>7?GqDr57`W}`&xMI^;oByP7&q}9%$s-&9KC>wiAC5ZmauH%5*!nk zam7RxD<*2FoA>}@Ca&U|2^Xs-Jgk{m7xB1=>v+P%lOn#0@0s{Mo-*+RJZ<6``FvJd z&xv?mXzsi*&ENn{axVv)$uN7#tv~KRmD!r*IqUXA3zu;#AKD#!{eej&Wb!a*0}i8` ze?Y3V^J5r)VXF(b$v69fKHN?@Oq*Elz@606x(j3M&&sL(Lz_qx;YN zh(hHR%2e2_0?-*H>m zdt|oxfJ*~uVUiw6$C>Qm*6md$M|HOOkV!sdk`I~WLnirvNna2@t?};**CNZ+X|Baq zhUX?F4`)ZRaRx^?hofI;Eo22`hYFB=X|6?9xg2i07TGpyaguBC;1^m8pGoUl+#keW zB1g%de%*@(auPi?l8Udx47T9BMn9k#*dOjhf4CF<;ZF1iJFz8L|CG-8NDy<52(mK0 zjM+esL`;q(;}IX>IeJthmUt-X9Y*X8BlZRndxAJgjq{Zt&N*6TWY6eW117`F?2ZR{ zi~|-l$SriHYZ#;_2qHfaM^lwA|{(6;oueZfJpm-;7DuO4Aob&nRPmld6hW8%v-fxR1 z_o2Zv&<1aCGu|JG_t8!8PPfA=Y{ug~flqFNH-$5i`D&8*^Bvl}e*YleKilH%*7=@o zhc~<#?=#~4>n3>9I2Z6c#-tX0S>d;>fiE@RO@Dj;O}PI=;IiS{nbiX>+cATO+Q4m% z!~K_V|7!zxp0}mIJ`JyMJ09SXINayR@W{wB<)5%9JGpWN?n2wij>g~& zlW@Il;AZ)*3EbD)vfCDi8ztQKHgNKw3*5!FaNFZ>MZ%TZz&)aH34DY1WtWyi2dU*c z$@rP~X)w=2tSAU}NVvCc%;4G;&fe@_NZhwWyi}qiWWSs#!LwX62}w#iMH0 zkE&Ths%90bnl+?qmXWGiNvdWsshahqYL=9$SyifLVX2z6rD~R!s##&GW|66yb*5^T NnqUJzr0l|v{tqy8``?l*6mU;q8_XCgX8 zUxlcZuKVdmh^pv1iTTiHj_8hj4`FA3z`R1$?4U_ z771=*-PvfoZzwu3$;K*)>V&axpm*Zr*yw0HI>C02M84yCMmKsSk|TrdQ&4@`q$W{# zSkGvqg@qX{H>u8~VQCo7&Z_AtHK+5~GRnrho|kCTa5gvBnO)Q}vrC;RO*INRE#H;w z9O|8p9s{PDOy;nKL5ZppiBvATFmB`$35nVe^Z%FnW^;f;_??mI=~z4-uizihE*n}V zsU;C^S|Wd8F{jVX8xjSLd2pJ~rga*wXO=-Rx@**r;VJRnL`O1)-qOOan#PYC(@3LhhRIioOA_)$x`0o(U0uoPlR=58B;jm zb?_fG>tYw9WI}0b^PuZoCr9Gq)N;vCIZT%b$w&`QbRCRkph{NM-i}f7Kn%Y*i6;ei z2Yorx&v+qN?HvYEdPYs_SCKhvfoG$aXSGE`$D8V>FLBPy1DrU3BWNC=cst&MWi#IF zfN6GGyTC$NoyJ2ri)?h-4ol>P&1pKquks2@x8R1LoL)z=yP^nDIGpKL_R;(xn&v7uznCCH9%u!`Fc_V|O&^4HH@`7Cy zxdHaoxFw^&<??@a-kjD@+Gyj#+Od$bheP2)nYndfI+^^_H(Wjx{r2C)Z%{W zDU_fm73!n|3aK=s&@3et(kP|S9L+1F(*=c|qO?M{X}>}Xlu;;4iwa$2k)ymq1{D-q zVsVMZWxAr!ReD;XXZYz^7SGZ13cbL#7nx7n+I(W>ecXk*G?prjJY+AKH+wLn8v2qp zHgkct;p5Ya4}(n2w23z3^Rk6MAJm5NR>yc7#@ij^9T@L)jCavqU?59ChydXzdGJf* z>u9@6()R+hoyV9b3R4H&dBNOF<9M}5t{5)^-eiFQyO?GkVU<`Ogp zhhfKJI)W!=-bmeazwmCP2e5zMV~Y7L|*b@xiO!q*5dw z6Y(~C%ZcozS|ox~)MGBNiPYOf>TM$RHj#RZNUas#E5biyh1WpQ3(PQwFOr{w%gu6m z@FS#PhaCK{>23!P+rh(j@URtJu|mosWRDf{9ITud1tE(RK*Z5~7qqYBAUz^3c?oCyvXHVpAcab)h!QsEJfaGz3>n8K)O}plyw85ce&(UP9cp z2#v-?X!I^ZqkRz?9gNUuVuVHuBQ&}gq0z_)jb27*v@=4ZqY)ZSjnL?8ghp#4G`bt1 Z(clP;9!F@jIYOh;0b7Y)f~=xz{{io1iK_qr literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/MSER.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/MSER.class new file mode 100644 index 0000000000000000000000000000000000000000..a7fb6ca1b5aebbb9a4fbf32f1ef005592e760cb0 GIT binary patch literal 4882 zcma)9`&V3775*;FFb^(FU^0P$7?L(^2LhobY0^TPn&x4k5F*5w#K(AHF2jw(OnT=+ zNwsQQU-i{it?ydvTie=JqZ!Rw{^+Cr0WSXlmw$lEUtNCt+%uQU1e_9b&bj;S^X>1P zv-dumxBvTxKLR*}-zKpa&&TjW5-oUMny*UpHEF&s&5P1}Lz-_&^DSwY?RhdlK3fpCbFN4!Y`!xr8KWf^O`iT$M7oy zZO5Fl;~h5;$xRJjWOuSsunnZ9ow9vyb!EYJFIWpDO1h^ji&p8Pu8tK(XXa1OO%T&66kG$wl!5kqe#xz@ocG*(-oOBD{{N+I zi!R}4{+`_ArwmX? z<$|+jyH&@#t_0Mw*D9q|Un`}S=e=d_Z@E$`$cALiiscp^qNMV6p=jq9N~>O4W- zZLaNIv`Pl<4mQw)|6O&(CVKm|UK6!DeYGZ9cPOnUO8Z2qiOyc?G*KDIHPhIWYXZ?( zw7paIlC@g$&RHuw=AB$|)mpPgOIEo!I`6qoxk%6J-b!e4@p-FS9h)tec*(7~!7IFf z{*NnE{9uEvV_V~&uQ+9I;y6hr=AB|$r2qrgJ35vokXsuJ4lQ04 zUr@Iep=Zf4>I9JFOmKZM2E4vV5!Wv=#_;vUCdDDQh~%yama#;?SaQl%Nrf~0g2LqK z^+o%dq=ae=Z&1O{Qu%ugn0~maJjHxhpSh2jBA6KrO^gw(J`t85;z4S8SbUg}zBnws z-#|=B!@?tU3K527M|n7ug+&iY>fa=JP{jl}?${h8GDOBlYk5kPZZ@jVMs~P zsLQF#7*!H~`dZY9$)|q_@|oHcSt5z$rud`Iy?)gqj^?J+ZOgrd;Wlnpv^vALs+XyY zZKIPghDmY0vg$6{XB>Iu67pmnlnt8LhdT`Pg(9}$Wi#R6s)->SF!528Ost@6qJnEC z9)oM53eUtU)=WH(braX|go%&g<0jt3pou5(2@{{hr%XJBr%gN~&8P9Sfpo}XJx2(c zB@>^)XJdHF#INxi6E{TiIegy4v(kJ)nlIu@CcZ4Z2SO+z-e>&Bd5o`JdgB@|EW4G* z{bxSG(B%U-yKt4MB!nS3tU7wKQs(36sU+0L1efBGRC{2E6q{{d}712&_Ajw7Bz@Dk? zNhnHiv??p_)>dXHl~8N%>#uM4?XW)mqtnfjzo6UV?Ayk~2?u4DbLk)oeX{p9x?@m|;# z@2tX`#MIV!-M8btM7)=`#gk-e;L+{y(zoNiO1#&b;7xCbxAS(q-xKdv6TBIm;~B}L z_6D^jutshnbNMEAjYmetqjEO~ZlEU{ktWKfhTd#sxQ1*t@;mg&+t;ezzCN}1PxO;N zGxYw#*YdCQ!?)=*e^V6v9552Rha;H9c^(iAGEnD8LPqnrpu%E5-pAPpk@n#tM^U_= z^Zr99`j@DGnUWR;oq-SVf$(4E6I?Aw2_eon>fd;reINKcclnRdnIr;234BOBfCfIi zE!^%#xPKDvU)#XtHQYzGg?m>c+`kF;pKahQ4Y$A)u=Qs5G{6}w&5hP=;0nymEQ(>X z67U`12z$AYxF3)Mjc5tPjHE*I?;);_uE;eJu3Y9U>rX~`QmRkYvj9~+Yf#m*3{^cV zQPr~;RXyub)w3j3J*!gHvnEwN%Tm>|GF3f`Q`NIRRXyua)wB9kJqu9Pvj$Z?%TU#` O5+z#$Ut!yV=l%yMv}LFO literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/ORB.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/ORB.class new file mode 100644 index 0000000000000000000000000000000000000000..d07cf8a7ba5fea8e0f511a216d36430bfac5c158 GIT binary patch literal 5495 zcmai2`*&Pb72Y?QcW&Mt;xzPK+9U-6eZQ!rZ9>zgNzH^(5RJE!n`GL_Ogb}3TeKn| z2>3t*d{@M`0zwt-KouXqxb%0Ie}KzBz~%4i_nmv@=FXko$*h&V@7ZUcZ-4ikea^W% zfBWwTABxB>`Ex?H%JryxFCk5Go#J(h?^C=%@dJtqlUB|E96UMD_=fq<(BMbywgTQ%o9VClcVYB^s$M_VcNuy#K=&3YQYh$Q9p9P2Bu|jcf zu&`+7Gs}aswpCs#+NGT{gA1j6=+l_?h(e#DSyK4&l6IWTUuXXfmwdC;6M&H3n##v&+ZrS!*d*9=8@S+iNi3 zg0*Z7=B)hOV7gq)=I4-AUAHrGaN4`-&3*mHvG(}uK-X~XqN5X=haDre3))JPCm{%X z+PX5LGaKmw!??;8Jq zH5$FPec0Bpc}@Fy=+!tKFa)m&^2`ZO67uzuJgjb$hjjH!E?s$)BICNyQuCAv^0y(O63g z7C$MNyrj^qA;tXmO%j5tBy^HfC!yjCUzcxW#?INi0TSuLQZZwXWO*0GaIxIWwJ_x# zxz~_X;PqolUJ9n{m3^ix$|X~ZQZl71OQtN#WmB%mRa2gjPn+@?xn{~|_goWF0P@!e!?^j_0j%cG;dde?d0kt6(ec_hw1SU9t`L z{C2dOqz~fibDI zTkc$!3?;+KNHUs?RU}lA@WFU0z5>WEB9YDDwN-)6Is@@8+h7NT9FoH-P)Z(vjovA| z_cryWDfuX#Ldy0ap2F&B2u~69bQDif^>hqRF+^#W<9PG9qC2eVzJ{JSyn4KJD-t2u zSSscxyF=Ds(m9!rJHuSEJucZEmu!zqw#OygBUQ3JQYG6X4%s!DA}Q^c5l!(0yhaQW zlPeS}5+%WCD(WY=Te`5CBsl2|atS6~f=QQP(j}O52_{{FNlmaz(~2ru4{2K0FwdOd z?kcT{V3orMBdLg=)C1B1c#=Bd3~@0|gQ};tX(!bh<=3T_T+>kxosdO@|Mw@S{4sjVxsLwKIH05)2+n zh5W%M#FUSz;JY1nH+Z`nyxk4nu7jI8WJrZPsY9NFm8owcWJOvKar_>CymQ!2kEwVA zj;|ZfbmN&i9=9SlN3)7@N=G>jD-V^HwOcA;BFO2x{Xr}Y$fzJ29alFwaynV3pq{GU$0q)d*AFhPV zTT*a5yP_I|h1IxBXb_jwz!&@Ve{q-UQy;tKdBn zgtw+1?|tCiS_SW15MHt#?=Qgn>neDU2I1XNkN0=r{bLop$Aa*B>hb;wynn5N_wgXS zkJRJ+8+iX&1@G}7yi`5j|0ITgB=A72ZZdB^JNfbn`J~RjA#8ExU!3{ZTamRlYSYhX z1)TR=Bkq1{#MN=e^qUTZ>-EF+0&bm$ofnRmI^jMQ2zRF+t{-qa0^s;9K{zWAZk-=) zAK(rIz@67{nLxPpez;-4Jrn@PuOG6T3546=hf4$Q;Q%;(Z4l0uSxA094&jF2Nu^eH zdqp<-;Vi&8=e(0B-laGs&OtR7$ZnG#t^l}80qpoyM0WFmaGU*b*8ulq09;nVh2(-< zMDp@w_d@foh&jjT7C+jv5;dMvXwGMDOlNTpV?r3YU?fR0ZQKu-4QblQ0D@vnaQ5xln(x_OJM$w`)>K3I@x+sn6MQIc;N~4BR8fA>qsAQBz tF{3o<8KqIuD2=K{X%sd}qqb2R<&Dy)aFj-oqcrLqytN_UfoziR{vSw$aF+l8 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Params.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/features2d/Params.class new file mode 100644 index 0000000000000000000000000000000000000000..b1ad691d4b5031abf482dd3c472d77615f8ed5aa GIT binary patch literal 6268 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 JcizLR{{vmgExZ5# literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/CLAHE.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/CLAHE.class new file mode 100644 index 0000000000000000000000000000000000000000..b8bb4f27a156f8bfb01b04a91d6732eeb0ba0d7b GIT binary patch literal 1779 zcmaKs`*Pbv6vn@GT-#Db>?AZafnK0MoTRM_fl`uENONK}KFLgeVUf4x$zfggWhgLJUfyO}{GG9fL+=-XYvnh#-nYYzQ=O_-Q=`BUICpBC z(awmcOgp~kxlXue2W`7c2|SittRHgA*CkSpT)9@$FQs%+nTky( zRmE5>Y&I<>CT;6zuH$-c$l93u{`0_bcPWJn{eZ3?*oU@-SPw<9iFY@TG-y%vspLZ3|6YvG9W$zQP>~U#qhg(!fox>jyII^#$fs zP8H7{bSsTs;J=6(#2DD2Jaiwn4^%myYGre23f~i>FJvd|v6MYmc6%Y-XE)BUzkw1v zlu|)KT&-h@e?V^K(hi@&KjxeE8`V1 zPc9x|>US=Zs9BA&G}h1naDD+7W5B%_F!Ku8Co3;;<`}sn=6jNnSH? zUPVSP;WBZ8YCnjvcj;C7%m`ViF8wx6EaI)8fU60f8S@I7cSZ9)#78mjG1V(xN%2-+ z!nn%cG0aKjBI+$>xvr^~qwmMnE8$}-k*02<%vpx>Wvs;fn|citqI}P$xx2`tnkZ!< z<_fG*MRcc|ETziPP>iKxSZPRulA8(1#yB|x*APj*j!KNHQnD)izmngg?CE0^)6_O4 zcM{anm|DUOeKA>lLZKP`@KQocY1#pW{&b4aPnk)UnXL&^bsZm(sd`RZ_MEnCJ8ju{ S+Op-eW!G`Hz&9K-*!%~6r8+DC literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Imgproc.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Imgproc.class new file mode 100644 index 0000000000000000000000000000000000000000..2e4caf2c50350856bcad203eccd22366a9d0fcc9 GIT binary patch literal 97196 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/LineSegmentDetector.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/LineSegmentDetector.class new file mode 100644 index 0000000000000000000000000000000000000000..8aecf06ebd417c389408339a495f60cb0685f8c9 GIT binary patch literal 2538 zcmcIme@_%w6g?02w^Kp7P^YD<+tQc6Z1yLeoE* z^!xOWHX(6ilYW4HsK#^O4C6YGC^5}u?wh&qy>rgH@7|mJ_rDka0GPs)9Qv`8#+@8` zu#}~_o5ekp#eAE^GVaR6eK9Ly9*9{L^PQN7V%Eg0r}4c)YSw8x{+vRhSRUKpFz?oE zg}!B{ZLd6QZQ0(swbi6&VA-u&%?-LavyH^zkkE{@~!v)v)QgK>VomeT) z_BX6113~=xca|{DZDRgN=>U>FReE`cR%P@ z*|z07d-j8^rwaM_ZYf<>-vSTau$_9tCrW$`s|F+Nl>KbHzyK0*UT`75ZlaezAT@sO zIn-Z#>p@<=IS=$f;QKH>4gr3LL118H`~ZoG10?yRE*&5}$;V94bdZ@&4krJIfTjC`5C#53=Ue~~ z=^UZ|oF*K>c^v`5;}bq|;t_nxC&4wn_zV}2)N(F{ay;bdA^LH0I>=5Z1`}~57Z{aM zt>k*JH&P-R10}9Iye=VG0Xd%>k5P!$uJ`s zW+cOmWSF50A-^1w|BMVT3CPFEJ22wBi%jV|ns+?d6Y=IF-h9NH4|#>H6tX>J3Q2PG zce8cyUYu!#rLn4+&Ijuwrv8YjKV(w4@+SP#ar`I5|LKkRSM^0EaE)ay=ctho+ld&{&(#-V8ex^sZG(EDb>5+|1kL+!FWP2lu K!UAm%7GDB!nDA2o literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Moments.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Moments.class new file mode 100644 index 0000000000000000000000000000000000000000..18aa82eb94fa91005ef8165a853759e204baf6bf GIT binary patch literal 7394 zcmcgwX_OSz6~5J5RrmDl!%)ni!6Y~{%`zLPgUCU4kwt?cQB0s|nxUDQ9-J9aqA{yk zjaii#mBcMzqCuiPARvaQsJMVT5EVfb5jBba$vK|HeBXQ3Go0e}ubh+NaNk$=z3=N+ z_uaa$UhVnMww)r=}(kS0f8 zKg|}JtuznOY@^vuvxDYgnw>O{(ENpF7tLR39<}AMn4BgX9eJGXZki_?dD4-m9NFW@ z(~dmj$g_?-=g3}1_BryrBQH4eq9ZRk^0FhZIP$6^`yDyp$U#T`=E!S~yza;wjvS)c zn=v^oMRI+nnvM0l9&l&1lk?FN$ z_?+&Z_Qvj2>1=9EW2UQpRZn-Sac*~4I@{NKE^f1)%HjG&)6_4lNp^x0Sj6!3ru#65 z1%1g>$K2#9rK*Cs+!Cj+dqH1MCfjaFRei&pmB}^9#?EB6y-|CiTb%0dTGg5EOM~Bs zDF#wk(X6$^&ScjtR*MiP>b;_;PhSRl5raT4B4D?tJs+lrspxC2me+%rX~d=QdIx-5 z5bfidc;g0o8EEZetR3}BYJoh+RrMf+JV>Sd*ueqR%8$*9>D5+Vz2Y7m5YsE~dAa)e zv3W6_1vbL3;}WV@Yoi@12)c{6q>u`NLY%xu4|o5ku0S7ngVB7|pv_ zpV9C&H=Tz^e)I^GApqrS$-A2AQhhD?zSewSOTMp}eQHoEfJ03zr5?{Bl}Ak+r@NI1 zev0KP->qbnuPLv?Rn*t*C1dJOtv9EZAa4OsiH76xIfXIUT{8GnbCZ25Q1_Bc zdr@n_!or4Fp5zQ{UsJG=xMDHmfGj4RYLR!UMe3;**{510plXqWszn;A7MZA8B%^AP zfT~3fsupReT4bVXk&LQEKB^Wesaj;EYLS?#MQ*AV>8V;|sA`dMBqh=;Rnj6gcpn)dkFQYM$7CBqa!M{n; zhTu++C19tl%;5i7;Z};20W+`LmpO$LAMoR*rN(D@LGkT=Uk?;21uzw41c*o zT!2ayj+73EoQGiWw@MQw1Akkjc<|O@xJALR5=?ptP+Sl9rpw4K^Q2~AB*(^7WJmQ& z$)HM!x{b*Q(D|716s1(HM-SY1OwzI(S{AF6)(pG~9yG1-qjt;o#HgL?B|0kDyg@=G zT)0s?LwCUu@*F`p!gPc^M+lAx9TCqFhQp@A_8bv796B7&VZ%`dPHa?Jp5)L47F>B+ zlrHe#$`fOBMU^Y+X{jXHAXg{UWMP6tA(}8vgvO?EXreSRnj#vkNKVRV%4sTSDru@{ zhR{^g45e{thSAi})Y1%R_=74xZ<3L~(-Hm|$jh0ynuTn<0BAO9`-PIhW^oPnil1U{ zxC2{54m-mR>KAj$$u3j;-KBq`=2`y#9s9>)*22 z3dj=6mZTMzrB=D5tZG?i)k@kLAf%osoFrw)CN+X zK%Y}rC6nB6M;%EWsg8C$$gb_$DX`&+*10yjLhNe5IP_PtBi7*B4S7zT8)ZioJBk`8 z80}!EVxbhcMYxNtGP$kTEy9f3O5IYoxT8%?0JwvN0>jG`97v|= z3ZP@l)JL43B;=h->_@v7}E{>rBEf9{>`S7=cXyC#T_~ zYQ}n>40|)SWQ~y=^phVmlCLz9Lw@q(M)Flga@bGaZ6vQXk|Tcd6GrmajAYwSe$q(3 z+DLZ%R7P|1TR*AaE_8$6!q_lMUMTOUgz`S($Yc;_(-Z^uTRpkL?p0y;d+@p$ty zvrfpb^F{$3o&~A%bF)s^uXCt?4o{NQ`Gr|0;@5ezfDX^0)cK`Z$M)+SE}+9xEOmZm z)^YqgM+)fh3{0IH%{o!P&RYd^c!H+RO=g{#U*~869iG3bv(BtjzpW{!_QaLS#Q=E;@5ewH*1ho9f5bGuo`_3Qk-fDS+3QRfb`&M?2uKMLsZ^B;BYH0#v(b^cjEho29r obC+4C*01wX0UdsRq|V)D9d(pC`M~gT0Udt6q|Wcv0b|2|0YIu`_5c6? literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Subdiv2D.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/imgproc/Subdiv2D.class new file mode 100644 index 0000000000000000000000000000000000000000..d270ebfe838090e17deef518c831c6d03c47e7fa GIT binary patch literal 6483 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/DTrees.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/DTrees.class new file mode 100644 index 0000000000000000000000000000000000000000..f994d7231f3e180f80c2903f05d033cd11b8da03 GIT binary patch literal 4040 zcmai$`E%P;5XV=E8y`_{j;3h|J)l4xr!+mFr8Ll{P6A2eCd5v9a2Ul_9Ti6kvYZ~A zrQBC3_f-l%a}3OMriRY&D+9kX`~eJq0K@OVcc0{1mM#2)cfG6kK6<-v_1^ya&yPP5 z(JuNjLL2FPkY0#T3+ord&@Zv^a)bhOp8vhV;#C%}v3Q-u8!X;r@fM2-NmmBPGYYHT~sfVHRQLmfh9*{Lv#lp(h)-r0=S1^>EM8mPElgf%RR8aK%P|7kjJ-@HsQ?n8` zC3He7sLP7A$XTibNfgqN)5FRV))H^rNu9QxDw(E{$1G%!A+u`UREtH;&_}Y_lBs0R2*@}f_(d=xF+Xk;au^Oa zDvdcw<#YmwykTn0X}4XY>N3aK#g?Y0l%?f@nlMVb1y0e$3B)G2oLX0Si#qYdi?dx7 z99te-7`{pwtc^9?WPU?0hBb;W5F4*NZj{47>^MK}!0eg?+O|7^*j-&IXlL!jV@_o3 zbQW1aHj6>JY-h$^XlA?p9iiMqcJ;9bDTSkrOO4Gf4N9QCYN}IqAjSq$ct9U^p+30E zDo`I$45)_354vqnH9&SUr#^=j4oXDE0H;JMUQ`LQYPOZ1aY@1{HkR!kwrjSQy)yFb z0h14of7;<*poKGJQciWqOP-cY(4p?yEax z%8@G53Chc~NSaJ1Sv=07Kua>|WXQD4;t3Weiy~Pvl~}B>IK|>LossD*Jt@;u^t4RR zuy~fmbG*nt*J^Oqr7Xot;uOQj+*3W_(u<~X%Dx`Lx?*W7>h!`%x*3Rm6VJn(Ift_gR2~(+MlHuST&33UV6;#b)gw@{z=j2Y@723#w*#1P z0A1H8a4dd>R+XvkDg~zot02C|3DHIoVRc zABuZ%J1K}D7{_Z13J8Z8rhPQ*K$7rslG@{gWr_fk-0H;~z=VSWv&kMx_tJfsf=RR= z|9DlrzU`2VKH#7a!se(V@iMi8Tp#ZQh3Jqg-iSjEIXv7qG=g{A@m6^vh4OI!*Pz=Q zVdw7%c*kmZ_P*M@1UM3n`tdsIc`A7MCcH5}-VODE-U*s)%VH?`PnCapA((kCiaZh=WR^2Yqq9UfgfM{oVvO z>x*0C#r*-?pG|NnUtFIT_ZM(~H^HT8&dJ@Va|FtqyTL28woL21#DA$>l3YajdirFf zk54~|=IKbI-Pl~F8$CFwgF;f&g{$2S`{Ou@-j9@5Su_Ztwr%0`xFFg8Jo~aW^#I93lHM+Tf+_r=WB|(CkYs1Gij++YF)6WC)EuLuj-bLZjOd8V!fg=sAQ&+aWYM524X~2#x+jXtW?gqYDul mjfl|bMTAB>A~ZS@q0y8GjlM)^v?fBMJHe_YItST8&;JJ_)V3%9 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/EM.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/EM.class new file mode 100644 index 0000000000000000000000000000000000000000..cff57fcefc730dd6b89461f604798ba1f65e3c30 GIT binary patch literal 7453 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 ZDyW?A3M%JYg39@vz}Xx4Jku(C;Xk51r-}do literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/KNearest.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/KNearest.class new file mode 100644 index 0000000000000000000000000000000000000000..4d0a0b89c80ec0a1c0e1d7759035919867d5d398 GIT binary patch literal 2831 zcmbtWZBrXn6n+*q2?>jov_J`1)cO)=OWIOfEVPxEAcVITD7GlZC0Sr0FSuE-tv|r& z4{-bej^7-|j-6?&GyVX7l;d;mE+GUWI>K-8T122qOO9M(ek zB7z32iAan1GE8C0*LoNk?<*@qOT>nVO%YonY!TZcc0}Yv zjwdx}(;8aFi-nSF7Tgsxw`Vnyh^8SpGqJpwOv=R4BHaJS=%_npy9dpp*({h#?_oX(?T(9!u$n$IE*U_5k@l|naV!_Ou z{mhHZiAeHE#@cml<|u?+8hD2zeN|E8$!e=9zpTi4X7yXDsxQ;wcq%oWN~L70N7k+p z*IPTbbe-E(OR^HJ&CfwFxo=e|Qo;Nr$#=9iO)?pXr&Oj|s&b?p{Vd6MTTPyPKb5Lr z*2-COO(ILhJtt#L+HzG}4({K;wz+Q_=thr*j+3vbfk}K~;9b0D;454-Foo$590MuL z7?{PJfq5(#xQ_=07DX(HSjIyGD@d%F%tV)>9qhXd@)16~S;W;=fWD+^Eu$fri za*AJjZ6#bVU3=eJSl^~amG8mL#M|s|=cHGm3+?CtL#WYtj=QSHG4w!}t ze}Q0s?<;68l+Ohja~)_!FJ%W&W#%nLk)I&m!9}izB_BS{AW_9C{5u*RUwDPaUpQ#M zAyiaB845P60BDT&@qrI;i`Eh{T!vmoV5a{NKzcVAJH)8MM?gZHiz_}F`q1x#jB!?M zBmFNCEF(11{S!wX4G$%OCS0r9Rm9&_lft`191WLo#m9S&W<~;f1@F>JH1%Ae=+Z?5 zD9Q*A1v`U3*95u4^xjiJrabpb>UuGN1i=Z3tA1j8NhqO;(2MK*($(r9zXHT*-a{hL7suwH(LWAzuCzyxaBg-Z+l;lz88qf;Ws2f4`&5g1TLj=>k-1n!z-Kz`NRtxt7;eI>??qiJB*=)2H z?gim~tqUi2SjQN~nK9{bH>u^qHA(KuI9rSM8xQeoh2}Mr(^pR7S)FRUS`A=a) zy1vrv`bx9$E6v`oG~2(@d;yf^BcL?j0j2pAD9zVEX+8)_^G#qh4WCgq;Pbx$(4p5L literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/LogisticRegression.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/LogisticRegression.class new file mode 100644 index 0000000000000000000000000000000000000000..828bfd1d328da85b8d380a664c0ddeb8f8a1a630 GIT binary patch literal 4242 zcmb7GX>$}+6g{0xW~0d-f`V*P4CQJZHL=kmtCe5UAG820`5piE}-}imr zH%h9Qk}55~T4nhIEPsII53u~Ap8KXV>FLQ-5Gwc1yYIbo*LVB={LlA40N8@BqF9AT zLwGET8sU#e$e)nKlTiflsQh|L$kRfe5%O#Z&k27%3LP)VuNNacsxG}G%a?_`BIH#e zuL*fw$Qwf56!Mmkw}reDA%0T3o}z zzFao%7+L3#k(n}U|K&doK{=M#R7=M&v)U{xO+#I8&uHHs4bkEFzIf7I1b16m%eg{B zAU4!-h^#L+W@>0iSXp!5)WlKK9yN|;C}~dQQby*GVOz3xg#l;W%4=Aa$l2+x+@zUJ zO?ORXx)Qmxm3OSvK{IWe`Mj0Ob`#kc8?$Np5S>XTkJ-721CE_cYFI z#F!ENnN`&g!^f(eV~|(##>8aCWL`t8o2iV$UvR8898CL#Dby`C`WuvxXWrs~?JjbF~m@h{Q#NzUpYNw?D z8@O2>tU#<^wi~(O*G7?Fo80%tU&G2uzq|*!1-xEvd2M91WsQvTiO%vwbl^nFoK*gY z@QH>NdR6|uk{gSCfloGEd@Um3Z3=?&9Avq6j?%2G=GiNo_$24JA_pYaUPlDJj@{u1 z%S!gVQJk@jTM@V7L==h*4GpPcDoLp@C{js#Nw`@dE14AYY$?p(vKpGXQI;RslPHyE zNTgCYo@k3m(pC;jS5#RvamVip_f$e5@uDNS zDLZ8jvi-1yR(9(R(u{OmiVbWR^R;${#B*e(!Rq)F+jN*XrX!7U9ow-(hlS%hZUrC3 zQvV&VCpspO75$&-$YD~)ZLoFZ;pmvcw2s?xLdP9KP71kG$X&Qw$33`L$9?kaej%S@ zwT>@@e2KV@2k@Ydhh*bn@vPlr0$cQmV>rWXxHPV1wi%C(+qv6|U%*I~&wtw7fAqN2 z&Jh*mfOE$rV;G(=PW0ubvTS-Gb24vba#^h8w|f=8ymhz$7h^R)$7{H%!6jU;^{iuD zcX-yFT(9%2Wq-YA-HA?)8q5t5yNI|8wfqkRJC~n@c3SD!C~NKmP1r=bhIw*+MJTau7D(n9FaiyTdF*O(?P}oeE_4$vg59{>h224^coHcfTtH-Rryp)BLUcpi z6x%`yMBI$v3S8-e3{xsWTF|+!fGA;x*ZX05d7)pytSBDERp{XrUP3Q_iB)3X7E*!k zbD?{=7O$e61uP(PrN4U-#<0iVsEZtS@%VA0<^dPa6Gq()3ln6wNnQ7Rw_8YE>`7Nd;O*1VIUerxX(agBQ8^T@}?^Z^-jtFgnx9$uY z*Yoe90-AOP+5=zvpr_ExM=L4XTD(-M#5N>U#tFn2b*o6WVIS+gmUn6y@BJ(*4MRBK zD!!T38z54%S8)N&gKPX+??EG*foPQ%!y6^7%_XhPuGU7Ci~ZCnx~_3`9pF6)TK$Z! z0$K)E`}Le+;XS7G6f38`q^I81qr2!*$p2dMvHGmwZWG-juw=l)O?kCDKzg zj8?;ItHk?&cpuG!cWpJiMU{A`iTB++c!#RtwO8W(NW7os!MhIEyYcH`Zsg@fBs)tA zSbW+SzF!FUs|PMpN=yWYRZG=y1K&`wk@mRBR&Z+zxWEth8{vMh3Rip}H&(UoLOS6ot?9SJT$k`mZZ@>cT8sDndv{DI|?dV_cSL3^gT9Bu)BWt^^l8fDa|! z2`ZtR%Y5ga!x`?^_s1uIE1YPk;;@OMCXN|8o*^cqN1KbGX;=(wNSc|%%S^_ZC!;*5 zQVI+$Wpu=V3qD}zDl!e1-#bN6nHYoS^07PNLO6mFt}uq9KhlKrG#MNAgT={bI@Uil zZo)XsZW*d)=N?1NOr8U3u);VP<%?;Mx^fzk(zg;{MxIPV#lK=LdkL4tE}iMgYY_V@ zeG%z)bWJVeBv1X|E>!8J9bL}lO19BOkD-^W`AJf1J(BTEcc$~e&v1$g-3p*%p@uqL zp+QtBcw>z>ORSN R+r_(%UF;Dt?9;5^;0NaNQuqJ> literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/NormalBayesClassifier.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/NormalBayesClassifier.class new file mode 100644 index 0000000000000000000000000000000000000000..1ccafa3f4226d354e7a8b974fc04ee59f3ff102b GIT binary patch literal 1913 zcmbtUe{b7V6g@9Z;y7^`taJ(4*al-XO}b^HW$V_hgJdhLP0FNJmG~=qP2AR#V@Hl# zU>^#BG-(k?d;mTa;#}LLU7J55k;wPGcYW`<=iMLv`=3Al0Gy1fOD)Hg(REjQ zhxMH>aJ<8{i<)WCa|e!V4|I4WIl6$Wkn@<)ZQUp3M-u{18>TP_?4HvNUj_cYLbGx< zU0px0>unvbO|N{pxWVE(-rzW70p}+=Dj5E87+VzLokXX7=D^j5T-8fH1ZwLsD z^t9`|VWMU#(u?^QKX>gx==k2y03+q%(s%Af25h3N)KiWN6B2u|7K>w-`@Hf57crPU zlV^d>RW|vH()HdeLKxAjD3LwewWTTZJN|LdwKv!j3gwA&a94W7!UwpdaBGUWv2YLf zEfi6*@D-LVtl(=4o48_N%fbUZw6Kat79I;=@qNIZP={@{AA5i9v^95+0{^FYs!dOa z&WZiQ{%cyC@%^u(@EN}pv;5M4gwsMA3Lo+3JmVP``7R!bfuEd(h%C2f~S*W=P%8Fpk2!O`;1my(aA+05(IYN4b z%vSXjK)!Oor!a713}R4sHR5C98sEjYX;Uk=DO77CWC_z=IuBE0)H@N(&Da#z2`j$> zZgMBrilI~7U1Q>6=mxbyBVQfCAabjA9(e^hmhm)U`2;za;Bmz8Ic_C*Z-|~HUb*@f zx!PNpOMLF|ndkNMtC?cvSH6ui7$=~?bU%;q*JICdLCW|7w~0$Me94{gEMtK?Nk$nJ zEV4XBp01*bOvIy>@bJhwL#xtx9wQW1)5Y|87F(=cJ7TdC`;A$Y#w7Nvy6d=fiN z9!t!BDr&w5T!nQ`Vvk^*wqJbX9hQ7IiWT=wE{S!QK52T^RbGY);L4GTR!&v4a-gD> QGZn2ID|#ucQKs78Fgl5ecOTSg=|MrIylGTcgN_%r;rdGI{B2m&*9T z@dr45(x2g|Gcsg!h9AI>a(vF+O|k@&na(-)o}Bxf=ehUn>8pSLehFX^4^14y=UF7M zp2j_senZTCF`Htx#B7WCLd=(9cEs$8`ASS#%-3SRN#lV+w&?`kk-N3`L_w`9q;7gm zFIZME?DhFF-R)M*RT$s!n(pS)#-8i%I(v0Sj&HQ8PQC2-p6sKb5j^$|6{a>?{(iA_ z;5MsA#YVlj?f6dPuJ6@u5YVaBe1(a9H`wfyUeTe1Jx>ComC7T()z}XFN=0FsEQWxk zs=n(4WHW1*N~NKh4X;^t>J(X`$cFPwZ_@SF{$b!AFyy;|4$Tm07|^sm^yf47u)`)* zS2|3nmt4%lSjZqaFFj0)IED$)W>f%3dPkEUm9yQQhzaAFM_$vZd*Ab7SVREtJgd3~ zf!Astrtz&pCcL-GB?{L!$BXa878H_l2eHs)X@}P$iwagxi{MDVP>$7;BhjS2t`&vJ zT7-ndtnM}!Qzbv=V!C9Xs=0Mnp4r@KJ@u>ZswW*d)@`ecPn;vi!dtjv;W#E0P7UZk z$vI)+8m?QI#aRmP*HtDh!o8B;Pd8jOXpsMjOdCQcJ0+R1e0~_%pCrQzR8w zk?D9B=jmnj9#_I)9Pe{wFf)NX1*deOxv0<uVXn>nPRQ_eL%FLYwe}jRuu(!%=ZT|m z0Ut(qD-Fp7(7Q^fGahzUpAiZ2a zy#vDeF}OHA=^>$aX%M}!H|hOAydPtD|3`0OAieQ^dOs2F=NMd^-epbC;J@)Jd_b81 zSECNegpWJXkM;|j;#Z9pe!Q9JEk5E|gF>$=QzjWZ#*{gxJx7`LoMzf{plQ#Urai}+ Y_MB|mbGT{G`KCQb9MKi-(vD#5Ke|>vW&i*H literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/RTrees.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/RTrees.class new file mode 100644 index 0000000000000000000000000000000000000000..2ac392fdedbb50146ca44e2444af2e1672d3a610 GIT binary patch literal 2858 zcmZ`*YjYG;5IvJDyF0^ZSP~u~Jc6h!o5+GFXcAFKKsRi7C8B`1PIf2B;OxvgI|(ll z^_%4nu>1j*U)0hns@;EnSCWSx9{!Sefr$)dpr5}zrX(ha0=fW*oRsM zwt)eWD>~(>EY=L9P?MP>!(AD^l)=rQF48k#!k1Y?hOczmE6+fdO&LO+ChIb6$Z$_| z_hopH!9xw{8OL+Nvl>$Q`C~UIX8oG2VW{kQ_T}~ZvK=g0%PuuL%YM~zZ&-mN>sXlz z*PNz?-DN*mE&2`Ht8NtQZt?n3VB5`UqFJ?Cph270u)R`Q3Hd#NQ}Mh7;Q9N->PYt$(Qe1 z8&=V^yw&1j7&zYQbhoCBNfITy;<$Fh3fClAT|gSL9#ebSs*_8hN2I>EL(IpL9n@z7 zC$yP<4dd-cQKwB>FfRwY($QfsO4M1)t**PwPDi>2^T%$nYW#AvI#&&y4KbPZ*S$~! zcT3#mmz7HSq0K9BJl_>i3e;0sl8csUTJ?r2u9?7YuDc;;+g4m_l`_}tj+)9Vx4{i5 z_9zYdkx%7s3H}gGl1J8XxSL|qU|PIbL(g)ZhpZ8gNriFYe${S-j_)-yc*M%ek&~CR zaw2*=yyDsDs)>fqRHWrz$?|BAdUs!uEtiwL&plkkKq``?E%4j;nr_c&7~@{=v^;0Y zk`B|Ty`;}KSy4ldClwW4COz9lw|sFNI**JNT0`!$U8YBfAnLjC;poA??>Ok6_Q!~!mxconaixPq%D zuHm|d{hdBZdL|aJBrzYG_!u`#e1cC++{7&txAB>YJNVqhH<&WfNb5mA3wW{-DoKc zKK}Ip$CM-n8V+zZg+cxT>B6B+Xn%1wfP=E;K9Iv9j=QN7%{WoyCyiHdg!{VWC&oEN zRI$>ZVc_P$O$`3YMG|U6L756xR{-GrbsUWWN-;q08B#Y3PqD3q^d>Upi7g=cBLuP= zB9kp%xtP}wck?(#I2{E{#IR?m)r40I*%tImg-*ChWN`ciw~PXjW9pd18!^ZNwUVUm zg^3mn!YoX7!c5U&M!}3nrUWh0g-$rZnXnRmQU`%P8AG4vT25sYTG&qH?(@zfiwlYK z8ZmM<#$$Q$CjTpl>X}HR8K?23O}yLcpIl<*e#l>GD957V(zFtIMqHMN<{5?e4&LpJx1$@cPCUOa-ju?dX3C>u-(eL~WR#PeGw~F;Nqz@f z*tvD1Bbtw}1CJGKA##Xm%3Xg?-5!~p_*~5>|!!@^V`$H-cICS zFpOUl$RjU^j*zHaffPQ(N5qp(ahg)2%tnuMv=i-jmf#PC7CrK8j8>vgik|bDA)S@4 w-jL?1BwMSJ?5;|(gDT1XsU%ydlI)^NvXLsuUaBPfr;==;jG|$g;{dAv1HDBZ{Qv*} literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/SVM.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/SVM.class new file mode 100644 index 0000000000000000000000000000000000000000..2f416698d243a92c50ebd1f0303352a45fe6b656 GIT binary patch literal 8547 zcmds633yyp6+Sna?ajP4O`2&M8d^dzO&dx=+nE5ZNSdVWlx#L>u@o9#Cok!=lbLar zQYs26B8oducM(KIMQH))ND&bP6%j>66ajHZL}i-WX^9`n<$f>go!aSi&{Y&;Pp4?V`I->`U+#czZ36g|zU-?8{T zi$D13kF5U`q$>KehDK=q6#a$s{>tJR7Jp;$EQ`Ohc#g&M5Q10;78NWiS$J4@S@>A^ zSp-;UEP^aTEOZvLSj=Wo#bOSNY8EvbRf)MQYFUIiZyt*}7W4h0UXZtQcyLRnAQ2NZ zt23R-<&9K+i;*mtl^C88LB77tT!SrBkk;SVJ>1#TF*wK>qk{b11A{2v#OByUZE5X< z)wy|asK2-JdHlfYiS>1N$TAY-8R+lX%B_T;%1vw6aT0^!AB?TY_S&3Sm8)7Rs z?E%$T-%z(~?gd|P_O9>f?d?E%Ku|^BX0F}ey$&69b+6yl-HpVWL@JR#6$Q;3mu}(m z^az}&>Pe)`zQXtpGdpDLNFt}ECmlDETa0XiZ9CJG-n%k4kj%Wg65&CX&nH9n5DFsj=1W?ycbsj3$z1#>it4)s(iu6vCGwGdtdyP2^3?nxJE* zb}h%sSp(iIbhrwop>`oF#4%%x{yN9Bz1Owz;x z@gX~B80H*hW5)Qn!Sj#2jHP|4f|bzXX>)YcN(V>G zv8-uYMqr15NsXImB+%!b{|AG|V|VTUjvq|-(*HWT%xd3%iWPTm{EIv1J~sSw`e3Nm z7X`&FPIxgbxPb>pCoa#*=A~WOtoRFX2KIFu?mBrz#1pwhI<>BliszxZi|J22=h>$2 zCW)HB*?1b9)jad-+`9+lNmKtHmSB3k9+2*w;2NOn@Id!XXKAK~E zxOzy|;2p#H+*qzqSqVm8fm7Va04MlGG`Vv)hkM25;f=>jP1eS;lZ-GuatBp&hGXw= zC6vk6a*)d==!Rfen}w@zks`xIR?l{8xo3EV+Z2(K6uC3^I$?KXk_zuT#dE|=n*5*) z4yFs)xVa9mK@2(Gh9~d?Qm4&?ol;%$Fvrq%!JG>+~7=tWMXlIKbi{UGEnS zI&Bw6>vRL%h!hR$^f|f-&tf-6Y`lIM+l zFFu5Dbk3c8jt}k3rq8jyhP0HCPwX-KckC)@t3D3+)1l-;N0s8S?QPyBr*#f5)d{=~ z`O)ObTPNSRv9~i_NZ~>1H#50JGM%DEd=;<4=UxrfQ-q@UPHcx&K_|gJ*dyaP`Q?Nm@2j|JVccTU{uf~R9Hgk5>}G{_=2Zbl3@eH zY=G*+)Xq3k6L0AhP*vH^eMG6)vRON&o z+6Ej!8G4nC=a}g#d#2|cqUuuEi!pX@allTU>8ym!QQn4qn8Gv*owoDhX}OVV8kR$Z zJ@ww3Xl}iag`Y)$g~lQX5e^lpHmZm9YthtNuhuf#kA?PL+4+SQtXlrzL#($ReusB$!-9E~VPBg)Z;ax_8{ zjz(z0(FjdA8o|=A9F5R~qY<(kU17TylJ33UcJFqaJ0ZB&_Cnn&(!6Le9CUkj4K1fn zNzXDCp7N|sdDf;pYg3-JDbL!JXKl)}Hsx8H@~qAFY`N`EQ2O%*+n*a~j-1q%7vN8k z>Y`d$bGveon(@@&Z9i&3DOXyQD=o^E7UfEda-~JN(xO~xQLePut~A>YXwrcTZ3nKV z*>Zh09oc~*&5s7c0XO%XX))a*xu0dBDDF*)dz0ecq_{UJ?oEn&lj7cFb6;#T4oJpt zv>9KHrObP)u`J^v)kpndznknGv=9$39_URLfFj$d$Tljnjf!leBHO6QHriwt+7$hg z;zc&ai!hOV5Hw6ju}DWnePN%Q-95O?@0IK}SZx)%2F0#Hv1?H58Wg(*n_a!liSPLw zy~*Zu4t(Zgs?No!NDHFgu-8rJew;%ONIIul%@mzFMW;^DsZ(_7Y&x|z39lq^u}xw( zT;o$SJcUG&8ls-C$4%i8oE48s3ahL}ib7aX2rCL_ zF6YQGC60)B6cF=gaOBc*c#Wla#{sWt2E5D4;T>Cww*q*pX283=9NywmywiZUb_Trt z^d5WSCSOo;VI8+-fomCyKHv?M#pBr$c#V|7dr2wYS-{&q1K#`S{WiZ2%r`H5jTios zA~j8Z2gt{e*af(x15Q)BOrsBwweCMiAF|=P?5Dgwv4M-U#ErO@LSml-QCEmM5Up4I zhszRdcEeo+f)_jBrXzSoS-7QcxXS>ye+IaZl!aU7hPw)ISI+=7_5lyyckmibq97Jo?nyJN_vAzecDLafS+;ES9=;IE!sYH3t zdFYdPKvu{PWq#-LnHjJyhm~%$r^qj!mT1;DZonq@X|&E7k{Zz>sSz-e8ZjfO5jK(6B>(^b literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/SVMSGD.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/SVMSGD.class new file mode 100644 index 0000000000000000000000000000000000000000..9728b45e7397c7b6546f143d6bfbbb6d4a1bded0 GIT binary patch literal 4177 zcmai$S#uOs6vzLa471S~vp|R-ghd&WNLUn9a0v;4Kmy3b0HVew=}a1Di9MaLxFfhP zi2H`PZxp3fR51mX&lVrR@&j1DS-x35S^m%MPSWX_hDzn!x!doa?Vi3@{=4)GfOR;R z#8RA$;rS%0q!Ch}U9xUD`L2&~ZwBy(!|fh_^(%E#e&! z?}~U&#QP#X5b>dik3@Vd;u8^P5=4C};;e|zWbAVhU&QdGhU)azE)80bhB=*ue9+s^G(O)E3%5Z#!Xv2Lhfo9%suLw3|Q z#bOO}{UHB>A=@+@sy=@vV}^p+f-$UNQ>yonF=4c4jeMp(?bud6v$1?+h9-VWe8kF{ zV}>&-ZYl$5i0A3lokotjv{X1Llv_hj^qY3B)3zLwj@QsU(-dW`e+B)rsLUOK1$CtM zFzA+%O*`gT+B!zPs#7bw87TfYa=Op3Ggf|&nHkSA;KvNdD&%PfXVRnAh{K4>Pj2oq z#mPnbYj@$W$xzRk+TDM2%;ido%JPX^F*EFr))gzL5J`1Q2G*46*2vYBHEPIJRCLbN z2KTr~sz=C4ceOj#z%{$Z94lvJcN;ciLk~0GW~F-EwMC!0bPl)AYZ&rXiPK@)NYrMY!d)suBpu2UNKT7# z!Btk!p_R9;rMYB=nJZIM=_KdWawO>fn4H}ui4z?*v&?DwGhGL$gd~SrsFA@cv`yOV!4j*M0}4QbUcG+ zbsQIy8hv_5opubTj}@2~seZaT_mA3z!|t~&k!OXQFn1lK4YN`Ql>Z`*s$cP(aip^_ zo@dRAnPWvOD}_+&!V-Rnm-6!(K@*l?Ils6!u~&tg*&twLub)C284Lso zw~%lrs`&>*TNYo0_LE|+l0N5wTC`Kn<2f?28f)0fueE%&Xh=vrJkB~&WmV!bs`f9s zi0U8Nslqg>L7{YoO(=jo8`fik2k7wtwU-gu-*N%7N{C)WthaR!35gvoLEJjTXoTQIx0r&6nF(ydT^^*5qvE95Ev+Ra ziRo(#Vmi2?Q(>CjrMMgSa0@r#Uj7oTM87qZg6{Cpo7oquk}W07Cb`_+?TDk-XK&IY z$2}g?1Dkoa8&97bb^{2j0Uvgz8@q_pum#;7c3MppnVPO;=c%+CUpFix zRCCnFOL}2()!eFh+roI)m-8I*Ca%Hj3FFn4^Ny2u;u^f|VZ6F>-YN1tP@Y_P4Siv}hH~CH^3Gp_w-dWO{W_Sm>iWvfTUNr{=}O>+_Y!eG z`*4Y=YLLKgxZ%Ao6gMx3`<1vWA-FvrE{*<5+AS!dF^Kz(xZgu?_p9osVE}tQTrW$F zT<4@1yI^4n^MkxUct`(KJoh$FCNuY7pW?|cAxm``2vxKx2>y$T{vD#I3l`jdPto-X z55(Picteo(59`&xisshUxEBA=({TQVGH}RXP%U2`s^#NDwR~Wxmd^{-@`a&VJ~C9xcZO>D z)KD#78>;1lL$!Q!sFu$T)$-+`T0TBh%lC(B`2dH%R{w%d{A2rN+;(zGG B0dN2S literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/StatModel.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/ml/StatModel.class new file mode 100644 index 0000000000000000000000000000000000000000..c360f6666747cecf554ba75755185729e9931c0e GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/BaseCascadeClassifier.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/BaseCascadeClassifier.class new file mode 100644 index 0000000000000000000000000000000000000000..8687fed080a5351d37d3eee3228000c3c7c198b1 GIT binary patch literal 678 zcmb7?O-sW-5Qg7vW7@=M{nq;JO^cX=;6X*uq6aA|D1xW5O}6cpG%K4}#b2c$C<^`n zf0Q^|3-;havoO0ev-9pVyZQKheFw0KWfwMzIn27qpy-g9GpqR=78vYZ8OwB!!CF0D zyQHbCLcvg|$XJ}*v};0N@LEKXv5E?Kbjh_eelKXHO_?yPSCnq}>RQA>$5*vhC{hum z{sB)!nI{1cMLFV0BI{D<9Xf-Dp=Mym41?8bU90w4s;gB7pBVlpm9NW~NAjKkv#W;R zJ-iFVbt+Yy?;eD z7XE(JP+F$VHp94)_ah!R{EMbmx8L{b#5|Q9aawC(g}rMK8<`2XM%DTRZcS3ToZW=(_}N4`2zUX BiA4Ya literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/CascadeClassifier.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/CascadeClassifier.class new file mode 100644 index 0000000000000000000000000000000000000000..e63e17ebf7802752b4614a30295270efe60ca082 GIT binary patch literal 8964 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/HOGDescriptor.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/HOGDescriptor.class new file mode 100644 index 0000000000000000000000000000000000000000..3bf46835f4a6c12b1bcabe931b3502c2cc370488 GIT binary patch literal 14530 zcmc&)3w)c^bwAe+$&x?YiDL(wI1bN5N$l8B6h)C8lZW%LaUR4WD-Mh4Vwp+XZIp5Wl{OMD0 zXi~_}=YG21{m%LS@8jHi?%|8y{_G1xv_(z(X{TD_qiS`HS6%Bzd7Y1X)%7fH;GZ|L zSj%D^ivWxDEH<#%$fAoyH;YXydRX+b*vulxVhf9qUu{)ke%j_!5p@keZD$c>(Z`~n z#SRt&EN)`4lf^C;yIJgEG00*si+wEivpB$Fh{Z6An^}yoILP9VR~_c^h#$;u;isc4 zMp+zVaVv}CEN)|Qg2hP|r&ye3aXX7USe)^ym?B>~o=Ywy4v(Exq=psMjsy?fGl%CP zMGbp0>A74yojV>+%_pkS*`%mxaPPidw~ic(9U9qteDBC8SMOBh=})GUxdBBrf#LPX zQS8Y~B+z;!nNA#QG6f0 z%-Gq9L@qI&>p5_E|6pQnJe!=&WwL$H9iN!UDq1#`$Q>%6-z8Pmf%V`}AB#<9Gc!kW z*%%nE1E8hp9S@YY8_#4DJ)_Bc6Mf%(?a{p&xdMuen&o#y-64~U!uGvI3H=mVOVr6P3jx5v=K zxy)2HK65COojG>TEE+Y%WVDY>XA^VNnbZXOG&U8VnThYoWV7h`WG0QTPci0nDzT7A z!BSIfE;*G>Ozh9bCz6SDPSMzv?l$hV_!Tz7HtxK#HrPb$ike^xXRf3LHgLxkG{E|A zzjFFneQRLkYdASV`+#?3C-}FTL<|wqaLnXi*POcN;qmS8B%qlY}|H8di^c=|~(>WQ!>g3E62DnTmV?ZZPm^}n;%*XCg zdsOc%HWbVQ)WYjxN5QsNu|sTg@Pj4lVl#30!3OiO{oBQzFcLR-g<&Xr=gwPdc{&bX zt`28qp-WfBpEc>>FK!6wr7Lpnjq=LZ>4q9?Yglr1SkkG);Yl7|J*3A*iqE@`Dmrmx zpm9I!{%%#X5|4f4QS{i-wH=xR%na4S+Z?Np`Mf$X?t!OGPw8qKIe0qWp za(b6B&!ts$^`?fc; z$9U|fzc&Eb)X~drik04SnU%86W%hhNh;1V|igQ0Ui3cvl%u$>|%iX~np4fwfas*%H zK1szGrl`!o+X^$fcFxA#IGIexQzdh^WqvMkFcDABO(!RF`?Hz(S=mFDm40qd&HLX} z$~+F2v^Xwzr!#>2-o!3o`%~W&`)uiwmeCTrnspwzyy#hF&0Kr|t8t0PRD94lm&lDC zKUh3cwz-311`L#3dYV=6YvDyn-vsf?@#%j>X;(jwVVLRn9;eAqG5%ME?H0 zZyis}%I@h^cj6GW=#C@St7t`FQ2%Ex4{){NXtx=`inATxfH;~3(JhW+Zw~?1_AsD~(=~FmA z*9V4&hk5eIO`LfHu>QguUZmy)rbnIqVo^2bgNLiRa=GJ>Z_J1t*A_76kEyXY>{ zd|PnfTyYgED|6xeriI@ucH&$uKHuTSxn7W#IC8ENp4ycgm5ZG@S0h$S;UWl=Z!|NX z9Z&4T1rmm8ktg58cTE-zQO2TOv|G`2uYbeM&4(=&r!$rsgP_mTZ(8&P`l3a@MZay) z@6hjB^n3J@MZZsfV9_7aA6fJ={jo(~qCc_d%XHMDKczpj=oR{Ni~fTC(xShjzqaUa z=v9mUmX3PWxTPjk!lJM6k4cOEj{e@FuhKtQ^pEsU7X35*i$(uR|7OwG=rxPJPT#QT z-|0Ur`cL{Vi~gJb$D(i2w=DW!e(`_wZHvBxrKyyvvQ#yis2Vg;wP>O|XrjET&Qd<* zw^Y5dFhC_eVD8v0)u0+dTuoW32~TPni{&hu)e1|suxJGhwUVE%;-@x{RPA7;uI9Q` z{Ii4LMVA#X_>k8?1c7N)tilOCbGMy~sJ%Nmk(duR|jmc4kcqJ8+izvTA;nxPt= z8)$JeS`6Sz&c66JJV$E7nom>JC*`{lNDtZ&T}1~WS3(zB(IGmFlAn&i8ZP$f7CNeR z^`H%ZQM=(;s(K0!Ra8{dE@~{hfmY+AQ97nS-U3)`!uLE?pX_{&YMyZ@=qOR(6YHEw z8lqdZg0IplYQi@I!eryKREs}P7fSqjx>4fK(_VuI7M|AHR!^I^)z{{4wOSim8}sB{ z#J*AbWj$bRq#e{P)*qw>wqSZ;fR58`LTP|b;E4$g&`CUTpAOI|Jk`k4X^cUwJl&2b zk38K$XUHp0G1U3w=}y%7;OF)EKGPMtoW|pFr-$5ZI?1?hsb(w>zZez`Ca$9r77;$nzCDY)eqk*SA% z5Ocm3`nu>H_`(CN0jz+xqh#Peq=7$z;}0LF)^so_#t;SkS*9*d0!S#s7wSd{q2fmK3XpQMioI6ct=BdMh z27ymC;+|EAco zbrw;`Y)AC9POUB(iGV>6FbD$l!?4SJQAIi zQRQik6Uz;>TCFV^hfaf~(_rZ|SUL@sPK|{Tyk8@@6HAN7p~Zz@e`z>g$gB+v}pXXXSD5vG7B*)$q!$W#Qq)T+71K zUXNFKy0!>vC3l^QVq*4@NA;6m?VzYCJu&wgfPDsFA2ykXWRUvkN9o5fO#p{}9I*{| zL!V4qo+y2?gg6H3qsQJ&%f`(bpFbf)HLBlL)m<2Vn zYB)FMQwKg>!pA2pep0h|9PW!Fzd%>i+a0YlEZDyal~NXYy55QXFt8s1_FJ%YMg_Zl zu5@2Ig;5C@>;Z#4ps`oO9Wr7s5ML*V>jd#fG~!3m>wI$U#7@!e*eGOMXsgN74NjaV zf%6n_p2o7eLvY&XNcUw`z}abVc50l}i1Hbo2mjgx9d8Hc>8CWh2c@TNx7%H^Be3U{ zZ6QxLIJKAVQxPcKhLX?hhaVfUd@x?@*);iHJB; z5&EcJhY>U45i?sOW*tW8V_2m;z7hHveHRg-kIP*|HC7}uZ2;3C{VbmNF5&|HoM!qG z`14&vxGQRPM;i=Ni%(d!!vAn zh7HfK;ThIEs}Y$oI}7Z3gnUNoiHVGs4pcm*#&FBq#(DhC} zkAly8!RLMOpy!3p#XYD!CxeF1(mg28I`*I!5D(aA{7dwp8=Tl51NILB`-k8`KP=cU z?m=zr0fYVZJSZb(4|;(lAG3Y;H<2mQF$gU9@i> z9A6-x`kdIcBj2pco{AsPd!eJFH^m;BRczbpb*D%l>98HbHMp&`US0VNNZgFJoTPrhnlC& z&rxt>qa#pMuTqn;V?0~!at*WzfU-Cev)bn_rgn>~+Sj1=8`80r)#fjzHsq@IJJeLA zUPtX`E~a*?o7$=dsI?=Q%4k1}aKCstz@w!v2f}5yB~`1auF8%_Y<-1kW#5)?l10%k zR?@evT;F==+gL)|P2Vq7y1a;#U0zgegTCz*_1TvfFI2*}y&T_O=-XdWpUwA|E8&Zl z;~Ry(TPy0b@qMn+?NwhnzBu&RmymAbVc%Z;in$lri>c4!D+iH0_2X`&Y~564sJ`kg zB@hdjb@j4t&dCt}YNamRQ4aAwK)k<1pW6`sS|!Q@<@(+UeebTQk15yCi?~dzl5AcW zCEq7W9FeD+9L}fe{p78(_h{IZltF-wUovy@0QONm^wlt?#AiHx(9NIFZ2yfc@adX^H|XDN|@mJ&H= zDUpVj5}9Zzk&KoS`DiJTdzKQJXDN||k%*QOxo9boj+PP`X(^GE YmJ)esDUq6%64_}6jEfRn?W)fI2eU}=#sB~S literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/Objdetect.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/objdetect/Objdetect.class new file mode 100644 index 0000000000000000000000000000000000000000..099aede62f8d43d212bf6e051a02a8df9c346554 GIT binary patch literal 1215 zcmbVMT~8WO5IvWVMG+C9;%BY4wnb2}t$ipqCJ2ZSga**0Pn#9Dum)MXEcUJcsY#QX zKJ*9lM>Rcn0ZT0DLtpORnK^Uj%*@UH{Pq0@fLD0!hl0c;wy^Do7d!Gu`mpQ63xS19 zx|T_2b85DtX42*Id-YxQv|K3X1w=t$I%9Uaw$`!Fw02K-lTQdlhB?eE<1yU!h9?A+w?@aX4+Pw? z%`*W{#=Ou4W=cj!FZZs_b*rwOx9JI&%!bxJ(=0>U1Ew2D&1PA+18nqij8J9OiNFmXm;g;#O#j`6*~5QAuDB0SVWbK zuFVmQ$2v3uzE8T*Y}u^0G#)281%i&eddt$gEwg>WY3SF?5m|x2u#|eGvE1A^8Zt}` z3iVNM{|=RxI{A|0~KzrO2pE_1Dav)zFU&xv}8g{C6(38!doYgnf7! z;1k^o;3=L3@EkFL)qgKfASBb1Z7xo(l!ND!9LX83PGGX5*~X1d5Jy+UIv>6wA0Zau z!vqMBuNHpVQzLeO_VkDyq&+iYhseXRAj~sDh9tj&UvK;y#21J10Z+wohA_u_pbtP4 z^Ry89Lu=E^aI@Ps$T(Xuhn@{tiQ@sW5rk@9RyB_65d7M}Y; z;v`NGyu~T(I70UNsdqvmcS0fqAui5LmUj~wbjo{#UoM`16~Ej)OABoBbRqs57OVEa literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/osgi/OpenCVInterface.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/osgi/OpenCVInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..fc218b9928509fe3f256a395b7768a3995df7a2d GIT binary patch literal 127 zcmX^0Z`VEs1_omWc6J6_wMFY$_^MvXVtmwrJu^%~VqxjqOPJELcFr zf)C)M5O-|afUv}7?(>{`uI~K!`RzM^BltFK+-sw6V;ehd+_&)n4?B2-$8GGIU|?a- z!oGzk46WBPmf0JI`tWeZ&^SpJf}tD8Sd8<_xzO+UTv5gil8~zz*V4qlla1_yOc@S> zL`Qz|QN-cWPtr*G6Y@`HW1h*S2ok;!`k1)QBnEq$lrJg+QyW}b!T4u&|iFmmt$FBwMDJPbvep65!f2FgfS49Z!9xR5na za;~{vc@AE|W7z-y4h)+{h_84Y`IGsD2x*<&YTQ|z34P8(+VKz2bd_e}lHrz76qEuO zwuZr)cbaJ#N5|$E+eJ3dr1Dh~MU?gfvO+U-B9UGDUKPA#tiaMC`W3ulDHNUPYP4;R)~--@8&_z4M$5InpuMKrpeCS;CXu;BvZn0aP~N4E8n%7` Do|Mi` literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/AlignExposures.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/AlignExposures.class new file mode 100644 index 0000000000000000000000000000000000000000..b4a97f1b1018dbd5bff142b4476521d08ce2652f GIT binary patch literal 1406 zcma)6YflqV5IwiAZA%p>53N;76=``cilS0NLI}o?q9za$KQ&9cv`eO8vSA+@j-~EhW5}yn zu0XaZovJRIW~1EJn>Fc4eap70jh)k`bX$(;76@!qDvp5I6&Na&jvZNl>p7*8zzh@r zN4(Z_WZ86?Z7*LuG1`XS@+?~~TCP|4>)u1BEFDwdGw3wPs7emHPFY~2AA}Dot|t)o zth&jx69WMRqO7ke8!mgK5vf!+7^E?@qfK7#+lS_5?{a+!HwNNwvURb2_R{d!NP$oN z#s4epKhXy!9cWaoiXK}H!?r$>NHDJq@txDM+4L;dui+`FcBfQYp>uv${ghjzV%nz1 zsQA8YIc4*urB-U}`jRZGsU{G|kU*wqSc4Wy!&(B*@H~MRNNQM5AcuScb1F8~6YEcZ z%dSet@@jRa^f$*g8dd$E=E(P*-A?yJsI7AKZP{p>j%PX?{Ak-Od(tU!iAtVShd{1> z425eue6@7!2q$N?%{NCU%-)md(gj(*i!r{pKm;LGJp>ZGts}@kt@D|4h%eLvxZ!&V z%2C{;oTN>~4P%6-(ngVFd<JEOG*h*TtHJygFe$FGXwX?YKj$QFw0sM>sKAP zE7m#O!fii&4k>DiZ4P&k_Uq5#F0~L*vcyUwOsq5!)3jvh+3A78n7+c8CPtRe0=Un} z2biIzN?GHn%8V-d7l{7ps`?_TtQzt??TB_cKIF3yBWFciEgJh1SGz{5z&vFD3%>#B C$2_qB literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/AlignMTB.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/AlignMTB.class new file mode 100644 index 0000000000000000000000000000000000000000..821d59ca9b5f3eff1c5b1155918e493afd489ebc GIT binary patch literal 3457 zcmbtWYjYGu6g`vda~KE-fn-hOAxbttSP(=Z5g`dkLJ}T{!GO99Gl!SwlXv#Vwct>Wgh>8eLL{&!(w`8^`;=QB>(D&=aK@`B?znKK1@zBE2H*iT3^pLaEAqZ&44vvaOfyyUsrtcIO5`L8Fp z&|!JhLp45b_Q=N#9{jGJEny2@41YU?G(E_vdRU7SCxVf(tr{N*EL#h zQ!H0Ki(f^vOvT{;xZ4_!gavuNW?oH0lQ&CYQN+uxld~#>A5V|nG;3z2>e+?Nm|Y=j z;qQh=dsp94|Yz>2OAzvXQQO_<~G@Ed(O4%t@NJN|`vPF}Nac=QvJ61>4?ecPD z^@M;2*1hs6zGiZgk!E^TmnPl~Uvi^k{}Fv%qw6Y#{Jml8Ybcgom&3cB&_}_HRf0f_ zq_4?$v}P8n8*AG&i8|$H&D4L7eSrw&;iX8MrqYz9jlpD?smCx4b18&8jpj`m(3=4n6kL@9-fiPsuR zyyYe4ow1U4qTRYW^XkB={w0Hi5p6=u(IB0xtEDg~FQ`oTtjpGDdQ=hL8X`PcQ=A(s z9E)0CrnYWscvwuu@>ap}NQ*w{RNb6)&X)4KdAXn-lB_k*iIj#^L&mNyyR2>vYb({y zz+LQ)<5L4ucui358JNaZ1FvJoz%>!q@kSh<8TcGu70TZ(Za>yI7M0|;_ z416tO4)X>U#GPFYCL7#2yI6KAOixyWZK~uH7;~Aa1=qRdx0WQ+*REL?XK!*x1IBU@ z5_+#IZn_#)rI1xJLr$q?xt`?`y|rfLJjcy4T(h1dgNB}Pw)L;=3*5*$qAl{r(9&*W z58Go0+cEGITPCT7#u;!D&HMvm`*%Hr_8VtS=#p=)18wN0+(Dgap2kj>VjSTu&19 znE>Y~QDs;15t?RpK1B1c{Ah&QuAmGBn^XYcd@r6204yX30i+%wGPD0aq6h9Hc96d% z#2+Ft(YFF9tsaEvpndUgzkjgqUkcA*pE8s}4`*`oCZy5Jn`+#BATT*dtsv=QZVAbO zuAlhjJMG)(qf?m%4)nlALg5`Gj)p!QS|3kei`P%Qmp8=AD7?cP;cZ%rH$uD%kHI^F z=L7$41QfS7(%YvfHdbEVzxh>c!%PFa?R9qB`7fQ%Zaa=Cc7b-hz?ran950d^iL3|E z5$D)*UtD_c0aana}%hbw_&e z5>C)0O)!j4sHf~fzj8!$1Dr*OvWJxKLzGxuIK^2Eukef?)Pixkj&Yh8XSmjcL3Nd( z;40tqOqBX=xyppPNknea;D1Zl{|Zld*n}#r-ctS_^D*lFch~*z4*ZWYP{r3~o@-UU zMjCvT{l2fVf5q2f`g#`UD24VjJS{<;6bHMOur>U$cNqou8e%3{cPNQh;m7oOjBEhc z8ixCpaNlhJH_GIZ6uGb=Tw56K2g3ch0o+&sH;#$GyF6n|ibiKBqPOv7+Ly3BjQ%qT z{zaktHKVhB_fC@QM|CI3m6}0RTvRn9f=jp@gu-!-5^@Q#xP%>H3lA8izbgxVsY?VF zuJBBRCnq&s`V?!QE?r8EY*cDwuTmr1l^WTp)W~L~M)oT;vSq1}T}zE@S88O(q7@A` IWfN}x1H@FUAOHXW literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateCRF.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateCRF.class new file mode 100644 index 0000000000000000000000000000000000000000..36049a4414953d65eff695112855adca15802705 GIT binary patch literal 1275 zcmah}>rN9v6#k}Ny6sYda#N^KMTJr>i-M?tB&Lxcq+TL~#9y23c4(KhJI!=jFE8Nh zXhH(f#0T)9jAyn5OH;I)ojH5v(1%ft-mY3lZcjEMp}>)@lMa zR<&Y>X9pb{oHXH zs^T{oG6f;awy5*KYuWXRP{Pi;Rlg`*#q;m>wu#m)l_Ue(XBc#xV<~EHm2@12IZFFq zv{{$J;|^;|Yu)b`4o%*=(V?Urq ze5MT1taey0KYF~bd=WHEtdoXLWt}xTTy~#+Ix1G;RjvqR9f+p%_@1vPAl2Q|Ro#Xp zEDSQt{ImNeHj;RZ%_N>+)Wp*y9$-F+1&y5QLWa$IQ7sGUt4fVwENpbu4a)XmMT!sY zF-&(M^bj=cya-xcDlVx%sTTK?kPgj&qlDfV7J5s&eP!S-XNHPF-SAudP4R@XcjdVV z!Cm@n67-1yF&O&nU`W!_7NT^KHtBy+iK;-@G8KPh5p_^(vq)Jja1%(74dm<#)LcSo50ov0`=P0Y7x9Hv$m4b=^WnrBGKET(ZMq~2)5FIA>-6Su;2X-rX+R+px0ny@iSe48u-GvsZH z(($ttpCM0#I1Q@V99df2Chb~yT+2E~{BND~-w`kmlcqw~s?8PesJKTSgOK-`rALQO PZ0YGCFGH5r2p0bUMlu*E literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateDebevec.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateDebevec.class new file mode 100644 index 0000000000000000000000000000000000000000..bbeadb3567e68dfd086a1863ddf18f20d693bfae GIT binary patch literal 1528 zcma)*{Z11>6vfX%X}im+2;v6_h*eywQWQl5M4_chZPWlEk$>v8UFedw+iaI=d?sTw zF@b2}1NczJGqc;4R2ogwdw1@g`OTS`dw>1@{u96)UTV;>62VgqJy=m`o{6tjVb+96 z3X>9MU6`~m&m(xDAiQi>ZEr_pZ_Y+RdsumiFTFLR8MA9tVdDrx;l$Ey{R$+-~vsiQ$C>aI)x!j)X zRNi=QE~j9MTmKh9-M73=vs!d23VMy{UCMVYZ^tZ?%7I8{%}Ty#%5<7h{xwFo%u20n zQ7Kn#FwDPNZ%+;xX>s;&Ian-m&3!_~uFSc?z8Z5aT*%lE$w34t)y6i(ZQS7z zMU~Cdi+YOskK5l#DDeyQvty)Z(@4+0 M;c5lTv^{w82L~7Hk^lez literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateRobertson.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/CalibrateRobertson.class new file mode 100644 index 0000000000000000000000000000000000000000..0e25aaf3001d25c6f7be29d1454a885736bbd0a3 GIT binary patch literal 1486 zcma)*4Nuch6o%hB%05Z~2LdVr>O?nChN2)Je(*IiGSmQ)5KWeDE39O+q$^1LO~zjA@zf3jrm)oY|n6w=0G~d%?7f*ZaFA!&%o$HF`P;#scH)gJ@r$kyg;Dy)JvICN66cp zUiOr>h2_a`Zg>i#6{BXj)TFN2`%c-&nX=kF|JHA0M?cUtw4q%fb%}ZlbcUi%6R#nM zZVeAHq9Kb>4Uh0xV;4Ws@D$@3CM3Qubg-eF=2v<1PAMf@)2;0+Q*M9sJ2YYGu6ba* zDed4k`@5BY2PjvOk|A(~t0^?`0ir_#M-bmQiy$f2+?TN(9J}e0o=#k)m9sATSW5KZ zTEH12RYoOF5ZUZMLep0+!l~ZW*sQcF ad)u>YZ_l#BJVDb;7v;GDH&1UEo5LHt4L5+x@7YKHa-LrSN)Gt}h;d;_0D z6BCIhK7bEp{LWBnX>cL7nY)~O&Ue21-E(KY|M>C^z%1@La4>CS#z7aR9bCg~hNHO* zu47JYH>9~K%`F?Z6;g|S&5xE8titNm=j@h)idN_;`ZfJ%XM0_nHE+F2%gJI;_Nvc4 zjzu_01p(+=tq1==*wIH*|S{uwJEN6x6Chcd7K!1lvy{ zQz|K3VA{V%+jSF^b;wLl3&kz3;ki4JUv-Oq7%j91mjk2Shu%?)vgbr-$_ghsk-1O_ zBZYxOQz#@Oe_NAN+UT$z)Iy466REWAF=+6hTyN_8l8ttxSv(YdiJE1e`5QGa+A#$7 zJNNy&utU-Q-6(S0>CANmjU|4qGyea%3T*nNU-PQ|TdI*Lh{0KTUDox;r}Q@FsaLZ~ zO4D>MtjbT^TILy^Piz)zs-mkpB9`+k*fC}Oz?UNLZ7#HbE0RkKtzBe(ovC~%fH~Owe#p7*9Y(szVw4t(kp<;Q U#q)F=Df+l)-E&ouy@=ud1kS#91poj5 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/MergeExposures.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/MergeExposures.class new file mode 100644 index 0000000000000000000000000000000000000000..79714d4d26444cc30db678c150b90fcc6ad9aa5e GIT binary patch literal 1352 zcmb7E?M@Rx6g|^!yX{i>1}z9Jine?%ilPD`F$8~*qDBabzc$NuXos{r&Fr?K58`uZ zLITmm2k@bccb0;s!H8{k=I-5l&OP_e-TnFN+YbQCShbMGoQZi0G0a(5z+###JB=mS z+V@B=k4-EyB-e#6!VLzaxIME^+omjYhQ5;U`Riu=fU7`3Z##{! zDguV7l2jF2Hn{J#>_%0F(%#{!!nckaGH5CutP!zWE-MDM&CugGhf3DphRSgmrYZ3a z@Mc3vj|Y_PU9oiJwp_azike*#LAcfl_oU+Xj{84OU3WZC9z%aOGd(B=A;ZYEDHsx= zsB_Ykq9Pm852#TlF*$XYK%-Y%_OWr%wnA5$^=sKTsB7t6QSsf7ddMKU>;4<;TDF@z zbvsgr!gp)p6Qzw8wZqyv_IM){RHKO}B&>ZL&JqO|xAjklCCj|VLqb`*vZ*}&O6b`c zx;hPu`uH-i(8G}X$K;rJn!yU5W$+w>CSGLl5QPki8k_CFM#uiLR*_1C)jFk&Mx^HY z6??C$9@EFxuQcHXmKx;%Ax6TLa8@~LU+^Gt_TU-Zu2Y?tBy*4N9_INDdJz~rju$oqRLP>1w{lPdn6*)LOzqIB<=aRGZ?Fh z*%KtPi4!E}=~|#GYtV8AQ%j6T5_==z6NH*X4*7_Gw-fLKM)#(-8ZYJa6m@(AmMY-V=>+rK*f ztNjA~7@c;;8JTvbAD|zq({neQ7?z||nB4c?efOSs-o5wTQSO$i0FNuPI zKHSqOR%Ny(;=YIn20q6_9qY}F4beRkQ55l5#1j!ullVeI|AJk&{Y4G&Y<{}PVacf| z4TA-{uGV&UHkG?!ZPutcS#Zi$t!TNntV3no-?lvs;|0g9=A4GAm-ljwZO3uswgi zlTF!iRc_UK9i;>@=DB4JLs4XIR6J78bUi{t!nb!6Ii+0XHJrM~s3(b3+Og;~ayb6q zHCj2CiX5}h6@8IO(AVv1U1C9CJ9_V4Ze7v-zf!`Hjh@v##$tLSYWiBV1R?Dmt(ACo zMYaaYVGWh`l`S&&#SI zmFFe#r3R_S!-ZVB+1Da0j6pdnXti18ojpBaA%?RU=lXu&o2LAwm)2z8#1CRBx?Fg?JD zD8WaBEt2q)fZ$Biu}v`3CYT8cCRmq3Ce}eltX`41OfpySKBWZiCM|$FAA7)k6u`ytF+K?+ ze~qJLGu3<*gHg1fki^dcS~H8O@UC<8iPLjlGo;V)sTtDhf|1=W7}@25k&P}G+3SLl U?JgME@q&>}k7yb`qwGWeUn83d_y7O^ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/MergeRobertson.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/MergeRobertson.class new file mode 100644 index 0000000000000000000000000000000000000000..00a73e88a91925a1e3deccf513ed64fde004f06d GIT binary patch literal 1706 zcmbtV?M@Rx6g@+?-FB@CA}Cg+DoO=(K@b%XO^p5^^&?13{M9V&2usRNv%6IE1$+aa zLlYB-CO&`EH&Ya~#d& za1%3Po0aC4G`DTsQOGR#fgdj_Sf!<_FW5aWHLY;G><9YE*5;}XSG?6aEhoyR>eXL( zp)d26(TdmoNZ~@+gln#8=%Ctk8|x-E?qeOU>19LzI5NRJfxTKSR8UI_M=F(9q1k*E zhn0%L2m}9xzugE;RY#1rTqG$ zQLHd~Csv%7!{>m>{B1Hjyfu9-RgcO7^C)FWYEWn1w^p7pYqAxxW^8@m5G+ zzx%y^<#s6A-y21ayWO$=L1Xb>>GuDBt^%8V2ghX2b)XN&*$&bsmR`=~%HRb0xt_yG476~ji7LBtU(oaN z{0>qdIO&8snLtTcZb|^a@gPodmk@bRdKvb`@m*MR>9J2p52ZgLGr{K?pCOCQE^MKg zN+=#nh@Yd^c?_eN;4kiBw5b+x8be9UBF>A^*g263sy^&Le_(_TopS_xO7x6gGK*>0NS3^Ktm*AtpEd+u$Tg*MGXn`WU! zGeeDqoYg^2_WvX|!nMn|(jqs@UXff@Xze2RGpF*y0A^tGKO%YEOGdWEVw4t(o+af- U#WOpO6n)aO?zyVSUc_*J09s*tO#lD@ literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/Photo.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/Photo.class new file mode 100644 index 0000000000000000000000000000000000000000..be4c37054306d2965e2eb73f0738e6d28036d3e6 GIT binary patch literal 23175 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/Tonemap.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/Tonemap.class new file mode 100644 index 0000000000000000000000000000000000000000..6114a00f285d361e17f2a82b26b6ed73b6cadf55 GIT binary patch literal 1161 zcmaKr`%lwQ6vw}J>$bL386XHM55-3ZNKq67jEWCT7JNhri9ao+D_cp|E?q(6A7wNl zfoS3%;2&lD-nPtzpjmeBIrp6VIgfk#>-YDc02Z;PLx)wuf{q+4jmsS=-PLGIqM*^ZM&{wPNMq%r19Mx(9*cW-humOXOAAIZ?n_5 z%4yO$e&DLej=-}Nf`s&r8I~k+BICjaK>3A zReEVZkoz!kg#1@3y{Lf%CBxDw0f6!dE@ptI^p*g9<`Bv;3eTs%bP4iP04_ttcuzul zmXJ#8D8|U)l+!CM>>bmTg_R|5_7KH6{*O`mTVhJBkT{!Ar&9lJnPpsIJehA96O?k4 zCoz@r*Xf-UEcw&NP)~!GneIwYx>^^k@ik<+3a(+A5cv*E2_8_>^0m{n$0*@RLQ7ky iX0+?PtB`d==yICaQ(aC|vU8x4oijx*euP|enEwMcyTlOy literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapDrago.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapDrago.class new file mode 100644 index 0000000000000000000000000000000000000000..6b1a046e58e914a605f36b4c563df886e62b3c2e GIT binary patch literal 1192 zcmaiyYflqV5Qg7VmTq@hEKo(fKoz`{DilSLs4)?1KahG!AS8ZjPTQp{DZ9;fLF11y znwUT|@dx;$jPGn$ESO3*nRA($XJ+3sKYxAu0bm)cHf$`IShSJCf<;r3-IADlV(yDs z7W2TwLxuEH&-bEd3Pxdlev8YCpy?`PtDf(^-ruXc;ij&)c{5QB8oIruLr>1hr4j9T zU4?u#2wSC~sT)f(@A?X196$txH55-0l0jOGjJ__R(Zx1_9n_^dg@uHX;qkb q71MezkV%@GWsbqjIc3Y-@kwkMy?EvH#VZFeUO9t|R=7i(!rk8mBE3-n literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapDurand.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapDurand.class new file mode 100644 index 0000000000000000000000000000000000000000..7325facee4530fba515d4141ce08bd19f4ff8c2a GIT binary patch literal 1770 zcmaizZBNrs6vzJ;#L%IG@NyTKr%PGOD1iVb%FS{Vd~EhYen78YsD(<3~gH_ zt-7n(2Cv=CfU|Ej1g5twyOOf%x>-6()%PvOO64t6uW9wnp{<$aRpM&pvMnHT0+B*t z&$enW9lKBvNKoAFzeg&%leSF9)*6mLZ*n$EsoT1dqd64LF)Y(v89<892OW zm|E3%PdQK-6ja@MSJLa8bt8nQ%}h^AEi5!Ih6;?g703>`)5@Z4M@HryF2f7!OXg&y z@wW2hzo%Kt18du9(Sl{Ysymdqx?>&MB|U4%&S<;q`2+1piz1Ezfyw{3MHJ647R5YL zQ7o|BX1T+%h`UkTV_9Ok&$7(OaX+NMFh@>RHM5e+@7vbfX5T6%b;ObWqIiHA>iT{f z9bg0j&JY5Fv|2$gJwR}7>KNi1z4c&-*W?Fc7$zO1J>D6?IkNmViZSvl7{_^+vq)6_ zO8JSN*OSNS{YncjYCxi*601l6==}mNx`0jkngQzEcLYw*mq~nS5qM-l--a>aNl0}Q z3X^vNmxx2B?#BzBH-pRW`EAfO$_wE0 zOPoOYcbCoMdquds2dA{|Q$fN#zAL^swG;P-a77>7RTp>77Z>TonS`tR;I6y4q%SVo ziTgmfk3P6ri3`x(-=Gs4q|RC*%k3U+_Fk-$_6Z?;mb7O7hTWsPN&f`s&s##}Nv4KY kd6=c8d6t$&T3VWFX=$*frP-F2##>sNaH0u3Ann1*U-C{F8vp zAe#6A{7}Z{v=ukZf@yN@z2~0uJ5SF&KYxAu0icX!8#d;1Sg?`7yhT%z-J+PgV(y74 zi@Be}1BL7p&-bFI3PxddZj;N4py4WvR6XB))!E;2!wtRFq-U%e)OB-Hhn}2MrxERX zZH1X?5bl(Mmh0CKO0C@>3Q8M+@9yi?n)V~F^X@Uhy3q&~)T+Wzt+pKo`){JKR#TW| z;s3}V-f^RK9d$w-d4aDmP?)Pwe&|M|| zYuW2TC#<^_Po$6cwr*ihA7}?da1^FbX|sce78xC%YxrKs*IWa}apX`^b-mCy#FV?Dm2CdTS3e92uK41~@Q84%lU$9$|nVkS$IhLVe*bgEMmGJs2@U zJ3*g#Msb#_?8Y$8dkg1qKIN22l_={wGH<62G4Pp(Zq#UulClhn0pNZD7gE4;Mhn0$ zeuZ&_!Ik`{V}i^(a0w=^bP2LkK_+h}agiLwm_EGhzq|r@#Z!2fSuttUGqx%ILD82# zLhf&`5_wC+EqCFp<9=DVn#!B%i!)E+R*0+g!A-|F1J~kbm1kU{HtDRHbk90Tt0ITB pn3lYNnTos49D|v8Wy{?0No*Otc;)oPD+e%MIfIN=xJ{eEo!^gu!y5nq literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapReinhard.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/photo/TonemapReinhard.class new file mode 100644 index 0000000000000000000000000000000000000000..d50089fc61ac7bcb9f1db16654d27d3fa7ef0bfb GIT binary patch literal 1547 zcma)*eNPiX5XPS?h4!u|VgW@|5D+a@DGDM2z985{(x}0P#J}pbJ=!D3U2{F~Tfo0fFJtr+&U;aRc{ zjd8zjH5E)2T(6dM8>Uk^$TjM&@8*iGW9}J^Ez@%9hF4u7*{D`M1_RNzirs0bD`7krQ@4U)ABzta4rj0 zt?oyUrJJX);+ecWL8>B`lnl9rG0kdYFuz4%x$ z8xngnfu{ySTSq8JIiM5p!>5Gsvhvn!~aGDVV;hX`4P{)!w@M zUd7B?^7BJ&e>uBr92h#zp2#MFkhE5j>7#eyuMCehP><ulcHv(K7)40hLrOFnmrJjPWx}XsrTChPmG2nK(~o6iph06{AUy1e$FU YXm(1V*(`x(zXX~s!_x}xQ^qj=7qMLh+5i9m literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/utils/Converters.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/utils/Converters.class new file mode 100644 index 0000000000000000000000000000000000000000..b6cbe2cc21d0990ec63a19993f969910fc335a25 GIT binary patch literal 23797 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/BackgroundSubtractor.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/BackgroundSubtractor.class new file mode 100644 index 0000000000000000000000000000000000000000..af9e5f229af774d3710d6e06b6ff158d8b60ce0b GIT binary patch literal 1332 zcmb7D>rN9<5dKbSyX~?{%S}+Zs9Z{cE;muZn5bxCgO>my@rP+nx687y-EEd_y*!mB zBs7}%06vs)X1lgc-YDc0M@akLPbG=t|Ep)n#4*Pt61Ud8jE!n z8!YZC*c3=Uwp}}TA`s6N7Y^xo?o~{IfnD1*-_)yR(?5`9hb)7;o*|t>>DzpdjPc;u zJ`XrQ%Sy!;5JiFhQt8O|s_z27 zR1(M&{gqJ?vQ~3G3lwtQA%^Fh`fC|%UuxXp>JoNUT2#!)r7qNsBdaRUP6af_l)h`b z)}9Q=U+f4h{|6a!4O(W<>B6fP@z~`c>_1R$w=8l_9oepQ>@So+UyfbW7oQBX7TBJ9 zrr?2q6853ALRzj^EQTdUwpA*IZ5%fIZzdd*pm%;wR!qm_D%E|j?i=Pyo98{=$-Ohd z!ij814gJsrX0J4J4G%G-;E{$|%xRcMPQwE78WtI2ybB{7-&4o(d^omUoP7!L`uxJep&XUYFIRmfBm z5!D`5z%^&OshUuFnP!M(E@YZ+`L~%eZKh1bBru7o2!AK)h4vS}iBvE48qHuM#BOz0 zYh!De4y%aM%J#l$IcMyR}K)Nz$}Ej(%6 P!jm?Ryabj=#<2Vcp@;t` literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/BackgroundSubtractorKNN.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/BackgroundSubtractorKNN.class new file mode 100644 index 0000000000000000000000000000000000000000..943f3c92e79a6d63ec990eabb30deaace07a2f05 GIT binary patch literal 2742 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/FarnebackOpticalFlow.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/FarnebackOpticalFlow.class new file mode 100644 index 0000000000000000000000000000000000000000..a7905de2da74fd5b48986c4398efb86c2b0ea584 GIT binary patch literal 4744 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/KalmanFilter.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/video/KalmanFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..46463dd3ccaeebeb2422587b695ee68836ddff68 GIT binary patch literal 5013 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 literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/videoio/VideoCapture.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/videoio/VideoCapture.class new file mode 100644 index 0000000000000000000000000000000000000000..aea100564a39f54cda75ed57080c01aa4197b6d1 GIT binary patch literal 3258 zcma)7TW=d>5IvjN@onw&mh_VJMhiG;se7Z8CJpoo4rv=`2)zJdV{hCojvY1|x0G8c zJR^Pp;s>B2Kq{(LBqYQeFNhz2_yLF~ct)I=UAxR@wCEGog16+_BLud}W!J!} zitU|krEpA5-T5IVl9`#AbL;byo;x#RU?;PA1knEc#8sCgRNlIcMI!n4nMx;HSFBXTWQzbHRE%t#}%z~zvYg`!O!%m>m_@^bLzFl1a29~g=b@C?@AToR6OXpZ-tU| zIPUlJ>98Ll1!yd`Z$NKzu)MQBs)PilhU8BFS#ZA zG_Qk!)#1ADk!xXM6ZV+cfQ<&WKI9UM?|_L3oH210=S)oEWfQMphl%r;GV!X2X}o6Q z0xp`kgv%yg#~TTJV&YBAn0O0}H!EKylug)}Gf@%9D;VI*aQ~X}b+SvGskQe_Q&-&j zHUA}A8_Kga`Pj}EZav>r1M7qhzaB?S5~gL4r!oHCO`RUT3uAce_vreLr!H)!?4b|P zi!GG>w9yM&v5i{3wiAtmj>oVgz$(y3{t+L(gRZan5r$cG+8pU|JF) z^#i&uZn=xtx61(5g#c0-U07|x69K?fz$B+kb`3TWe}GL+c@8qn7G%jnSZz~VuFWck zCy^%}ki!s$mCq*Z3L+HgEh%RG2u<`v1Q=$3-7v971NddjwgY5?0FwCbNZ5fU5)rV6 z344UFqbtBZ#cZV;9NPd^Ix9>}&9;eT1nOy`zK9IQ71eK!86<06+I}JBkL`m5o{b{FLCbX#_<{t!T!DZ; zV_^bEFcLsdvZhj-oYv+JdYf3)iT)K6yd6Rh-@H*AC6*Z~&lsKy&@UsdJ?m|uvqGyo zE5x$lUZ_I7?dtdP;t0GvXV2@!&W2h%_J1_ibkg{VY5x4kG>+kTK;sf=#9Kug$TzX} zP^>Sue1?AIh5RkVB3z^sL7#ItiBn{dVbNt!V~lVbF9dO9P-Vn*P}%2o#r!ushVSd| z?DHQX3gJQZgZO=xAO_!v)~j+z&p^_D3Ht7D3;!MX6AApKxc+OB3|bIFkr-XNbCzNB zFUR9eaT46w&nAmmW8XDJ6AQ=u4-;x)m*-+xqnr21*_&3R?S7Mnu}O9 dcd=@&W7XWqs=1U^b1$prYGyVD9Ifls{{Zb7=>h-% literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/videoio/VideoWriter.class b/OpenCVLibrary/build/intermediates/classes/debug/org/opencv/videoio/VideoWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..d63f91fcdc55a743b3cfd319779ffbcf21b3f612 GIT binary patch literal 4002 zcmbVOTXR!Y6#h~<$-~_!7+WU`xfBqFf zFFuc=4R1u?gB`+blw&1=In0Z=B%hZ>ToG|q#G4}C67jZ(cSKwhab3i_B5sIyPsIBo zZbt9{Y?*y1;-e65X^50^6>Hu+F@8aVHmD)E$0}KseH#49!Ojs51LcCLVfBzzGLO$q zkDK=C+<1{IYlq7DTyZ34Tk`EL`YTh`tcFcPWqUGJo-s@L`P95sFw0gsH6r5~+p3s$ zKXG$~f~{fAq**zBpTPmO zY^yZcpUr0KH|EQ>nHsjPn*F2VU3kJOnx)*d@@L6j4Xbi9)=Ar(Fm1X*B`wPcO_b;C zd|rcZVurqI83u8}CWgRjX!SOyA!N-Cl#69Lt&M8vSqWF6>bc=TzHRriu*?QAz_?39 ztl1MhH?yD?NHl1hm62SLCno2qVTD0nv8&5%Scds%CpWCfRqFd@&5DLVGMkaz!5O%C%P2%m#X)jTxbDqkc$P7Z<3z^DGfElak{qzzCq{T@5C9&kYBRS|Mf|z32!y!MGcMg+da{QKeYnP6rmPO4m!yaU~b4lfD4iyVW%6&QpC*znTJ#+xQeQg z1`Es*Nsj2S^bhkeI}iI`-I?}C1JYq2ts{lT(yPub;5&W*6Xj&7~bN>Nya$`nI5Wm=O{vb#}_wSmpNk=l3>YFIDM zbG8M3agZwse(mG`K913@d(gTz-bK@o{A$7m${=-sHP}em$~9_X6A|SX#S=th-4buB ziSwz->oNlQ#beu3}ohI{b;&;Sst1BfW=;+27? zT!7nXMwojN%9HMnM4LYzyn}#DsdGJp%Pco z2q*$+mw;ry#{YChpo(S>n@4H$7<21{vgstS?%LGwEW_ed(m}eeYDBWX3Vo09Es>oP zh^l|iF+a~Ml*QE)=D*J~I8sf!(eL7Y0iEGtN(r7vI<7SHLTGI7c&hFWkQ zJ(t@VB%v2p^!B*)Zo1`Wc+jh&B^`=|8p+u_xr!p^6xyR_bel^_3T-#`dQ+;)CQ0qp zUX-qr(v62w`agNSn9@F%(iOM%<4%<7C{?j0&5~=3(Jgk`+lr7=^()QpRyQ(IX#4Sk zOJkIkBDK;YG>l{wkEQ)Ff1~X$d8A({+g;3gYS)sdg%#ILELl6qrq@JGCn@|~9YDsl zbBwF9vsu}xVr@40JwNM<;A)wG02&Zd&HG);%hj{PUnjRz9cR0rf%4G57OYCK_W)G{zcx zud&xyqQ;sSdpBx~Eyk`vrcMQrl*nd$_=mB=cJsRlUgIQeAxjj=PX;e%9n@f%e1_c8m_DDnU-&JQfq0-<|=-#SMgE8+1C0DQS>F}`~KASou^56 zg8p@80$x*drcjS7RBL|4FGE*2w$WT2Q6JO0KKBCM8a$kC{@w zRFRLTIH{qg;B5JDYVbj3Yo;pp&!~I#Vh-P-@Zg|Z zqE_zl$~k;XkBRClmHlE-eLTuZt*gfzd~A5tdR5decGT3>%{ zbaV;Qh#)Sp?opg#k!j$u_j*;2jO>D6+jqNv~Cq}J9|b>+Ie zqF>9+!uNseMc;G9nx8NGm5hAVNQjU`v#Vv>wqij@Uc|^f=QX8^@D%$AHb=JB?oOV(hCB@yoJ`Sk? z(Lq$5%9d5L1EZZ7d@j{18Cl)bpr-9*uw!Izr3NPoRtlbyU`fq3QdP=yONpV@_&d~5 zE&5f}kzv-PWw3`UURBjN+$vf1YIQX)vTai%tdVusRdZ`t-RSaiN_|bMA%7O8x~}Y3 zYAtKb=tPfSsWmEH9n#X;PHGI#ac_67=Hn#hyj8RyS(7yxNyrSl=t9yt+!qS>JONWvxmtht>Vaf(l}sK+P;Fb$Tim>L zsj-$T_>E37;kfXd^)y^G*>+VwxOkRY7hTYPTR4(s)=o6?LatI#PGD+zbeZeUTbnFw zZjV$7%}t1JTU(hnOd18|C2F_!d06`qs`jnpwcEaqq83vUvZ%ug?he* zo3mQWm7Uah-pf?J11qPma6OYGgv>lhr3Ia+-x`*Z~|d=wzqa* zP`$PO zt(h0#=}DC?tRn0ne4yYB_UmK^M8&Mz8P@qmFGQU8dwezfXEtjA*FUvzRfp#=UJCI#-RMPKzhD)DT~zi7@-m4hNx6)4fBq0F1KD^vfS|0W2BGX?_6o!Mkvll1R;X5+PYU+_bT-C zfsM6vb!#=Y0M|IFvDWxZZE>@5t@Q$>X3Jg;(G79Moa?O1R|XNoSqyO5c(+i*OyPC1`l+&FkEnY)tKaL|Z~5DUIFs|Lds}dAnuHG1Xyx=6&wmk=zNP zQus=D?zCRjvR}&LpgDJ2?m8sB9gP_(s&#L3nX)MNHJ2$fb$=6?jwd(|ST7E=7j^T& zI&!tp6L%g<>T3Tisrz`+ zO3|i^Rr^Hp+;O#KJR*aKkn^PFrC{EgXokD>spL(PtHL^#aNWqVKbCTly`EyBmcd1?t<X9zb1`TCWGr24(hDNlqoXQ*ZNhNDk`t{t0F;F=Z$_< z+C}Bf{#2%_zP#11it5YX`c+YVdAnZ~)tA5br_!eS@=m`hsxR;MtD^eyUcV};FYouK z(ysdQLBA@hFCX@+qWbbtzbdLPA16;vr=Ruk@M(nmM%MC^WL3)jCeQb?r1|qQGxb~F z^1MDz8jnuD1MywNGF6Dk`MMvCnwld-*i9%#J+g34!a8bdioQv9I@Bnalt+)?dMtE} zO7I{=pe6_$JBX*7C#Gpc$vuQGC3@ND@eq2&47ms&ZDaW-N>hc(P+yNLUJbPqWsliWll40>7;_d2}5HuS$u8x3@LCe7Rd<$}S?^wj&&rDSLhS zl7~lC5WsZTjiMrE4H3>NRwb<1P|sfdZk1X`CNE}vm1OcI+&kHdKeN#-zu&p*S+9KT zouq26*y+o=+(m5MghNa(w6?yZGu>XXh#51_6Bj{qd(u?=51}}<;)t5ZBHw6VmBmd% z?@1RC^w@7qq!w;o1kq#hNa)Df#j6Xqy*UgnV(9i}^m@Ep-s_O)8@Wv`qUv^=I+TZV zm&?dK=OVyv-*b5cKh^PfH%pFPgyC!=&~DF-$io34)NaegUYTDF+%ZYxQL8rOb!hy< zvB@E5jW8(TZjqce_yc-p`?GL5WuW7dS~9uu*rvN>a^qQA4g4sqD%>h*YSe0lo7$>+ z>*PrZG^#oVW=_iZVw^x}tu?Qoj_tlahm}lzN*emXb@X51d)z?UU|ccV|WVJUO}3A!*Dg`hK~D zAEKi}ig25~i$zmiKrSL}O@(qhyKTuZNLasIUv7Ip3aW-_Ns}K~z>d7Q$R=#%PEXE6 zcW*;}O{oSyzq`96HE>hbqnM1lYZQw%=1YZ@!efuDk9?+{H$M}&yCthc5KvrUUtbE9 z7j)lNU54|&>ckG5yOMTu-s ze|L+~saPMP`nap58(5@R@`R~W&6fG~+$dw2Vz*Wfc@WxEDSrzUj)OIeUAm-W!i=H@ zi`KF#S#;5XC5uHWsVeTCsBYW3Iz+ZJs=Dp0o=F~!_P$N{9aW8o+Y}o>QccdncsNb5 zZ9!@(I3gik(SyI#N>9aXj2@h&n72mt$*BpGNyfuZ>Q_H)<{$a z@0WhtqIPQCxGK9#c?ru*#H+^qN~SEa-4-9*27;~Pt4_o_=YKCGv0N#H$B$WCyOHqc z(Pk>aB^0Wp*G}OD*`%saL;o;7Md_I=2r-L|jxO91u`hT9L@5qR2blwX)~CLDUr+Qi zLF@<1f>)020xi*ZdcIW0?<^uW4vQ(7tCl_a5hReB^V3Y)Xm5k*GtRWuz&^=!!jwqP zfusN=x`tsk)T~8rt1c>oGa{32rbWm+&}A$^4-S6&lSF85T(-B`;bYwf}XdpZwe_=^@y-9Sbdg z(x||4Nr2KvhKl5U$SbO2k!2fqM|idJ zVN8r)tQ;kiZq%{d3Zk2+gmia5YnsgMgm$o}BtxfTe=EQ% z)0dSemfYYSE1c9|NhejAyy|br&DGzKhU=t;h%`vZ9U*^J*|;k0HbNxlN+KwvQ3~!b zL6d(wTp&!o9V9dpVOpgVB*99StQ3&sSN(VOtG8AP4ucp8DCv_S8Lg5ci!b`Z*9BE7 zs@MvVPztK#cjA*=N-FhK4^EP6b;;gbQ5nU7M{3=0Q|g9-rrUJonoMr(Ah;H)J9>AS z_Dnje9!rphszIG?3`0#tkakLyIQgLRPM_A-G=D0?i7NfQIfR zn+Ri6`z%Te9U1$k9&KoIgV@(F7gV;JsUk>4Qoew^a^jzZpKJ8Ws}_;-sn;k#mFth)15`!D=F5+=ro||ilShbit8zG5GrEPjXUN&)>gCs6uE?Al?kg&nJ5nN2 za+jE%#9VNllgV=#%f;l5MLC%AA~n^8fqkw+J-VVktr=>o-w3#qlw+y)jha54s={^Z zPeF7tjXcRZm{knj@XX$kQgD;PmM}M!t!%Z3@+9Q0I`ml86JBWTPIq zj-_7s5{S~Nwq_y~9G(TNbwZ?$SVtdzutp>xAuUPL-6?CiqiVO7?zK>g zEv4F&TG85BQElU>Hd`rL*zx^n@#{$<9#QY?`glDh*zvziwqU5D0&xsFM ztK?2TNb#i3mJ-|<_6R76(-_yNnW)Nzpo*Ssy3r0iS~f$RRn@Nzd- z3pN27HdPcg<4E|05R);=4eLI9u0h#boL7 zJ%q}_>|Cpnu5y%>o2V(s#7WICgH`y zzy#T~mWZ=zZ4qVDT63V(6*)%-OQ+FUquYmMnY8T4oNR zURU03D*MdrRxLOAtL9hh7GjfPYK)Inn(b}m`=UptdYviCP8FnNBck@ByCbdy~d$mX<6Ofrkp+CV|}X0wmjy0N*Wpib;ihS_$=(zK2`iQt#D zDg_sym8iX?Xlm=WrnYWtYU{S9wr;Dfbz5z%+iGjwR$J?~+FQ5P-nuPuqgu>iJKBob zyF`|xRg|+Mt>Y~zH9;JLvLdZR6y_;P$SG!cLP-r{Y$36S7?wfym9-yLKA#;d!Ff>M z&F=}pkCyUNIvI~36HwJnrWjEW-(gR8OW^!4Qn-6$LgN` zfnTOTvK6iA(b6hbVFC}H%x^L~(Xt+aE@vfjhz)byJR4DdLZa!`rY@F+$j?vIlT=ap zaypD*ZZ55*ZGSB5&>Fnjq`_-0cwOifwX+N@@6d?VujAHit8}s`tI*mEO|l8Cx^?I) z$Rf1tZIC@^jUmh$Z1P=qFlL{_EJ5pVQFfr!rC3&=HC!tj(2~kz#A11|1-GOs`_DRp zYBrl?{aHIuhrTJ>&)O4BD+;pwtdqpqeU^x``m8hBG@H-rWHO7-S^~Xs17j8Q5Rq|b z?W88zde&|Uvh+YH zVGf-bvnb3D`w&VbbIz7=R-Gk_Wz$)HQ#^~Vxj{1daFHt=+vs{-jg~%@QO_waO8-(5 zStF8}cPn?E#46X0Z7Rt)-Ks@#m1e~cQ%YcpoqkGx8V{p& z-ObXWbl6?pY)7Z!HfcL9UZNvv&O|$gg&OB#9-< zsEAx7Gnq0fx=x>iG?~bkHAyWxM~1Dl5!tyhyb+8}EGMQ}C3Y@MY)c3KA{X-Kq8u2$ z5KSXd?hF66ta4uXDQ|pJzJ!bkz=n_<7k;irxh)(8Q>#|R|GQ9?w4H3Zi457Ak_@*e zqPv53UAS!F%I`X<^fnWaUN#`JeBOLKIP(ja%`YCfbnp2qYIF8pf-mdlm(QKEq-V~G zg~IydfR+0$JOBnHzkJ1l$;i5mH*pTUC-Dq$p11%m z63hN85tqR;i7VhLaSdE2?g94_&jR-m&jx>w`1{}=5dRR|Al?f+hj?%BT;h4)`NaEx z7ZC3YUP!zMyqI_icq#ER@N(k)!21)g03SfS5_}->D)2$X2ZIkGJ{0^T;={l{CjJTd zaN;AtKP5gA{4?UCz(*4w13s4cIPlMje*r$8_yq7TiBAOoiufe($;79CPbEGLd^+*3 z!DkSk2|kPXZ16e6=Yr28J|BDm@rB@vh%W|TLVPLsGUCg@R}fzb{tfX};H!zR0bfge z9r$`;vA;JE-w3{m_-61e#J7TfOMDync8l*Iz7z7_5#I&AoA@5^?}_gP-$#5u_yOVv z!4DDt0sKeehrxd$egym|@nhh}iJt&JN&FP}Y2s(V&szK(@$-Y5Bxsy2jCBh zKLUSD{0aCU#GiscBmNxxPvS4Y|04bp{BPo~!2cos8vI}4Z@}LYua$2a`1k{`-4{y9{^rSd?0ug@j>8&i4OrEO8g`6VZ=WM|AhE(@Dap6 z1s_TLGw@NwM}vwsP2G07Q6-VIPjLlTYe$1kM)StOVC`-r9e*~C&G z$2X+D?~`2W<9LVE_rpl;Ho$uk&jIgEJQqBVcs_U^;sxM+i5G$w5ibTWAzlhzM!X!n zAMyU+6%niT=Jy4{Vo#2V*gY0}T*N6k&m5nT^ZbiQ z?j8?5A>x#rZ;sc<`96{4a=tl!Bj@`hlKWta=eVbUDW2n=2Bvt9i+GO9@f_LTXHtE# zzt19;{e3pE>~D_u$ay)JcQ?!_cWe9+~1 z(LUfyNxm=mGGfFB-OGuWfH|Io_@H|w$@c?ud}#&vDw3}RbG&I4_!^QUKIn4%=}_=> zBtHzy@hHRx-5W@b_@H|uG2(;nO~i-~x;GOa1HOg$IPk5+h!48IB}P2Zy^Z)J@a@F1 zf9@cb{c|U=>>rMAAs*=7Me?)39Pc_8d=JSH4|F;Hg?ONQFUe&;ay(4-i=6D<8lkO8Fm;0FG zZ-`I2Pmz2mnB#Fbf}bJz&ERK=Zv{U`d>i{{?*jjs81YH>C1S)U-Is|G zpLAa#Mtsu!3o+u8?yJNPga1m5_@w(9@nhiEi4mW4-ynVp{3h`;;I}OP8}ajyzfCOr z>F>m{KR6yJ`{P}b%l>$eSnS*T#A4q*AQt=fA+gxEkBFuHkBO!IPl%=ce-KOipAt*^ zpApOb`#G`PxBn!53H$}|E8u?-zY6}6_%-mqiQfQ!Mf?`{Kg2SguZd+m|0S03d_yeb z`IcD5vzi#?@v~|4dnwAN9b)LGU1Ho9=`^vFA3!YS2NI+G^dMrXZ!j^|Gd+YD>zN)( zjP*k)qr zUZ402@CL+Rf;S}o3cL~V*Wgja-+(tJUJc$PVu?SeHziJkHzOVh-kccwCq0@N_AWh! z82dXtmUs>D7R1=^>2bvCfVU(b3EqlW)@N(t4Z-7yWxci`mi3xIEbBFq82)K`5;6SK z^tQzCPt)5G!(U8qPdpwxnRo(t3h^ZHRATt6={DlY;CAAv;AzD0XVcS(r-OGOhCiF$ zk$7kDPQ<%_cP8Eq{2gNWr|DgY;h&~=C5C^R-i;XkY5KdwUEtk`bKpIQXMjCo+_&it z;u1JRJQLhWTm}2Yb#Rur7u-eM2ks{R9ymw*1Mr^24e$)&Ip93;TyTMSKDbD{09+zo z2rd&Z2G1m33a$_@2Um&r2iJ%X0N05R1osdh1nwn11U!rQN8mo&{8Qq`!ABB53H}-J)8M0sp9LRH{5<#=;upck62AmKj`$Vu&xv0J|AP26@bScN zfKMQP3;avsx4|b8zXSdi@q6Hth(7?IO#Bh}6yi_7rxJe(K8^Tu@ae=~fPYQ=CHM^D zufS&#e+@p1_#5!q#H+#QL@e>=^tr@o@Oi`o!RHeX246rt6nr7^aPURMW5E{_j{{#q zycPIT;_=|ih$nzAC!Pepf_OXdmBf?5zagFqzKXaVd^PcO@HNCcg0Cgs8GIe_F5v5l zcLU!*ygT?tVh?;1aRz*I#1h|4-x9IJchk2LcY}W$vBdk*w-Jl~d^@rD&vy`u|9oe} z63aA+9Q*+B{@@2APCo?x1Mwe` ziRnnvCjR>fGBPI%KLmG5mc*ppbq%{RGHKKdH2y`ahoD B0&@TW literal 0 HcmV?d00001 diff --git a/OpenCVLibrary/build/intermediates/incremental/debug-mergeJniLibs/merge-state b/OpenCVLibrary/build/intermediates/incremental/debug-mergeJniLibs/merge-state new file mode 100644 index 0000000000000000000000000000000000000000..b2700acd7f5c9375c51eaa644373cb9a39ba0c29 GIT binary patch literal 550 zcma)3J5B>J5S?8}f~b(V0tIR8253?tqM%3%DWV{xt-RUM;>17vi4qFVzzw(nXW=H? z0Xs_&4N~09X#8g0dwL&V&~X+n=2{Y_YO8ros=!5!mPoV>lChdwl&CxtBQEeR4eiu3 zkI=p>hl2uo)n=?r@E*>Kc#Jk$Hv(yFrB<;BfpbsCQU=eec!rrl0mnS8+%t*JLw}#W zf;%4Z@L zv0y7k1yc>3REsEkP(pXbL_n7aJ8Ki{4n`7;{J`EmAKy=0U*rI5lWvEE@1-tEyxK!z zviGmXtb`*J+bn*C>s5 ZYs!^JE3xJ=RYw + \ No newline at end of file diff --git a/OpenCVLibrary/build/intermediates/incremental/mergeDebugShaders/merger.xml b/OpenCVLibrary/build/intermediates/incremental/mergeDebugShaders/merger.xml new file mode 100644 index 0000000..cd206b5 --- /dev/null +++ b/OpenCVLibrary/build/intermediates/incremental/mergeDebugShaders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/OpenCVLibrary/build/intermediates/incremental/packageDebugAssets/merger.xml b/OpenCVLibrary/build/intermediates/incremental/packageDebugAssets/merger.xml new file mode 100644 index 0000000..afd99bf --- /dev/null +++ b/OpenCVLibrary/build/intermediates/incremental/packageDebugAssets/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/OpenCVLibrary/build/intermediates/incremental/packageDebugResources/compile-file-map.properties b/OpenCVLibrary/build/intermediates/incremental/packageDebugResources/compile-file-map.properties index 792a965..f5f7c4a 100644 --- a/OpenCVLibrary/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +++ b/OpenCVLibrary/build/intermediates/incremental/packageDebugResources/compile-file-map.properties @@ -1 +1 @@ -#Mon Oct 29 12:27:37 CST 2018 +#Mon Oct 29 17:34:54 CST 2018 diff --git a/OpenCVLibrary/build/intermediates/intermediate-jars/debug/classes.jar b/OpenCVLibrary/build/intermediates/intermediate-jars/debug/classes.jar new file mode 100644 index 0000000000000000000000000000000000000000..c5129cbc9899d9b48a146b04f92a338c92eb5dc3 GIT binary patch literal 350552 zcmb@tQ;=orwziw7^hn#b?X0wIR~nVJGb?S|w#`c0wr!iI=G^;_{h!!puCp%Ii0F6Y zrbj&e`P$c7d*!7-zo7s@LP7!o0TKRr{^y4SgbHM1Z%S`tYiw=kOfTqUZfPWBV{Kw? zN@r-P@8F=K3=0JDKYs@T`WyuUvQk*Hp5sU0UDH0tC{E^=>iaz{sMw7LZKEvSimJgR zF<+2$EY)b&q)%$G|ldwZ@(4iS^*bf-xFwy@ribCIhLG!H?xKh}Ub4nq`nm}JzTNhVF=}=hJy_AW>c}kVwK|k`T_wzpilu|)2D)0t zY#Ouavs#vj-5*PKDll6faaU7K8|zM5T4~pJJ?UZbC!^(hfny#80#8A%_O&Zvl5PFX z6-XMns}Ky$oWWR0dDC!tK8SyVO>7rPye(_68dUYcHP;U8e9|-94tML543{*l?>U=@ zWm~CJ!ef`e*965w1<%+yZ`~m(@YBsNYh3u`5$+Wj`O?aF{vGTv$zKQGSn8sgW`=x# z<)t7XQApnNx`2UzYC(X2gb)B=wqpW* z+4Fe*_SqXlso$2MtUdqAZxiYD*ITR7)!8kq`6Pb_9?&Mi`SiKOV)Rz(EhWj*? z0}8{1=H!{Ly>F-Bcy&C1a7FtAw*xvJ+Jz5S90f-v*TH{)2AqA9RnrO5GlJ_g}Xk>z z+_|_%f!QeQCQ_QqY}#($*`^fp8ArjvBXP(h#X;TMyuim}3Cnf?En%dS%+8so7`q;o z6?7puXmihhq?-+1p408_BB=aVGQqrbF$4 zmeY{Ba5Mgz38NneD7Z zeVAb@u||IMD$p`DZ^f#ud;8>8jp=F2Z_2`DRQN@x zo7UYRr4a$jIPKdoK3^321LeAqVGqKOEz)*y{!Dt49u;Tq+bRqPc`%LJ zop8aL)f-8nigcrG6Rc8Kp%#9?e)wG_F1K6ml~BY3>qlgR?Cqly(v)GJuAYB|K6IDk z-@qKU>Te+=j}??iniX;y=1FKD8piJSUE>j%DMUh(AeH%8Fl(h$OJjfeW8^K0R27w? z@2sbHI{r$!Uj`;RIWm(e_7NEaUd>XN_k-sg(u;5S5$)y;K>iZiq*-vIfn)R7`3 z-mgA?2@d?B2+Zjl5YW<}Gw(kkIHrFRoU)YzvI>fKlSF-bO%PTMn5KRrk+~)$h#$X* z6fKg>4~A(;r@_{h^&+k2_S6j-YOXzq%p0)GnQV}JS{2iG;7^L7BeJ!IxJAl|`>fwj z9lTSmN9$c*FMISr$=9J#Qs#i|I?c`DZH%gt>T>W+7TbyL2Y|KSdbgJ3rnFGs8rS9w zW2^w08em<~UXk{y%y_i>LdX^P%Gk_JOiW_vjf-!3y4n4ELXU7hBc*mT)%g@lMB+z| z?mhNw{Zd$OIasF>b&{7td{2|YNVriAiKUy6e=FJg4(?UOYMCpa6<;(94!zA#%|a|X zsv)YE(q7b&Fgq0G7mvhKBnMM9A?L|bK~SIZP(1U*LK)yPv}`P1d!;#$n;t~$Vz1Ar z;XHsu;g-k5UIatZTI^Af8IkY)JPfdiqqP}pEd<_&K0>IKJcF|n+LnP>4sc`nuBeM> zk#`JTty>}NySHFo%&m(N8x|z2yCc2QTTj|tDoK(@R{xU}L<3#+-h7Bf=_cKm)`lDU zjGx`_jtX%^)~)F*Sek`4-?+;pFTxzw6t2Iw9|2sZBO;zmHdk-=8@Pl;l6U;wV#D0@SN|0PUvs@X