mrousavy / react-native-vision-camera

📸 A powerful, high-performance React Native Camera library.
https://react-native-vision-camera.com
MIT License
7.45k stars 1.09k forks source link

🐛 Frame Processor stops running when performing calculations #2579

Closed mfkrause closed 6 months ago

mfkrause commented 8 months ago

What's happening?

I'm trying to update some Shared Values from Reanimated (using createRunInJsFn) based on the results of a frame processor plugin and the size of the frame itself. Specifically, I'm detecting faces using a plugin (which uses MLKit) and then want to normalize the detected bounding box based on the frame and screen size.

However, the frame processor suddenly stops running after only a few frames. Console logs stop appearing and, if the result is drawn onto a Skia Canvas, that stops updating, too. The weird part: When I remove the normalization / multiplication from the code below and simply use the raw result bounding box from the plugin, the frame processor happily runs for seemingly forever. Only once I begin to multiply the bounding box with the frame size (and window size), the frame processor only runs for a few frames.

The problem is not specific to the frame processor plugin used in the reproducable code below. I could also reproduce it when using a custom model and react-native-fast-tflite.

Reproduceable Code

import { useEffect } from "react";
import { StyleSheet, View, useWindowDimensions } from "react-native";
import {
  Camera,
  runAsync,
  useCameraDevice,
  useCameraPermission,
  useFrameProcessor,
} from "react-native-vision-camera";
import { Worklets } from "react-native-worklets-core";
import {
  DetectionResult,
  detectFaces,
  Bounds as FaceBounds,
} from "react-native-vision-camera-face-detector";
import { useSharedValue } from "react-native-reanimated";

export default function App() {
  const { hasPermission, requestPermission } = useCameraPermission();
  const dimensions = useWindowDimensions();
  const cameraDevice = useCameraDevice("front");
  const faceTop = useSharedValue(0);

  const updateReanimated = Worklets.createRunInJsFn(
    (bounds: Pick<FaceBounds, "top">) => {
      faceTop.value = bounds.top;
      console.log("detection result", bounds);
    }
  );

  const frameProcessor = useFrameProcessor((frame) => {
    "worklet";
    console.log(1);
    runAsync(frame, () => {
      "worklet";
      detectFaces(
        frame,
        (result: DetectionResult) => {
          "worklet";
          console.log(2);
          const faces = Object.values(result.faces);
          if (faces.length) {
            updateReanimated({
              top: faces[0].bounds.top * (dimensions.height / frame.height), // remove the multiplication and the frame processor keeps running
            });
          } else {
            updateReanimated({ top: 0 });
          }
        },
        {
          // contourMode: "all",
        }
      );
    });
  }, []);

  useEffect(() => {
    if (!hasPermission) {
      requestPermission();
    }
  }, [hasPermission]);

  return (
    <View style={styles.container}>
      {cameraDevice && (
        <Camera
          style={{ width: "100%", height: "100%" }}
          frameProcessor={frameProcessor}
          device={cameraDevice}
          isActive={true}
          pixelFormat="yuv"
        />
      )}
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#000",
    alignItems: "center",
    justifyContent: "center",
  },
});

Relevant log output

Probably not relevant:

