Automated release: version and notes generated from pull requests merged since 3.8.3.
Fixed
fit.py --method trimends its sound to the sample, andbroll.pyand
sync.py --replace-audiostart a delayed sound on the sample (follow-ups of #470, the class
of #493 and #499).fit.py --method trim --duration 1.23425ended its output with-t 1.234:
59232 samples for 59244 at 48 kHz, 59280 for 59261 when the millisecond rounds up
(--duration 1.2346), 54419 for 54433 at 44.1 kHz (--duration 1.2343). The-tis
length_output_t()now, as inoverlay.pyandloop.py;--method speedtakes it only when
the change is too small to retime the sound (3 s to 2.9999 s wrote 144000 for 143995), because
a track retimed byatempoends before the target and its-tcuts nothing (13 to 62 ms
before it in the cases measured, which this change does not address). With sound, the same
-tno longer lets in the frame that starts on the target: 37 frames of a 30000/1001 source
were written as 38 under-t 1.235; without sound the command is unchanged and still writes 38.
broll.pydelayed a cutaway's sound byint(at * 1000)ms:--at 1.001started it at sample
48000 for 48048,--at 1.2346at 59232 for 59261; it is counted in samples of the 48 kHz mix
(silence_filter()), and a whole millisecond is rounded, not cut. The cutaway's picture window
keeps its millisecond text: a--at/--fromon a 30000/1001 frame whose millisecond rounds up
still starts the picture a frame late (measured, not fixed here).sync.py --replace-audio
rounded the measured offset to the millisecond: with--fine-ms 0.25an offset of 0.2343 s
becameadelay=234(the sound started at sample 11232, now 11246); at the default
--fine-ms 1and without--fix-driftoffsets are whole milliseconds and the command is
unchanged (--fix-driftmoves the offset by the drift it measured, to a tenth of a millisecond,
and such an offset is now a delay in samples too), and--trim-secondstill rounds. A length, a delay or an offset in whole milliseconds, an input without sound and
a dry run's pending input write the command they always did, exceptbroll.py --atvalues
that were cut by one millisecond. Measured and left alone, because the millisecond cannot
change what they write:join.py's silence for a part without sound,insert.py,
background.py,grid.py's picture andexport.py's platform maximum
(docs/design-decisions.md, "After 3.8.3"). Measured on FFmpeg 6.1.1 only.- fix: fit --method trim, broll's cutaway sound and sync --replace-audio's delay are written to the sample (#500)
What's Changed
- fix: fit --method trim, broll's cutaway sound and sync --replace-audio's delay are written to the sample by @kajisho5 in #500
Full Changelog: v3.8.3...v3.8.4