Compiling Shotcut

Where do we discuss Shotcut development?

I have made some more progress on setting up to compile Shotcut and have gotten this far:

  1. Set your build settings in the Shotcut project configuration so that the build steps include MinGW make steps.

After that the directions do not agree with what I’m seeing on QtCreator.

I have clicked on Build & Run -> Desktop -> Run but do not see an “About dialog”:

“8. After clicking Run, you can confirm the newly built executable is the one that is running from the About dialog: the version will be “adhoc”.”

Have you seen is successfully compile in QTCreator? If the compile is not successful, it will not run.

How do I do that?

I am following the instructions step by step here:

https://shotcut.org/notes/windowsdev/

I think the instructions assume that the person following the instructions has some experience with QT creator or has the interest to learn. You might benefit from playing with some example projects provided by QT.

There is a tutorial here that answers your specific question in step 5:
http://doc.qt.io/qtcreator/creator-build-example-application.html

Unfortunately, they - like Shotcut - change their UI and makes our instructions dated. :confounded:
The most important step is missing a screenshot: Run Settings > Deployment. This is where the newly compile exe is copied to the runtime location (your SDK runtime, not your Shotcut install in Program Files).
Check it out:

OK, there is more than one thing called “Run” :slight_smile: What you seem to refer to is the Run Settings. After that, in the bottom left hand corner of the window is a play button with a tooltip labeled “Run (Ctrl+R)” That is what step 8 refers to. Click it to build and run.

Thanks for showing an interest in contributing. Feel free to ask more in this thread.

I updated QtCreator and now the Build & Run page no longer has tabs for Kits, Qt versions, Compilers and Debuggers as shown in the screen shot.

I am also getting the following ominous messages from QtCreator:

Running Windows Runtime device detection.

No winrtrunner.exe found.

Project MESSAGE: MLT_PATH not set; using … You can change this with ‘qmake MLT_PATH=…’

Project MESSAGE: Install PREFIX not set; using C:\Projects\Shotcut. You can change this with ‘qmake PREFIX=…’

Project MESSAGE: This project is using private headers and will therefore be tied to this specific Qt module build version.

Project MESSAGE: Running this project against other versions of the Qt modules may crash at any arbitrary point.

Project MESSAGE: This is not a bug, but a result of using Qt internals. You have been warned!

Project MESSAGE: MLT_PATH not set; using … You can change this with ‘qmake MLT_PATH=…’

Project MESSAGE: Install PREFIX not set; using C:\Projects\Shotcut. You can change this with ‘qmake PREFIX=…’

Those are now in Kits in the Options dialog. Those messages are harmless unless you are not using C:\Projects\Shotcut.

Luckily I had cloned myHD before wrapping up last night, so I’m able to revert to the original version of Qt.

My previous message should not have been posted but this board software went ahead and posted it anyway and I cannot delete it.

I spoke too soon. I was unable to recover last night’s QtCreator session from backup.

I clicked on the “other” play button and QtCreator is taking up 70% of my CPU, effectively locking up my machine.

I don’t know where this About dialog is.

  1. After clicking Run, you can confirm the newly built executable is the one that is running from the About dialog: the version will be “adhoc”.

Now I have to install a git bash shell to do the dependencies?

This is turning into a barrel of fun.

I have no idea if there’s an executable capable of being run, and if there is, no idea how to launch it.

It is doing parallel compile to go faster. If you want less, in the make -j argument specify the number of parallel jobs as in “-j4”

Really? C’mon, in Shotcut’s Help menu. This is a standard in many apps.

Most developers nowadays use Git and already have this on Windows.The instructions are based on what I use and do, but it is only one approach. If you deviate, you have to figure it out yourself. However, you do not need to recompile dependencies just to work on the Shotcut code.

It is shotcut.exe where the SDK was extracted. If you setup Qt Creator per the instructions, then the play/run button will run the executable after building.

I’m still in QtCreator and the only version of Shotcut is my already-installed version, not the version I think I just compiled.

There are some other right-pointing green arrows which I clicked and got the following messages:

13:26:01: Starting C:\Projects\Shotcut\src\build-shotcut-Desktop_d3b2b1-Debug\src\debug\shotcut.exe…

13:26:02: The program has unexpectedly finished.

13:26:02: The process was ended forcefully.

You are not running the correct shotcut.exe. Step 6, Projects > Build & Run > Desktop >Run > Run > Run configuration is wrong. Look at my screenshot above. You need to also ensure the Deployment > Make > Make arguments = “install” is setup.

OK, now it works.

Now that I’ve got it compiling, how to set the initial values of the color grading filter? I’ve found the file filter_lift_gamma_gain.c.

It also needs to restore the initial values when that button is clicked.

I think the file you might be looking for is here:

By the way, I have a WIP in on my computer to allow the lift value to go negative. I’ll post something to try after I have worked out the kinks.

I’m not sure what you are asking here. Which button?

On the color grading interface there is a circular icon with an arrow for each of lift, gamma and gain to restore them to their default values.

As we have discussed in the past, all I really want to do is have lift start out at unity and be able to raise and lower it above and below unity. If you’ve got this as a WIP then I’m definitely interested and it could potentially save me a lot of work :slight_smile:

That button is in the source file I referenced. I would not expect you to need to change it.

Right. If the default value for lift changes then that icon will need to put lift at the new default value. At the moment default is 0. My idea was to have lift go above and below 50% with 50% being unity.