standard    04:07:12.427103+0100    snip    VisionCameraProxy: Creating Worklet Context...
standard    04:07:12.427392+0100    snip    VisionCameraProxy: Worklet Context Created!
standard    04:07:12.429265+0100    snip    [0x2810f5960] activating connection: mach=true listener=false peer=false name=com.apple.coremedia.capturesource
standard    04:07:12.429435+0100    snip    [0x1093b5930] activating connection: mach=false listener=false peer=false name=(anonymous)
standard    04:07:12.435590+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke_2: <private> changed... newDownplayUserPreferredCameraOverrideHistory = F (based on <private>), new user preferred camera history <private>
standard    04:07:12.435611+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: dispatching async to preferred camera property refresh queue
standard    04:07:12.435631+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _cameraHistoryDispatchQueue]_block_invoke: using main queue for refreshing camera properties
standard    04:07:12.435650+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: async dispatch to preferred camera property refresh queue returned
standard    04:07:12.435668+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: change handler for <private> returning
standard    04:07:12.435688+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: not refreshing camera properties because camera history is not set up yet.
standard    04:07:12.435708+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: <private> changed... newDownplayUserPreferredCameraOverrideHistory = F (based on <private>), new user preferred camera override history <private>
standard    04:07:12.435728+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: dispatching async to preferred camera property refresh queue
standard    04:07:12.435746+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: async dispatch to preferred camera property refresh queue returned
standard    04:07:12.435765+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: not refreshing camera properties because camera history is not set up yet.
standard    04:07:12.435836+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: change handler for <private> returning
standard    04:07:12.435858+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: <private> changed... new streaming camera history <private>
standard    04:07:12.435877+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: dispatching async to preferred camera property refresh queue
standard    04:07:12.435897+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: async dispatch to preferred camera property refresh queue returned
standard    04:07:12.436830+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: change handler for <private> returning
standard    04:07:12.436850+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: not refreshing camera properties because camera history is not set up yet.
standard    04:07:12.437915+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke: doing deferred dispatch async to preferred camera property refresh queue
standard    04:07:12.438013+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _setUpCameraHistoryOnce]_block_invoke_2: deferred async dispatch to preferred camera property refresh queue returned
standard    04:07:12.438503+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _refreshPreferredCameraProperties:]: getting current value for userPreferredCamera (allowsSuspendedPreferredCameras = F)
standard    04:07:12.446068+0100    tccd    AUTHREQ_ATTRIBUTION: msgID=1276.3, attribution={accessing={TCCDProcess: identifier=com.snip.snip, pid=1279, auid=501, euid=501, binary_path=/private/var/containers/Bundle/Application/83941ACA-E71D-4034-8382-74CE7F9A5933/snip.app/snip}, requesting={TCCDProcess: identifier=com.apple.mediaserverd, pid=1276, auid=501, euid=501, binary_path=/usr/sbin/mediaserverd}, },
standard    04:07:12.446131+0100    tccd    requestor: TCCDProcess: identifier=com.apple.mediaserverd, pid=1276, auid=501, euid=501, binary_path=/usr/sbin/mediaserverd is checking access for accessor TCCDProcess: identifier=com.snip.snip, pid=1279, auid=501, euid=501, binary_path=/private/var/containers/Bundle/Application/83941ACA-E71D-4034-8382-74CE7F9A5933/snip.app/snip
standard    04:07:12.446948+0100    tccd    AUTHREQ_SUBJECT: msgID=1276.3, subject=com.snip.snip,
standard    04:07:12.450361+0100    snip    Requesting container lookup; class = 13, identifier = <private>, group_identifier = <private>, create = 1, temp = 0, euid = 501, uid = 501
standard    04:07:12.450397+0100    snip    Query; euid = 501, uid = 501, query = <private>
standard    04:07:12.450663+0100    snip    container_query_get_single_result: success
standard    04:07:12.450757+0100    snip    container_system_group_path_for_identifier: success
standard    04:07:12.450982+0100    snip    Got system group container path from MCM for systemgroup.com.apple.configurationprofiles: /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
standard    04:07:12.454191+0100    snip    Pixel format registry initialized. Constant classes enabled.
standard    04:07:12.457221+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: current list of devices:
standard    04:07:12.457246+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457269+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457289+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457309+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457329+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457348+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457413+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457433+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457453+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457473+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457492+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457520+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: -------------
standard    04:07:12.457540+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: devices with media types <private>:
standard    04:07:12.457561+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457578+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457597+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457617+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457637+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457655+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457675+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457695+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457715+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457732+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457752+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: -------------
standard    04:07:12.457772+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: 4. returning first available entry in streamingCameraHistory because it is a member of devicesWithMediaType and has suitable suspended state: <private>[F]
standard    04:07:12.457792+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _refreshPreferredCameraProperties:]: getting current value for systemPreferredCamera (allowsSuspendedPreferredCameras = F)
standard    04:07:12.457812+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: current list of devices:
standard    04:07:12.457830+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457849+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457869+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457889+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457906+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457926+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.457986+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458005+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458048+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458076+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458103+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458126+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: -------------
standard    04:07:12.458146+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: devices with media types <private>:
standard    04:07:12.458165+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458184+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458204+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458224+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458242+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458261+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458280+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458298+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458317+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458340+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: <private>
standard    04:07:12.458372+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: -------------
standard    04:07:12.458393+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _defaultDeviceWithDeviceType:mediaTypes:position:cameraOverrideHistoryAllowed:cameraOverrideHistorySuspendedAllowed:wombatsMustBeMagic:userPreferredCameraHistorySuspendedAllowed:invalidSpecialDeviceTypes:]: 4. returning first available entry in streamingCameraHistory because it is a member of devicesWithMediaType and has suitable suspended state: <private>[F]
standard    04:07:12.459089+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _refreshPreferredCameraProperties:]: userPreferredCameraChanged T, resolved userPreferredCamera = <AVCaptureFigVideoDevice: 0x10b264200 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>, current sUserPreferredCamera = (null)
standard    04:07:12.459109+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _refreshPreferredCameraProperties:]: systemPreferredCameraChanged T, resolved systemPreferredCamera = <AVCaptureFigVideoDevice: 0x10b264200 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>, current sSystemPreferredCamera = (null)
standard    04:07:12.459129+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _refreshPreferredCameraProperties:]: changing sUserPreferredCamera from (null) to <AVCaptureFigVideoDevice: 0x10b264200 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>
standard    04:07:12.459148+0100    snip    <<<< AVCaptureFigVideoDevice >>>> +[AVCaptureFigVideoDevice _refreshPreferredCameraProperties:]: changing sSystemPreferredCamera from (null) to <AVCaptureFigVideoDevice: 0x10b264200 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>
standard    04:07:12.506026+0100    snip    Looking up Frame Processor Plugin "detectFaces"...
standard    04:07:12.506045+0100    snip    Frame Processor Plugin "detectFaces" found! Initializing...
standard    04:07:12.507659+0100    snip    [0x28158e300] activating connection: mach=true listener=false peer=false name=com.apple.lsd.mapdb
standard    04:07:12.512382+0100    snip    Received configuration update from daemon (initial)
standard    04:07:12.635189+0100    runningboardd   Invalidating assertion 32-1279-19470 (target:[app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279]) from originator [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279]
standard    04:07:12.649827+0100    SpringBoard [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279] Now acquiring workspace assertion with state: ForegroundFocal.
standard    04:07:12.651742+0100    runningboardd   Acquiring assertion targeting [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279] from originator [osservice<com.apple.SpringBoard>:33] with description <RBSAssertionDescriptor| "FBWorkspace (ForegroundFocal)" ID:32-33-19478 target:1279 attributes:[
    <RBSDomainAttribute| domain:"com.apple.frontboard" name:"Workspace-ForegroundFocal" sourceEnvironment:"(null)">,
    <RBSAcquisitionCompletionAttribute| policy:AfterApplication>,
    <RBSDomainAttribute| domain:"com.apple.frontboard" name:"Visibility" sourceEnvironment:"(null)">
    ]>
