camera/camera-core/src/main/java/androidx/camera/core/impl/SessionProcessor.java
/**
     * Initializes the session and returns a transformed {@link SessionConfig} which should be
     * used to configure the camera instead of original one.
     *
     * <p>Output surfaces of preview, image capture and imageAnalysis should be passed in. The
     * SessionProcessor is responsible to write the output to this given output surfaces.
     *
     * @param cameraInfo                 cameraInfo for querying the camera info
     * @param previewSurfaceConfig       output surface for preview. This is mandatory.
     * @param imageCaptureSurfaceConfig  output surface for image capture. This is mandatory.
     * @param imageAnalysisSurfaceConfig output surface for image analysis. This is optional.
     *                                   Passing null if image analysis output is not needed.
     * @return a {@link SessionConfig} that contains the surfaces and the session parameters and
     * should be used to configure the camera session.
     */
Initializes the session and returns a transformed  SessionConfig which should be
used to configure the camera instead of original one.

Output surfaces of preview, image capture and imageAnalysis should be passed in. The
SessionProcessor is responsible to write the output to this given output surfaces.

@param cameraInfo                 cameraInfo for querying the camera info
@param previewSurfaceConfig       output surface for preview. This is mandatory.
@param imageCaptureSurfaceConfig  output surface for image capture. This is mandatory.
@param imageAnalysisSurfaceConfig output surface for image analysis. This is optional.
Passing null if image analysis output is not needed.
@return a  SessionConfig that contains the surfaces and the session parameters and
should be used to configure the camera session.
Initializes the session and returns a transformed SessionConfig which should be used to configure the camera instead of original one . Output surfaces of preview image capture and imageAnalysis should be passed in . The SessionProcessor is responsible to write the output to this given output surfaces . @param cameraInfo cameraInfo for querying the camera info @param previewSurfaceConfig output surface for preview . This is mandatory . @param imageCaptureSurfaceConfig output surface for image capture . This is mandatory . @param imageAnalysisSurfaceConfig output surface for image analysis . This is optional . Passing null if image analysis output is not needed . @return a SessionConfig that contains the surfaces and the session parameters and should be used to configure the camera session .
@NonNull
    SessionConfig initSession(
            @NonNull CameraInfo cameraInfo,
            @NonNull OutputSurface previewSurfaceConfig,
            @NonNull OutputSurface imageCaptureSurfaceConfig,
            @Nullable OutputSurface imageAnalysisSurfaceConfig);
@ NonNull SessionConfig initSession ( @ NonNull CameraInfo cameraInfo , @ NonNull OutputSurface previewSurfaceConfig , @ NonNull OutputSurface imageCaptureSurfaceConfig , @ Nullable OutputSurface imageAnalysisSurfaceConfig ) ;
Initializes the session and returns a transformed {@link SessionConfig} which should be
 used to configure the camera instead of original one.
Initializes the session and returns a transformed { @link SessionConfig } which should be used to configure the camera instead of original one .