Skip to content

Commit

Permalink
10th August 2023
Browse files Browse the repository at this point in the history
- Added SCHOCK case study.
- Added release notes to FxPlug page, and removed generated contents.
  • Loading branch information
latenitefilms committed Aug 10, 2023
1 parent ba9add8 commit fcb0537
Show file tree
Hide file tree
Showing 20 changed files with 669 additions and 20 deletions.
5 changes: 0 additions & 5 deletions .github/workflows/retype-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,6 @@ jobs:
PAGE_NAME: "developer-tools-and-frameworks"
run: node .github/scripts/generate-markdown.js

- name: Generate FxPlug Markdown
env:
PAGE_NAME: "fxplug"
run: node .github/scripts/generate-markdown.js

- name: Commit and push if it's necessary
run: |
git config --local user.email "[email protected]"
Expand Down
1 change: 0 additions & 1 deletion docs/_includes/fxplug/fxkit.md

This file was deleted.

3 changes: 0 additions & 3 deletions docs/_includes/generated-fxplug.md

This file was deleted.

40 changes: 40 additions & 0 deletions docs/_includes/news/20230810.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
### [10th August 2023](/news/20230810)

**Florian Duffe** has tried something new on FCP Cafe, and has added an epic new interview-style case study!

You can read the over **eight-thousand-word case study** on the feature film **SCHOCK** [here](/case-studies/schock/).

![](/static/schock-stills-favoriten-027.jpg)

---

We've added FxPlug4 release notes to the [FxPlug section](/developers/fxplug/).

As there's no official notification system for when FxPlug and Workflow Extensions SDK are updated, we'll try and keep an eye out and let you know on FCP Cafe when there's an update.

---

The **Final Cut Pro Creative Summit** dates and locations have now been confirmed.