standard    04:07:12.651803+0100    runningboardd   Assertion 32-33-19478 (target:[app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279]) will be created as active
standard    04:07:12.652909+0100    runningboardd   Calculated state for app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>: running-active (role: UserInteractiveFocal)
standard    04:07:12.653125+0100    runningboardd   Process: [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279] has changes in inheritances: {(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19466 0>,
    <RBSInheritance| environment:UIScene:com.apple.frontboard.systemappservices::FBSceneManager:sceneID%3Acom.snip.snip-default name:com.apple.frontboard.visibility origID:32-33-19471 payload 5656303167222798068>,
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19478 0>
)}
standard    04:07:12.653306+0100    runningboardd   Current inheritances: {(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19466 0>,
    <RBSInheritance| environment:UIScene:com.apple.frontboard.systemappservices::FBSceneManager:sceneID%3Acom.snip.snip-default name:com.apple.frontboard.visibility origID:32-33-19471 payload 5656303167222798068>
)}
standard    04:07:12.653487+0100    runningboardd   Process: [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279]: Sending inheritance changeset: <RBSInheritanceChangeSet| gained:{(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19478 0>
)} lost:{(
)}>
standard    04:07:12.653693+0100    snip    Gained inheritances: {(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19478 0>
)}
standard    04:07:12.653702+0100    snip    Received inheritances: {(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19478 0>
)}
standard    04:07:12.654105+0100    SpringBoard [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279] Dropping launch assertion.
standard    04:07:12.654652+0100    runningboardd   Invalidating assertion 32-33-19466 (target:app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>) from originator [osservice<com.apple.SpringBoard>:33]
standard    04:07:12.655942+0100    SpringBoard Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.656517+0100    backboardd  Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.656564+0100    CommCenter  Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.656929+0100    IDSCredentialsAgent Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.657027+0100    audiomxd    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.657776+0100    gamepolicyd Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-NotVisible
standard    04:07:12.658153+0100    symptomsd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.658637+0100    nsurlsessiond   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.658911+0100    itunesstored    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.659281+0100    WirelessRadioManagerd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.659785+0100    dasd    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.660048+0100    useractivityd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.660475+0100    locationd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.660571+0100    snip    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, unknown-NotVisible
standard    04:07:12.660594+0100    wifid   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.660964+0100    PerfPowerServices   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.661092+0100    watchdogd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.661217+0100    UserEventAgent  Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.672769+0100    snip    [0x2810833a0] activating connection: mach=true listener=false peer=false name=com.apple.tccd
standard    04:07:12.673095+0100    tccd    AUTHREQ_ATTRIBUTION: msgID=1279.1, attribution={requesting={TCCDProcess: identifier=com.snip.snip, pid=1279, auid=501, euid=501, binary_path=/private/var/containers/Bundle/Application/83941ACA-E71D-4034-8382-74CE7F9A5933/snip.app/snip}, },
standard    04:07:12.673597+0100    tccd    AUTHREQ_SUBJECT: msgID=1279.1, subject=com.snip.snip,
standard    04:07:12.673837+0100    snip    [0x2810833a0] invalidated after the last release of the connection object
standard    04:07:12.680851+0100    snip    [0x2810833a0] activating connection: mach=true listener=false peer=false name=com.apple.coremedia.capturesession
standard    04:07:12.681284+0100    mediaserverd    <<<< FigCaptureSession >>>> FigCaptureSessionCreate: <0x932fec000[1279][com.snip.snip]> New session created.
standard    04:07:12.681531+0100    mediaserverd    <<<< FigCaptureClientApplicationStateMonitor >>>> -[FigCaptureClientApplicationStateMonitor _initWithClient:]: Creating for pid: 1279, ID: com.snip.snip, clientType: Application
standard    04:07:12.681937+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession init]: (0x282bffe80)
standard    04:07:12.682137+0100    mediaserverd    <<<< FigCaptureSession >>>> FigCaptureSessionCreate: <0x932fec900[1279][com.snip.snip]> New session created.
standard    04:07:12.682202+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession init]: (0x282bbc110)
standard    04:07:12.682456+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession beginConfiguration]: (0x282bffe80)
standard    04:07:12.682478+0100    mediaserverd    <<<< FigCaptureClientApplicationStateMonitor >>>> -[FigCaptureClientApplicationStateMonitor _initWithClient:]: Creating for pid: 1279, ID: com.snip.snip, clientType: Application
standard    04:07:12.682502+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bffe80) updated beginConfigRefCount 1
standard    04:07:12.682590+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession commitConfiguration]: (0x282bffe80)
standard    04:07:12.682616+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bffe80) updated beginConfigRefCount 0
standard    04:07:12.682638+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) called. skipConfig: 0
standard    04:07:12.682853+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) New fcs config(1)
standard    04:07:12.682878+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) Setting fcs config(1) FigCaptureSessionConfiguration 0x283c87740: ID 1, AVCaptureSessionPresetHigh multiCam: 0, appAudio: 1, autoConfig: 1, runWhileMultitasking: 0, checkIfFileAlreadyExistForMFO: 1
standard    04:07:12.683073+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_SetConfiguration: <0x932fec000[1279][com.snip.snip]> New configuration: FigCaptureSessionConfiguration 0x9345382c0: ID 1, AVCaptureSessionPresetHigh multiCam: 0, appAudio: 1, autoConfig: 1, runWhileMultitasking: 0, checkIfFileAlreadyExistForMFO: 1
standard    04:07:12.683100+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_updateRunningCondition: <0x932fec000[1279][com.snip.snip]> ClientStartedSession:0 Cam/Audio:0/0 bg:0 prewarming:0 int:0 multitasking:0 pip:0 devStolen:0 pressured:0 active:0 shouldRun:0 start:0 stop:0
standard    04:07:12.695127+0100    audiomxd    -CMSessionMgr- CMSessionMgrHandleApplicationStateChange:15837 Client com.snip.snip with session (null) [0x0] with pid '1279' is now Foreground Running. Background entitlement: NO ActiveLongFormVideoSession: NO IsLongFormVideoApp NO
standard    04:07:12.695148+0100    audiomxd    -CMSessionMgr- CMSessionMgrHandleApplicationStateChange: Client com.snip.snip with pid '1279' moved to ForegroundRunning and is not allowed to play in the background
standard    04:07:12.696588+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[kUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.696649+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[k3rdPartyUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.697185+0100    audiomxd    SpatializationManager.cpp:183   Spatial info for session ID = 0x6d2ed: {
    App bundle ID = com.snip.snip
    Route = built-in speakers
    contentType = 'soun'
    overrideSpatialMode = 0
    preferencesVersion = 1

    Spatial preferences: {
        prefersHeadTrackedSpatialization = 0
        prefersLossyAudioSources = 0
        maxSpatializableChannels = 16
        alwaysSpatialize = 0
        spatialAudioSourceCount = 1
        spatialAudioSources = [ 'mlti' ]
    }
}
standard    04:07:12.697304+0100    audiomxd      ServerSessionManager.mm:236   { "action":"create_session", "session":{"ID":"0x6d2ed","name":"snip(1279)"}, "details":{"PID":1279,"session_type":"Primary"} }
standard    04:07:12.697882+0100    audiomxd      ServerSessionManager.mm:887   Start process monitoring, pid = 1279, name = snip
standard    04:07:12.699256+0100    audiomxd    -MXSession- -[MXSession(InterfaceImpl) initWithSession:]: Creating MXSession = <ID: 6d4, CoreSessionID = 464 Name = sid:0x6d2ed, snip(1279), 'prim', Muted = NO, ClientIsPlaying = STOPPED, AudioToolboxIsPlaying = STOPPED, MutePriority = MutePriority_Two, PiP = NO, DoesntActuallyPlayAudio = NO, clientType = 1, IsPlayingOutput = NO
standard    04:07:12.699295+0100    audiomxd    -MXSession- -[MXSession(InternalUse) setClientType:]: MXSession with ID 6d4 for CoreSession sid:0x6d2ed, snip(1279), 'prim' setting ClientType = None
standard    04:07:12.699799+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[kUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.699857+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[k3rdPartyUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.700165+0100    audiomxd    SpatializationManager.cpp:183   Spatial info for session ID = 0x6d2ee: {
    App bundle ID = com.snip.snip
    Route = built-in speakers
    contentType = 'soun'
    overrideSpatialMode = 0
    preferencesVersion = 1

    Spatial preferences: {
        prefersHeadTrackedSpatialization = 0
        prefersLossyAudioSources = 0
        maxSpatializableChannels = 16
        alwaysSpatialize = 0
        spatialAudioSourceCount = 1
        spatialAudioSources = [ 'mlti' ]
    }
}
standard    04:07:12.700258+0100    audiomxd      ServerSessionManager.mm:236   { "action":"create_session", "session":{"ID":"0x6d2ee","name":"mediaserverd(1276)","sibling_of":"0x6d2ed snip(1279)"}, "details":{"PID":1276,"name":"FigCaptureClient-1279","session_type":"Sibling","source_session_ID":"0x6d2ed","source_session_PID":1279} }
standard    04:07:12.701324+0100    audiomxd    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.703171+0100    mediaserverd    <<<< FigCaptureClientApplicationStateMonitor >>>> -[FigCaptureClientApplicationStateMonitor _updateClientStateCondition:newValue:]: <0x9349ad720[1279][com.snip.snip]> Updating client state condition "_bksApplicationState" with new value "ForegroundRunning"
standard    04:07:12.703408+0100    mediaserverd    <<<< FigCaptureClientApplicationStateMonitor >>>> -[FigCaptureClientApplicationStateMonitor _updateClientStateCondition:newValue:]: <0x9349ad720[1279][com.snip.snip]> Updating client state condition "_layoutState" with new value "Fullscreen"
standard    04:07:12.703433+0100    mediaserverd    <<<< FigCaptureClientApplicationStateMonitor >>>> -[FigCaptureClientApplicationStateMonitor _updateClientStateCondition:newValue:]: <0x9349ad720[1279][com.snip.snip]> Updating client with application state "Foregrounded" and layout state "Fullscreen"
standard    04:07:12.703460+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_updateRunningCondition: <0x932fec000[1279][com.snip.snip]> ClientStartedSession:0 Cam/Audio:0/0 bg:0 prewarming:0 int:0 multitasking:0 pip:0 devStolen:0 pressured:0 active:0 shouldRun:0 start:0 stop:0
standard    04:07:12.709561+0100    audiomxd    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.710664+0100    audiomxd    -MXSession- -[MXSession(InterfaceImpl) initWithSession:]: Creating MXSession = <ID: 6d6, CoreSessionID = 464 Name = sid:0x6d2ed, snip(1279), 'prim', Muted = NO, ClientIsPlaying = STOPPED, AudioToolboxIsPlaying = STOPPED, MutePriority = MutePriority_Two, PiP = NO, DoesntActuallyPlayAudio = NO, clientType = 1, IsPlayingOutput = NO
standard    04:07:12.710724+0100    audiomxd    -MXSession- -[MXSession(InternalUse) setClientType:]: MXSession with ID 6d6 for CoreSession sid:0x6d2ed, snip(1279), 'prim' setting ClientType = None
standard    04:07:12.710930+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[kUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.710949+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[k3rdPartyUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.711129+0100    audiomxd    SpatializationManager.cpp:183   Spatial info for session ID = 0x6d2f0: {
    App bundle ID = com.snip.snip
    Route = built-in speakers
    contentType = 'soun'
    overrideSpatialMode = 0
    preferencesVersion = 1

    Spatial preferences: {
        prefersHeadTrackedSpatialization = 0
        prefersLossyAudioSources = 0
        maxSpatializableChannels = 16
        alwaysSpatialize = 0
        spatialAudioSourceCount = 1
        spatialAudioSources = [ 'mlti' ]
    }
}
standard    04:07:12.711193+0100    audiomxd      ServerSessionManager.mm:236   { "action":"create_session", "session":{"ID":"0x6d2f0","name":"mediaserverd(1276)","sibling_of":"0x6d2ed snip(1279)"}, "details":{"PID":1276,"name":"FigCaptureClient-1279","session_type":"Sibling","source_session_ID":"0x6d2ed","source_session_PID":1279} }
standard    04:07:12.712002+0100    mediaserverd    <<<< FigCaptureClientApplicationStateMonitor >>>> -[FigCaptureClientApplicationStateMonitor _updateClientStateCondition:newValue:]: <0x9349ae800[1279][com.snip.snip]> Updating client state condition "_bksApplicationState" with new value "ForegroundRunning"
standard    04:07:12.712063+0100    mediaserverd    <<<< FigCaptureClientApplicationStateMonitor >>>> -[FigCaptureClientApplicationStateMonitor _updateClientStateCondition:newValue:]: <0x9349ae800[1279][com.snip.snip]> Updating client state condition "_layoutState" with new value "Fullscreen"
standard    04:07:12.712084+0100    mediaserverd    <<<< FigCaptureClientApplicationStateMonitor >>>> -[FigCaptureClientApplicationStateMonitor _updateClientStateCondition:newValue:]: <0x9349ae800[1279][com.snip.snip]> Updating client with application state "Foregrounded" and layout state "Fullscreen"
standard    04:07:12.712106+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_updateRunningCondition: <0x932fec900[1279][com.snip.snip]> ClientStartedSession:0 Cam/Audio:0/0 bg:0 prewarming:0 int:0 multitasking:0 pip:0 devStolen:0 pressured:0 active:0 shouldRun:0 start:0 stop:0
standard    04:07:12.734091+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession beginConfiguration]: (0x282bffe80)
standard    04:07:12.734199+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bffe80) updated beginConfigRefCount 1
standard    04:07:12.734632+0100    snip    TCP Conn [7:0x2818c1b80] using empty proxy configuration
standard    04:07:12.734652+0100    snip    Stream client bypassing proxies on TCP Conn [7:0x2818c1b80]
standard    04:07:12.734672+0100    snip    TCP Conn 0x2818c1b80 started
standard    04:07:12.734781+0100    snip    [0x2810b4540] activating connection: mach=true listener=false peer=false name=com.apple.coremedia.systemcontroller.xpc
standard    04:07:12.734802+0100    snip    [C7 FDEE1760-B1EC-40E1-985D-5F362C42CDCA IPv4#d9b62234:8081 tcp, definite, attribution: developer, context: Default Network Context (private), proc: 9C7208C0-D0A7-3349-9124-F5D6F322FD64, no proxy, prohibit fallback, allow socket access] start
standard    04:07:12.734848+0100    snip    [C7 IPv4#d9b62234:8081 initial parent-flow ((null))] event: path:start @0.000s
standard    04:07:12.734925+0100    snip    [C7 IPv4#d9b62234:8081 waiting parent-flow (satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, dns, uses wifi)] event: path:satisfied @0.000s, uuid: 0016A002-837C-4393-865A-8ED66E50410E
standard    04:07:12.735054+0100    snip    nw_socket_initialize_socket [C7:1] Not guarding fd 26
standard    04:07:12.735117+0100    snip    [C7 IPv4#d9b62234:8081 in_progress socket-flow (satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, dns, uses wifi)] event: flow:start_connect @0.000s
standard    04:07:12.735199+0100    snip    nw_connection_report_state_with_handler_on_nw_queue [C7] reporting state preparing
standard    04:07:12.735547+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession addInput:]: (0x282bffe80) <AVCaptureDeviceInput: 0x2829c3460 [Front Camera]>
standard    04:07:12.735568+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bffe80) updated beginConfigRefCount 2
standard    04:07:12.735862+0100    snip    [0x2815b8500] activating connection: mach=true listener=false peer=false name=com.apple.audio.AudioSession
standard    04:07:12.736521+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bffe80) updated beginConfigRefCount 1
standard    04:07:12.736571+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) called. skipConfig: 1
standard    04:07:12.736612+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.736632+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.736650+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.736670+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.737024+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bffe80) updated beginConfigRefCount 2
standard    04:07:12.737168+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bffe80) updated beginConfigRefCount 1
standard    04:07:12.737188+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) called. skipConfig: 1
standard    04:07:12.737226+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.737246+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.737329+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bffe80) updated beginConfigRefCount 2
standard    04:07:12.737349+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bffe80) updated beginConfigRefCount 1
standard    04:07:12.737369+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) called. skipConfig: 1
standard    04:07:12.737407+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.737426+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.737447+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bffe80) updated beginConfigRefCount 2
standard    04:07:12.737466+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bffe80) updated beginConfigRefCount 1
standard    04:07:12.737505+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) called. skipConfig: 1
standard    04:07:12.737545+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.737564+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.737582+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bffe80) updated beginConfigRefCount 2
standard    04:07:12.737602+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bffe80) updated beginConfigRefCount 1
standard    04:07:12.737622+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) called. skipConfig: 1
standard    04:07:12.737732+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveFormat:resetVideoZoomFactorAndMinMaxFrameDurations:sessionPreset:]: format:<AVCaptureDeviceFormat: 0x282b8d410 'vide'/'420f' 1920x1080, { 1- 30 fps}, photo dims:{1920x1080,4032x2268}, fov:73.699, supports vis (max strength:Low), max zoom:128.88 (upscales @1.91), AF System:2, ISO:20.0-1920.0, SS:0.000039-1.000000, supports HDR, supports wide color, supports multicam, supports high photo quality, supports Portrait Effect, supports Studio Lighting, supports Reactions> preset:AVCaptureSessionPresetHigh
standard    04:07:12.737772+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.737818+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.737852+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.737883+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.737950+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession commitConfiguration]: (0x282bffe80)
standard    04:07:12.737996+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bffe80) updated beginConfigRefCount 0
standard    04:07:12.738038+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) called. skipConfig: 0
standard    04:07:12.738100+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.738118+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.744894+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[kUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.744916+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[k3rdPartyUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.745066+0100    audiomxd    SpatializationManager.cpp:183   Spatial info for session ID = 0x6d2f1: {
    App bundle ID = com.snip.snip
    Route = built-in speakers
    contentType = 'soun'
    overrideSpatialMode = 0
    preferencesVersion = 1

    Spatial preferences: {
        prefersHeadTrackedSpatialization = 0
        prefersLossyAudioSources = 0
        maxSpatializableChannels = 16
        alwaysSpatialize = 0
        spatialAudioSourceCount = 1
        spatialAudioSources = [ 'mlti' ]
    }
}
standard    04:07:12.745110+0100    audiomxd      ServerSessionManager.mm:236   { "action":"create_session", "session":{"ID":"0x6d2f1","name":"snip(1279)","type":"Auxiliary"}, "details":{"PID":1279,"session_type":"Auxiliary"} }
standard    04:07:12.745312+0100    audiomxd      ServerSessionManager.mm:733   Success - added newly-created session (sid:0x6d2f1, snip(1279), 'auxi') to app instance ({"name":"[implicit] snip","pid":1279})
standard    04:07:12.748480+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) New fcs config(2)
standard    04:07:12.748522+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) Setting fcs config(2) FigCaptureSessionConfiguration 0x283cb7880: ID 2, AVCaptureSessionPresetHigh multiCam: 0, appAudio: 1, autoConfig: 1, runWhileMultitasking: 0, checkIfFileAlreadyExistForMFO: 1
    VC 0x280db4f00: <SRC:Wide front 420f/1920x1080, 30-30(max:30), Z:1.00, ICM:0, (FD E:0 B:0 S:0), HR:1, GS: 1, FaceDrivenAEAFMode:3, FaceDrivenAEAFEnabledByDefault:1, cameraMountedInLandscape: YES> -> <SINK 0x2802beca0:VideoPreview depth:0 filters:0 [] PrimaryCaptureRectModification:0, Aspect:0.000:1, Center:0.500 0.500, UniqueID:0 ZoomPIP:0 PortraitAutoSuggest:0>, /0x0, E:1, VIS:0, M:1, O:Unspecified, DOC:0, RBC:0, CIM:0
    VC 0x280db4ba0: <SRC:Wide front 420f/1920x1080, 30-30(max:30), Z:1.00, ICM:0, (FD E:0 B:0 S:0), HR:1, GS: 1, FaceDrivenAEAFMode:3, FaceDrivenAEAFEnabledByDefault:1, cameraMountedInLandscape: YES> -> <SINK 0x2827f8c60:VideoData discards:1, preview:0, stability:0, requestedBufferAttachments.count:0>, 420f/1080x1920, E:1, VIS:0, M:1, O:Portrait, DOC
