PackageTrack
Sign in Get early access

camera_desktop

A Flutter camera plugin for desktop platforms (Linux, macOS, Windows). Implements camera_platform_interface for easy integration with the standard camera package.

1.2.1 3.9K downloads/mo #4220 most downloaded on pub.dev hugocornellier/camera_desktop

What this package is like to depend on

Last release 2 months ago

13 Jun 2026

Ships fairly regularly

a new release about every 2 weeks

Nearly every release is documented

notes for 27 of 28 stable releases

Nothing withdrawn

no release was ever pulled

5 months old

28 releases · first in 2026

28 releases in the last 12 months

see the full history below

Release timeline

28 releases · Feb 2026 to Jun 2026
Release Pre-release

Releases

latest 28
  1. 1.2.1 13 Jun 2026
    Release notes
    • Fix Linux preview Internal data stream error (not-negotiated) on cameras that do not expose MJPEG, such as NV12/YUYV-only USB webcams. The MJPEG fast-path added in 1.1.7 was selected whenever its pipeline merely parsed, but gst_parse_launch succeeds even when the camera cannot produce MJPEG, so the intended raw-capture fallback never ran and initialization failed at PLAYING. The plugin now probes the V4L2 device (both MJPEG and JPEG pixel formats) for the target resolution before choosing the MJPEG path, and otherwise uses the always-safe raw capture path. The MJPEG pipeline pins only the resolution and lets the camera's native frame rate float, with videorate adapting it to the requested fps, so requesting a frame rate the camera does not expose natively in MJPEG no longer breaks negotiation.
    Open source →
  2. 1.2.0 13 Jun 2026
    Release notes
    • Speed up Windows camera initialization by completing initialize() as soon as the preview starts instead of blocking until the first camera frame arrives. On a typical webcam this returns control to the app in roughly 250 ms rather than about 2 seconds. The preview fills in as frames arrive, and a watchdog reports a cameraError if no frames are received within 8 seconds.
    • Make Windows diagnostic logging opt-in and off by default so the plugin stays quiet in your app. Set the CAMERA_DESKTOP_LOG environment variable to any value other than 0 to capture a trace when reporting an issue. This also removes the logging overhead that slowed camera initialization, most noticeably with a debugger or IDE attached.
    Open source →
  3. 1.1.8 12 Jun 2026
    Release notes
    • Fix Windows use-after-free crashes on camera dispose: guard the preview texture against in-flight preview samples, and defer destroying the texture until Flutter's asynchronous UnregisterTexture completes (its raster-thread pixel-buffer callback could otherwise run after the texture was freed) (#4)
    Open source →
  4. 1.1.7 29 May 2026
    Release notes
    • Fix Windows crash after camera dispose by marshalling platform channel messages to the platform thread (#4)
    • Fix Linux preview not-negotiated error on common USB webcams (#5, thanks @jvnonce)
    • Fix Linux recording on systems without x264enc (#5, thanks @jvnonce)
    • Report max frame rate across all pixel formats during Linux device enumeration (#5, thanks @jvnonce)
    Open source →
  5. 1.1.6 24 May 2026
    Release notes
    • Fix Swift compiler warnings: remove unused variables in DeviceEnumerator, PhotoHandler, RecordHandler, and CameraSession
    Open source →
  6. 1.1.5 24 May 2026
    Release notes
    • Fix SPM integration by adding missing FlutterFramework dependency to iOS and macOS Package.swift
    Open source →
  7. 1.1.4 19 May 2026
    Release notes
    • Update documentation
    • Remove debug logging from image stream pause/resume and video recording completion
    Open source →
  8. 1.1.3 20 Apr 2026
    Release notes
    • Fix Windows build failure (C4819 / C2220) on hosts with a non-UTF-8 system code page (e.g. CP936 on Simplified Chinese Windows) by compiling the plugin with /utf-8 under MSVC (#2)
    Open source →
  9. 1.1.2 07 Apr 2026
    Release notes
    • Fix macOS build failure on Xcode 26+ by removing unavailable AVCaptureSessionInterruptionReasonKey (re-introduced in 1.1.1)
    • Fix Windows build failure caused by implicit wchar_t to char conversion in debug logging
    Open source →
  10. 1.1.1 07 Apr 2026
    Release notes
    • Add comprehensive diagnostic logging across all platforms (Linux, macOS, Windows)
    • Log device enumeration, backend selection, pipeline construction, resolution selection, recording lifecycle, and error paths
    Open source →
  11. 1.1.0 07 Apr 2026
    Release notes
    • Add PipeWire camera portal support for Flatpak sandbox compatibility on Linux
    • Automatically detect Flatpak environment and use pipewiresrc instead of v4l2src
    • Request camera access via org.freedesktop.portal.Camera D-Bus interface
    • Enumerate PipeWire camera nodes via GstDeviceMonitor
    • Fall back to V4L2 if portal is unavailable or user denies permission
    • No new build dependencies: uses GIO (D-Bus) and GStreamer APIs already linked
    Open source →
  12. 1.0.8 05 Apr 2026
    Release notes
    • Fix macOS build failure on Xcode 26+ by removing unavailable AVCaptureSessionInterruptionReasonKey (iOS-only API)
    Open source →
  13. 1.0.7 05 Apr 2026
    Release notes
    • Fix camera initialization failure on Intel Macs by selecting session preset after device discovery using device.supportsSessionPreset() with automatic fallback (1080p → 720p → high → medium)
    • Make canAddInput/canAddOutput failures return a FlutterError instead of silently skipping, preventing blank-screen timeouts
    • Increase initialization timeout from 8s to 15s for slower USB cameras
    • Subscribe to AVCaptureSessionRuntimeError, WasInterrupted, and InterruptionEnded notifications and forward to Dart via cameraError
    • Fix MethodChannel image stream fallback sending hardcoded bytesPerRow instead of actual value from CVPixelBuffer
    • Add diagnostic logging at all critical points in macOS session setup
    Open source →
  14. 1.0.6 17 Mar 2026
    Release notes
    • Fix Xcode build warnings by declaring PrivacyInfo.xcprivacy as a resource bundle in iOS and macOS podspecs
    Open source →
  15. 1.0.5 16 Mar 2026
    Release notes
    • Fixes #1: conflict with camera_android and camera_avfoundation dependencies
    Open source →
  16. 1.0.4 13 Mar 2026
    Release notes
    • Fix macOS Swift Package Manager compatibility
    Open source →
  17. 1.0.3 10 Mar 2026
    Release notes
    • Fix hot restart FFI crash by replacing NativeCallable with polling
    Open source →
  18. 1.0.2 10 Mar 2026
    Release notes
    • Fix macOS use-after-free crash during engine teardown by making dispose synchronous/idempotent and guarding FFI callbacks
    Open source →
  19. 1.0.1 03 Mar 2026
    Release notes
    • Fix xcprivacy build warnings by declaring resource_bundles in iOS and macOS podspecs
    Open source →
  20. 1.0.0 28 Feb 2026
    Release notes

    First stable release of camera_desktop

    Platform implementations

    • macOS, AVFoundation (AVCaptureSession, AVAssetWriter). Preview via CVPixelBuffer textures, H.264/AAC recording, native mirror support.
    • Windows, Media Foundation (IMFCaptureEngine) with Direct3D 11 texture rendering. H.264/AAC recording via IMFSinkWriter.
    • Linux, GStreamer + V4L2 (v4l2src → videoconvert → appsink pipeline). H.264/AAC recording with automatic encoder selection, native mirror via videoflip.

    Features

    • Live camera preview with hardware-accelerated texture rendering on all platforms
    • Photo capture, video recording, and real-time image streaming
    • FFI-based zero-copy frame delivery (MethodChannel fallback for compatibility)
    • Configurable resolution presets, FPS (5-60), and video bitrate
    • Mirror/flip control (macOS and Linux)
    • Pause/resume preview
    • Runtime capability querying via getPlatformCapabilities()
    Open source →
  21. 0.0.8 28 Feb 2026
    Release notes
    • Migrate Windows implementation to IMFCaptureEngine
    Open source →
  22. 0.0.7 28 Feb 2026
    Release notes
    • Update example app to show settings panel
    Open source →
  23. 0.0.6 28 Feb 2026

    Nothing published for this version

  24. 0.0.5 27 Feb 2026
    Release notes
    • Fix C linkage on Linux
    Open source →
  25. 0.0.4 27 Feb 2026
    Release notes
    • FFI-based image stream for reduced memory copies (3→2 per frame)
    • Fix macOS Swift/ObjC interop for FFI bridge
    • Fix image format reporting (Linux/Windows RGBA vs macOS BGRA)
    Open source →
  26. 0.0.3 27 Feb 2026
    Release notes
    • Performance improvements
    Open source →
  27. 0.0.2 27 Feb 2026
    Release notes
    • Add setMirror API and built-in camera sorting for DeviceEnumerator
    Open source →
  28. 0.0.1 26 Feb 2026
    Release notes
    • Linux camera support via GStreamer + V4L2.
    • macOS camera support via AVFoundation.
    • Windows camera support via Media Foundation.
    • Full camera_platform_interface compliance.
    • Photo capture, video recording, image streaming, and live preview.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive