GithubHelp home page GithubHelp logo

sindresorhus / gifski Goto Github PK

View Code? Open in Web Editor NEW
7.5K 60.0 286.0 21.28 MB

🌈 Convert videos to high-quality GIFs on your Mac

Home Page: https://sindresorhus.com/gifski

License: MIT License

Swift 60.40% Objective-C 0.01% Rich Text Format 0.26% Rust 39.33%
gifski gif gif-animation video converter convert-videos macos-app macos swift swiftui

gifski's Introduction

Gifski

Convert videos to high-quality GIFs on your Mac




This is a macOS app for the gifski encoder, which converts videos to GIF animations using pngquant's fancy features for efficient cross-frame palettes and temporal dithering. It produces animated GIFs that use thousands of colors per frame and up to 50 FPS (useful for showing off design work on Dribbble).

You can also produce smaller lower quality GIFs when needed with the “Quality” slider, thanks to gifsicle.

Gifski supports all the video formats that macOS supports (.mp4 or .mov with H264, HEVC, ProRes, etc). The QuickTime Animation format is not supported. Use ProRes 4444 XQ instead. It's more efficient, more widely supported, and like QuickTime Animation, it also supports alpha channel.

Gifski has a bunch of settings like changing dimensions, speed, frame rate, quality, looping, and more.

Download

Requires macOS 14 or later.

Older versions

Non-App Store version

A special version for users that cannot access the App Store. It won't receive automatic updates. I will update it here once a year.

Download (2.23.0 · macOS 13+)

Features

Share extension

Gifski includes a share extension that lets you share videos to Gifski. Just select Gifski from the Share menu of any macOS app.

Tip: You can share a macOS screen recording with Gifski by clicking on the thumbnail that pops up once you are done recording and selecting “Share” from there.

System service

Gifski includes a system service that lets you quickly convert a video to GIF from the Services menu in any app that provides a compatible video file.

Bounce (yo-yo) GIF playback

Gifski includes the option to create GIFs that bounce back and forth between forward and backward playback. This is a similar effect to the bounce effect in iOS's Live Photo effects. This option doubles the number of frames in the GIF so the file size will double as well.

Tips

Quickly copy or save the GIF

After converting, press Command+C to copy the GIF or Command+S to save it.

Change GIF dimensions with the keyboard

In the width/height input fields in the editor view, press the arrow up/down keys to change the value by 1. Hold the Option key meanwhile to change it by 10.

Screenshots

Building from source

To build the app in Xcode, you need to have Rust installed first:

curl https://sh.rustup.rs -sSf | sh
brew install SwiftLint
xcode-select --install

FAQ

The generated GIFs are huge!

The GIF image format is very space inefficient. It works best with short video clips. Try reducing the dimensions, FPS, or quality.

Why are 60 FPS and higher not supported?

Browsers throttle frame rates above 50 FPS, playing them at 10 FPS. Read more.

How can I convert a sequence of PNG images to a GIF?

Install FFmpeg (with Homebrew: brew install ffmpeg) and then run this command:

TMPFILE="$(mktemp /tmp/XXXXXXXXXXX).mov"; \
	ffmpeg -f image2 -framerate 30 -i image_%06d.png -c:v prores_ks -profile:v 5 "$TMPFILE" \
	&& open -a Gifski "$TMPFILE"

Ensure the images are named in the format image_000001.png and adjust the -framerate accordingly.

Command explanation.

How can I run multiple conversions at the same time?

This is unfortunately not supported. However, if you know how to run a terminal command, you could run open -na Gifski multiple times to open multiple instances of Gifski, where each instance can convert a separate video. You should not have the editor view open in multiple instances though, as changing the quality, for example, will change it in all the instances.

Is it possible to convert from WebM?

Gifski supports the video formats macOS supports, which does not include WebM.

You can convert your video to MP4 first with this app.

Can I contribute localizations?

We don't plan to localize the app.

Can you support Windows/Linux?

No, but there's a cross-platform command-line tool available.

Press

Built with

Maintainers

Related

License

MIT (the Mac app) + gifski library license

gifski's People

Contributors

0bmay avatar allewun avatar ben-p-commits avatar boyvanamstel avatar codetheweb avatar ejensen avatar janbrasna avatar kornelski avatar larsjk avatar sentialx avatar sergeykuryanov avatar sindresorhus avatar sunshinejr avatar talater avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gifski's Issues

Improve file size estimate

Issuehunt badges

GifSki is my go-to gif-app. But,,,,

Problem 😤

I always have to convert videos 3 times before I get close to the size I want. Changing FPS, Quality and resolution to hit the sweet spot. Which in my case is usually under 5mb.

Why is this relevant? 💡

I create a lot of gif videos to show how apps work etc. I host these on github, because GitHub is where work happens 👔. I need to be able to post these videos in GitHub comment fields etc. Github has a max limit of around 5.2mb So I want to keep my gif videos a bit under 5mb.

Thinking 🤔

So Gifski is unique because it creates a unique Color-maps for each frame. Ball-park correct? So the file guesstimater of old doesn't work, you used to be able to do 256 * FramesInTotal = size. But you can't now because each frame is not defined from scratch.

Solution 💰

FileSizeGuestimatorPro.swift ✨ 😇

  1. On a background thread (at startup, and while user interacts with settings)
  2. let segmentCount = (TotalFrameCount 240/4) = 60
  3. let sizes:Int = (0..<4).indecies.map {i in GifSkiConverter.gifFrame(video:test.mp4,frameIdx:i* segmentCount).size }
  4. let size:Int = sizes.reduce(0,+) * segmentCount
  5. onBGComplete = {/*double the sampling, on each pass*/} //👈 rinse repeat until the size is hardned, or user changes variables or cancels
  6. Bonus point if these samples are re-used in the final conversion.

Note: This is not an easy issue and requires good Swift and macOS/iOS experience.


IssueHunt Summary

sindresorhus sindresorhus has been rewarded.

Backers (Total: $182.00)

Submitted pull Requests


Tips

Green line artifact on right side of gif

Issuehunt badges

The bounty for this issue now applies to #183 instead.


Hey,

I'm seeing green artifacts on the right side of the resulting gif. The input video file is taken straight from the Mojave screen recording tool.

Here's a sample:

Screen Recording 2019-03-14 at 15 53 36


Note: This is not an easy issue and requires good Swift and macOS/iOS experience.

There is a $60.00 open bounty on this issue. Add more on Issuehunt.

Improve Dock icon progress animation

https://github.com/sindresorhus/gifski-app/blob/9ea67499164b40ae76a872bf5087eb7ba29cda5d/Gifski/AppDelegate.swift#L43

Right now it only updates once per video frame we process. So the longer the video is, the smoother the progress animation is. That also means it will be pretty choppy on short clips. The main window progress circle uses CALayer which animates between the progress events. This is however not possible for the Dock icon as we have to call .display() manually each time we want to update it. I tried to use CALayer and just capture an image of the layer 30 times a second, but it seems it's only possible to capture before or after the animation.

I think the solution is to simply implement the animation ourselves with an interval timer. We already have the previous progress and the current progress, so we can animate between them. It's a bit more complicated though as if we receive a new progress change while we're animation, we now need to animate to the new progress.

I'm also happy to consider other ideas.

Generate GIF without asking for location

Proposed interaction

  1. User: drag-drops a video file onto the Gifski app window
  2. App: immediately generates gif in a temp (cache) path and displays percent-complete progress
  3. App: once GIF is created, a draggable preview thumbnail is displayed alongside 4 action buttons:
    • Show in Finder: same as today
    • Share: same as today
    • Move to: opens dialog for user to choose a destination folder and filename
    • Copy: copies GIF data to clipboard to paste in another app
  4. User: drags preview thumbnail into another app

What it does today

Upon drag-dropping a video file on the Gifski app, instead of starting the conversion, it immediately asks where the generated GIF should be saved.

Preference: Always Save to Folder

For users who always want generated GIFs to be stored in the same folder, this could be done by adding an "Always Save to Folder" preference that defaults to the cache location

Why?

I use GIFs not as a source-of-truth format, but rather as a ubiquitous, easy-to-share format to capture a few seconds of something I made or something I like. A throw-away format that only exists for sharing.

Examples:

  • Take a screen recording of a prototype I made, gif it, and then drag-drop it into a chat window to my team.
  • Take a screen recording of an interaction I really like in some app, gif it, and then drag-drop it into a Google Slides presentation.

So in that sense, they're like screenshots: likely not needed after they've been shared. Kinda like how macOS doesn't ask you where to save a screenshot/recording, it either just saves it, or asks you where to save it after it's been created.

More context

Twitter convo

Press `Space` key to open the GIF in Quick Look

Issuehunt badges

Add ability to press Space key to open the GIF in Quick Look in the conversion completed view.

There should also be a menu bar item for it called "Quick Look".

When you press Space, the existing thumbnail should animate into the Quick Look window, just like it does in Finder.


Note: This is not an easy issue and requires good Swift and macOS/iOS experience.

IssueHunt Summary

sunshinejr sunshinejr has been rewarded.

Sponsors (Total: $80.00)

Tips

Discussion

I'm having a couple of problems with libgifski. I'm probably using it incorrectly, but I've been stuck on it.

Update the paths in https://github.com/sindresorhus/gifski-draft/blob/793d9289961524667d47bc9d18a675166a374149/Gifski/AppDelegate.swift#L21 to your paths before testing.


The produced GIF has the wrong colors:

test

I'm probably passing the image as bytes incorrectly, but I'm not sure what I'm doing wrong.


I also have problems when trying to produce more than 4 frames. It seems to never finish then. Try to uncomment https://github.com/sindresorhus/gifski-draft/blob/master/Gifski/AppDelegate.swift#L48 and you'll see.


Is there any way for me to use libgifski with GCD? I tried, and Rust threw an error.


Any other feedback welcome.

Remember last settings

It would be cool if it would remember settings I gave it, so I can have the same settings for multiple files (or even support multi file processing). ATM I need to remember which settings I have set and it is hard to adjust width/height to exactly that dimensions as before.

After newest libgifski update the generator needs few seconds to start and the progress is laggy

Issuehunt badges

The bounty here now applies to #180 instead.


This is the video I reproduced it with.

new_gifski_transitions.mov.zip


IssueHunt Summary

Backers (Total: $80.00)

Become a backer now!

Or submit a pull request to get the deposits!

Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

Progress sometimes doesn't finish

Issuehunt badges

I have encountered this weird problem where sometimes the dock icon progress indicator would stay stuck at 99.9% even when the progress was finished.

screen shot 2019-01-14 at 14 21 01

I can reproduce it every time with this video file:

gifski-app-fixture.mov.zip

I added logging here: https://github.com/sindresorhus/gifski-app/blob/4c2e8e4a0d993fe33b3f4a448a44f6e2fc53e05e/Gifski/Gifski.swift#L67

And print(progress.completedUnitCount, progress.fractionCompleted, progress.isFinished) correctly reported 176 1.0 true for the last callback execution.

However, when logging progress.factionCompletion in the KVO callback here: https://github.com/sindresorhus/gifski-app/blob/4c2e8e4a0d993fe33b3f4a448a44f6e2fc53e05e/Gifski/Vendor/DockProgress.swift#L18

It outputs 0.9943181818181818 and never resets. So it's clear there's something weird going on with Progress...

boyvanamstel earned $200.00 by resolving this issue!

Sierra Support ?

Hello,

Is there a way to add if #available(OSX 10.13, *) { to make it backward compatible ?

Thanks

Crashlytics - Crashed: `com.apple.coremedia.assetimagegenerator.notifications`

This is the crash report:

# Application: Gifski
# Version: 1.5.0 (12)
# OS Version: 10.14.3 (18D109)

#1. Crashed: com.apple.coremedia.assetimagegenerator.notifications
0  libsystem_kernel.dylib         0x7fff79cac23e __pthread_kill + 10
1  libsystem_pthread.dylib        0x7fff79d62c1c pthread_kill + 285
2  libsystem_c.dylib              0x7fff79c151c9 abort + 127
3  libswiftCore.dylib             0x103326ca5 swift::fatalError(unsigned int, char const*, ...) + 149
4  libswiftCore.dylib             0x10331d4d2 swift::swift_dynamicCastFailure(void const*, char const*, void const*, char const*, char const*) + 82
5  libswiftCore.dylib             0x10331d540 swift::_conformsToProtocol(swift::OpaqueValue const*, swift::TargetMetadata<swift::InProcess> const*, swift::TargetProtocolDescriptor<swift::InProcess> const*, swift::TargetWitnessTable<swift::InProcess> const**) + 94
6  libswiftCore.dylib             0x10331f824 swift_dynamicCastImpl(swift::OpaqueValue*, swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*, swift::TargetMetadata<swift::InProcess> const*, swift::DynamicCastFlags) + 4692
7  libswiftCore.dylib             0x103321c3c _dynamicCastFromExistential(swift::OpaqueValue*, swift::OpaqueValue*, swift::TargetExistentialTypeMetadata<swift::InProcess> const*, swift::TargetMetadata<swift::InProcess> const*, swift::DynamicCastFlags) + 300
8  Gifski                         0x102d9d1f6 closure #2 in AVAssetImageGenerator.generateCGImagesAsynchronously(forTimePoints:completionHandler:) (util.swift:351)
9  Gifski                         0x102da8a66 partial apply for closure #2 in AVAssetImageGenerator.generateCGImagesAsynchronously(forTimePoints:completionHandler:) (<compiler-generated>)
10 Gifski                         0x102d9d2ee thunk for @escaping @callee_guaranteed (@unowned CMTime, @guaranteed CGImageRef?, @unowned CMTime, @unowned AVAssetImageGeneratorResult, @guaranteed Error?) -> () (<compiler-generated>)
11 AVFoundation                   0x7fff488ae674 -[AVAssetImageGenerator _failedToGenerateCGImage:] + 493
12 AVFoundation                   0x7fff488ad6a7 aig_failedToGenerateCGImage + 73
13 AVFoundation                   0x7fff488474e8 AVCMNotificationDispatcherCallback + 184
14 CoreFoundation                 0x7fff4c983632 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
15 CoreFoundation                 0x7fff4c9835ac ___CFXRegistrationPost_block_invoke + 63
16 CoreFoundation                 0x7fff4c9834cd _CFXRegistrationPost + 398
17 CoreFoundation                 0x7fff4c98b929 ___CFXNotificationPost_block_invoke + 87
18 CoreFoundation                 0x7fff4c8f30ca -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1633
19 CoreFoundation                 0x7fff4c8f248d _CFXNotificationPost + 742
20 CoreFoundation                 0x7fff4c8f20b3 CFNotificationCenterPostNotificationWithOptions + 121
21 CoreMedia                      0x7fff4da51347 CMNotificationCenterPostNotification + 125
22 MediaToolbox                   0x7fff5124c6f3 FigAssetImageGeneratorCreateFromAsset + 8547
23 libdispatch.dylib              0x7fff79b1edcf _dispatch_client_callout + 8
24 libdispatch.dylib              0x7fff79b25124 _dispatch_lane_serial_drain + 618
25 libdispatch.dylib              0x7fff79b25bdc _dispatch_lane_invoke + 388
26 libdispatch.dylib              0x7fff79b2e090 _dispatch_workloop_worker_thread + 603
27 libsystem_pthread.dylib        0x7fff79d5f60b _pthread_wqthread + 409
28 libsystem_pthread.dylib        0x7fff79d5f405 start_wqthread + 13

I have a feeling we're not correctly handling the case where generateCGImagesAsynchronously fails to generate an image.

https://github.com/sindresorhus/gifski-app/blob/72ee7fe3c58a9fc9c7c739a4e6466a83a6ae4573/Gifski/util.swift#L309-L353

UI ideas

Now that the app is almost feature complete, I'd like to explore some UI ideas. The app honestly looks a bit boring.

Comments on the ideas here and new ideas more than welcome!

Use comment reactions if you like/dislike an idea.

Incorrect dimensions for video recorded from iOS Simulator

I've seen this issue in Crashlytics, but couldn't reproduce until I got this reply: https://twitter.com/FlorianBuerger/status/1124945762729779200

I've now managed to reproduce the issue by running an iOS app in a simulator like iPhone XS and then running xcrun simctl io booted recordVideo simulator-recording.mp4 in the terminal, and then pressing Ctrl+C some seconds later to end the recording.

Here's a test file: ios-simulator-recording-incorrect-dimensions-fixture.mp4.zip

And here's the debug output when dragging it into Gifski:

## AVAsset debug info ##
Extension: mp4
Video codec: H264 (avc1)
Audio codec: nil
Duration: 7s
Dimension: 0×0
Frame rate: 14.99
File size: 3.7 MB
Is readable: true
Is playable: true
Is exportable: true
Has protected content: false

Track #1
----
Type: Video
Codec: H264 (avc1)
Duration: 7s
Dimensions: 0×0
Natural size: (1125.0, 0.03717041015625)
Frame rate: 14.99
Is playable: true
Is decodable: true
----

(macOS 10.14.4)

Notice Natural size, which is the AVAssetTrack#naturalSize property, and should be the dimensions, but the height is not the correct value. After applying the .preferredTransform, like you're supposed to, the end result is CGSize.zero.

You can try it for yourself in the debug-dimensions-issue branch.

The dimensions are supposed to be 1125x2436. QuickTime shows the correct dimensions. So does the MediaInfo app.

I have no idea why the height is so screwed up. Seems to me that this is a AVFoundation bug, unless I'm missing something?

Support lower quality

Issuehunt badges

High-quality is awesome, but sometimes I need to use this for longer clips.

@kornelski Is there any way we could support a lower quality mode? I know we have a quality slider, but even with it at 0%, the file is huge.


IssueHunt Summary

kornelski kornelski has been rewarded.

Backers (Total: $200.00)

Submitted pull Requests


Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

App doesn't launch

After installing from Mac Store it fails to run

Running from Finder I get:

The application “Gifski.app” can’t be opened.

Running from terminal:

❯ /Applications/Gifski.app/Contents/MacOS/Gifski
dyld: Symbol not found: __TMSi
  Referenced from: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib
  Expected in: /Applications/Gifski.app/Contents/MacOS/../Frameworks/libswiftCore.dylib
 in /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib
fish: '/Applications/Gifski.app/Conten…' terminated by signal SIGABRT (Abort)

I'm gonna try building from source now.. :p

update: i gave up building from source after this error building imagequant-sys v2.11.9: unsupported option '-fopenmp'. not ready to upgrade my clang. :/

Resulting file size vs gifski-cli

Hello,
I'm getting 30%-40% smaller file sizes while using this app versus the gifski cli tool on the same input material.
Could anyone give some pointers into where/how this difference happening?

Thank you very much,
pedro

Allows creating gifs without a filename extension

I was just doing some throwaway gifs and quickly typed "test" into the filename field, expecting the ".gif" extension to be added automatically once I pressed enter, but instead it just dutifully created a file named "test" without any extension.

Photoshop and those sort of apps usually just add the extension for you when you click Save (or press enter) based on the currently selected file type.

In Gifski's case, GIF is the only possible file type, so I think it'd be fine to add ".gif" to the user's filename if they didn't include one themselves.

Support trimming

Issuehunt badges

I realized that there's AVPlayerView and AVPlayerView#beginTrimming which makes it easy to create a trimming view.

See: https://developer.apple.com/documentation/avkit/avplayerview/implementing_trimming_macos

We could have a Trim… button in the save dialog.


Note: This is not an easy issue and requires good Swift and macOS/iOS experience.



IssueHunt Summary

sunshinejr sunshinejr has been rewarded.

Backers (Total: $200.00)

Submitted pull Requests


Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

Add FPS option

It could be useful to have an FPS (Frames per second) option in the save dialog. It should be a slider that goes from 5 to 30.

Share extension

Issuehunt badges

I think it would be useful to create a Share extension for Gifski. That way, any video/screen recording app with a system "Share" button would be able to send a video to Gifski.

This would be especially useful for the built-in macOS screen recording feature. When you're done recording there, you get a thumbnail at the bottom-right of the screen. If you click it, a preview window opens, and in the toolbar, there's a "Share" button. So the user could then quickly send it to Gifski after recording without even having to save the video file.

Thoughts?


IssueHunt Summary

ybrin ybrin has been rewarded.

Backers (Total: $100.00)

Submitted pull Requests


Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

WebP support

Great job on gifski – previous Gif Brewery user and never looking back ❤️

As a user I make gifs for primarily two reasons:

  1. Converting screen captures Gifski crushes it.
  2. Converting webp search results on Giphy webp is not supported so I 😭 a little.

I want to say I can help contribute the fix, but I will be honest about my availability. Please keep up the awesome work on gifski.

p.s. I would happily have paid like $3.99 for this in the App Store.

Option to cancel and to pause the process

It would be great to have an option to cancel and to pause the conversion process. If i wish to cancel the current process the only option is to shut down the application. In this case the exported qif file is not getting deleted.

Show time left estimate during conversion

Issuehunt badges

It might be useful to show an estimate of the time left during the GIF creation. The conversion speed seems pretty stable, at least from my naive perspective.

@kornelski Thoughts on the best way to calculate it?


Note, this is not an easy issue. It's expected that you put a lot of work and perfection into your work.

allewun earned $100.00 by resolving this issue!

Homebrew cask?

I was wondering if it would be possible to add Gifski as a homebrew cask?

Yep that's basically it.

Termination Reason: DYLD, [0x4] Symbol missing

Runs normally on 2016 MacBook Pro. Fails to run on 2015 MacBook Pro with following report:

Crash report

> 
> Process:               Gifski [1128]
> Path:                  /Applications/Gifski.app/Contents/MacOS/Gifski
> Identifier:            com.sindresorhus.Gifski
> Version:               1.0.0 (1)
> App Item ID:           1351639930
> App External ID:       826066360
> Code Type:             X86-64 (Native)
> Parent Process:        ??? [1]
> Responsible:           Gifski [1128]
> User ID:               501
> 
> Date/Time:             2018-02-26 11:48:49.483 +0400
> OS Version:            Mac OS X 10.13.3 (17D102)
> Report Version:        12
> Anonymous UUID:        B27F5817-1672-2FBA-F945-B5B2744CCE6A
> 
> 
> Time Awake Since Boot: 1000 seconds
> 
> System Integrity Protection: enabled
> 
> Crashed Thread:        0
> 
> Exception Type:        EXC_CRASH (SIGABRT)
> Exception Codes:       0x0000000000000000, 0x0000000000000000
> Exception Note:        EXC_CORPSE_NOTIFY
> 
> Termination Reason:    DYLD, [0x4] Symbol missing
> 
> Application Specific Information:
> dyld: launch, loading dependent libraries
> 
> Dyld Error Message:
>   Symbol not found: __TMSi
>   Referenced from: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib
>   Expected in: /Applications/Gifski.app/Contents/MacOS/../Frameworks/libswiftCore.dylib
>  in /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib
> 
> Binary Images:
>        0x100e76000 -        0x100fb4ff7 +com.sindresorhus.Gifski (1.0.0 - 1) <E5647E64-978E-3667-83BB-A6DEBB3E489A> /Applications/Gifski.app/Contents/MacOS/Gifski
>        0x100ffb000 -        0x10101bff7 +ProgressKit (1.0 - ???) <5845D54C-644D-309D-857B-F5F266CCE798> /Applications/Gifski.app/Contents/Frameworks/ProgressKit.framework/Versions/A/ProgressKit
>        0x101058000 -        0x101066fff +libswiftAVFoundation.dylib (4.0.3 - 900.0.74.1) <FC937BB3-D0FB-35D1-9270-FA2DC117821B> /Applications/Gifski.app/Contents/Frameworks/libswiftAVFoundation.dylib
>        0x101076000 -        0x101086ff7 +libswiftAppKit.dylib (4.0.3 - 900.0.74.1) <BE94E296-39CD-3F4C-9398-4DEA840C8799> /Applications/Gifski.app/Contents/Frameworks/libswiftAppKit.dylib
>        0x10109e000 -        0x101461fff +libswiftCore.dylib (4.0.3 - 900.0.74.1) <CE685663-7897-3330-83B6-74EEFE1A116F> /Applications/Gifski.app/Contents/Frameworks/libswiftCore.dylib
>        0x101797000 -        0x10179eff7 +libswiftCoreAudio.dylib (4.0.3 - 900.0.74.1) <68E5B93C-487C-31C1-AC5D-4BFDCCF4B903> /Applications/Gifski.app/Contents/Frameworks/libswiftCoreAudio.dylib
>        0x1017ac000 -        0x1017b6ff7 +libswiftCoreData.dylib (4.0.3 - 900.0.74.1) <416DAE7E-AFFB-3112-9943-068438DB6536> /Applications/Gifski.app/Contents/Frameworks/libswiftCoreData.dylib
>        0x1017c6000 -        0x1017c9ff7 +libswiftCoreFoundation.dylib (4.0.3 - 900.0.74.1) <51C48082-D5E2-34FD-9E5E-E5B822A3A1D4> /Applications/Gifski.app/Contents/Frameworks/libswiftCoreFoundation.dylib
>        0x1017d5000 -        0x1017e5ff7 +libswiftCoreGraphics.dylib (4.0.3 - 900.0.74.1) <6EE1A751-4A73-3BFD-B683-6F232E2CA3BC> /Applications/Gifski.app/Contents/Frameworks/libswiftCoreGraphics.dylib
>        0x101804000 -        0x101809ffe +libswiftCoreImage.dylib (4.0.3 - 900.0.74.1) <CBA31255-A204-3F42-87F9-DC54338B97F0> /Applications/Gifski.app/Contents/Frameworks/libswiftCoreImage.dylib
>        0x101814000 -        0x10181eff7 +libswiftCoreMedia.dylib (4.0.3 - 900.0.74.1) <6441DF57-06CB-3AFF-B52E-8CC230D11D97> /Applications/Gifski.app/Contents/Frameworks/libswiftCoreMedia.dylib
>        0x10182a000 -        0x101830fff +libswiftDarwin.dylib (4.0.3 - 900.0.74.1) <0C6938A7-E862-3D6C-A235-0C9293F73141> /Applications/Gifski.app/Contents/Frameworks/libswiftDarwin.dylib
>        0x101842000 -        0x10185dff7 +libswiftDispatch.dylib (4.0.3 - 900.0.74.1) <A186E72B-EB1F-3E39-B24F-31D808181B8E> /Applications/Gifski.app/Contents/Frameworks/libswiftDispatch.dylib
>        0x10188f000 -        0x1019fdfff +libswiftFoundation.dylib (4.0.3 - 900.0.74.1) <77CAE5A8-061A-3AD9-BB09-8A3270D8B555> /Applications/Gifski.app/Contents/Frameworks/libswiftFoundation.dylib
>        0x101b44000 -        0x101b47ff7 +libswiftIOKit.dylib (4.0.3 - 900.0.74.1) <AB7F1556-2310-3C2A-BDF5-F3D4996822F6> /Applications/Gifski.app/Contents/Frameworks/libswiftIOKit.dylib
>        0x101b51000 -        0x101b59fff +libswiftMetal.dylib (4.0.3 - 900.0.74.1) <83746948-FF16-3C9D-A07C-D3D1DC355180> /Applications/Gifski.app/Contents/Frameworks/libswiftMetal.dylib
>        0x101b66000 -        0x101b6cfff +libswiftObjectiveC.dylib (4.0.3 - 900.0.74.1) <3B0264FA-0487-3825-8F04-D53A4B93D541> /Applications/Gifski.app/Contents/Frameworks/libswiftObjectiveC.dylib
>        0x101b7b000 -        0x101b82fff +libswiftQuartzCore.dylib (4.0.3 - 900.0.74.1) <D3287398-F0B9-3A1A-ACC6-A5CC69FC5A05> /Applications/Gifski.app/Contents/Frameworks/libswiftQuartzCore.dylib
>        0x101b8b000 -        0x101b8eff3 +libswiftXPC.dylib (4.0.3 - 900.0.74.1) <F2E2E3D3-1B0C-3D45-9628-D74BD2279D46> /Applications/Gifski.app/Contents/Frameworks/libswiftXPC.dylib
>        0x101b97000 -        0x101bc4ff7 +libswiftsimd.dylib (4.0.3 - 900.0.74.1) <A8790212-CEEC-3F5B-8874-BB5BCBED0F76> /Applications/Gifski.app/Contents/Frameworks/libswiftsimd.dylib
>        0x101c03000 -        0x101c08fff +libswiftos.dylib (3.1 - 802.0.53) <7C7E5546-E7AD-335F-BB30-562B6F888A43> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftos.dylib
>        0x109da3000 -        0x109ded98f  dyld (519.2.2) <6695F30B-4E88-3C0B-9867-7D738C44A3E6> /usr/lib/dyld
>     0x7fff2ba4b000 -     0x7fff2bc26fff  com.apple.avfoundation (2.0 - 1530.2) <30F528A4-548F-3E18-80A8-06481788E84C> /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation
>     0x7fff2bc27000 -     0x7fff2bce1ff7  com.apple.audio.AVFAudio (1.0 - ???) <891340D8-A1F3-37B5-A183-EE5BE81F5296> /System/Library/Frameworks/AVFoundation.framework/Versions/A/Frameworks/AVFAudio.framework/Versions/A/AVFAudio
>     0x7fff2bde7000 -     0x7fff2bde7fff  com.apple.Accelerate (1.11 - Accelerate 1.11) <5AA750F5-D633-32BA-B7F3-4F651FB1761E> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
>     0x7fff2bdff000 -     0x7fff2c2fdfc3  com.apple.vImage (8.1 - ???) <310976EE-E12D-39D7-8F58-6EE924E08576> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
>     0x7fff2c2fe000 -     0x7fff2c458fcb  libBLAS.dylib (1211.30.1) <0DB0D952-BCF4-3479-BA2F-785FB1A57479> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
>     0x7fff2c459000 -     0x7fff2c487fef  libBNNS.dylib (37) <49EB4DBA-877C-3D41-90A2-C3D982C72A54> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
>     0x7fff2c488000 -     0x7fff2c848ff7  libLAPACK.dylib (1211.30.1) <2D4E4446-6B63-350C-BD68-A1B8FBE99539> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
>     0x7fff2c849000 -     0x7fff2c85eff7  libLinearAlgebra.dylib (1211.30.1) <6C68F41D-1398-3AFE-BE72-C0ECA1B24BDC> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
>     0x7fff2c85f000 -     0x7fff2c864ff3  libQuadrature.dylib (3) <3D6BF66A-55B2-3692-BAC7-DEB0C676ED29> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
>     0x7fff2c865000 -     0x7fff2c8c3fff  libSparse.dylib (79.1.1) <7AD0F8A8-FD36-36FE-B83D-58648EBD0027> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
>     0x7fff2c8c4000 -     0x7fff2c8d7fff  libSparseBLAS.dylib (1211.30.1) <42506F6F-0F38-322E-9903-C1DB66E4DA05> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
>     0x7fff2c8d8000 -     0x7fff2ca84fc3  libvDSP.dylib (622.20.8) <6FFCA52B-7D60-326A-ADF2-601F39A8685A> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
>     0x7fff2ca85000 -     0x7fff2cb35fef  libvMisc.dylib (622.20.8) <54F90047-879F-3260-8604-6E453149B49E> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
>     0x7fff2cb36000 -     0x7fff2cb36fff  com.apple.Accelerate.vecLib (3.11 - vecLib 3.11) <8A96A8ED-7B88-3D17-8D17-41D224E0EC90> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
>     0x7fff2ce26000 -     0x7fff2dc83fff  com.apple.AppKit (6.9 - 1561.20.106) <AF59A3CF-E3C3-3046-86D9-0C9145E60CE4> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
>     0x7fff2dcd5000 -     0x7fff2dcd5fff  com.apple.ApplicationServices (48 - 50) <7627DBD6-497B-3AB7-9B63-F0532EDF09B8> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
>     0x7fff2dcd6000 -     0x7fff2dd3cfff  com.apple.ApplicationServices.ATS (377 - 445) <CDF5F6D7-4E7D-3D28-9FBA-1B53AD9FA8F8> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
>     0x7fff2ddd5000 -     0x7fff2def7fff  libFontParser.dylib (222.1.2) <11BD5EEF-AF18-33FB-B114-DD611932E822> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
>     0x7fff2def8000 -     0x7fff2df42ff7  libFontRegistry.dylib (221) <A22F82C0-B4FE-3DB5-B968-79B28257DF2F> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
>     0x7fff2e084000 -     0x7fff2e088ff3  com.apple.ColorSyncLegacy (4.13.0 - 1) <42C25E85-1CF3-3DEC-A434-BE69F68F4318> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy
>     0x7fff2e128000 -     0x7fff2e17aff7  com.apple.HIServices (1.22 - 622) <2E83CD6F-ED98-3C29-BD0A-8525E38AB5DB> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
>     0x7fff2e17b000 -     0x7fff2e189fff  com.apple.LangAnalysis (1.7.0 - 1.7.0) <71A9C815-AC55-3E36-A618-F6778F5119AD> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
>     0x7fff2e18a000 -     0x7fff2e1d6fff  com.apple.print.framework.PrintCore (13 - 503) <A69E2BAD-2B66-38CC-9D3A-0A0EBC41341D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
>     0x7fff2e1d7000 -     0x7fff2e211fff  com.apple.QD (3.12 - 403) <38D8106A-4FFA-3FE9-9999-714CADD7EE9C> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
>     0x7fff2e212000 -     0x7fff2e21efff  com.apple.speech.synthesis.framework (7.4.1 - 7.4.1) <9ABE85D9-6E4A-3CEF-AA09-F81E52730598> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
>     0x7fff2e21f000 -     0x7fff2e4aafff  com.apple.audio.toolbox.AudioToolbox (1.14 - 1.14) <46EDC245-5877-3438-805C-3AA0316E3F5C> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
>     0x7fff2e4ac000 -     0x7fff2e4acfff  com.apple.audio.units.AudioUnit (1.14 - 1.14) <0FC3B4FF-FFAB-3346-9A6A-C1DE033185EA> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
>     0x7fff2e7c1000 -     0x7fff2eb53fff  com.apple.CFNetwork (893.13.1 - 893.13.1) <3ECC6AD0-B47D-38D2-BF26-496B34847D25> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
>     0x7fff2eb68000 -     0x7fff2eb68fff  com.apple.Carbon (158 - 158) <FCD7A9FF-5E53-3B0C-8A52-691C11B2A0C5> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
>     0x7fff2eb69000 -     0x7fff2eb6cffb  com.apple.CommonPanels (1.2.6 - 98) <39C8EBA3-EEB2-335B-8A88-D6C64BAA112F> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
>     0x7fff2eb6d000 -     0x7fff2ee72ff7  com.apple.HIToolbox (2.1.1 - 910.4) <D1A799BC-146A-35E8-86FF-E36273123006> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
>     0x7fff2ee73000 -     0x7fff2ee76ffb  com.apple.help (1.3.8 - 64) <18D02016-119A-33E8-AEB0-E9466BA4AD56> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
>     0x7fff2ee77000 -     0x7fff2ee7cfff  com.apple.ImageCapture (9.0 - 9.0) <2DE590E5-DF0E-3962-A2BE-06EBC79B3D72> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
>     0x7fff2ee7d000 -     0x7fff2ef12ffb  com.apple.ink.framework (10.9 - 220) <D8AECAE3-9FD2-32E3-B659-026F33650BB2> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
>     0x7fff2ef13000 -     0x7fff2ef2dff7  com.apple.openscripting (1.7 - 174) <66899B51-ADFD-360D-88E9-B52439F531B4> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
>     0x7fff2ef4e000 -     0x7fff2ef4ffff  com.apple.print.framework.Print (12 - 267) <E4CBAAFC-9045-38AC-9F93-8C931DDED9D8> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
>     0x7fff2ef50000 -     0x7fff2ef52ff7  com.apple.securityhi (9.0 - 55006) <E7668200-B4CB-3612-96B8-D57E94077787> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
>     0x7fff2ef53000 -     0x7fff2ef59fff  com.apple.speech.recognition.framework (6.0.3 - 6.0.3) <1F10ED1F-12C7-39AC-88A0-43A1338F9316> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
>     0x7fff2f066000 -     0x7fff2f066fff  com.apple.Cocoa (6.11 - 22) <1553F279-3C7B-3A48-87E6-35237F7F452E> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
>     0x7fff2f074000 -     0x7fff2f12dff7  com.apple.ColorSync (4.13.0 - 546) <A5E013D9-7305-3026-879E-4D1F038A430D> /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync
>     0x7fff2f2ba000 -     0x7fff2f34dff7  com.apple.audio.CoreAudio (4.3.0 - 4.3.0) <F91FDE26-0702-3E44-8931-E2CAD8E36F5A> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
>     0x7fff2f3b4000 -     0x7fff2f3ddffb  com.apple.CoreBluetooth (1.0 - 1) <942F88A5-AD68-3359-90D5-6F1A3311C51A> /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth
>     0x7fff2f3de000 -     0x7fff2f732fe7  com.apple.CoreData (120 - 849.2) <CE0AF596-64C0-34F3-AFE0-B94D18C09957> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
>     0x7fff2f733000 -     0x7fff2f7fffff  com.apple.CoreDisplay (1.0 - 81.7) <D8030B81-097E-3FA2-A85C-AE1A3B8EBCFB> /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay
>     0x7fff2f800000 -     0x7fff2fca0fe7  com.apple.CoreFoundation (6.9 - 1451) <7AFE9C8F-A562-3AFC-8402-117AA02F57E9> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
>     0x7fff2fca2000 -     0x7fff302affef  com.apple.CoreGraphics (2.0 - 1129.5) <F37BFBD2-CC21-3521-B034-9D4D36197487> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
>     0x7fff302b1000 -     0x7fff305a0fff  com.apple.CoreImage (13.0.0 - 579.2.9) <8AE143AB-6284-3B00-B56D-8C0C1826EF34> /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
>     0x7fff3082f000 -     0x7fff30910fff  com.apple.CoreMedia (1.0 - 2270.12.1) <B62CF714-D69A-38C3-9929-B70FF4CBB216> /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia
>     0x7fff30911000 -     0x7fff3095ffff  com.apple.CoreMediaIO (812.0 - 4993) <CA47AF11-0EF4-33E1-9EC3-7A56661FFEE4> /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/CoreMediaIO
>     0x7fff30960000 -     0x7fff30960fff  com.apple.CoreServices (822.19 - 822.19) <44456ED2-59E4-34CB-B41B-C6A82B269949> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
>     0x7fff30961000 -     0x7fff309d5ffb  com.apple.AE (735.1 - 735.1) <D0C73200-90A7-3FD1-A6EC-97055AA367E2> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
>     0x7fff309d6000 -     0x7fff30cadff7  com.apple.CoreServices.CarbonCore (1178.2 - 1178.2) <A1FE74F8-953B-371E-A8AC-E87B30FB79C6> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
>     0x7fff30cae000 -     0x7fff30ce2ff7  com.apple.DictionaryServices (1.2 - 284) <3FCEE280-8DD0-37C9-BFD4-7BA87AAFC8EF> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
>     0x7fff30ce3000 -     0x7fff30cebff3  com.apple.CoreServices.FSEvents (1239 - 1239) <7BBC5CB7-DBC8-316B-99B0-781827159A2F> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
>     0x7fff30cec000 -     0x7fff30ea4ff7  com.apple.LaunchServices (822.19 - 822.19) <2895A919-0445-3CE2-9696-40122B5A46C5> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
>     0x7fff30ea5000 -     0x7fff30f54ff7  com.apple.Metadata (10.7.0 - 1191.2.6) <FB66B298-D55D-398A-BEDB-CB7B82956AE5> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
>     0x7fff30f55000 -     0x7fff30fb2ff7  com.apple.CoreServices.OSServices (822.19 - 822.19) <34BF1FAC-A0F7-37B4-950D-46408EBA9684> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
>     0x7fff30fb3000 -     0x7fff31021fff  com.apple.SearchKit (1.4.0 - 1.4.0) <14053F88-2C76-35CA-9FC1-2A9BC0B63F88> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
>     0x7fff31022000 -     0x7fff31046ffb  com.apple.coreservices.SharedFileList (71.4 - 71.4) <4AA6DCF5-BAF8-36FA-A8B0-EDF518EFEF14> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
>     0x7fff312e1000 -     0x7fff3142ffff  com.apple.CoreText (352.0 - 578.12.1) <55B16B2D-F083-3B89-A5C2-52FB053331F2> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
>     0x7fff31430000 -     0x7fff3146aff3  com.apple.CoreVideo (1.8 - 279.2) <A8FC5325-D092-3A28-A1CF-5C94B8101F71> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
>     0x7fff3146b000 -     0x7fff314f5ffb  com.apple.framework.CoreWLAN (13.0 - 1339) <16DDD47C-BBFE-3D49-8BDF-3652017240FD> /System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN
>     0x7fff31770000 -     0x7fff31775fff  com.apple.DiskArbitration (2.7 - 2.7) <44836CE9-A9ED-3017-972A-7A0A3D6B472B> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
>     0x7fff31936000 -     0x7fff31cfbfff  com.apple.Foundation (6.9 - 1451) <B99F94E7-117E-39CC-A65D-B7AEA8998481> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
>     0x7fff31d6b000 -     0x7fff31d9bfff  com.apple.GSS (4.0 - 2.0) <3B4B4509-B5A3-396B-9C71-80BAE84476FA> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
>     0x7fff31ead000 -     0x7fff31fb0ff3  com.apple.Bluetooth (6.0.2 - 6.0.2f2) <718565B3-6DA7-3DF9-BB51-391FFCAEAFA5> /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
>     0x7fff32010000 -     0x7fff320abfff  com.apple.framework.IOKit (2.0.2 - 1445.40.1) <9CFA07B9-BA6E-31E4-AD4F-C47071A8C522> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
>     0x7fff320ad000 -     0x7fff320b4ffb  com.apple.IOSurface (209.2.2 - 209.2.2) <6D35A601-1C47-37BE-AD31-F8EB88F67573> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
>     0x7fff3210b000 -     0x7fff32282ff7  com.apple.ImageIO.framework (3.3.0 - 1713) <D3CE3838-72C5-3860-B3A4-6937FD916329> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
>     0x7fff32283000 -     0x7fff32287ffb  libGIF.dylib (1713) <C65B2846-1B94-3BB3-BBBF-5A9E5054CE1E> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
>     0x7fff32288000 -     0x7fff3236ffff  libJP2.dylib (1713) <332083DD-3D27-3DE7-9866-A36D590E511E> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
>     0x7fff32370000 -     0x7fff32393ff7  libJPEG.dylib (1713) <2D846A18-D8AF-3573-803B-BEABCBAC38D1> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
>     0x7fff3266f000 -     0x7fff32695feb  libPng.dylib (1713) <546F41CE-185C-31A0-B61C-1012AA932624> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
>     0x7fff32696000 -     0x7fff32698ffb  libRadiance.dylib (1713) <31787C46-4A2B-3CDF-95E9-EC1BD4794917> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
>     0x7fff32699000 -     0x7fff326e6feb  libTIFF.dylib (1713) <5319B2E1-83D2-30C7-A7BC-A0CE0B07885D> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
>     0x7fff33475000 -     0x7fff3348eff7  com.apple.Kerberos (3.0 - 1) <CAF075C0-4C24-3ACE-9AE6-77BEFDEA3622> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
>     0x7fff33746000 -     0x7fff3374dfff  com.apple.MediaAccessibility (1.0 - 114) <D72C593A-AC32-3419-AB86-6B07217EBFD5> /System/Library/Frameworks/MediaAccessibility.framework/Versions/A/MediaAccessibility
>     0x7fff337f0000 -     0x7fff33e0bfff  com.apple.MediaToolbox (1.0 - 2270.12.1) <40802884-1347-3CDC-AAD3-D046463A528E> /System/Library/Frameworks/MediaToolbox.framework/Versions/A/MediaToolbox
>     0x7fff33e0d000 -     0x7fff33e8cfff  com.apple.Metal (124.7 - 124.7) <F161C177-80B4-3674-8147-04343702CF08> /System/Library/Frameworks/Metal.framework/Versions/A/Metal
>     0x7fff33ea9000 -     0x7fff33ebefff  com.apple.MetalPerformanceShaders.MPSCore (1.0 - 1) <D4BCBA84-AD1B-33DC-99F3-16F9E5E50906> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore
>     0x7fff33ebf000 -     0x7fff33f2afef  com.apple.MetalPerformanceShaders.MPSImage (1.0 - 1) <E504EC97-FAD7-36DC-B151-6F89AB911E3A> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage
>     0x7fff33f2b000 -     0x7fff33f4efff  com.apple.MetalPerformanceShaders.MPSMatrix (1.0 - 1) <A5B6F6FC-A19A-32C0-A999-98B6688760C7> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix
>     0x7fff33f4f000 -     0x7fff33fcfff7  com.apple.MetalPerformanceShaders.MPSNeuralNetwork (1.0 - 1) <D0D8F13F-ACD4-3B61-BE54-121CCB05ECF4> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork
>     0x7fff33fd0000 -     0x7fff33fd0ff7  com.apple.MetalPerformanceShaders.MetalPerformanceShaders (1.0 - 1) <2E8723FC-AA53-3596-B6A4-220A378B7A5A> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders
>     0x7fff34fd9000 -     0x7fff34fe5ffb  com.apple.NetFS (6.0 - 4.0) <81B22AE7-7094-30F2-BF41-84CA05EDB95B> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
>     0x7fff37dd6000 -     0x7fff37e23ffb  com.apple.opencl (2.8.12 - 2.8.12) <7F9BF7F0-AFB2-349A-BF9B-2DE5288380C4> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
>     0x7fff37e24000 -     0x7fff37e40ffb  com.apple.CFOpenDirectory (10.13 - 207) <A229B355-337B-33F4-AAA8-C751BEF0B718> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
>     0x7fff37e41000 -     0x7fff37e4cfff  com.apple.OpenDirectory (10.13 - 207) <D8AA4C58-149E-3504-88CD-F5B59F882C25> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
>     0x7fff38fcb000 -     0x7fff38fcdfff  libCVMSPluginSupport.dylib (16.4.2) <A967BC8B-ABB3-393F-BF34-BD32B45831F7> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
>     0x7fff38fce000 -     0x7fff38fd2ff7  libCoreFSCache.dylib (162.4) <B325B709-0C81-357A-B9F1-6E0027B64F9B> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib
>     0x7fff38fd3000 -     0x7fff38fd7fff  libCoreVMClient.dylib (162.4) <B129DB84-39BA-34E4-9FB7-20A020A1BB86> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
>     0x7fff38fd8000 -     0x7fff38fe0fff  libGFXShared.dylib (16.4.2) <07F1D947-F79B-3608-9080-E4DBFE13AF1D> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
>     0x7fff38fe1000 -     0x7fff38fecfff  libGL.dylib (16.4.2) <97D6871A-BAF1-33DD-9ED7-BE7BB437F378> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
>     0x7fff38fed000 -     0x7fff39028fe7  libGLImage.dylib (16.4.2) <3E2802DF-4998-31DB-B3A2-65720DE919A5> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
>     0x7fff39196000 -     0x7fff391d4ffb  libGLU.dylib (16.4.2) <ECABCFAB-E400-3667-8EE1-586C07E0E214> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
>     0x7fff39b4c000 -     0x7fff39b5affb  com.apple.opengl (16.4.2 - 16.4.2) <C8C31EF5-8DB4-336F-A87C-5D520C7EFDC5> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
>     0x7fff3a9a2000 -     0x7fff3abeafff  com.apple.QuartzCore (1.11 - 584.8.102) <4479AF33-E6EA-3037-A2C1-3C6F12B1260A> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
>     0x7fff3b423000 -     0x7fff3b73aff7  com.apple.security (7.0 - 58286.41.2) <EB297497-884A-362F-B566-73A14A2F25FE> /System/Library/Frameworks/Security.framework/Versions/A/Security
>     0x7fff3b73b000 -     0x7fff3b7c5ff7  com.apple.securityfoundation (6.0 - 55185.30.4) <65144003-B9E2-3DE3-8923-F2BAA68BBF4E> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
>     0x7fff3b7f7000 -     0x7fff3b7faffb  com.apple.xpc.ServiceManagement (1.0 - 1) <B11C3C64-6FE7-3A78-B583-D790B7CCE95A> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
>     0x7fff3bb9f000 -     0x7fff3bc0fff3  com.apple.SystemConfiguration (1.17 - 1.17) <3C6B2BB9-43AB-39AD-8027-38E30A8A4186> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
>     0x7fff3bdc4000 -     0x7fff3c13dff7  com.apple.VideoToolbox (1.0 - 2270.12.1) <77848D39-10DA-3AA3-88F4-2898F42FCA5A> /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox
>     0x7fff3e842000 -     0x7fff3e8ceff7  com.apple.APFS (1.0 - 1) <9D67579C-7FB4-3AD9-AB4F-9174A552EB37> /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
>     0x7fff3f4e1000 -     0x7fff3f509fff  com.apple.framework.Apple80211 (13.0 - 1345) <D1B8340A-41FB-35C3-88F0-3DDD9A2A1999> /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211
>     0x7fff3f50b000 -     0x7fff3f51aff7  com.apple.AppleFSCompression (96.30.2 - 1.0) <CFA90544-68EB-3CCE-A8F7-1B03974F3B85> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
>     0x7fff3f656000 -     0x7fff3f69eff3  com.apple.AppleJPEG (1.0 - 1) <8BBD5180-5BF9-33DB-8B91-974B1D0AECFB> /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
>     0x7fff3f6d9000 -     0x7fff3f701fff  com.apple.applesauce (1.0 - ???) <32FF4851-2F68-35BA-835F-91856A20C323> /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
>     0x7fff3f7ce000 -     0x7fff3f81eff7  com.apple.AppleVAFramework (5.0.39 - 5.0.39) <4B830521-2A54-3116-8103-127E631FEDC8> /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
>     0x7fff3feed000 -     0x7fff3fef4ff7  com.apple.coreservices.BackgroundTaskManagement (1.0 - 57.1) <47B6301F-D908-3811-BB9E-DA16D9B29A34> /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
>     0x7fff3fef5000 -     0x7fff3ff7cff7  com.apple.backup.framework (1.9.2 - 1.9.2) <40C6CFA8-4013-3AFB-97CE-8A09388FA343> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
>     0x7fff4190c000 -     0x7fff41915ff3  com.apple.CommonAuth (4.0 - 2.0) <11B2D184-36B8-3624-B1AD-7B6037D76160> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
>     0x7fff41ba6000 -     0x7fff41f86fff  com.apple.CoreAUC (249.0.0 - 249.0.0) <7F406271-A215-3C75-BDAA-B9611BA2822E> /System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC
>     0x7fff41f87000 -     0x7fff41fb7ff7  com.apple.CoreAVCHD (5.9.0 - 5900.4.1) <D0879D8F-488A-3D46-BC50-AD7B0642C0E8> /System/Library/PrivateFrameworks/CoreAVCHD.framework/Versions/A/CoreAVCHD
>     0x7fff42322000 -     0x7fff42332ff7  com.apple.CoreEmoji (1.0 - 69.3) <A4357F5C-0C38-3A61-B456-D7321EB2CEE5> /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
>     0x7fff43588000 -     0x7fff43619fff  com.apple.CoreSymbolication (63075) <2458D96C-1C31-34F8-93F0-73DB0042CB30> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
>     0x7fff4369c000 -     0x7fff437d0fff  com.apple.coreui (2.1 - 492.2) <FE0B32BC-958D-3445-866E-A3905626396D> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
>     0x7fff437d1000 -     0x7fff438dcfff  com.apple.CoreUtils (5.3 - 530.60) <D74B16CC-E2C5-3D8A-B9F4-6D1DB23092B1> /System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils
>     0x7fff43931000 -     0x7fff43995fff  com.apple.framework.CoreWiFi (13.0 - 1339) <7EBA8BA5-C650-3067-A805-8DD08FC816FD> /System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi
>     0x7fff43996000 -     0x7fff439a5ff7  com.apple.CrashReporterSupport (10.13 - 1) <6B5B2B78-15D2-363F-BE34-8F9226E79E24> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
>     0x7fff43a22000 -     0x7fff43a31ff7  com.apple.framework.DFRFoundation (1.0 - 191.1) <87B83349-C317-3E07-894C-5BC5C20AE08B> /System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation
>     0x7fff43a34000 -     0x7fff43a38ffb  com.apple.DSExternalDisplay (3.1 - 380) <BEC07C7C-F3AC-3CF3-B13E-3EBFD6224C0D> /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay
>     0x7fff43abe000 -     0x7fff43b34fff  com.apple.datadetectorscore (7.0 - 590.3) <792593BC-21C7-3E0C-929E-067CD725FCBD> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
>     0x7fff43b82000 -     0x7fff43bc2ff7  com.apple.DebugSymbols (141 - 141) <99562E28-0E56-3F6F-93A1-EF997A5E1F87> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
>     0x7fff43bc3000 -     0x7fff43cf2fff  com.apple.desktopservices (1.12.2 - 1.12.2) <8E068AF7-FB72-38E2-948E-6C13F359C69D> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
>     0x7fff44a67000 -     0x7fff44e95fff  com.apple.vision.FaceCore (3.3.2 - 3.3.2) <80C97AD7-D5C2-311A-B268-4AA60CAD6CED> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
>     0x7fff48ea9000 -     0x7fff48eb8fff  com.apple.GraphVisualizer (1.0 - 5) <0A93C5DE-0D28-312E-8764-6B0FB805ED91> /System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer
>     0x7fff48f30000 -     0x7fff48fa4fff  com.apple.Heimdal (4.0 - 2.0) <ACC132E5-97F1-3B36-AD7B-4E6CC077E691> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
>     0x7fff49856000 -     0x7fff4985dffb  com.apple.IOAccelerator (376.6 - 376.6) <A47129CC-F386-3C31-AD66-C19A70615A50> /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
>     0x7fff49861000 -     0x7fff49878fff  com.apple.IOPresentment (1.0 - 32.1) <B95F06EA-9D5D-311D-9912-978AE42ECFCE> /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment
>     0x7fff49c42000 -     0x7fff49c67fff  com.apple.IconServices (97.4 - 97.4) <C84A6CA5-8C50-3288-8572-CC3DABF5BBCE> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
>     0x7fff49d71000 -     0x7fff49d74ff3  com.apple.InternationalSupport (1.0 - 1) <5AB382FD-BF81-36A1-9565-61F1FD398ECA> /System/Library/PrivateFrameworks/InternationalSupport.framework/Versions/A/InternationalSupport
>     0x7fff49de2000 -     0x7fff49df2ffb  com.apple.IntlPreferences (2.0 - 227) <0FF7209B-0E4D-3411-B325-03938B7C0938> /System/Library/PrivateFrameworks/IntlPreferences.framework/Versions/A/IntlPreferences
>     0x7fff49efc000 -     0x7fff49ff1fff  com.apple.LanguageModeling (1.0 - 159.3.1) <9B08E18E-69B4-3413-A03A-EF5AE4BE6277> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
>     0x7fff49ff2000 -     0x7fff4a034ff7  com.apple.Lexicon-framework (1.0 - 33.2) <5CC5E8EE-62A1-3EA5-B300-A39ABD0CF12D> /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
>     0x7fff4a038000 -     0x7fff4a03fff7  com.apple.LinguisticData (1.0 - 238.3) <228AF7CA-649A-3E24-BBC7-8A24B39B3FC4> /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
>     0x7fff4a863000 -     0x7fff4a866fff  com.apple.Mangrove (1.0 - 1) <13832222-8A6B-3790-8914-BE874B5ED4DD> /System/Library/PrivateFrameworks/Mangrove.framework/Versions/A/Mangrove
>     0x7fff4aca1000 -     0x7fff4ad0aff7  com.apple.gpusw.MetalTools (1.0 - 1) <F77943BC-0466-3700-BEDF-CDD13125D36A> /System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools
>     0x7fff4af23000 -     0x7fff4af4bfff  com.apple.MultitouchSupport.framework (1204.13 - 1204.13) <6C5D778D-4AB7-39A4-989B-2E8D2D57B3A0> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
>     0x7fff4b1b0000 -     0x7fff4b1bbfff  com.apple.NetAuth (6.2 - 6.2) <5C6F492A-28EF-3A0E-B573-6F3D60CFF0C7> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
>     0x7fff4c9bd000 -     0x7fff4c9fdffb  com.apple.PerformanceAnalysis (1.183.1 - 183.1) <2BE359F2-DCE6-3E33-BA99-964507A3F540> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
>     0x7fff4e7d9000 -     0x7fff4e7f7fff  com.apple.ProtocolBuffer (1 - 259) <D047A3FE-C7A8-3CAA-9891-6232BA88C247> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
>     0x7fff4e9c8000 -     0x7fff4e9d3fff  com.apple.xpc.RemoteServiceDiscovery (1.0 - 1205.30.29) <E2AEA0D7-23E6-3198-96EF-2F1F8ACD98B4> /System/Library/PrivateFrameworks/RemoteServiceDiscovery.framework/Versions/A/RemoteServiceDiscovery
>     0x7fff4e9d4000 -     0x7fff4e9f7ffb  com.apple.RemoteViewServices (2.0 - 125) <AEDBCE8C-88B7-315A-9F81-3E068F0D3EDC> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
>     0x7fff4e9f8000 -     0x7fff4ea09ffb  com.apple.xpc.RemoteXPC (1.0 - 1205.30.29) <1FD53EC6-A9E9-3AEC-86A7-C52729D1A135> /System/Library/PrivateFrameworks/RemoteXPC.framework/Versions/A/RemoteXPC
>     0x7fff50314000 -     0x7fff50425fff  com.apple.Sharing (972.14 - 972.14) <964AEC2D-8A2A-33BE-9334-98A7CBE7CC51> /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
>     0x7fff5044f000 -     0x7fff50450fff  com.apple.performance.SignpostNotification (1.0 - 1) <D4C967BA-92C6-3BAB-AFB5-59F98B35F921> /System/Library/PrivateFrameworks/SignpostNotification.framework/Versions/A/SignpostNotification
>     0x7fff5114d000 -     0x7fff513e7fff  com.apple.SkyLight (1.600.0 - 312.23.4) <455CE6F6-CD58-3E08-8300-CA8BDD3377FC> /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
>     0x7fff51b98000 -     0x7fff51ba5ff7  com.apple.SpeechRecognitionCore (4.0.13 - 4.0.13) <AC026FB9-78F8-31F9-BB80-619D5378DB70> /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore
>     0x7fff52737000 -     0x7fff527bbfe7  com.apple.Symbolication (9.0 - 63079.1) <177BC9CA-E6AE-3B40-806F-0080C0CDFF29> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
>     0x7fff52cad000 -     0x7fff52cb4ff3  com.apple.TCC (1.0 - 1) <C807D3F0-FE20-3FC0-8D61-306477ABEBC4> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
>     0x7fff52ec1000 -     0x7fff52f7eff7  com.apple.TextureIO (3.7 - 3.7) <C98BFACA-7807-3DCA-945D-58EBA2B723C8> /System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO
>     0x7fff53029000 -     0x7fff531d8ff3  com.apple.UIFoundation (1.0 - 546.1.1) <D2DB451C-56CD-3249-B8EE-AF21DBDCFBF8> /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
>     0x7fff5491b000 -     0x7fff5491dffb  com.apple.loginsupport (1.0 - 1) <5E2C4AA7-066D-3FDB-B0E1-4CDAF287392C> /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
>     0x7fff54a81000 -     0x7fff54ab4fff  libclosured.dylib (519.2.2) <48051216-5647-3643-B979-B77D0FD20011> /usr/lib/closure/libclosured.dylib
>     0x7fff54b54000 -     0x7fff54b8dff7  libCRFSuite.dylib (41) <AB2DA745-F22C-30CF-81D4-35DD716463B8> /usr/lib/libCRFSuite.dylib
>     0x7fff54b8e000 -     0x7fff54b99fff  libChineseTokenizer.dylib (28) <D30A7DB6-058F-3286-9583-60C9EEB77A6E> /usr/lib/libChineseTokenizer.dylib
>     0x7fff54c2b000 -     0x7fff54c2cff3  libDiagnosticMessagesClient.dylib (104) <9712E980-76EE-3A89-AEA6-DF4BAF5C0574> /usr/lib/libDiagnosticMessagesClient.dylib
>     0x7fff54c63000 -     0x7fff54e2dff3  libFosl_dynamic.dylib (17.7) <B2476843-7FA7-3E62-B79F-2B15FE557E63> /usr/lib/libFosl_dynamic.dylib
>     0x7fff54e65000 -     0x7fff54e65fff  libOpenScriptingUtil.dylib (174) <203D2C39-61BB-3713-A502-2D17B04A42AC> /usr/lib/libOpenScriptingUtil.dylib
>     0x7fff54f8e000 -     0x7fff54f92ffb  libScreenReader.dylib (562.13) <21638ECC-87BF-3CC5-B2D8-6F7883F5FDCA> /usr/lib/libScreenReader.dylib
>     0x7fff54f93000 -     0x7fff54f94ff3  libSystem.B.dylib (1252) <47329E26-DC23-3EBA-9461-37755368327D> /usr/lib/libSystem.B.dylib
>     0x7fff55027000 -     0x7fff55027fff  libapple_crypto.dylib (109.40.1) <32252490-B1E9-363F-AEED-3EC97D919348> /usr/lib/libapple_crypto.dylib
>     0x7fff55028000 -     0x7fff5503eff7  libapple_nghttp2.dylib (1.24) <01402BC4-4822-3676-9C80-50D83F816424> /usr/lib/libapple_nghttp2.dylib
>     0x7fff5503f000 -     0x7fff55069ff3  libarchive.2.dylib (54) <8FC28DD8-E315-3C3E-95FE-D1D2CBE49888> /usr/lib/libarchive.2.dylib
>     0x7fff5506a000 -     0x7fff550ebfdf  libate.dylib (1.13.1) <178ACDAD-DE7E-346C-A613-1CBF7929AC07> /usr/lib/libate.dylib
>     0x7fff550ef000 -     0x7fff550efff3  libauto.dylib (187) <A05C7900-F8C7-3E75-8D3F-909B40C19717> /usr/lib/libauto.dylib
>     0x7fff550f0000 -     0x7fff551a7fff  libboringssl.dylib (109.40.1) <75F5F125-B919-3318-BD12-29CB5E868475> /usr/lib/libboringssl.dylib
>     0x7fff551a8000 -     0x7fff551b8ff3  libbsm.0.dylib (39) <770B341F-3BB7-3123-B53C-F2D58868A963> /usr/lib/libbsm.0.dylib
>     0x7fff551b9000 -     0x7fff551c6ffb  libbz2.1.0.dylib (38) <0A5086BB-4724-3C14-979D-5AD4F26B5B45> /usr/lib/libbz2.1.0.dylib
>     0x7fff551c7000 -     0x7fff5521dfff  libc++.1.dylib (400.9) <FCF5E1F6-2B04-3545-8004-F3AB32FED172> /usr/lib/libc++.1.dylib
>     0x7fff5521e000 -     0x7fff55242ff7  libc++abi.dylib (400.7) <217656D5-BC40-37FF-B322-91CB2AAD4F34> /usr/lib/libc++abi.dylib
>     0x7fff55244000 -     0x7fff55254fff  libcmph.dylib (6) <A5509EE8-7E00-3224-8814-015B077A3CF5> /usr/lib/libcmph.dylib
>     0x7fff55255000 -     0x7fff5526bfff  libcompression.dylib (47) <E64D4416-DFBF-314B-BBB9-BED23C3A251C> /usr/lib/libcompression.dylib
>     0x7fff55518000 -     0x7fff55530ff7  libcoretls.dylib (155) <DFE2454F-2FE3-3B2B-A22B-422947C34C69> /usr/lib/libcoretls.dylib
>     0x7fff55531000 -     0x7fff55532ffb  libcoretls_cfhelpers.dylib (155) <D3F4B882-40C1-3CD4-927B-0E0ED6031D0B> /usr/lib/libcoretls_cfhelpers.dylib
>     0x7fff55a02000 -     0x7fff55a58ff3  libcups.2.dylib (462.1) <B78448A0-9C97-3D4A-823E-EBE37B2B7CA6> /usr/lib/libcups.2.dylib
>     0x7fff55ada000 -     0x7fff55ae1ff3  libdscsym.dylib (183.1) <2DE012BF-CE9A-3BDF-9A2D-55D66B51AA35> /usr/lib/libdscsym.dylib
>     0x7fff55b96000 -     0x7fff55b96fff  libenergytrace.dylib (16) <A92AB8B8-B986-3CE6-980D-D55090FEF387> /usr/lib/libenergytrace.dylib
>     0x7fff55bcd000 -     0x7fff55bd2ff3  libheimdal-asn1.dylib (520.30.1) <14DC1451-6E22-3A48-80CB-5D33DC0F8C3B> /usr/lib/libheimdal-asn1.dylib
>     0x7fff55bfe000 -     0x7fff55cefff7  libiconv.2.dylib (51) <0772997F-4109-38A1-91ED-0F3F16AE99E5> /usr/lib/libiconv.2.dylib
>     0x7fff55cf0000 -     0x7fff55f17ffb  libicucore.A.dylib (59152.0.1) <E628882C-6F83-3DCD-B62A-2FE6F77EF6F7> /usr/lib/libicucore.A.dylib
>     0x7fff55f64000 -     0x7fff55f65fff  liblangid.dylib (128) <39C39393-0D05-301D-93B2-F224FC4949AA> /usr/lib/liblangid.dylib
>     0x7fff55f66000 -     0x7fff55f7fffb  liblzma.5.dylib (10) <3D419A50-961F-37D2-8A01-3DC7AB7B8D18> /usr/lib/liblzma.5.dylib
>     0x7fff55f80000 -     0x7fff55f96ff7  libmarisa.dylib (9) <D6D2D55D-1D2E-3442-B152-B18803C0ABB4> /usr/lib/libmarisa.dylib
>     0x7fff56047000 -     0x7fff5626fff7  libmecabra.dylib (779.7.6) <7E255F87-BBB4-3AE5-BC82-6DEE70566D05> /usr/lib/libmecabra.dylib
>     0x7fff56447000 -     0x7fff5651effb  libnetwork.dylib (1229.30.11) <4E7A6EBA-B3DD-3001-9C97-CB423922B78C> /usr/lib/libnetwork.dylib
>     0x7fff56594000 -     0x7fff569827e7  libobjc.A.dylib (723) <93A92316-DE1E-378C-8891-99720B50D075> /usr/lib/libobjc.A.dylib
>     0x7fff56995000 -     0x7fff56999fff  libpam.2.dylib (22) <7B4D2CE2-1438-387A-9802-5CEEFBF26F86> /usr/lib/libpam.2.dylib
>     0x7fff5699c000 -     0x7fff569d0fff  libpcap.A.dylib (79.20.1) <FA13918B-A247-3181-B256-9B852C7BA316> /usr/lib/libpcap.A.dylib
>     0x7fff56a4f000 -     0x7fff56a6bffb  libresolv.9.dylib (65) <E8F3415B-4472-3202-8901-41FD87981DB2> /usr/lib/libresolv.9.dylib
>     0x7fff56ab9000 -     0x7fff56abaff7  libspindump.dylib (248) <12E8B8BA-072F-39AE-8BC9-7D5840DA80EB> /usr/lib/libspindump.dylib
>     0x7fff56abb000 -     0x7fff56c4efe7  libsqlite3.dylib (274.5) <A1DEB5AB-8FE8-332E-A7E5-F493F2223FE3> /usr/lib/libsqlite3.dylib
>     0x7fff56e1f000 -     0x7fff56e58fff  libusrtcp.dylib (1229.30.11) <537F14D0-84DF-349F-8EA0-52BB7A241E60> /usr/lib/libusrtcp.dylib
>     0x7fff56e59000 -     0x7fff56e5cffb  libutil.dylib (51.20.1) <216D18E5-0BAF-3EAF-A38E-F6AC37CBABD9> /usr/lib/libutil.dylib
>     0x7fff56e5d000 -     0x7fff56e6afff  libxar.1.dylib (400) <0316128D-3B47-3052-995D-97B4FE5491DC> /usr/lib/libxar.1.dylib
>     0x7fff56e6e000 -     0x7fff56f55fff  libxml2.2.dylib (31.7) <49544596-BCF8-3765-8DC5-DB1A9A90EF92> /usr/lib/libxml2.2.dylib
>     0x7fff56f56000 -     0x7fff56f7efff  libxslt.1.dylib (15.10) <66682AF6-C2D5-374C-901F-25A3E72814DC> /usr/lib/libxslt.1.dylib
>     0x7fff56f7f000 -     0x7fff56f91ffb  libz.1.dylib (70) <48C67CFC-940D-3857-8DAD-857774605352> /usr/lib/libz.1.dylib
>     0x7fff5702f000 -     0x7fff57033ff7  libcache.dylib (80) <354F3B7D-404E-3398-9EBF-65CA2CE65211> /usr/lib/system/libcache.dylib
>     0x7fff57034000 -     0x7fff5703eff3  libcommonCrypto.dylib (60118.30.2) <674286D3-7744-36A3-9AAA-49DFCD97A986> /usr/lib/system/libcommonCrypto.dylib
>     0x7fff5703f000 -     0x7fff57046fff  libcompiler_rt.dylib (62) <4487CFBA-A5D7-3282-9E6B-94CAD7BE507E> /usr/lib/system/libcompiler_rt.dylib
>     0x7fff57047000 -     0x7fff5704fffb  libcopyfile.dylib (146.30.2) <2C7C67D7-562B-3FFA-973D-BACF4C10E1EC> /usr/lib/system/libcopyfile.dylib
>     0x7fff57050000 -     0x7fff570d5fff  libcorecrypto.dylib (562.30.10) <8A53EFE1-AFCA-3676-BEE1-FA5ED9F0E222> /usr/lib/system/libcorecrypto.dylib
>     0x7fff5715d000 -     0x7fff57196ff7  libdispatch.dylib (913.30.4) <7D0E3183-282B-3FEE-A734-2C0ADC092084> /usr/lib/system/libdispatch.dylib
>     0x7fff57197000 -     0x7fff571b4ff7  libdyld.dylib (519.2.2) <C50D02BC-A333-3313-B787-02F255A6783F> /usr/lib/system/libdyld.dylib
>     0x7fff571b5000 -     0x7fff571b5ffb  libkeymgr.dylib (28) <6D84A96F-C65B-38EC-BDB5-21FD2C97E7B2> /usr/lib/system/libkeymgr.dylib
>     0x7fff571b6000 -     0x7fff571c2ff3  libkxld.dylib (4570.41.2) <661F47FA-F6FC-3FB1-8023-9DFE108AEEF7> /usr/lib/system/libkxld.dylib
>     0x7fff571c3000 -     0x7fff571c3ff7  liblaunch.dylib (1205.30.29) <E66F58ED-C15E-3DFB-BC22-A861E13918C6> /usr/lib/system/liblaunch.dylib
>     0x7fff571c4000 -     0x7fff571c8ffb  libmacho.dylib (900.0.1) <756F2553-07B6-3B42-ACEA-2F0F1A5E8D0F> /usr/lib/system/libmacho.dylib
>     0x7fff571c9000 -     0x7fff571cbff3  libquarantine.dylib (86) <6AC8773F-3817-3D82-99C2-01BABB9C3CBB> /usr/lib/system/libquarantine.dylib
>     0x7fff571cc000 -     0x7fff571cdff3  libremovefile.dylib (45) <912FA211-DD8C-3C92-8424-21B89F8B10FD> /usr/lib/system/libremovefile.dylib
>     0x7fff571ce000 -     0x7fff571e5fff  libsystem_asl.dylib (356.1.1) <94972913-9DF0-3C78-847C-43E58919E3DA> /usr/lib/system/libsystem_asl.dylib
>     0x7fff571e6000 -     0x7fff571e6fff  libsystem_blocks.dylib (67) <F2493BB5-B1C6-3C4D-9F1F-1B402E0F1DB7> /usr/lib/system/libsystem_blocks.dylib
>     0x7fff571e7000 -     0x7fff57270ff7  libsystem_c.dylib (1244.30.3) <E0136C71-0648-36F0-9F84-82EA2748A8D7> /usr/lib/system/libsystem_c.dylib
>     0x7fff57271000 -     0x7fff57274ffb  libsystem_configuration.dylib (963.30.1) <0F8D0B76-4F7D-34EC-AB6C-50F9465809DA> /usr/lib/system/libsystem_configuration.dylib
>     0x7fff57275000 -     0x7fff57278ffb  libsystem_coreservices.dylib (51) <21A488D0-2D07-344E-8631-CC8B2A246F35> /usr/lib/system/libsystem_coreservices.dylib
>     0x7fff57279000 -     0x7fff5727afff  libsystem_darwin.dylib (1244.30.3) <2F750CB1-BC26-3FA3-AE59-553EE30D451B> /usr/lib/system/libsystem_darwin.dylib
>     0x7fff5727b000 -     0x7fff57281ff7  libsystem_dnssd.dylib (878.30.4) <EB9BB165-45A4-367C-B33A-688D4F383A95> /usr/lib/system/libsystem_dnssd.dylib
>     0x7fff57282000 -     0x7fff572cbff7  libsystem_info.dylib (517.30.1) <7D79E167-4B5C-3833-81EE-3AF3FB53616D> /usr/lib/system/libsystem_info.dylib
>     0x7fff572cc000 -     0x7fff572f1ff7  libsystem_kernel.dylib (4570.41.2) <5155A4C3-825B-3178-AC51-0D2D2F2A6618> /usr/lib/system/libsystem_kernel.dylib
>     0x7fff572f2000 -     0x7fff5733dfcb  libsystem_m.dylib (3146) <ABB1B85F-9FFE-31B8-AD4F-E39A30794A93> /usr/lib/system/libsystem_m.dylib
>     0x7fff5733e000 -     0x7fff5735dfff  libsystem_malloc.dylib (140.40.1) <36B22C99-D772-3039-9A4C-AA31389965E1> /usr/lib/system/libsystem_malloc.dylib
>     0x7fff5735e000 -     0x7fff57402ff3  libsystem_network.dylib (1229.30.11) <40BAD301-8744-3AD8-A688-E7925C587B00> /usr/lib/system/libsystem_network.dylib
>     0x7fff57403000 -     0x7fff5740dffb  libsystem_networkextension.dylib (767.40.1) <CEDC330D-28F0-3902-BEB0-10B92ACEC69F> /usr/lib/system/libsystem_networkextension.dylib
>     0x7fff5740e000 -     0x7fff57417ff3  libsystem_notify.dylib (172) <98EA3D62-7C86-30DE-8261-D020D2F1EFF3> /usr/lib/system/libsystem_notify.dylib
>     0x7fff57418000 -     0x7fff5741fff7  libsystem_platform.dylib (161.20.1) <C049250F-8C35-314D-810F-4E28AEAED983> /usr/lib/system/libsystem_platform.dylib
>     0x7fff57420000 -     0x7fff5742bfff  libsystem_pthread.dylib (301.30.1) <ABA848E1-6978-3B42-A3A7-608B2C36FA93> /usr/lib/system/libsystem_pthread.dylib
>     0x7fff5742c000 -     0x7fff5742fff3  libsystem_sandbox.dylib (765.40.2) <922D3D15-AB4C-3F1A-A94F-39214AF1ADB3> /usr/lib/system/libsystem_sandbox.dylib
>     0x7fff57430000 -     0x7fff57431ff3  libsystem_secinit.dylib (30) <F06ADB8F-9E94-34A7-B3C9-2C22FDD14BAD> /usr/lib/system/libsystem_secinit.dylib
>     0x7fff57432000 -     0x7fff57439ff7  libsystem_symptoms.dylib (820.30.7) <DC3586C2-AA56-3419-88D3-FC0DBF08E3C0> /usr/lib/system/libsystem_symptoms.dylib
>     0x7fff5743a000 -     0x7fff5744dff7  libsystem_trace.dylib (829.30.14) <69EBF017-D40F-30D7-9B0B-BFC862D761A5> /usr/lib/system/libsystem_trace.dylib
>     0x7fff5744f000 -     0x7fff57454ff7  libunwind.dylib (35.3) <6D4FCD49-D2A9-3233-95C7-A7635CE265F2> /usr/lib/system/libunwind.dylib
>     0x7fff57455000 -     0x7fff57481ff7  libxpc.dylib (1205.30.29) <F7E5F1BC-614B-39CB-B6CE-92A9C7B7EC0B> /usr/lib/system/libxpc.dylib
> 
> Model: MacBookPro12,1, BootROM MBP121.0171.B00, 2 processors, Intel Core i7, 3.1 GHz, 16 GB, SMC 2.28f7
> Graphics: Intel Iris Graphics 6100, Intel Iris Graphics 6100, Built-In
> Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1867 MHz, 0x02FE, 0x4544464232333241314D412D4A442D460000
> Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1867 MHz, 0x02FE, 0x4544464232333241314D412D4A442D460000
> AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x133), Broadcom BCM43xx 1.0 (7.77.37.5.1a3)
> Bluetooth: Version 6.0.2f2, 3 services, 18 devices, 1 incoming serial ports
> Network Service: Wi-Fi, AirPort, en0
> Serial ATA Device: APPLE SSD SM0512G, 500.28 GB
> USB Device: USB 3.0 Bus
> USB Device: Bluetooth USB Host Controller
> Thunderbolt Bus: MacBook Pro, Apple Inc., 27.1
> 

Master crashes

@kornelski When I "archive" master and run the app, it crashes if I don't have gcc installed (try with brew uninstall gcc).

Process:               Gifski [11129]
Path:                  /Applications/Gifski.app/Contents/MacOS/Gifski
Identifier:            com.sindresorhus.Gifski
Version:               1.1.0 (2)
App Item ID:           0
App External ID:       0
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Gifski [11129]
User ID:               502

Date/Time:             2018-02-25 13:12:05.364 -0800
OS Version:            Mac OS X 10.13.2 (17C89)
Report Version:        12
Anonymous UUID:        23501669-5784-1A67-4D38-0583AC23BEC6

Sleep/Wake UUID:       7463A5D6-0414-4382-9426-082B4CE27497

Time Awake Since Boot: 630000 seconds
Time Since Wake:       280 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: /usr/local/opt/gcc/lib/gcc/7/libgomp.1.dylib
  Referenced from: /Applications/Gifski.app/Contents/MacOS/Gifski
  Reason: image not found

Binary Images:
       0x104d7d000 -        0x104ec3ff7 +com.sindresorhus.Gifski (1.1.0 - 2) <F81B6CB9-1DAC-37D0-9569-408389989AD8> /Applications/Gifski.app/Contents/MacOS/Gifski
       0x104f0e000 -        0x104f2eff7 +ProgressKit (1.0 - ???) <5845D54C-644D-309D-857B-F5F266CCE798> /Applications/Gifski.app/Contents/Frameworks/ProgressKit.framework/Versions/A/ProgressKit
       0x10decf000 -        0x10df1998f  dyld (519.2.2) <6695F30B-4E88-3C0B-9867-7D738C44A3E6> /usr/lib/dyld
    0x7fff69c21000 -     0x7fff69c3dffb  libresolv.9.dylib (65) <E8F3415B-4472-3202-8901-41FD87981DB2> /usr/lib/libresolv.9.dylib

Why is it trying to load the dynamic library of libgomp?

Crash report

In Organizer in Xcode, I see some users are getting a crash at:

https://github.com/sindresorhus/gifski-app/blob/eac104f38a1956351d1265b7af7d456c95c31bfc/Gifski/MainWindowController.swift#L124

But there's no error message, so it's hard to guess what the issue is.

This crash has been reported for every version of Gifski since it was first released.

This is what I'm seeing in Xcode:

screen shot 2018-10-22 at 10 49 17

Is there anything we can do to improve the logging of this error? I assumed fatalError would include the actual error message, but it seems not. At least not in the crash report we get from Apple.

D3n6t7-Uxh_FcdK-IatJgq.xccrashpoint.zip

Errors during encoding crash the app without user-visible explanation

https://github.com/sindresorhus/gifski-app/blob/a49430de68c66808925cfa214da385e1aeec56b8/Gifski/Gifski.swift#L89

fatalError seems to be a nuclear option which makes the app crash. From user perspective the app disappears without explanation.

fatalError shouldn't be used. Instead, the app should show a message box.


Example crash log:

Application Specific Information:
Fatal error: Error with image 0: Error Domain=AVFoundationErrorDomain Code=-11869 "Cannot Open" UserInfo={NSLocalizedFailureReason=This media cannot be used., NSLocalizedDescription=Cannot Open, NSUnderlyingError=0x60c0000598f0 {Error Domain=NSOSStatusErrorDomain Code=-12430 "(null)"}}: file /Users/sindresorhus/dev/oss/gifski-app/Gifski/Gifski.swift, line 73

ViewBridge hint(s): (
"<NSRemoteView 0x600000139e60> com.apple.appkit.xpc.openAndSavePanelService NSSavePanelService",
"bridge key: most-recent-completion"
)

File size and frame rate defaults

To avoid creating huge/wasteful GIFs, I suggest having smart defaults.

  • If resolution is >= 640px wide, halve it. Videos have chroma subsampling and compression artefacts that are wasteful in GIF, so halving resolution for GIF is a good idea anyway.
  • If framerate is >= 24fps, halve it. Frames cost a lot in GIF.

Add metadata?

Issuehunt badges

Would it maybe be useful to add metadata that the GIF was created with Gifski?

Seems like we can use kCGImagePropertyIPTCOriginatingProgram and kCGImagePropertyIPTCProgramVersion.

Reference code: https://github.com/search?l=Objective-C&q=kCGImagePropertyIPTCOriginatingProgram&type=Code


Note: This is not an easy issue and requires good Swift and macOS/iOS experience.


IssueHunt Summary

[
<
i
m
g

s
r
c

'
h
t
t
p
s
:
/
/
a
v
a
t
a
r
s
3
.
g
i
t
h
u
b
u
s
e
r
c
o
n
t
e
n
t
.
c
o
m
/
u
/
5
2
3
2
7
7
9
?
v

4
'

a
l
t

'
s
u
n
s
h
i
n
e
j
r
'

w
i
d
t
h

2
4

h
e
i
g
h
t

2
4

s
u
n
s
h
i
n
e
j
r
]
(
h
t
t
p
s
:
/
/
i
s
s
u
e
h
u
n
t
.
i
o
/
u
/
s
u
n
s
h
i
n
e
j
r
)

h
a
s

b
e
e
n

r
e
w
a
r
d
e
d
.

Backers (Total: $60.00)

Submitted pull Requests


Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

Becomes default player for mp4 files

Quicktime should be the designated app to open .mp4. Manually setting gifski to open all mp4 is ok. Setting it by default on install, is a bit overreaching IMO.

Best gif app since Drop2Gif. Gave it 5 stars on the App Store. ✌️

Notification when Gifski completed the conversion

There are times that it takes time to convert the GIF, and having hidden dock I have to check few times if the conversion completed. It would be awesome to have a notification that would respect DND (similar to Xcode builds).

Fix Xcode 10 warning

When compiling Gifski.app in Xcode 10 beta, I get this warning:

warning: Traditional headermap style is no longer supported; please migrate to using separate headermaps and set 'ALWAYS_SEARCH_USER_PATHS' to NO. (in target 'gifski')

// @kornelski FYI

Add ability to cancel the conversion

Issuehunt badges

The implementation is easy to do. Just return 0 here when a cancel button is clicked, and change isRunning to false. We also need to clean up the unfinished file.

I'm not sure yet how to present the button in a nice way in the UI. Suggestions welcome!

boyvanamstel earned $200.00 by resolving this issue!

Add predefined size dropdown

Issuehunt badges

We should consider changing the slider scale to a dropdown of predefined sizes and textfields for precise control.

Something like what preview.app has:

41196637-6a6871ac-6c45-11e8-87ce-3e2e72986592

The predefined sizes should be a union of (ref comment):

  • 1/nth of the input size: 1/2, 1/3, 1/4, 1/5, …, etc.
  • a predefined list of common sizes: 960, 800, 640, 500, 480, 320, 256, 200, 160, 128, 80, 64

As mentioned in the comment 1/n scaling gives the best quality so we should maybe mark those in the dropdown.


Note: This issue requires you to have a good understanding of Swift and macOS/iOS development.


IssueHunt Summary

[
<
i
m
g

s
r
c

'
h
t
t
p
s
:
/
/
a
v
a
t
a
r
s
3
.
g
i
t
h
u
b
u
s
e
r
c
o
n
t
e
n
t
.
c
o
m
/
u
/
5
2
3
2
7
7
9
?
v

4
'

a
l
t

'
s
u
n
s
h
i
n
e
j
r
'

w
i
d
t
h

2
4

h
e
i
g
h
t

2
4

s
u
n
s
h
i
n
e
j
r
]
(
h
t
t
p
s
:
/
/
i
s
s
u
e
h
u
n
t
.
i
o
/
u
/
s
u
n
s
h
i
n
e
j
r
)

h
a
s

b
e
e
n

r
e
w
a
r
d
e
d
.

Backers (Total: $200.00)

Submitted pull Requests


Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

Integrate with Mojave screen recording/QuickLook UI

I don't think this is a duplicate of #47, but please close if it is.

macOS Mojave has a great new screen recording UI. When you finish a screen recording, it shows a thumbnail in the corner of the screen. You can right-click on the thumbnail to see this menu:

screen shot 2019-02-13 at 9 46 15 am

Or you can left-click on the thumbnail to open the recording in a QuickLook window, which has a "Share" button that lets you send the recording to another app:

screen shot 2019-02-13 at 9 38 06 am

It would streamline the screen recording workflow a lot if Gifski could be added to one or both of these menus.

(On a related note—and I could open a separate issue for this if anyone thinks it's worthwhile—it might be useful to have an option for Gifski to open newly encoded GIFs in QuickLook, especially in Mojave.)

New gifski library API

Issuehunt badges

I've rewritten the C interface. It's now async/single-threaded, so you don't need a separate thread for writing and decoding video frames.

gifski *g = gifski_new(&(GifskiSettings){});
gifski_set_file_output(g, "file.gif"); // this is now async

// it's OK to use the same thread
for(int i=0; i < frames; i++) {
     int res = gifski_add_frame_rgba(g, i, width, height, buffer, 5);
     if (res != GIFSKI_OK) break;
}

// this now waits
int res = gifski_finish(g);
if (res != GIFSKI_OK) return;

I've also added a new way of writing without a file path, so you can use Swift's I/O.

gifski_set_write_callback(g, callback, user_data);

The callback is called many times, every time there's some fragment of file data ready to be written.

and the callback can be something like:

GifskiError callback(size_t buffer_length, const uint8_t *buffer, void *user_data) {
   if (buffer_length > 0) {
      fwrite(buffer, buffer_length, 1, user_data);
   }
   return GIFSKI_OK;
}

IssueHunt Summary

Backers (Total: $0.00)

Become a backer now!

Or submit a pull request to get the deposits!

Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

Switch from GCC to Clang

Currently we use GCC to be able to use OpenMP, but it seems like it's actually possible to use OpenMP with the built-in Clang version in Xcode in combination with brew install libomp.

Resources:

I think it would be nicer to be able to use the built-in compiler as it means less chance of issues and probably better performance.

@kornelski Thoughts?

Build failure

I get a build failure when compiling the app now. I think it might be related to installing the latest Xcode 10 beta. Even though I'm compiling from the latest stable Xcode 9.

Compiling openmp-sys v0.1.3
error: failed to run custom build command for `openmp-sys v0.1.3`
process didn't exit successfully: `/Users/sindresorhus/Library/Developer/Xcode/DerivedData/Gifski-czyyuqkvdbamwdbhqpunkswgmddo/Build/Products/cargo-target/debug/build/openmp-sys-c94a1c77cd1aa27c/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-env-changed=CC
cargo:rerun-if-env-changed=OPENMP_STATIC
cargo:rerun-if-changed=src/ffi.rs
cargo:rerun-if-changed=src/lib.rs
OPT_LEVEL = Some("1")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
TARGET = Some("x86_64-apple-darwin")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
CC_x86_64-apple-darwin = None
CC_x86_64_apple_darwin = None
HOST_CC = None
CC = Some("gcc-7")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
CFLAGS_x86_64-apple-darwin = None
CFLAGS_x86_64_apple_darwin = None
HOST_CFLAGS = None
CFLAGS = None
DEBUG = Some("true")
cargo:flag=-fopenmp

--- stderr
thread 'main' panicked at 'running compiler to get the lib paths: Os { code: 2, kind: NotFound, message: "No such file or directory" }', libcore/result.rs:945:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
❯ rustc --version
rustc 1.26.2 (594fb253c 2018-06-01)

@kornelski Any ideas?

Add a Gifski system service

Issuehunt badges

To quickly convert a movie from anywhere to a GIF.

Docs: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/SysServices/Articles/providing.html


Note: This is not an easy issue and requires good Swift and macOS/iOS experience.


IssueHunt Summary

sunshinejr sunshinejr has been rewarded.

Sponsors (Total: $100.00)

Tips

Various minor improvements

Issuehunt badges

Various things I'd like to see fixed/improved:


Note: This is not an easy issue and requires good Swift and macOS/iOS experience.


IssueHunt Summary

ybrin ybrin has been rewarded.

Backers (Total: $200.00)

Submitted pull Requests


Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.