standard    04:07:12.748604+0100    snip        AVAudioSession_iOS.mm:1579  Created session 0x282bb0350 with ID: 0x6d2f1
standard    04:07:12.748686+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession startRunning]: (0x282bffe80) (pthread:0x16f0cb000)
standard    04:07:12.748709+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) called. skipConfig: 0
standard    04:07:12.748903+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMinFrameDurationInternal:]: MinFrameDuration to set 1 / 30
standard    04:07:12.748960+0100    snip    <<<< AVCaptureFigVideoDevice >>>> -[AVCaptureFigVideoDevice _setActiveVideoMaxFrameDurationInternal:]: MaxFrameDuration to set 1 / 30
standard    04:07:12.749927+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_SetConfiguration: <0x932fec000[1279][com.snip.snip]> New configuration: FigCaptureSessionConfiguration 0x934538880: ID 2, AVCaptureSessionPresetHigh multiCam: 0, appAudio: 1, autoConfig: 1, runWhileMultitasking: 0, checkIfFileAlreadyExistForMFO: 1
    VC 0x934933cc0: <SRC:Wide front 420f/1920x1080, 30-30(max:30), Z:1.00, ICM:0, (FD E:0 B:0 S:0), HR:1, GS: 1, FaceDrivenAEAFMode:3, FaceDrivenAEAFEnabledByDefault:1, cameraMountedInLandscape: YES> -> <SINK 0x935ed8cb0:VideoPreview depth:0 filters:0 [] Portrait Lighting effect strength: 0.0 PrimaryCaptureRectModification:0, Aspect:0.000:1, Center:0.500 0.500, UniqueID:0 ZoomPIP:0 PortraitAutoSuggest:0>, /0x0, E:1, VIS:0, M:1, O:Unspecified, DOC:0, RBC:0, CIM:0
    VC 0x934933de0: <SRC:Wide front 420f/1920x1080, 30-30(max:30), Z:1.00, ICM:0, (FD E:0 B:0 S:0), HR:1, GS: 1, FaceDrivenAEAFMode:3, FaceDrivenAEAFEnabledByDefault:1, cameraMountedInLandscape: YES> -> <SINK 0x932ded5f0:VideoData discards:1, preview:0, stability:0, requestedBufferAttachments.cou