It will take place **November 6th to 8th** at Apple Park & [The Hyatt Regency Santa Clara](https://www.hyatt.com/en-US/hotel/california/hyatt-regency-santa-clara/clara?src=corp_lclb_gmb_seo_clara).

> Whether you are a trained professional or just starting your creative career, Apple has the software and tools you need to power your creative work. This unique event is where Apple power users and Final Cut Pro Professionals come together to learn and discuss their craft. We are excited to be back in Cupertino! The FCP Creative Summit features 2 full days of sessions in multiple tracks and a unique day at Apple!
You can visit the official website [here](http://fcpcreativesummits.com).

![](/static/fcp-creative-summit-2023.jpg)

---

**Gyroflow Toolbox v1.1.2** is out now!

This release includes two bug fixes:

- Updated to FxPlug v4.2.7, which offers improved stability and reliability.
- Fixed a bug that could cause a memory leak. Thanks for reporting Денис Глушков!

Thanks to everyone who has purchased, downloaded and tested the latest Gyroflow Toolbox updates! The response has been awesome!

You can learn more and buy on the Mac App Store [here](https://gyroflowtoolbox.io).

![](/static/gyroflow-toolbox-1-1-0.png)
418 changes: 418 additions & 0 deletions docs/case-studies/schock.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions docs/case-studies/schock.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
label: SCHOCK
icon: people
order: 6
image: /static/thumbnail.jpg
200 changes: 199 additions & 1 deletion docs/developers/fxplug.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,205 @@ If you want a real-world example of a FxPlug4 application, you can look at [Gyro

---

{{ include "generated-fxplug" }}
## Third Party Frameworks.

Here is a collection of useful third party frameworks.

---

{{ include "developer-tools-and-frameworks/fxkit" }}

---

## Release Notes

### FxPlug 4.2.7

**Released:** 18th July 2023

- Improved reconnection of Plug-ins after crash.
- Fixed an issue with the Motion hanging when a 3rd party plug-in crashes.

---

### FxPlpug 4.2.6

- Improved stability and reliability
- Removal of unsupported FxPlug 3 APIs from the FxPlug framework
- Fixed an issue where the `Fx3DBox` example plug-in would fail to build.
- Fixed an issue where only one push button would be available when using the `FxSimpleColorCorrector` example plug-in.
- Fixed an issue where an older method was used for interpolating custom parameters.
- Fixed an issue with Full Width parameters being clipped on the right after reloading a project in FCP.
- Fixed an issue where a plug-in could start two analyses without the app realizing it.
- Fixed an issue where, in some cases, the `FxOnScreenControlAPI` `-objectBounds` method could return an incorrect cached value.
- Fixed an issue where an FxPlug plug-in accessing multiple lights in a scene could cause a crash.
- Fixed a leak of `IOSurface`s in the `FxAnalyzer` when the plug-in canceled analysis.
- Fixed a potential leak of OpenGL contexts during analysis.
- Fixed a caching error when analysis was canceled.
- Fixed an issue with 3rd party plug-ins being restricted to rendering in Rec709 when Automatic Color Processing was enabled in a Motion project or template.
- Fixed a crash when scheduling frames for image wells.
- Fixed an issue with the 3D API where changes to the camera did not always cause the plug-in to re-render.
- Fixed an issue with `FxColorGamutAPI` accessing previously-freed memory.
- Fixed an issue where analysis tasks canceled by the plug-in would remain in memory and block further analysis from happening.
- Fixed an issue where undoing a text change in a template that uses an FxPlug plug-in would cause a crash.
- Fixed an issue where an effect source layer used as the input to a generator image well would restrict the image well input to the template’s dimensions.

---

### FxPlug 4.2.5

- Improved stability and reliability
- Improved reconnection with plug-ins after a memory jetsam event.
- Improved the speed of reconnection with plug-ins after a crash, or plug-in process suspension by macOS.
- Improved the performance of image well inputs.

---

### FxPlug 4.2.4

- Improved stability and reliability
- Fixed a potential hang when a plug-in called -startAction:.
- Fixed a potential crasher when a plug-in's window was open and the document was closed or the application was quit.
- Fixed a memory leak that could occur when retrieving frames at other times.
- Ensured that the analysis state is set properly if the plug-in returns `NO` from `-desiredAnalysisTimeRange:forInputTimeRange:error:`
- Fixed a large memory leak when retrieving image well images with zero opacity or of zero size.
- Ensured that `-layerMatrixAtTime:error:` returns a transform that includes its ancestors' transforms.
- Fixed an issue where the frames returned for analysis could be the wrong size.
- Fixed leak of a small empty image when an image well had no media in it.
- Fixed an issue of the application hanging when deleting an instance of an FxPlug plug-in which had ongoing analysis.
- Fixed an issue where custom views were sometimes not created properly for plug-ins that had numerous custom views.
- Improved the speed of custom parameter creation.
- Fixed an issue with Final Cut Pro unable to close the application window while FxPlug analysis was in-progress.
- Fixed a performance issue when using image references with Drop Zones.
- Fixed a crash triggered by dragging an effect to Motion’s Favorites.
- Fixed a memory leak that affected Apple Silicon Macs.

---

### FxPlug 4.2.3

- Introduced `FxRemoteWindowAPI_v2` with a new method for setting the minimum and maximum size of remote windows
- Images retrieved from image wells in transitions will now have the proper image origin.
- The reply block for calls to `-[FxRemoteWindowAPI remoteWindowOfSize:]` will now always be run on the plug-in's main UI thread.
- Improved loading time of custom views in the host app's inspector.
- Changes to parameters made by OSCs will now be properly recorded in the host's undo stack.
- Fixed a leak of onscreen control objects in the host.
- Fixed a crash when deleting a plug-in that had an active analysis session running.
- The `FxColorGamutAPI` should now be available during analysis.
- The `FxTimingAPI` should now be available and give correct results during `-pluginInstanceAddedToDocument`.
- Fixed an issue with display of the blocked/legacy plug-in warning.
- Improved undo stack management for bulk changes to multiple parameters.
- Minor changes made to the FxPlug template and examples to improve Metal rendering.
- Improved how `FxRemoteWindowAPI` handles window resizing.
- Improved behavior of rigged parameters.
- Filters can now use `FxAnalysisAPI_v2` methods to analyze image parameter inputs.
- `kFxCommand_Undo` and `kFxCommand_Redo` commands now function from remote windows created in Final Cut Pro.
- Fixed an issue with adding a path to a path picker.
- Improved behavior of show/hide properties of parameters that have a dependency on another parameter.
- Undo group names are now used in the undo queue.
- Fixed an issue with `-setPopupMenuParameter:entries:defaultValue:` not updating pop-up menu entries in Final Cut Pro.
- Improved performance of the `FxAnalysisAPI` when analyzing HEVC and H.264 clips in Final Cut Pro.

---

### FxPlug 4.2.2

- Introduced `FxParameterSettingAPI_v6`, which adds two new methods, `-addFlags:toParameter:` and `-removeFlags:fromParameter:`, for simplified parameter flag management
- Introduced `FxAnalysisAPI_v2` with two new methods `-startForwardAnalysis:ofParameter:error:` and, `-startBackwardsAnalysis:ofParameter:error:` to analyze input from image reference parameters
- Improvements to performance of `FxAnalysisAPI`.
- Setting float parameters during analysis should cause OSCs to be updated.
- Fixed an issue where putting a Motion object into an image well in a template could cause Final Cut Pro to crash.
- The Timing API should now work properly when called from a custom view's `-draw` method.
- Misusing `-startAction:` / `-endAction:` will now log a message to the console and the call will do nothing.
- Times sent to OSC methods in Final Cut Pro should be correct now.
- Fixed an issue with `FxParameterSettingAPI` not setting a parameter successfully from within the body of a method associated with a push button.
- Fixed an issue with onscreen control temporal drift when setting keyframes while dragging an OSC object.
- Fixed an issue with `-analyzeFrame:atTime:error:` not being called from a custom UI control.
- Fixed an issue with app bundle identification when rendering FxPlug 4 in Compressor.
- Fixed an issue with setting parameter flags in a generator when the host is processing an undoable operation.
- `FxImageTile`s should now be properly marked as having their origin in the top left or bottom left in all cases.
- When a plug-in sets the `kFxPropertyKey_NeedsFullBuffer` property, the apps should now always provide a fully buffered set of inputs and outputs, even if the entire canvas is not showing.
- Images over 4,000 pixels on a side should no longer cause issues with transitions in Final Cut Pro.
- `-parameterChanged:atTime:error:` should be called less frequently during undo and should be called when a plug-in changes a parameter.
- When a rigged FxPlug parameter is changed by the rig, the canvas will now properly update.

---

### FxPlug 4.2.1

- `FxRemoteWindowAPI` allows a plug-in to create a window within Final Cut Pro or Motion and populate it with a custom view
- Push button and help selectors no longer take an argument, which allows them to be properly called in Swift. This means you’ll need to update the selectors you previously sent to `-addPushButtonWithName:parameterID:selector:flags:`.
- Changes to parameters are more consistent during onscreen control operations. Also, a series of changes from a mouseDown, through several mouseDragged events, and a mouseUp event will now automatically be treated as a single undoable event. There should be no need to use the `UndoAPI` during OSC usage.
- The `FxRemoteWindowAPI` will only allow one window to be created per plug-in instance. The `FxSimpleColorCorrector` example has been updated to use the `-displayWindow:` method.
- `-setupAnalysisForTimerange:frameDuration:error:` now provides field duration instead of frame duration for interlaced timelines. Progressive timelines remain unchanged.
- The `FxAnalyzer` `inputTimeRange` no longer includes additional frame handles.

---

### FxPlug 4.2.0

- `FxPlug.framework` is now a universal framework
- `FxCommandAPI_v2` allows a plug-in to move the host’s playhead to an arbitrary time
- `FxProjectAPI` retrieves the URL of the plug-in data folder within a Motion project’s folder
- `FxParameterRetrievalAPI_v7` adds a method for retrieving the image information about an image parameter
- New method `-pluginInstanceAddedToDocument` added to `FxTileableEffect` to track open documents in the host app
- New `kFxParameterFlag_USE_FULL_VIEW_WIDTH` flag for parameters to use full width of the inspector
- The FxShape example’s OSC has been made thread-safe
- The macOS deployment target for the plug-in examples has been updated to 10.15
- `kFxError_UserCancelled` added for `FxAnalyzer` for when you want to stop analysis, but don't wish to display an error alert to the user
- Motion now warns users when it does not load 3rd party in-process FxPlugs on Apple Silicon
- `kFxParameterFlag_HIDDEN` now works with custom parameters

**Known Issues:**

- The `FxDynamicRegistration` example may display deprecation errors for `FxOpenGLContextCache.m`. This is expected when building with recent macOS SDKs because OpenGL has been deprecated. This example is included for Metal comparison purposes.

---

### FxPlug 4.1.0

- `FxAnalysisAPI` allows frame-by-frame analysis of source video in both Final Cut Pro and Motion
- FxPlug 2 and FxPlug 3 are deprecated
- Improved performance of enabling and disabling parameters
- Introduced `Fx3DAPI_v5` and deprecated `Fx3DAPI_v4`
- New `FxCommandAPI` can instruct the host application to perform commands
- Dynamically registered plug-ins’ plist requirements have changed for FxPlug 4.1 and the FxDynamicRegistration example has been updated.
- Some FxPlug example projects have revised names that include the prefix “Fx”.
- `FxBrightness` example and Swift template have been updated to Swift 5.
- FxPlug now ships as a sparse SDK, which requires you to make some small changes to the search paths of your plug-in in the Xcode project. This includes modifying the Additional SDKs (`ADDITIONAL_SDKS`) setting to include `/Library/Developer/SDKs/FxPlug.sdk`, and replacing the current Framework Search Paths setting (`FRAMEWORK_SEARCH_PATHS`) with `/Library/Frameworks $(inherited)` in the Build Settings of the Xcode project.
- You can receive the host's identifier and version with the new `FxPrincipalDelegate` protocol.
- Plugins are called to do work on background threads, and AppKit should never be used when running on a background thread. This may raise an exception, which will cause your plug-in to crash if your plug-in doesn’t catch it. All UI work should be done on the main UI thread. If you need to display an alert or window but are running on a background thread, you can use: `dispatch_async(dispatch_get_main_queue(), ^(){…});` or: `[self performSelectorOnMainThread:…];` These will both run your code on the main UI thread at some later time.
- New `Fx3DBox` example demonstrates how to use the new `Fx3DAPI_v5`
- Motion templates containing missing FxPlugs will now display an error rather than rendering
- `FxImageTile`s now include a `CGColorSpaceRef` describing the color space they are in
- FxPlugs with windows can instruct the app to perform specific commands when the user presses a key combination for that command
- `PluginManager.framework` is now copied to the bundle and code signed with a script in the FxPlug examples and FxPlug templates
- `ViewBridge` keys added to plists for the FxPlug examples and FxPlug templates
- Improved responsiveness for OSCs and custom UI

**Known Issues:**

- The error “‘FxPlug/FxPlugSDK.h’” will occur after installing FxPlug 4.1 and attempting to build an FxPlug 4.0 or older plug-in. This is a result of the FxPlug SDK switch to a sparse SDK and can be easily remedied by changing the SDK and framework search locations in your plug-in’s Xcode project. See the release notes above for details.

---

### FxPlug 4.0.0

- FxPlug plug-ins run sandboxed and out-of-process for improved stability and security
- Plug-in developers can control the rendering technologies and languages they use, including Metal and Swift
- The new FxTileableEffect API allows plug-ins to render only the required portions of an effect for improved efficiency
- The FxEyeType property indicates if Final Cut Pro X is currently rendering the left or right eye of a 360° Stereoscopic project
- Plug-ins written in the FxPlug 4.0 style should use the latest protocol versions available as many of the new protocols do not inherit from previous versions and now use `CMTime` instead of `FxTime`
- Even though OpenGL, OpenCL, and Quartz Composer have been deprecated in macOS, those technologies can still be used to aid in the phased migration of many FxPlug 3 plug-ins to FxPlug 4, and then to Metal or Core Image
- Version A of PluginManager.framework is no longer bundled in the framework
- FxPlug 3.1.1 documentation has been archived [here](https://developer.apple.com/library/archive/documentation/AppleApplications/Conceptual/FXPlug_overview/FXPlugSDKOverview/FXPlugSDKOverview.html)
- FxPlug 4.0 documentation highlights new and updated concepts and APIs in the FxPlug SDK; it is included as a PDF with the installer and is available [here](https://developer.apple.com/documentation/fxplug)

**Known Issues:**

- If you are attempting to use Hardened Runtime and are hitting this build error: “PluginManager.framework/Versions/A: bundle format unrecognized, invalid, or unsuitable. Command CodeSign failed with a nonzero exit code” when attempting to copy the PluginManager.framework into your built product while using Code Sign On Copy, you may need the following fix. Instead of using a "Copy Files" build phase, it is recommended that you use a “Run Script” build phase to copy and then force code sign PluginManager.framework. To code sign you can use the following command in your script: codesign --force --timestamp --options runtime --sign "${CODE_SIGN_IDENTITY}" "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/PluginManager.framework"
- Build error “Multiple commands produce …” occurs in Swift projects if the Product Name for both the Wrapper App and the XPC Service are the same. It is recommended that you append “XPC” to the product name of the XPC Service to differentiate it from the Wrapper App process.
- If ad-hoc code signing fails when building plug-ins written in Swift, it is recommended you code sign the targets with your own certificate to avoid code sign build errors

---

Expand Down
18 changes: 8 additions & 10 deletions docs/fcp-creative-summit.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
# FCP Creative Summit

Ben Kozuch [reports](https://www.facebook.com/groups/664445450353744/posts/2895722990559301/?comment_id=2896243510507249&__cft__[0]=AZWxKhVHcHv55Fm-fFgHojazlT3BCSsMANsY_2xMAC039DHof0ftoPT4M7lmvzZx7h0FP9Q6SI8OZaaDR3ZuonDcV_EimD7EYDNERn4k6xxNNwLI14x0po5qcc1rRaQeueMN6a0MK5QLsDofV0M1Jpjic_VyPGQ3mxY5SiPLvBDxVZg8uUeanvrlOc7qccU_CS8&__tn__=R]-R):
The **Final Cut Pro Creative Summit** dates and locations have now been confirmed.

> The **2023 FCP Summit** will take place in **Cupertino** in **November**.
>
> We will be announcing dates, venue and the program in about a week.
>
> The Summit will feature a full day at Apple followed by 2 day of breakout sessions and a mini expo at a hotel venue close by.
>
> Courtesy Apple, the cost of Full Pass will only be **USD$299** for the entire 3 days.
It will take place **November 6th to 8th** at Apple Park & [The Hyatt Regency Santa Clara](https://www.hyatt.com/en-US/hotel/california/hyatt-regency-santa-clara/clara?src=corp_lclb_gmb_seo_clara).

Exciting times!
> Whether you are a trained professional or just starting your creative career, Apple has the software and tools you need to power your creative work. This unique event is where Apple power users and Final Cut Pro Professionals come together to learn and discuss their craft. We are excited to be back in Cupertino! The FCP Creative Summit features 2 full days of sessions in multiple tracks and a unique day at Apple!
You can learn more about last years FCP Global Summit [here](https://www.fcpglobalsummit.com).
We will add more details to this site as they become available.

You can visit the official website [here](http://fcpcreativesummits.com).

![](/static/fcp-creative-summit-2023.jpg)
Binary file added docs/static/fcp-creative-summit-2023.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-all-clips-comp.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-bts.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-event-structure.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-picture-lock-audio-lanes.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-stills-favoriten-024.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-stills-favoriten-027.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-stills-zusatz-026.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-timeline-standard-view.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/schock-zoom-call.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit fcb0537

Please sign in to comment.