Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

Set the capture device color space to apple log not works.

I set the device format and colorspace to Apple Log and turn off the HDR, why the movie output is still in HDR format rather than ProRes Log?

Full runnable demo here: https://github.com/SpaceGrey/ColorSpaceDemo

        session.sessionPreset = .inputPriority
        // get the back camera
        let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: .video, position: .back)
        backCamera = deviceDiscoverySession.devices.first!
        try! backCamera.lockForConfiguration()
        backCamera.automaticallyAdjustsVideoHDREnabled = false
        backCamera.isVideoHDREnabled = false
        let formats = backCamera.formats
        let appleLogFormat = formats.first { format in
            format.supportedColorSpaces.contains(.appleLog)
        }
        print(appleLogFormat!.supportedColorSpaces.contains(.appleLog))
        backCamera.activeFormat = appleLogFormat!
        backCamera.activeColorSpace = .appleLog
        print("colorspace is Apple Log \(backCamera.activeColorSpace == .appleLog)")
        
        backCamera.unlockForConfiguration()
        do {
            let input = try AVCaptureDeviceInput(device: backCamera)
            session.addInput(input)
        } catch {
            print(error.localizedDescription)
        }
        // add output
        output = AVCaptureMovieFileOutput()
        session.addOutput(output)
        let connection = output.connection(with: .video)!
        print(
        output.outputSettings(for: connection)
        )
        /*
         ["AVVideoWidthKey": 1920, "AVVideoHeightKey": 1080, "AVVideoCodecKey": apch,<----- prores has enabled.
         "AVVideoCompressionPropertiesKey": {
             AverageBitRate = 220029696;
             ExpectedFrameRate = 30;
             PrepareEncodedSampleBuffersForPaddedWrites = 1;
             PrioritizeEncodingSpeedOverQuality = 0;
             RealTime = 1;
         }]
         */
        previewSource = DefaultPreviewSource(session: session)
        queue.async {
            self.session.startRunning()
        }
        
    }

Hi SpaceGrey,

Looks like you may have forgotten to set your AVCaptureSession's automaticallyConfiguresCaptureDeviceForWideColor property to NO so it doesn't undo your activeColorSpace setting. Give that a try. You should turn off automaticallyConfiguresCaptureDeviceForWideColor before setting the activeColorSpace property on the device.

Set the capture device color space to apple log not works.
 
 
Q