standard    04:07:12.749974+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_updateRunningCondition: <0x932fec000[1279][com.snip.snip]> ClientStartedSession:0 Cam/Audio:1/0 bg:0 prewarming:0 int:0 multitasking:0 pip:0 devStolen:0 pressured:0 active:0 shouldRun:0 start:0 stop:0
standard    04:07:12.750586+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bffe80) New fcs config(3)
standard    04:07:12.750884+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_StartRunning: <0x932fec000[1279][com.snip.snip]> Called
standard    04:07:12.750909+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_updateRunningCondition: <0x932fec000[1279][com.snip.snip]> ClientStartedSession:1 Cam/Audio:1/0 bg:0 prewarming:0 int:0 multitasking:0 pip:0 devStolen:0 pressured:0 active:0 shouldRun:1 start:1 stop:0
standard    04:07:12.751244+0100    audiomxd     AudioSessionServerImp.mm:694   { "action":"set_property", "session":{"ID":"0x6d2f1","name":"snip(1279)","type":"Auxiliary"}, "details":{"key":"AudioCategory","value":["PlayAndRecord"]} }
standard    04:07:12.751477+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_updateRunningCondition: <0x932fec000[1279][com.snip.snip]> Will start session (client requested: 1)
standard    04:07:12.751502+0100    audiomxd    -MXSession- -[MXSession(InterfaceImpl) setOrderedPropertiesInternal:usingErrorHandlingStrategy:outPropertiesErrors:]: Session 'sid:0x6d2f1, snip(1279), 'auxi'' is setting ordered properties batch
standard    04:07:12.751796+0100    audiomxd    -CMSessionMgr- cmsSetAudioCategory: Client 'sid:0x6d2f1, snip(1279), 'auxi'' [0x534ec5500] set audioCategory to 'PlayAndRecord'
standard    04:07:12.751820+0100    audiomxd    -CMSessionMgr- cmsSetControlFlags: Session 'sid:0x6d2f1, snip(1279), 'auxi'' setting control flags: required = Volume_Routing, desired = 0
standard    04:07:12.751863+0100    audiomxd    -CMSMNotificationUtilities- CMSMNotificationUtility_PostSessionAudioCategoryDidChange_block_invoke: Posting AudioCategoryDidChange to session 'sid:0x6d2f1, snip(1279), 'auxi'', AudioCategory changed to 'PlayAndRecord'
standard    04:07:12.752912+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[kUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.752933+0100    audiomxd       AudioToolboxServers.mm:855   ================= -> RoutingBehaviorChanged process 'sid:0x6d2f1, snip(1279), 'auxi'' =================
standard    04:07:12.753241+0100    audiomxd       AudioToolboxServers.mm:864   ================= <- RoutingBehaviorChanged process 'sid:0x6d2f1, snip(1279), 'auxi'' =================
standard    04:07:12.753325+0100    audiomxd    SpatializationManager.cpp:627   Returning cached value mEntitlementsCache[k3rdPartyUntrackedHeadphoneEntitlement][com.snip.snip] = 0
standard    04:07:12.753621+0100    runningboardd   Calculated state for app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>: running-active (role: UserInteractiveFocal)
standard    04:07:12.753892+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_transitionToSessionStatus: <0x932fec000[1279][com.snip.snip]> Idle -> Starting Running
standard    04:07:12.754082+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_commitInflightConfiguration: <0x932fec000[1279][com.snip.snip]> committing configuration FigCaptureSessionConfiguration 0x934538880: ID 2, AVCaptureSessionPresetHigh multiCam: 0, appAudio: 1, autoConfig: 1, runWhileMultitasking: 0, checkIfFileAlreadyExistForMFO: 1
    VC 0x934933cc0: <SRC:Wide front 420f/1920x1080, 30-30(max:30), Z:1.00, ICM:0, (FD E:0 B:0 S:0), HR:1, GS: 1, FaceDrivenAEAFMode:3, FaceDrivenAEAFEnabledByDefault:1, cameraMountedInLandscape: YES> -> <SINK 0x935ed8cb0:VideoPreview depth:0 filters:0 [] Portrait Lighting effect strength: 0.0 PrimaryCaptureRectModification:0, Aspect:0.000:1, Center:0.500 0.500, UniqueID:0 ZoomPIP:0 PortraitAutoSuggest:0>, /1080x1920, E:1, VIS:0, M:1, O:Portrait, DOC:0, RBC:0, CIM:0
    VC 0x934933de0: <SRC:Wide front 420f/1920x1080, 30-30(max:30), Z:1.00, ICM:0, (FD E:0 B:0 S:0), HR:1, GS: 1, FaceDrivenAEAFMode:3, FaceDrivenAEAFEnabledByDefault:1, cameraMountedInLandscape: YES> -> <SINK 0x932ded5f0:VideoData discards:1, preview:0, stability:0, requestedBufferA
standard    04:07:12.754105+0100    audiomxd    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.754507+0100    runningboardd   Process: [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279] has changes in inheritances: {(
    <RBSInheritance| environment:UIScene:com.apple.frontboard.systemappservices::FBSceneManager:sceneID%3Acom.snip.snip-default name:com.apple.frontboard.visibility origID:32-33-19471 payload 5656303167222798068>,
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19478 0>
)}
standard    04:07:12.754621+0100    runningboardd   Current inheritances: {(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19466 0>,
    <RBSInheritance| environment:UIScene:com.apple.frontboard.systemappservices::FBSceneManager:sceneID%3Acom.snip.snip-default name:com.apple.frontboard.visibility origID:32-33-19471 payload 5656303167222798068>,
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19478 0>
)}
standard    04:07:12.754707+0100    SpringBoard Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.754847+0100    audiomxd    SpatializationManager.cpp:183   Spatial info for session ID = 0x6d2f1: {
    App bundle ID = com.snip.snip
    Route = built-in speakers
    contentType = 'soun'
    overrideSpatialMode = 0
    preferencesVersion = 1

    Spatial preferences: {
        prefersHeadTrackedSpatialization = 0
        prefersLossyAudioSources = 0
        maxSpatializableChannels = 16
        alwaysSpatialize = 0
        spatialAudioSourceCount = 1
        spatialAudioSources = [ 'mlti' ]
    }
}
standard    04:07:12.754960+0100    snip    nw_socket_handle_socket_event [C7:1] Socket received CONNECTED event
standard    04:07:12.755162+0100    snip    nw_flow_connected [C7 IPv4#d9b62234:8081 in_progress socket-flow (satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, dns, uses wifi)] Output protocol connected (socket)
standard    04:07:12.755328+0100    snip    Lost inheritances: {(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19466 0>
)}
standard    04:07:12.755348+0100    snip    Lost inheritances: {(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19466 0>
)}
standard    04:07:12.757400+0100    audiomxd    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.758897+0100    powerd  Process runningboardd.32 Released SystemIsActive "app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>32-33-19466:FBApplicationProcess" age:00:00:01  id:51539646165 [System: PrevIdle SysAct]
standard    04:07:12.760188+0100    runningboardd   Process: [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279]: Sending inheritance changeset: <RBSInheritanceChangeSet| gained:{(
)} lost:{(
    <RBSInheritance| environment:(none) name:com.apple.frontboard.visibility origID:32-33-19466 0>
)}>
standard    04:07:12.760327+0100    CommCenter  Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.761303+0100    backboardd  Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.761347+0100    snip    [C7 IPv4#d9b62234:8081 ready socket-flow (satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, dns, uses wifi)] event: flow:finish_connect @0.013s
standard    04:07:12.761522+0100    snip    nw_connection_report_state_with_handler_on_nw_queue [C7] reporting state ready
standard    04:07:12.761586+0100    snip    [C7 IPv4#d9b62234:8081 ready socket-flow (satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, dns, uses wifi)] event: flow:changed_viability @0.018s
standard    04:07:12.761707+0100    snip    TCP Conn 0x2818c1b80 event 1. err: 0
standard    04:07:12.761748+0100    snip    TCP Conn 0x2818c1b80 complete. fd: 27, err: 0
standard    04:07:12.762850+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_startMonitoringForFigAssetWriterWritingVideoNotificationIfNecessary: <0x932fec000[1279][com.snip.snip]> Monitoring for <private>
standard    04:07:12.763005+0100    IDSCredentialsAgent Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.763048+0100    gamepolicyd Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-NotVisible
standard    04:07:12.763215+0100    symptomsd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.763354+0100    nsurlsessiond   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.763452+0100    itunesstored    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.763552+0100    WirelessRadioManagerd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.763649+0100    dasd    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.763829+0100    useractivityd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.763849+0100    wifid   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.764292+0100    locationd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.764353+0100    UserEventAgent  Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.764378+0100    snip    Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, unknown-NotVisible
standard    04:07:12.764583+0100    watchdogd   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.764647+0100    PerfPowerServices   Received state update for 1279 (app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>, running-active-Visible
standard    04:07:12.878375+0100    SpringBoard Adding sensor usage data for CAMERA [bundle:com.snip.snip display:snip executableDisplayName:snip attributionGroup:com.snip.snip domain:(null) recently:NO]
standard    04:07:12.878398+0100    SpringBoard <<<< AVControlCenterModules >>>> AVControlCenterModulesShouldBeShownForBundleID: called for bundleID: com.snip.snip
standard    04:07:12.878504+0100    SpringBoard <<<< AVControlCenterModules >>>> AVControlCenterModulesShouldBeShownForBundleID: com.snip.snip active:0
standard    04:07:12.878556+0100    SpringBoard Setting visibility of AV modules to NO for bundle identifer com.snip.snip
standard    04:07:12.878823+0100    SpringBoard [Recording Indicator] Active camera/microphone activity changed:
{(
    <SBSensorActivityAttribution: 0x280fc0330; displayName: snip; bundleIdentifier: com.snip.snip; website-non-nil: NO; isSystemService: NO; sensor: camera>
)}
standard    04:07:12.879826+0100    SpringBoard [SensorActivity][PIPWindowHidden] Interrupting PIP for camera activity: attribution[<SBSensorActivityAttribution: 0x280fc0330; displayName: snip; bundleIdentifier: com.snip.snip; website-non-nil: NO; isSystemService: NO; sensor: camera>] bundleIdentifier[com.snip.snip]
standard    04:07:12.879846+0100    SpringBoard [Assertions] Interrupting for assertion: <SBPIPInterruptionAssertion: 0x2801f8e00; identifier: SBPIPController-com.snip.snip; reason: SBPIPBehaviorOverrideReasonCameraSensorActivity; valid: YES; camera sensor bundle identifier: com.snip.snip>
standard    04:07:12.880712+0100    SpringBoard -[PGPictureInPictureController pictureInPictureInterruptionBeganWithReason:attribution:] camera com.snip.snip
standard    04:07:12.918050+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_transitionToSessionStatus: <0x932fec000[1279][com.snip.snip]> Starting Running -> Running
standard    04:07:12.918092+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_transitionToSessionStatus: <0x932fec000[1279][com.snip.snip]> Starting took 173.7ms
standard    04:07:12.918207+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _setRunning:]: (0x282bffe80) posting AVCaptureSessionDidStartRunningNotification
standard    04:07:12.918302+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession beginConfiguration]: (0x282bbc110)
standard    04:07:12.918323+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bbc110) updated beginConfigRefCount 1
standard    04:07:12.918492+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _beginConfiguration]: (0x282bbc110) updated beginConfigRefCount 2
standard    04:07:12.918517+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bbc110) updated beginConfigRefCount 1
standard    04:07:12.918538+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bbc110) called. skipConfig: 1
standard    04:07:12.918771+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession commitConfiguration]: (0x282bbc110)
standard    04:07:12.918797+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _commitConfiguration]: (0x282bbc110) updated beginConfigRefCount 0
standard    04:07:12.919128+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_SetConfiguration: <0x932fec900[1279][com.snip.snip]> New configuration: FigCaptureSessionConfiguration 0x932110b00: ID 4, AVCaptureSessionPresetHigh multiCam: 0, appAudio: 1, autoConfig: 0, runWhileMultitasking: 0, checkIfFileAlreadyExistForMFO: 1
standard    04:07:12.919186+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_updateRunningCondition: <0x932fec900[1279][com.snip.snip]> ClientStartedSession:0 Cam/Audio:0/0 bg:0 prewarming:0 int:0 multitasking:0 pip:0 devStolen:0 pressured:0 active:0 shouldRun:0 start:0 stop:0
standard    04:07:12.919411+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bbc110) called. skipConfig: 0
standard    04:07:12.919507+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bbc110) New fcs config(4)
standard    04:07:12.919528+0100    snip    <<<< AVCaptureSession >>>> -[AVCaptureSession _buildAndRunGraph:]: (0x282bbc110) Setting fcs config(4) FigCaptureSessionConfiguration 0x283cfaf80: ID 4, AVCaptureSessionPresetHigh multiCam: 0, appAudio: 1, autoConfig: 0, runWhileMultitasking: 0, checkIfFileAlreadyExistForMFO: 1
standard    04:07:12.929064+0100    snip    <private>: Will add backgroundTask with taskName: <private>, expirationHandler: <__NSMallocBlock__: 0x2827e6430>
standard    04:07:12.929088+0100    snip    <private>: Creating new assertion because there is no existing background assertion.
standard    04:07:12.929109+0100    snip    <private>: Creating new background assertion
standard    04:07:12.929130+0100    snip    <private>: Created new background assertion <BKSProcessAssertion: 0x280ae3ac0>
standard    04:07:12.929364+0100    runningboardd   Acquiring assertion targeting [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279] from originator [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279] with description <RBSAssertionDescriptor| "Shared Background Assertion 3 for com.snip.snip" ID:32-1279-19479 target:1279 attributes:[
    <RBSLegacyAttribute| requestedReason:FinishTask reason:FinishTask flags:( PreventTaskSuspend )>,
    <RBSAcquisitionCompletionAttribute| policy:AfterValidation>
    ]>
standard    04:07:12.929411+0100    runningboardd   Assertion 32-1279-19479 (target:[app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279]) will be created as inactive as start-time-defining assertions exist
standard    04:07:12.929579+0100    snip    <private>: Incrementing reference count for background assertion <private>
standard    04:07:12.930048+0100    snip    <private>: Created background task <private>.
standard    04:07:12.950320+0100    snip    <private>: Ending background task with UIBackgroundTaskIdentifier: 7
standard    04:07:12.950364+0100    snip    <private>: Ending task with identifier 7 and description: <private>, _expireHandler: <__NSMallocBlock__: 0x2827d9410>
standard    04:07:12.950416+0100    snip    <private>: Decrementing reference count for assertion <private> (used by background task with identifier 7: <private>)
standard    04:07:12.950438+0100    snip    <private>: Will invalidate assertion: <BKSProcessAssertion: 0x280ae3ac0> for task identifier: 7
standard    04:07:12.950735+0100    runningboardd   Invalidating assertion 32-1279-19479 (target:[app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279]) from originator [app<com.snip.snip(50C96EA4-AEF1-41DE-B9C4-3FBAB6D393D9)>:1279]
standard    04:07:13.038259+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_updateDeferredGraphSetupStartCondition: <0x932fec000[1279][com.snip.snip]> Did display first preview frame
standard    04:07:13.144746+0100    mediaserverd    <<<< FigCaptureSession >>>> captureSession_startDeferredGraphSetupWork: <0x932fec000[1279][com.snip.snip]> Called

