Skip to content

Commit be345cc

Browse files
committed
Merge branch 'releases/0.6.7'
2 parents 0b7ff06 + 886ca4b commit be345cc

File tree

10 files changed

+37
-29
lines changed

10 files changed

+37
-29
lines changed

.github/workflows/generate-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
env:
1717
# TODO: Figure out a better way to handle figuring out what version /latest should be,
1818
# e.g. add a latest version file in main.
19-
scenedetect_docs_latest: '0.6.6'
19+
scenedetect_docs_latest: '0.6.7'
2020
scenedetect_docs_dest: ''
2121

2222
steps:

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Video Cut Detection and Analysis Tool
1111

1212
----------------------------------------------------------
1313

14-
### Latest Release: v0.6.6 (March 9, 2025)
14+
### Latest Release: v0.6.7 (August 24, 2025)
1515

1616
**Website**: [scenedetect.com](https://www.scenedetect.com)
1717

appveyor.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ environment:
2020
secure: of3o1pInqCJYwKLFsiadbsRYazCmCuZq7r2roaYvYXmBvm6e6JHsRU47waylTmhm
2121
ai_license_salt:
2222
secure: +NKWwlkEptlThgfeL35pLo7EsnkJc+4WODm8tTg1aO5fc0duQ4r100fHQYj6nzhyUdy3Dhs/mOLkxD8rNbBiEQ==
23+
ffmpeg_version: "8.0"
2324

2425
# SignPath Config for Code Signing
2526
deploy:
@@ -41,8 +42,8 @@ install:
4142
- python -m pip install --upgrade -r dist/requirements_windows.txt --no-binary imageio-ffmpeg
4243
# Checkout build resources and third party software used for testing.
4344
- git checkout refs/remotes/origin/resources -- dist/
44-
- appveyor DownloadFile https://github.com/GyanD/codexffmpeg/releases/download/7.1/ffmpeg-7.1-full_build.7z
45-
- 7z e ffmpeg-7.1-full_build.7z -odist/ffmpeg ffmpeg.exe LICENSE -r
45+
- appveyor DownloadFile https://github.com/GyanD/codexffmpeg/releases/download/%ffmpeg_version%/ffmpeg-%ffmpeg_version%-full_build.7z
46+
- 7z e ffmpeg-%ffmpeg_version%-full_build.7z -odist/ffmpeg ffmpeg.exe LICENSE -r
4647
- 'SET IMAGEIO_FFMPEG_EXE=%APPVEYOR_BUILD_FOLDER%\\dist\\ffmpeg\\ffmpeg.exe'
4748

4849
- echo * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -72,7 +73,7 @@ install:
7273
- appveyor-tools\secure-file -decrypt license65.dat.enc -secret %ai_license_secret% -salt %ai_license_salt%
7374
- appveyor DownloadFile https://www.advancedinstaller.com/downloads/advinst.msi
7475
- msiexec /i advinst.msi /qn
75-
- 'SET PATH=%PATH%;C:\\Program Files (x86)\\Caphyon\\Advanced Installer 22.5\\bin\\x86'
76+
- 'SET PATH=%PATH%;C:\\Program Files (x86)\\Caphyon\\Advanced Installer 22.9.1\\bin\\x86'
7677
# License path must be absolute
7778
- AdvancedInstaller.com /RegisterOffline "%cd%\license65.dat"
7879
# Create MSI installer
@@ -98,7 +99,9 @@ test_script:
9899
- git checkout refs/remotes/origin/resources -- tests/resources/
99100
- move dist\scenedetect\ffmpeg.exe ffmpeg.exe
100101
# Run unit tests
101-
- pytest
102+
# TODO: We are at the new build time limit for this plan apparently, 10 mins. Figure out a
103+
# strategy to deal with that (see if we can use Github as a builder?).
104+
# - pytest
102105
# Test Windows build
103106
- move ffmpeg.exe dist\scenedetect\ffmpeg.exe
104107
- cd dist/scenedetect

dist/installer/PySceneDetect.aip

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
<ROW Property="DialogBitmap" Value="dialog.jpg" MultiBuildValue="DefaultBuild:installer_logo.jpg" Type="1" MsiKey="DialogBitmap"/>
2424
<ROW Property="MSIFASTINSTALL" MultiBuildValue="DefaultBuild:3"/>
2525
<ROW Property="Manufacturer" Value="Brandon Castellano"/>
26-
<ROW Property="ProductCode" Value="1033:{5F017601-DFDD-4381-A35F-79634ED91632} " Type="16"/>
26+
<ROW Property="ProductCode" Value="1033:{AA389A8A-489B-403A-9EF6-B8AF31DE1D0D} " Type="16"/>
2727
<ROW Property="ProductLanguage" Value="1033"/>
2828
<ROW Property="ProductName" Value="PySceneDetect"/>
29-
<ROW Property="ProductVersion" Value="0.6.6" Options="32"/>
29+
<ROW Property="ProductVersion" Value="0.6.7" Options="32"/>
3030
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
3131
<ROW Property="UpgradeCode" Value="{D0AF0419-DBD5-455C-A4AC-4518A35DD23E}"/>
3232
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
@@ -125,7 +125,7 @@
125125
<ROW Directory="wheel0.45.1.distinfo_Dir" Directory_Parent="_internal_Dir" DefaultDir="WHEEL-~1.DIS|wheel-0.45.1.dist-info"/>
126126
</COMPONENT>
127127
<COMPONENT cid="caphyon.advinst.msicomp.SideBySideGuidComponent">
128-
<ROW Component="AI_CustomARPName" Value="{F7C45B12-D093-4D1A-96D3-9D79D73D8DD1}"/>
128+
<ROW Component="AI_CustomARPName" Value="{1EE8167C-7E52-48AD-9053-BD9A132F2918}"/>
129129
<ROW Component="AI_DisableModify" Value="{5AB8A335-BCAB-4C0A-8A69-E2AE7542AB47}"/>
130130
<ROW Component="AI_ExePath" Value="{F7DEDE0C-FDB1-411C-B347-A482CE69721F}"/>
131131
<ROW Component="APPDIR" Value="{6B122BDD-2BF8-41D4-92E0-884DD60467B4}"/>
@@ -366,7 +366,6 @@
366366
<ROW Component="context.cp313win_amd64.pyd" ComponentId="{3F46B25C-6AF9-4049-A39B-9211FFF611B2}" Directory_="filter_Dir" Attributes="256" KeyPath="context.cp313win_amd64.pyd_1" Type="0"/>
367367
<ROW Component="core.cp313win_amd64.pyd" ComponentId="{239884C9-D5A8-4EAC-BB80-98940D72772E}" Directory_="container_Dir" Attributes="256" KeyPath="core.cp313win_amd64.pyd" Type="0"/>
368368
<ROW Component="cs.msg" ComponentId="{CA47D90F-CA31-4D5E-8EB4-2BE8724900E9}" Directory_="msgs_1_Dir" Attributes="0" KeyPath="cs.msg_1" Type="0"/>
369-
<ROW Component="entry_points.txt" ComponentId="{E6C2334A-40CF-4B41-B7E9-ECC421D6A28A}" Directory_="wheel0.45.1.distinfo_Dir" Attributes="0" KeyPath="entry_points.txt_1" Type="0"/>
370369
<ROW Component="ffmpeg.exe" ComponentId="{B7CA4B2A-DE88-42CD-AD38-AC30FD29D506}" Directory_="APPDIR" Attributes="256" KeyPath="ffmpeg.exe"/>
371370
<ROW Component="http.tcl" ComponentId="{E68A9C81-9D27-40F2-88A7-4B2CF7388062}" Directory_="http1.0_Dir" Attributes="0" KeyPath="http.tcl" Type="0"/>
372371
<ROW Component="http2.9.8.tm" ComponentId="{80BA6FC3-9CCC-4A73-8673-F6C6BC2106B5}" Directory_="__2_Dir" Attributes="0" KeyPath="http2.9.8.tm" Type="0"/>
@@ -639,13 +638,6 @@
639638
<ROW File="unicodedata.pyd" Component_="base_library.zip" FileName="UNICOD~1.PYD|unicodedata.pyd" Attributes="0" SourcePath="..\scenedetect\_internal\unicodedata.pyd" SelfReg="false"/>
640639
<ROW File="VCRUNTIME140.dll" Component_="VCRUNTIME140.dll" FileName="VCRUNT~1.DLL|VCRUNTIME140.dll" Attributes="0" SourcePath="..\scenedetect\_internal\VCRUNTIME140.dll" SelfReg="false"/>
641640
<ROW File="VCRUNTIME140_1.dll" Component_="VCRUNTIME140_1.dll" FileName="VCRUNT~2.DLL|VCRUNTIME140_1.dll" Attributes="0" SourcePath="..\scenedetect\_internal\VCRUNTIME140_1.dll" SelfReg="false"/>
642-
<ROW File="entry_points.txt_1" Component_="entry_points.txt" FileName="ENTRY_~1.TXT|entry_points.txt" Attributes="0" SourcePath="..\scenedetect\_internal\wheel-0.45.1.dist-info\entry_points.txt" SelfReg="false"/>
643-
<ROW File="INSTALLER_2" Component_="entry_points.txt" FileName="INSTAL~1|INSTALLER" Attributes="0" SourcePath="..\scenedetect\_internal\wheel-0.45.1.dist-info\INSTALLER" SelfReg="false"/>
644-
<ROW File="LICENSE.txt_1" Component_="entry_points.txt" FileName="LICENSE.txt" Attributes="0" SourcePath="..\scenedetect\_internal\wheel-0.45.1.dist-info\LICENSE.txt" SelfReg="false"/>
645-
<ROW File="METADATA_2" Component_="entry_points.txt" FileName="METADATA" Attributes="0" SourcePath="..\scenedetect\_internal\wheel-0.45.1.dist-info\METADATA" SelfReg="false"/>
646-
<ROW File="RECORD_2" Component_="entry_points.txt" FileName="RECORD" Attributes="0" SourcePath="..\scenedetect\_internal\wheel-0.45.1.dist-info\RECORD" SelfReg="false"/>
647-
<ROW File="REQUESTED_2" Component_="entry_points.txt" FileName="REQUES~1|REQUESTED" Attributes="0" SourcePath="..\scenedetect\_internal\wheel-0.45.1.dist-info\REQUESTED" SelfReg="false"/>
648-
<ROW File="WHEEL_2" Component_="entry_points.txt" FileName="WHEEL" Attributes="0" SourcePath="..\scenedetect\_internal\wheel-0.45.1.dist-info\WHEEL" SelfReg="false"/>
649641
<ROW File="zlib1.dll" Component_="zlib1.dll" FileName="zlib1.dll" Attributes="0" SourcePath="..\scenedetect\_internal\zlib1.dll" SelfReg="false"/>
650642
<ROW File="_asyncio.pyd" Component_="base_library.zip" FileName="_asyncio.pyd" Attributes="0" SourcePath="..\scenedetect\_internal\_asyncio.pyd" SelfReg="false"/>
651643
<ROW File="_bz2.pyd" Component_="base_library.zip" FileName="_bz2.pyd" Attributes="0" SourcePath="..\scenedetect\_internal\_bz2.pyd" SelfReg="false"/>
@@ -1642,7 +1634,7 @@
16421634
<ROW Action="AI_CleanPrePrereq" Condition="AI_BOOTSTRAPPER AND (NOT AI_PrereqsFulfilled)" Sequence="699"/>
16431635
</COMPONENT>
16441636
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
1645-
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="." PackageFileName="PySceneDetect-0.6.6-win64" Languages="en" InstallationType="4" ExtUI="true" UseLargeSchema="true" MsiPackageType="x64"/>
1637+
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="." PackageFileName="PySceneDetect-0.6.7-win64" Languages="en" InstallationType="4" ExtUI="true" UseLargeSchema="true" MsiPackageType="x64"/>
16461638
</COMPONENT>
16471639
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
16481640
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
@@ -1897,7 +1889,6 @@
18971889
<ROW Feature_="PySceneDetect" Component_="ucrtbase.dll"/>
18981890
<ROW Feature_="PySceneDetect" Component_="VCRUNTIME140.dll"/>
18991891
<ROW Feature_="PySceneDetect" Component_="VCRUNTIME140_1.dll"/>
1900-
<ROW Feature_="PySceneDetect" Component_="entry_points.txt"/>
19011892
<ROW Feature_="PySceneDetect" Component_="zlib1.dll"/>
19021893
<ROW Feature_="PySceneDetect" Component_="auto.tcl"/>
19031894
<ROW Feature_="PySceneDetect" Component_="ascii.enc"/>

scenedetect/_cli/commands.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ def get_edl_timecode(timecode: FrameTimecode):
295295
# Add each shot as an edit entry
296296
for i, (start, end) in enumerate(scenes):
297297
in_tc = get_edl_timecode(start)
298-
out_tc = get_edl_timecode(end - 1) # Correct for presentation time
298+
out_tc = get_edl_timecode(end) # Correct for presentation time
299299
# Format the edit entry according to CMX 3600 format
300300
event_line = f"{(i + 1):03d} {reel} V C {in_tc} {out_tc} {in_tc} {out_tc}"
301301
edl_content.append(event_line)

tests/test_cli.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -756,8 +756,8 @@ def test_cli_save_edl(tmp_path: Path):
756756
TITLE: {DEFAULT_VIDEO_NAME}
757757
FCM: NON-DROP FRAME
758758
759-
001 AX V C 00:00:02:00 00:00:03:17 00:00:02:00 00:00:03:17
760-
002 AX V C 00:00:03:18 00:00:05:23 00:00:03:18 00:00:05:23
759+
001 AX V C 00:00:02:00 00:00:03:18 00:00:02:00 00:00:03:18
760+
002 AX V C 00:00:03:18 00:00:06:00 00:00:03:18 00:00:06:00
761761
"""
762762
assert output_path.read_text() == EXPECTED_EDL_OUTPUT
763763

@@ -777,8 +777,8 @@ def test_cli_save_edl_with_params(tmp_path: Path):
777777
TITLE: title
778778
FCM: NON-DROP FRAME
779779
780-
001 BX V C 00:00:02:00 00:00:03:17 00:00:02:00 00:00:03:17
781-
002 BX V C 00:00:03:18 00:00:05:23 00:00:03:18 00:00:05:23
780+
001 BX V C 00:00:02:00 00:00:03:18 00:00:02:00 00:00:03:18
781+
002 BX V C 00:00:03:18 00:00:06:00 00:00:03:18 00:00:06:00
782782
"""
783783
assert output_path.read_text() == EXPECTED_EDL_OUTPUT
784784

website/pages/changelog.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@ Releases
44

55
## PySceneDetect 0.6
66

7+
### PySceneDetect 0.6.7 (August 24, 2025)
8+
9+
#### Release Notes
10+
11+
Minor update to fix issues with importing EDL files into DaVinci Resolve and other editors.
12+
13+
#### Changelog
14+
15+
- [bugfix] Fix `save-edl` end timestamp being too short by 1 frame [#516](https://github.com/Breakthrough/PySceneDetect/issues/516)
16+
- [general] Updates to Windows distributions:
17+
- ffmpeg 7.1 -> 8.0
18+
19+
720
### PySceneDetect 0.6.6 (March 9, 2025)
821

922
#### Release Notes

website/pages/docs.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
## Stable
55

66
* [latest](latest/)
7+
* [v0.6.7](0.6.7/)
78
* [v0.6.6](0.6.6/)
89
* [v0.6.5](0.6.5/)
910
* [v0.6.4](0.6.4/)

website/pages/download.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ PySceneDetect is available via `pip` as [the `scenedetect` package](https://pypi
2020
## Windows Build (64-bit Only) &nbsp; <span class="wy-text-neutral"><span class="fa fa-windows"></span></span>
2121

2222
<div class="important">
23-
<h3 class="wy-text-neutral"><span class="fa fa-forward wy-text-info"></span> Latest Release: <b class="wy-text-neutral">v0.6.6</b></h3>
24-
<h4 class="wy-text-neutral"><span class="fa fa-calendar wy-text-info"></span>&nbsp; Release Date:&nbsp; <b>March 9, 2025</b></h4>
25-
<a href="https://github.com/Breakthrough/PySceneDetect/releases/download/v0.6.6-release/PySceneDetect-0.6.6-win64.msi" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Installer</b>&nbsp;&nbsp;(recommended)</a> &nbsp;&nbsp;&nbsp;&nbsp;
26-
<a href="https://github.com/Breakthrough/PySceneDetect/releases/download/v0.6.6-release/PySceneDetect-0.6.6-win64.zip" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Portable .zip</b></a> &nbsp;&nbsp;&nbsp;&nbsp;
23+
<h3 class="wy-text-neutral"><span class="fa fa-forward wy-text-info"></span> Latest Release: <b class="wy-text-neutral">v0.6.7</b></h3>
24+
<h4 class="wy-text-neutral"><span class="fa fa-calendar wy-text-info"></span>&nbsp; Release Date:&nbsp; <b>August 24, 2025</b></h4>
25+
<a href="https://github.com/Breakthrough/PySceneDetect/releases/download/v0.6.7-release/PySceneDetect-0.6.7-win64.msi" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Installer</b>&nbsp;&nbsp;(recommended)</a> &nbsp;&nbsp;&nbsp;&nbsp;
26+
<a href="https://github.com/Breakthrough/PySceneDetect/releases/download/v0.6.7-release/PySceneDetect-0.6.7-win64.zip" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Portable .zip</b></a> &nbsp;&nbsp;&nbsp;&nbsp;
2727
<a href="../cli/" class="btn btn-success" style="margin-bottom:8px;" role="button"><span class="fa fa-book"></span>&nbsp; <b>Getting Started</b></a>
2828
</div>
2929

website/pages/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<img alt="PySceneDetect" src="img/pyscenedetect_logo_small.png" />
33

44
<div class="important">
5-
<h3 class="wy-text-neutral"><span class="fa fa-info-circle wy-text-info"></span>&nbsp; Latest Release: <b>v0.6.6</b> (March 9, 2025)</h3>
5+
<h3 class="wy-text-neutral"><span class="fa fa-info-circle wy-text-info"></span>&nbsp; Latest Release: <b>v0.6.7</b> (August 24, 2025)</h3>
66
<a href="download/" class="btn btn-success" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Download</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="changelog/" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-reorder"></span>&nbsp; <b>Changelog</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="docs/latest/" class="btn btn-warning" style="margin-bottom:8px;" role="button"><span class="fa fa-gear"></span>&nbsp; <b>Documentation</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="cli/" class="btn btn-danger" style="margin-bottom:8px;" role="button"><span class="fa fa-book"></span>&nbsp; <b>Getting Started</b></a>
77
<br/>
88
See the changelog for the latest release notes and known issues.

0 commit comments

Comments
 (0)