Skip to content

WIP: Release of OpenShot 3.4! #5787

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 30 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4d06022
Bumping version to 3.4.0, minimum libopenshot version to 0.5.0
jonoomph Jun 12, 2025
2636ae2
Updating audio thumbnail to something more modern
jonoomph Jun 13, 2025
ce11cc4
Adding 3 new titles for next release, and generating new translations
jonoomph Jun 13, 2025
7e3b51c
Adding new cached thumbnails for new titles
jonoomph Jun 13, 2025
d3715c2
Fixing regression on Split File dialog, where the first clip is fine,…
jonoomph Jun 13, 2025
f811c85
Fixing multi-drag and drop files on timeline to prevent gaps and clip…
jonoomph Jun 13, 2025
1024f39
Fixing regression caused by draggable keyframe. The old implementatio…
jonoomph Jun 13, 2025
0b4f0f6
Fixing crash when selected clip is deleted while video preview is pla…
jonoomph Jun 13, 2025
a616d42
Fixing regression whe showing property context menus for multiple sel…
jonoomph Jun 14, 2025
bd86ad7
Protecting from crashes on transform handle (video preview widget) wh…
jonoomph Jun 15, 2025
21e2662
Adding icons to Effect list in documentation
jonoomph Jun 15, 2025
666cdc8
Updating Unique Colors for all effects in UI (icon colors)
jonoomph Jun 15, 2025
3abf6bc
Fixing issues with preview transform handles to allow Object Detector…
jonoomph Jun 15, 2025
293c16d
Prevent adding the same clip twice when tracked objects are present a…
jonoomph Jun 15, 2025
219c2ec
Prevent crash when selected items are present and reloading a project…
jonoomph Jun 17, 2025
29d7879
Updating Tracker and Object Detector trackedObjects in the "Parent" p…
jonoomph Jun 18, 2025
5b8bddb
Fixing a few issues with Split File dialog (correct ending frame, upd…
jonoomph Jul 8, 2025
8b5bbce
Prevent crash when a clip is selected and transform handles are visib…
jonoomph Jul 8, 2025
4687b61
Prevent drag and drop error where first clip is left behind (sometime…
jonoomph Jul 8, 2025
b6ca4c7
More work on qwidget based timeline backend (some basic functionality…
jonoomph Jul 10, 2025
7ac1be8
Large refactor of experimental timeline widget backend (separating sn…
jonoomph Jul 11, 2025
00653af
More refactoring of timeline qwidget backend (separating functionality)
jonoomph Jul 19, 2025
556eb93
Removing existing assets in attempt loop for releases / daily builds
jonoomph Jul 20, 2025
9496f56
Additional debugging for GitHubError 422
jonoomph Jul 20, 2025
1207f35
Improving retry logic in GitHub asset upload
jonoomph Jul 20, 2025
a5b4f91
Fixing assest list logic in build server
jonoomph Jul 20, 2025
00af291
Fixing assest list logic in build server
jonoomph Jul 20, 2025
9f86a52
Improve theme CSS parsing for color and int properties.
jonoomph Jul 20, 2025
550faef
Improved theme parsing and theme classes for qwidget backend. Also ad…
jonoomph Jul 20, 2025
752e351
Fixing regression in release candidate due to Basic theme parsing
jonoomph Jul 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 167 additions & 38 deletions doc/effects.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,45 +56,174 @@ OpenShot Video Editor has a total of 27 built-in video and audio effects: 18 vid
These effects can be added to a clip by dragging the effect onto a clip. The following table contains
the name and short description of each effect.

.. |mask_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Alpha Mask / Wipe Transition Icon

.. |bars_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Bars Icon

.. |blur_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Blur Icon

.. |brightness_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Brightness & Contrast Icon

.. |caption_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Caption Icon

.. |chromakey_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Chroma Key (Greenscreen) Icon

.. |colormap_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Color Map / Lookup Icon

.. |saturation_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Color Saturation Icon

.. |colorshift_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Color Shift Icon

.. |crop_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Crop Icon

.. |deinterlace_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Deinterlace Icon

.. |hue_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Hue Icon

.. |lensflare_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Lens Flare Icon

.. |negate_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Negative Icon

.. |objectdetection_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Object Detector Icon

.. |outline_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Outline Icon

.. |pixelate_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Pixelate Icon

.. |sharpen_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Sharpen Icon

.. |shift_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Shift Icon

.. |sphericalprojection_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Spherical Projection Icon

.. |stabilizer_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Stabilizer Icon

.. |tracker_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Tracker Icon

.. |wave_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Wave Icon

.. |compressor_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Compressor Icon

.. |delay_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Delay Icon

.. |distortion_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Distortion Icon

.. |echo_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Echo Icon

.. |expander_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Expander Icon

.. |noise_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Noise Icon

.. |parametriceq_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Parametric EQ Icon

.. |robotization_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Robotization Icon

.. |whisperization_icon| image:: ../src/effects/icons/[email protected]
:width: 50px
:alt: Whisperization Icon

.. table::
:widths: 30 80

============================= ===============
Effect Name Effect Description
============================= ===============
Alpha Mask / Wipe Transition Grayscale mask transition between images.
Bars Add colored bars around your video.
Blur Adjust image blur.
Brightness & Contrast Modify frame's brightness and contrast.
Caption Add text captions to any clip.
Chroma Key (Greenscreen) Replace color with transparency.
Color Map / Lookup Adjust colors using 3D LUT lookup tables (.cube format)
Color Saturation Adjust color intensity.
Color Shift Shift image colors in various directions.
Crop Crop out parts of your video.
Deinterlace Remove interlacing from video.
Hue Adjust hue / color.
Lens Flare Simulate sunlight hitting a lens with flares.
Negative Produce a negative image.
Object Detector Detect objects in video.
Outline Add outline around any image or text.
Pixelate Increase or decrease visible pixels.
Sharpen Boost edge contrast to make video details look crisper.
Shift Shift image in different directions.
Spherical Projection Flatten or project 360° videos.
Stabilizer Reduce video shake.
Tracker Track bounding box in video.
Wave Distort image into a wave pattern.
Compressor Reduce loudness or amplify quiet sounds.
Delay Adjust audio-video synchronism.
Distortion Clip audio signal for distortion.
Echo Add delayed sound reflection.
Expander Make loud parts relatively louder.
Noise Add random equal-intensity signals.
Parametric EQ Adjust frequency volume in audio.
Robotization Transform audio into robotic voice.
Whisperization Transform audio into whispers.
============================= ===============
:widths: 15 30 80

=========================== ============================= ===============
Icon Effect Name Effect Description
=========================== ============================= ===============
|mask_icon| Alpha Mask / Wipe Transition Grayscale mask transition between images.
|bars_icon| Bars Add colored bars around your video.
|blur_icon| Blur Adjust image blur.
|brightness_icon| Brightness & Contrast Modify frame’s brightness and contrast.
|caption_icon| Caption Add text captions to any clip.
|chromakey_icon| Chroma Key (Greenscreen) Replace color with transparency.
|colormap_icon| Color Map / Lookup Adjust colors using 3D LUT lookup tables (.cube format).
|saturation_icon| Color Saturation Adjust color intensity.
|colorshift_icon| Color Shift Shift image colors in various directions.
|crop_icon| Crop Crop out parts of your video.
|deinterlace_icon| Deinterlace Remove interlacing from video.
|hue_icon| Hue Adjust hue / color.
|lensflare_icon| Lens Flare Simulate sunlight hitting a lens with flares.
|negate_icon| Negative Produce a negative image.
|objectdetection_icon| Object Detector Detect objects in video.
|outline_icon| Outline Add outline around any image or text.
|pixelate_icon| Pixelate Increase or decrease visible pixels.
|sharpen_icon| Sharpen Boost edge contrast to make video details look crisper.
|shift_icon| Shift Shift image in different directions.
|sphericalprojection_icon| Spherical Projection Flatten or project 360° videos.
|stabilizer_icon| Stabilizer Reduce video shake.
|tracker_icon| Tracker Track bounding box in video.
|wave_icon| Wave Distort image into a wave pattern.
|compressor_icon| Compressor Reduce loudness or amplify quiet sounds.
|delay_icon| Delay Adjust audio-video synchronism.
|distortion_icon| Distortion Clip audio signal for distortion.
|echo_icon| Echo Add delayed sound reflection.
|expander_icon| Expander Make loud parts relatively louder.
|noise_icon| Noise Add random equal-intensity signals.
|parametriceq_icon| Parametric EQ Adjust frequency volume in audio.
|robotization_icon| Robotization Transform audio into robotic voice.
|whisperization_icon| Whisperization Transform audio into whispers.
=========================== ============================= ===============


Effect Properties
-----------------
Expand Down
Binary file modified images/AudioThumbnail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 34 additions & 24 deletions installer/build_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
import subprocess
import sysconfig
import traceback
from github3 import login
from github3 import login, GitHubError
from requests.auth import HTTPBasicAuth
from requests import post
from version_parser import parse_version_info, parse_build_name
Expand Down Expand Up @@ -167,28 +167,34 @@ def upload(file_path, github_release):
"""Upload a file to GitHub (retry 3 times)"""
url = None
file_name = os.path.basename(file_path)
file_size = os.path.getsize(file_path)

def remove_existing_asset():
"""Remove a conflicting asset from the release (if any)"""
# pick the right asset-list provider
if hasattr(github_release, 'original_assets'):
asset_list = github_release.original_assets
else:
asset_list = github_release.assets
for asset in asset_list:
if asset.name == file_name:
output(f"GitHub: Removing conflicting installer asset from {github_release.tag_name}: {file_name}")
try:
asset.delete()
except Exception as ex:
output(f"GitHub: Failed to delete asset: {ex}")
break

# Try up to 3 times
for attempt in range(1, 4):
remove_existing_asset()

# Delete any matching assets already in this github release
# so we don't have any collisions.
if hasattr(github_release, 'original_assets'):
asset_list = github_release.original_assets
else:
asset_list = github_release.assets
for asset in asset_list:
if asset.name == file_name:
output("GitHub: Removing conflicting installer asset from %s: %s" % (github_release.tag_name, file_name))
if hasattr(asset, 'delete'):
asset.delete()
else:
asset._delete(asset._api)
break

for attempt in range(3):
try:
# Attempt the upload
with open(file_path, "rb") as f:
# Upload to GitHub
output("GitHub: Uploading asset from %s: %s" % (github_release.tag_name, file_name))
output(f"GitHub: Uploading asset from {github_release.tag_name}: "
f"{file_name} (size: {file_size} bytes) [attempt {attempt}]")
asset = github_release.upload_asset("application/octet-stream", file_name, f)
if hasattr(asset, 'browser_download_url'):
url = asset.browser_download_url
Expand All @@ -197,12 +203,16 @@ def upload(file_path, github_release):
# Successfully uploaded!
break
except Exception as ex:
# Quietly fail, and try again
if attempt < 2:
output("Upload failed... trying again")
else:
# Throw loud exception
raise Exception('Upload failed. Verify that this file is not already uploaded: %s' % file_path, ex)
# log the failure
msg = ex
if isinstance(ex, GitHubError):
msg = ex.response.json()
output(f"GitHub: Upload attempt {attempt} failed: {msg}")

if attempt == 3:
# out of retries — bubble up
raise Exception(f"Upload failed after {attempt} attempts. "
f"Verify that this file isn't already uploaded: {file_path}", ex)

return url

Expand Down
6 changes: 3 additions & 3 deletions src/classes/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
import os
from time import strftime

VERSION = "3.3.0"
MINIMUM_LIBOPENSHOT_VERSION = "0.4.0"
DATE = "20241221000000"
VERSION = "3.4.0"
MINIMUM_LIBOPENSHOT_VERSION = "0.5.0"
DATE = "20250612000000"
NAME = "openshot-qt"
PRODUCT_NAME = "OpenShot Video Editor"
GPL_VERSION = "3"
Expand Down
Loading