Camera Device

{
  "isMultiCam": false,
  "hasTorch": false,
  "sensorOrientation": "landscape-right",
  "position": "front",
  "supportsRawCapture": false,
  "physicalDevices": [
    "wide-angle-camera"
  ],
  "neutralZoom": 1,
  "supportsFocus": true,
  "formats": [],
  "minZoom": 1,
  "supportsLowLightBoost": false,
  "maxExposure": 8,
  "maxZoom": 128.875,
  "minFocusDistance": 20,
  "hasFlash": true,
  "name": "Front Camera",
  "minExposure": -8,
  "id": "com.apple.avfoundation.avcapturedevice.built-in_video:1",
  "hardwareLevel": "full"
}

Device

iPhone 15 Pro (iOS 17.2)

VisionCamera Version

3.9.0

Can you reproduce this issue in the VisionCamera Example app?

I didn't try (⚠️ your issue might get ignored & closed if you don't try this)

Additional information

mfkrause commented 8 months ago

This only seems to happen when using runAsync. If I use runAtTargetFps (tested with 15 FPS for now), it works seamlessly.

luicfrr commented 8 months ago

@mfkrause Hey, you're using my face detection package, glad it's helping you 😁

I had the same problem and as a workaround I added frame data inside detection result data, so instead of using frame.height try using result.frame.height.

