pro_video_editor 2.2.2
pro_video_editor: ^2.2.2 copied to clipboard
A Flutter video editor: Seamlessly enhance your videos with user-friendly editing features.
2.2.2 #
- FIX(android, iOS, macOS): Layer
animateOut/animateInOutanimations now play for layers that run until the end of the video (endTimeunset). An open-ended layer's end previously resolved to "infinity", so the out-phase never triggered and the layer popped off at the last frame; it now resolves to the composition length, so the layer animates out. Only layers carrying an out-phase animation are affected. - FIX(iOS, macOS): Smoother clip transitions. The pre-rendered transition clip is now authored at the composition's frame rate (
max(30, source fps)) instead of only the outgoing clip's, so a 25 fps source no longer stutters at the transition seams; directionalslide/pushtransitions also use one easing ramp per output frame, removing velocity kinks withbounce/elasticcurves.
2.2.1 #
- FIX(iOS, macOS): Fix a layer sliding in from an edge briefly shifting and shrinking the video (e.g. a black bar at the top) when a custom output resolution is set. Off-frame overlay content is now clipped to the video frame before letterboxing, so the frame no longer inflates during the animation.
2.2.0 #
- FEAT(android, iOS, macOS): Add
ProVideoEditor.splitVideo— a frame-accurate split that cuts one video into two files (SplitVideoModel). Each half is re-encoded from the exact cut frame without the render compositor/effects, making it far faster and more stall-resistant than splitting viarenderVideoToFile; every export is guarded by a watchdog timeout. Cancellable and progress-reporting via the taskid. Web/Windows/Linux throwUnimplementedError.
2.1.3 #
- FIX(iOS, macOS): Make FlutterEngine detach terminal for method-channel result delivery. After detach, a late render/audio/waveform/metadata/thumbnail callback no longer calls a captured
FlutterResultagainst a torn-down engine, closing the remainingNSInternalInconsistencyException: Sending a message before the FlutterEngine has been runpath from 2.1.2.
2.1.2 #
- FIX(iOS, macOS): Cancel active tasks and clear event sinks when the FlutterEngine is torn down. In-flight render/audio/waveform callbacks no longer message a stopped engine, fixing
NSInternalInconsistencyException: Sending a message before the FlutterEngine has been runcrashes on app termination or surface recreation.
2.1.1 #
- FIX(android): The global output trim now respects per-clip and global
playbackSpeed. A sped-up composition capped byendTimewas trimmed against the source timeline, cutting the output far shorter than the preview; the cap now limits the post-speed output length, matching iOS.
2.1.0 #
- FIX(android, iOS, macOS):
VideoQualityConfig.custom(resolution: …)now renders to exactly that resolution. The video is scaled to fit (preserving aspect ratio), centered, and padded with black instead of producing an aspect-scaled size (e.g. a 720x720 source with a 1080x1920 resolution previously exported 1080x1080, now 1080x1920 letterboxed). Android letterboxes with aPresentationeffect; Darwin composites the frame onto a black canvas. Quality presets keep their aspect-preserving scale. AqualityConfig'sbitrateis now also applied when used without an explicitbitrate. - FEAT(android, iOS, macOS): Animated GIF image layers.
ImageLayernow detects animated GIFs automatically and plays them back frame by frame; the newloopflag (defaulttrue) repeats the animation for the layer's time range or holds the last frame whenfalse. All existing layer properties (position, size, rotation, timing, animations) apply unchanged. Android decodes frames viaMovieand swaps them per overlay frame; Darwin decodes viaCGImageSourceand selects the frame per composition time. Web/Windows/Linux ignore the field. - FEAT(android, iOS, macOS): Add an output frame-rate cap via a new
maxFrameRatefield onVideoRenderData. It is an upper limit, not a target: a faster source is reduced to it (e.g. 60→30 fps) while a slower source is left untouched, lowering encoding cost and output file size. Android drops surplus frames with Media3'sFrameDropEffect; Darwin caps the compositionframeDuration. Web/Windows/Linux ignore the field. - FEAT(android, iOS, macOS): Add per-layer rotation to image overlays via a new
rotationfield onImageLayer(radians, clockwise around the layer center — matches Flutter'sTransform.rotate, so apro_image_editorlayer rotation can be forwarded directly).offset/sizekeep describing the layout box before rotation. Web/Windows/Linux ignore the field.
2.0.0 #
- BREAKING: Remove the previously deprecated APIs. Migrate as follows:
VideoRenderData.video→videoSegments: [VideoSegment(video: …)]VideoRenderData.imageBytes→imageLayersVideoRenderData.playbackSpeed→VideoSegment.playbackSpeedVideoRenderData.colorMatrixList→colorFilters(ColorFilter)VideoRenderData.customAudioPath/customAudioStartTime/customAudioVolume/loopCustomAudio→audioTracks(VideoAudioTrack)VideoRenderData.originalAudioVolume→VideoSegment.volumeVideoMetadata.originalResolution→rawResolution
1.22.0 #
- FEAT(android, iOS, macOS): Add multi-layer video compositions via a new
compositionfield onVideoRenderData(VideoComposition). A composition stacks severalVideoLayers on a fixed-size canvas, each layer being a time-ordered track ofVideoSegments composited bottom-to-top with its ownopacityand placement (SegmentTransform:offset,size,fit=fill/contain/cover). Clips gaintimelineStart(delayed entry on a layer) andtransform(per-clip placement), enabling picture-in-picture, side-by-side and grid layouts over a configurablebackgroundColor. Android composites layered Media3 sequences with a per-clip GL transform (cover overflow is scissored to its rect); Darwin uses a customAVVideoCompositingcompositor. Per-cliptransition,playbackSpeedandreverseVideoare not applied inside a composition. Web/Windows/Linux ignore the field.
1.21.5 #
- FIX(android): Fix video export failing with a codec exception on Qualcomm
c2.qti.*encoders. The encoder is now retried through a fallback chain (operating-rate cap → unset → Main/Baseline profile → software) before surfacing a typedRenderEncoderException; working devices keep their original export speed. - FIX(android, iOS, macOS): Fix a render/cancel race where cancelling right after starting an export failed with
TASK_NOT_FOUND. An early cancel is now handled in the Dart layer before the native task starts, so the render resolves as canceled.
1.21.4 #
- FIX(android, iOS, macOS): Fix layer
slideanimations only moving the layer by its own size, leaving it partly visible at the animation's start/end. Slides are now edge-aware and carry the layer fully off-screen in the slide direction. Requires the matchingpro_image_editorrelease so the in-editor preview matches the export.
1.21.3 #
- FIX(android): Fix
OutOfMemoryErrorwhen pre-rendering longer overlap clip transitions (dissolve/slide/push/wipe). Both sides previously decoded every I420 frame into memory at once (~370 MB for a 2 s 1080p30 transition); frames are now spilled to a temp file and streamed back one at a time during encoding, so heap use stays constant regardless of duration/fps/resolution — at full quality.
1.21.2 #
- FIX(android, iOS, macOS): Fix per-segment
playbackSpeedbeing ignored on clips that take part in an overlap clip transition (dissolve/slide/push/wipe). The transition pre-render now resolves the blend in output (post-speed) time and replays each side at its own speed, so footage inside the transition plays at the requested speed instead of falling back to 1×. Independent per-side speeds are supported; dip transitions (fadeToBlack/fadeToWhite) already honored speed.
1.21.1 #
- FIX(android): Fix overlap clip transitions (dissolve/slide/push/wipe) appearing rotated 90°/180° when a clip carries container rotation metadata (e.g. portrait phone videos). The transition pre-render decodes coded (un-rotated) frames, so it now re-applies the source rotation via
MediaMuxer.setOrientationHintand maps geometric directions into coded space.
1.21.0 #
- FEAT(android, iOS, macOS): Add clip transitions between adjacent
VideoSegments via a newtransitionfield (ClipTransitionwithtype,duration,curve,direction). Supportsdissolve,slide,pushandwipe(overlap and shorten the output) plusfadeToBlackandfadeToWhite(dip through a color, duration unchanged). Web/Windows/Linux ignore the field.
1.20.0 #
- FEAT(android, iOS, macOS): Add stop-motion support to turn a sequence of still images into a video via
ProVideoEditor.instance.renderStopMotion/renderStopMotionToFile. EachStopMotionFrameis held for1 / frameRateseconds (or a per-framedurationoverride) and encoded into a single silent video. The output size defaults to the first frame and frames are mapped onto it viaStopMotionFit(contain/cover/stretch). Darwin encodes withAVAssetWriter+ a pixel-buffer adaptor; Android uses Media3 Transformer image input with aPresentationeffect. Progress and cancellation reuse the existing render task infrastructure. Audio is not mixed in — pass the result throughrenderVideowithaudioTracksto add music. Web/Windows/Linux are not supported.
1.19.1 #
- FIX(iOS, macOS): Fix custom audio tracks being silently dropped when the source asset's duration fails to resolve.
AudioPreRendererpreviously fell back to a zero duration onasset.load(.duration)failure, which collapsed an open-ended trim (audioEndTime == nil) into a zero-length range and discarded the track with a misleadinginvalid trim range … end=0.0slog. The renderer now loads the audio track first and falls back to itstimeRangeduration (the real audio length), only aborting when neither source resolves. Android already decodes to the real end-of-stream for an open-ended trim, so no change was needed there.
1.19.0 #
- FEAT(android, iOS, macOS): Forward native plugin logs back to Dart via
ProVideoEditor.instance.logStream. Every entry written through the shared native logger (including the full renderer diagnostics) is now emitted as aNativeLogEntry(level,tag,message,timestamp, optionalstackTrace), so host apps can pipe these into their own Dart logger and export them. Forwarding is gated by the samenativeLogLevelas the native console output. Web/Windows/Linux keep an empty stream.
1.18.0 #
- FEAT(android, iOS, macOS): Add
speedtoAudioExtractConfigsfor pitch-preserving playback-speed changes during audio extraction (e.g.2.0for double speed,0.5for half). WAV applies the time-stretch directly on the decoded PCM (AndroidSonicAudioProcessor; AVFoundationAVAssetReaderAudioMixOutputwith the spectral time-pitch algorithm), while compressed formats are re-encoded — Android via a Media3Transformer, Darwin viaAVAssetExportPresetAppleM4Awith a scaled time range. Note: on Apple platforms a non-1.0speed re-encodes to AAC/M4A, socafoutput falls back to M4A content.
1.17.6 #
- FIX(iOS, macOS): Fix unstable/glitchy audio on reversed clips inside multi-clip timelines.
AudioReversernow preserves the source audio format (sample rate and channel count) instead of forcing 44.1 kHz stereo, so a reversed clip's audio matches its untouched neighbours and AVFoundation no longer has to reconcile mixed formats within a single composition audio track during looped playback. The reversed segment is also written as an AVFoundation-authored CAF/PCM file (replacing the hand-authored WAV) and inserted at its decoded duration without padding, avoiding encoder priming artifacts and audio-timing drift in the exported video.
1.17.5 #
- FIX(android): Fix custom audio tracks extending sped-up renders to the original source duration. Custom audio is now constrained to the rendered video timeline after global and per-clip playback speed, preventing the final video frame from freezing after the sped-up video content ends.
1.17.4 #
- FIX(web, wasm): Fix pub.dev platform compatibility score. Replace direct
dart:ioandpackage:path_providerimports in the package's public import chain with conditional platform shims, eliminating the "Package does not support platform Web" and "Not compatible with runtime wasm" warnings.
1.17.3 #
- FEAT(darwin): Add Swift Package Manager (SPM) support for iOS and macOS. The darwin implementation is now distributed as a local SPM package, replacing the previous CocoaPods-only setup.
1.17.2 #
- FIX(android): Prevent
RENDER_ERRORcodec exceptions on hardware encoders (e.g. Qualcomm AVCc2.qti.avc.encoder) by enabling encoder fallback in the main render path, clamping the requested bitrate into the codec's supported range, and preferring VBR over CBR at high bitrates. - FIX(android): Harden the reverse-video pre-render against crashes. The all-intra encoder is now configured with a clamped bitrate and progressive fallback to avoid
MediaCodec.CodecException, and the in-memory remux is guarded againstOutOfMemoryErrorby checking the temp file size against available heap before loading frames. On failure the clip gracefully degrades to forward playback.
1.17.1 #
- FIX(android): Fix reversed HEVC videos ignoring the rotation metadata tag, causing sideways/upside-down output.
- FIX(iOS, macOS): Fix
AVErrorInvalidVideoComposition(Code -11841) during reverse playback.AudioReverserproduces PCM frames at 44 100 Hz, so the reversed WAV duration (PCMFrameCount / 44100) is a few microseconds longer than the video clip duration. This extendedcomposition.durationbeyond theAVVideoCompositioninstruction coverage. Fixed by clamping the inserted WAV range toclipDurationviaCMTimeMinimum.
1.17.0 #
- FEAT(android, iOS, macOS): Add
reverseVideoflag toVideoSegmentto play a clip backwards. Whentrue, the segment renders from its trimmed end back to its trimmed start while other segments keep their own direction.
1.16.3 #
- FIX(linux): Fix Linux build by replacing the unavailable C++ Flutter embedder API (
flutter::EncodableValue) with the GLib-basedFlValueAPI. Update CMakeLists to use GStreamer (gstreamer-1.0,gstreamer-pbutils-1.0) instead of the unused libavformat/libavcodec/libavutil pkg-config targets. Fix source file extensions (.ccinstead of.cpp).
1.16.2 #
- FIX(android, iOS, macOS): Eliminate audible clicks/gaps at custom audio loop boundaries and clip transitions. Each custom audio track is now pre-rendered to a single gap-less PCM WAV file before being inserted into the composition, avoiding AAC encoder frame realignment (Android Media3) and codec priming/padding artifacts (AVFoundation
insertTimeRangeper loop iteration on iOS/macOS). Volume control remains in the mixer layer for post-hoc adjustments without re-decoding.
1.16.1 #
- FIX(iOS, macOS): Fix crash
No source tracks available for compositingwhen rendering H.264 MP4 files whose container duration slightly exceeds the video track's actual frame duration. The compositor time range is now clamped to the video track's realtimeRangebefore inserting into the composition, preventing AVFoundation from requesting frames that have no pixel buffer. A black-frame fallback was also added as a safety net.
1.16.0 #
- FEAT(android, iOS, macOS): Add per-clip
playbackSpeedtoVideoSegment, allowing each segment in a multi-clip composition to have its own playback speed (e.g.2.0for fast-forward,0.5for slow-motion). - DEPRECATED:
VideoRenderData.playbackSpeedis deprecated. UseVideoSegment.playbackSpeedinstead.
1.15.2 #
- FIX(example): Replace deprecated
CompleteParameters.customAudioTrackusage withCompleteParameters.audioTracksin the basic video editor example.
1.15.1 #
- FIX(iOS, macOS): Refactor audio extraction to use synchronous file writing for improved stability.
1.15.0 #
- FEAT(android, iOS, macOS): Add
NativeLogLevelparameter to all API methods for controlling native log verbosity per call. Supported levels:none,error,warning,info,debug,verbose.
1.14.4 #
- FIX(android): Fix image layers crash on Android by recycling intermediate thumbnail bitmaps.
- FIX(android, iOS, macOS): Additional fixes for audio extraction.
- CHORE(android): Bump Android
compileSdkto 36.
1.14.3 #
- FIX(iOS, macOS): Resolve crash in
extractToWav()caused by starting the writer session at.zeroinstead of the actual sample time.
1.14.2 #
- FIX(android, iOS, macOS): Correct audio extraction to WAV format in
extractAudioToFile.
1.14.1 #
- FIX(android): Fix compatibility with media3 1.10.0 by replacing removed
ChannelMixingMatrix.createwithChannelMixingMatrix.createForConstantGain.
1.14.0 #
- FEAT(android, iOS, macOS, web): Add
getSingleThumbnailmethod withSingleThumbnailConfigsto extract the first or last frame of a video viaThumbnailPosition.first/ThumbnailPosition.last.
1.13.2 #
- FIX(android): Fix image layer distortion when
imageBytesWithCroppingis enabled with a crop transform and qualityConfigs.
1.13.1 #
- FIX: Fix
VideoQualityConfigstretching video when target resolution has a different aspect ratio. Now uses uniform scaling (BoxFit.contain) to preserve the original aspect ratio.
1.13.0 #
- FEAT(android, iOS, macOS): Add optional
sizefield onImageLayerto scale overlay images to specific dimensions before rendering.
1.12.0 #
- FEAT(android, iOS, macOS): Add layer animations with
LayerAnimationonImageLayer. Supports fade, slide, and scale animations withanimateIn,animateOut, andanimateInOutphases. Includes 13 easing curves: linear, easeIn, easeOut, easeInOut, easeInCubic, easeOutCubic, easeInOutCubic, bounceIn, bounceOut, bounceInOut, elasticIn, elasticOut, elasticInOut. - FIX(iOS, macOS): Replace deprecated
AVMutableVideoCompositionLayerInstructionwithAVVideoCompositionLayerInstruction.Configurationon macOS 26+ / iOS 26+, with backward-compatible fallback.
1.11.0 #
- FEAT(android, iOS, macOS): Add timeline-based color filters via
ColorFilterwith optionalstartTime/endTimefor applying different filters to specific time ranges. - FEAT(android, iOS, macOS): Add multi-track audio support via
VideoAudioTrackwith per-track volume, loop, and timeline placement (startTime,endTime,audioStartTime,audioEndTime). - FEAT(android, iOS, macOS): Add per-clip volume control via
VideoSegment.volumefor adjusting audio levels on individual video segments. - FEAT(android, iOS, macOS): Add
VideoSegmentmodel replacing singlevideofield for concatenating multiple clips with individual trim and volume settings. - DEPRECATED:
video,imageBytes,colorMatrixList,customAudioPath,customAudioStartTime,customAudioVolume,loopCustomAudio, andoriginalAudioVolumeonVideoRenderData. UsevideoSegments,imageLayers,colorFilters, andaudioTracksinstead.
1.10.0 #
- FEAT(android, iOS, macOS): Add time-based image overlay layers. Allows positioning image overlays at specific x/y coordinates with optional start and end times for timed visibility during video rendering.
1.9.3 #
- FIX(android, iOS, macOS): Fixed rendering failure with HEVC encoded videos.
1.9.2 #
- FIX(all): Fix file write failures when the target directory does not exist.
writeMemoryVideoToFile,writeAssetVideoToFile, andfetchVideoToFilenow create parent directories recursively before writing.
1.9.1 #
- FIX(android): Strip metadata (GPS, title, artist, etc.) from rendered videos. Previously, Android's Media3 Transformer copied all source metadata to the output, while iOS/macOS correctly removed them to protect the privacy from users.
1.9.0 #
- FEAT(android, iOS, macOS): Add
gpsCoordinatestoVideoMetadatafor extracting GPS location from videos. - FEAT(android, iOS, macOS): Add
frameRatetoVideoMetadatafor extracting video frame rate. - FEAT(iOS, macOS): Add
cameraMakeandcameraModeltoVideoMetadatafor extracting camera information.
1.8.0 #
- FEAT(android, iOS, macOS): Add
customAudioStartTimeoption toVideoRenderData. Allows starting the custom audio track from a specific offset instead of from the beginning. Useful for using a specific section of a longer audio file.
1.7.0 #
- FEAT(android, iOS, macOS): Add
loopCustomAudiooption toVideoRenderData. Whenfalse, custom audio plays once instead of looping to match the video duration. Defaults totruefor backward compatibility.
1.6.2 #
- FIX(iOS, macOS): Fixed crash when merging multiple MOV video clips on older devices (e.g., iPhone 7, iOS 15). The issue was caused by
AVMutableVideoCompositionInstructionnot properly derivingrequiredSourceTrackIDsfrom layer instructions when using a custom video compositor. IntroducedCustomVideoCompositionInstructionthat explicitly provides source track IDs.
1.6.1 #
- FIX(iOS, macOS): Fixed video appearing upside down after export due to coordinate system mismatch between AVFoundation (top-left origin) and CIImage (bottom-left origin). The transform is now properly converted between coordinate systems.
1.6.0 #
- FIX(iOS, macOS): Fixed portrait mode videos being rotated incorrectly after export. The video rotation was being applied twice (once via layer instruction transform and again via orientation correction), causing portrait videos to appear with incorrect pixel orientation despite correct dimensions.
- DEPRECATED(metadata):
originalResolutionis now deprecated. UserawResolutioninstead. - FIX(android): Video metadata now returns display dimensions (after rotation correction), consistent with iOS/macOS. Previously, Android returned raw dimensions while iOS/macOS returned display dimensions.
- FEAT(metadata): Add
rawResolutiongetter to retrieve the raw video dimensions before rotation is applied.
1.5.2 #
- FIX(iOS, macOS): Fixed color filters (
colorMatrixList), blur, and flip effects being incorrectly applied to overlay images whenimageBytesWithCroppingis enabled. These effects are now applied only to the video before compositing the overlay.
1.5.1 #
- FIX(android): Fixed semi-transparent overlay layers appearing darker than expected during video rendering. The issue was caused by double alpha premultiplication — Android's BitmapFactory produces premultiplied pixels while Media3's overlay shader applies alpha again. Pixel data is now converted to straight alpha before uploading to the GPU.
1.5.0 #
- FEAT(android, iOS, macOS): Add
imageBytesWithCroppingoption toVideoRenderData. When enabled, the image overlay is applied before cropping and gets cropped together with the video instead of being scaled to the final cropped size.
1.4.2 #
- FIX(android): Fixed black edges appearing around transparent overlay layers during video rendering by using proper ARGB_8888 bitmap configuration and correct alpha blending.
1.4.1 #
- FIX(iOS, macOS): Fix Swift compiler type-check error by breaking up complex bit-shift expression into sub-expressions.
1.4.0 #
- FEAT(android, iOS, macOS): Add
shouldOptimizeForNetworkUserender option to enable progressive streaming by placing moov atom at file start (fast start). Enabled by default. - FEAT(android, iOS, macOS): Add
isOptimizedForStreamingmetadata property to detect if a video has moov before mdat for streaming compatibility. - FEAT(android, iOS, macOS): Add optional
checkStreamingOptimizationparameter togetMetadata()for on-demand MP4 atom analysis.
1.3.0 #
- FEAT(android, iOS, macOS): Add waveform generation with
getWaveformmethod to extract audio peak data for visualization. - FEAT(android, iOS, macOS): Add streaming waveform generation with
getWaveformStreamfor progressive real-time waveform display. - FEAT(widgets): Add
AudioWaveformwidget for static waveform visualization with playback position indicator and seek support. - FEAT(widgets): Add
AudioWaveform.streamingconstructor for animated progressive waveform rendering during generation. - FEAT(android, iOS, macOS): Add WAV format support for audio extraction.
1.2.3 #
- PERF(android): Improves render performance on Android when mixing with a custom audio track.
1.2.2 #
- FIX(trim): Improved global trim precision by adding frame compensation to prevent encoder overshoot.
1.2.1 #
- CHORE: Adjusted code style to comply with lint rules.
1.2.0 #
- FEAT(android, iOS, macOS): Add
hasAudioTrackmethod to check if a video contains an audio track before attempting extraction. - FEAT(android, iOS, macOS): Add
NO_AUDIOerror code andAudioNoTrackExceptionfor better error handling when videos have no audio track during extraction.
1.1.0 #
- FEAT(android, iOS, macOS): Add audio extraction feature with
extractAudioandextractAudioToFilemethods. Supports MP3, AAC, and M4A formats with optional trimming and bitrate configuration.
1.0.0 #
- FEAT(android, iOS, macOS): Add video concatenation with
videoClipsparameter for merging multiple videos. - FEAT(android, iOS, macOS): Add audio mixing with
customAudioPath,originalAudioVolume, andcustomAudioVolumeparameters for enhanced audio control. - FEAT(android, iOS, macOS): Add
jpegQualityparameter toThumbnailConfigswhich allows setting the JPEG quality for thumbnails. - BREAKING refactor(video_model): Rename
RenderVideoModeltoVideoRenderData.
0.4.0 #
- FEAT(android, iOS, macOS): Add
ProVideoEditor.instance.cancel(taskId)for cancelling started export tasks.
0.3.0 #
- FEAT(presets): Add video quality presets for simplified export configuration. Details in PR #55.
0.2.4 #
- CHORE(android): Update Media3 dependencies to version 1.8.0.
0.2.3 #
- FIX(windows): Resolve issue of crashing when reading metadata on Windows.
0.2.2 #
- FEAT(metadata): Add
originalResolutionto metadata and auto-correctresolutionbased on video orientation.
0.2.1 #
- FIX(android): Resolved issue where metadata returned incorrect resolution for rotated videos. This resolves issue #42.
0.2.0 #
- FEAT: Add
renderVideoToFileto return the file path instead of a Uint8List, preventing RAM overload on older devices or when handling larger videos.
0.1.8 #
- FIX(android): Fixed crash during video export when applying overlay effects. The issue was caused by using
ImmutableList.of(bitmapOverlay)instead of a Kotlin-compatible list. This has been resolved by usinglistOf(bitmapOverlay)instead. - CHORE(android): Updated
media3dependencies to the latest stable versions for better compatibility and stability.
0.1.7 #
- FIX(iOS, macOS): Resolved a crash that occurred when setting playback speed below 1x. This resolves issue #29.
0.1.6 #
- FIX(iOS, macOS): Fixed rotation transforms not properly swapping render dimensions for 90°/270° rotations, resolving squeezed video output with black bars.
0.1.5 #
- FIX(window, linux, iOS, macOS): Correct bitrate extraction from metadata.
- FIX(android): Remove unsupported WebM output format; Android only supports MP4 generation.
- TEST: Add integration tests for all core functionalities.
0.1.4 #
- FIX(iOS, macOS): Fixed AVFoundation -11841 "Operation Stopped" errors when exporting videos selected via image_picker package
- FIX(iOS, macOS): Fixed video rotation metadata not being properly handled, causing incorrect orientation in exported videos
- FIX(iOS, macOS): Fixed random video loading failures from image_picker package due to complex transform metadata
- FIX(iOS, macOS): Enhanced video composition pipeline to properly process iPhone camera orientation transforms
0.1.3 #
- FIX(iOS, macOS): Resolved multiple issue where, in some Swift versions, a trailing comma in the constructor caused an error.
0.1.2 #
- FIX(iOS, macOS): Resolved an issue where, in some Swift versions, a trailing comma in the constructor caused an error.
0.1.1 #
- DOCS: Updated README with new examples and images.
0.1.0* #
- FEAT(iOS): Added render functions for iOS.
- FEAT(macOS): Added render functions for macOS.
0.0.14 #
- FIX: Resolve various crop and rotation issues.
- REFACTOR(android): Improve code quality.
- FEAT(example): Add video-editor example.
0.0.13 #
- FIX(crop): Resolve issues that crop not working.
0.0.12 #
- FIX(layer): Fixed incorrect layer scaling caused by misinterpreted video dimensions.
0.0.11 #
- FIX(rotation): Resolve various issues when video is rotated.
0.0.10 #
- FEAT(native-code): Remove the ffmpeg package and start implementing native code.
0.0.9 #
- REFACTOR(encoding): Export encoding models for easier import from main package
0.0.8 #
- FEAT(audio): Add enable audio parameter
0.0.7 #
- FEAT(iOS, macOS): Add video generation support for macOS and iOS
0.0.6 #
- FIX(crop): Ensure crop dimensions are even to avoid libx264 errors
0.0.5 #
- FEAT: Add support for color 4x5 matrices
0.0.4 #
- FEAT: Add video parser functions for android
0.0.3 #
- FIX: Resolve thumbnail generation on web.
0.0.2 #
- FEAT: Add
getVideoInformationandcreateVideoThumbnailsfor all platforms.
0.0.1 #
- CHORE: Initial release.
