mltframework / mltframework/shotcut

Begin and end point of clip with "Speed: forward only" filter randomly change

Open
#1,498 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
15.2k
Forks
1.5k
Avg merge
11h 27m
Merged PRs (30d)
5

Description

23.11.29 on Manjaro Linux (installed via Pamac)

I don't know what exact steps lead to reproducing this, but it has happened to me a few times already and believe me I'm not hallucinating.

Here's what I did:

  1. Created a new project
  2. Added a couple of files to the playlist
  3. placed them on the timeline
  4. sliced them into a few pieces (using "split at playhead" in several places)
  5. readjusted the beginning and ending point of some of them
  6. moved them around

So far, basic editing
7. On some of the clips in the timeline, added the "speed: forward only" filter to speed up the clip to 2x constant speed

Context: all I wanted to do was to speed up those clips to a constant speed of e.g. 2x. The only way I found was to use the "speed: forward only" filter, and it's a bit cumbersome to use. If I simply add the filter and change the speed, that speed gets applied to the particular point in time where the playhead happens to be at that particular moment, as if I'm creating some sort of keyframe there, and then the speed is interpolated linearly after and perhaps before that keyframe to 1.0x. So, in order to speed up a clip at a constant speed e.g. 2x, I need to position the playhead at the beginning of the clip, set the speed there, then put the playhead at the end, set the same speed there. And if I forgot to do this and changed the speed at some random point in the middle, I couldn't find how to correct that, I just delete the filter and start over.

Anyway, that part should be irrelevant to the issue.

  1. I moved around the clips some more
  2. saved the project
  3. Reopened the project the following day
  4. played it

The clips that had the filter now do not start at the same start and end point that they did.

I mean: at the place in the timeline where I had a sped-up clip, there's a sped-up clip. It has the same duration that it had, it has the same speed, it has the same duration (i.e. occupies the same timespan on the timeline), it is from the same file from the playlist that it was from, but it start and ends at different times than what I had done. And it's not by a small amount, it's a completely unrelated piece of the video.

This completely destroyed the editing work I had done.

I'm not sure whether this happened when moving clips around on the timeline, or when I saved and reopened the file. This had happened to me before, and I had noticed it while editing. So it's possible that it again happened when moving clips around on the timeline, and I failed to notice it right away and only noticed it when I reopened the project.

Just in case there's a misalignment between the behavior that I expect and some very unintuitive and unconventional but somehow internally consistent behavior that perhaps is by design (some very wicked design), I'll try to be extra explicit about the behavior that I expect when I speed up a clip and move it around on the timeline.

Let's say I have two videos in the playlist and they go like this:

SourceVideo1: |aabbccddeeff|
SourceVideo2: |ppqqrrssttuu|

I take some middle portion of SourceVideo1 and speed it up, then take a portion of SourceVideo2 without any filter, and I place them onto the timeline like this:

...|cde|rrsstt|....
```
where "cde" represents the middle portion of SourceVideo1 at 2x speed, "rrsstt" represents the portion of SourceVideo2 at normal speed, the "|"s represent boundaries (I know this isn't rigorous) and "..." represent other stuff in the timeline before and after those clips.

If I select both clips and move everything to the left, i.e. to the "before" direction in time (e.g. after deleting othe clips that were there), I expect to get something like this:
```
|cde|rrsstt|.....
```
that is, the exact same thing that I had, but moved.
Not something crazy like 
```
|abc|rrsstt|
```

And if I take the "cde" clip and move it after the "rrsstt" clip, i.e. switch the order in which they appear on the timeline, I expect to get:
```
....|rrsstt|cde|......
```
and not something like, I don't know, 
```
....|rrsstt|def|....
```

That is, if I select a clip that is already on the timeline, and move it around on the timeline, I expect it to remain  the same thing, just moved to another point in time. Does that make sense?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The payload names no files or tests; start by reproducing the reported workflow with the “speed: forward only” filter, moving clips and then saving and reopening the project. Compare the clip source ranges before and after those operations; done means moving or reopening preserves each clip’s original start and end points.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.