For me this works.

The most strange thing is that on androi it works, you can use frame data directly without any issue but on IOS it freezes after some frames

bglgwyng commented 8 months ago

I made a minimal reproducer.

const frameProcessor = useFrameProcessor((frame) => {
  'worklet'

  runAsync(frame, () => {
    'worklet'
    foo(frame)

    console.info('run frame processor')
  })
}, [])

And the definition of foo should be

const foo = (frame: Frame) => {
  'worklet'
  frame.height
}

When foo doesn't include any access to frame's property(height here), the frame processor doesn't stop.

frodriguez-hu commented 6 months ago

Check this, get the result and operate on the current processor and not on the callback

https://github.com/nonam4/react-native-vision-camera-face-detector/issues/28

mrousavy commented 6 months ago

Hey - I think this issue has been fixed in VisionCamera 4.0.0. 🥳

Please try V4 and let me know if you still experience this issue;

mrousavy commented 6 months ago

more accurately; react-native-worklets-core 1.x.x fixed this issue I think.

bglgwyng commented 5 months ago

I think we need to reopen this issue. I still observe the same behavior with react-native-vision-camera@4.0.1 and react-native-worklets-core@1.2.0.

mrousavy commented 5 months ago

Ah shit. Well can we create a new issue with logs from latest react-native-vision-camera and rnwc then?

luicfrr commented 5 months ago

@mrousavy I created a new issue on worklets-core repo with all logs from latest versions

mrousavy commented 5 months ago

Great, thanks

luicfrr commented 5 months ago

@mrousavy I messed up with issues I'm subscribed 😅 this don't have anything to do with worklets-core. Sorry.

But anyway, what solved this "freeze" issue for me was incrementing frame ref count before doing anything else with frame. Ex:

const faces = detectFaces( frame )
const internal = frame as FrameInternal
// incremend frame ref before doing any task with frame
internal.incrementRefCount()
runOnJs(
  faces,
  frame
).finally( () => {
  'worklet'
  // decrement frame ref after all tasks
  internal.decrementRefCount()
} )

@bglgwyng Hope this helps

bglgwyng commented 5 months ago

Thanks! But isn't it a workaround? runAsync internally increases/decreases the ref count. Should we perform this redundant operation?

mrousavy commented 5 months ago

I fixed this issue in my latest PR to main. Ref counting now works properly on iOS as well