Closed elanvrt closed 6 years ago
It is the is_still
handling that causes this. If you remove the if
statement at https://github.com/CasparCG/Server/blob/2.1.0/accelerator/ogl/image/image_mixer.cpp#L101 this issue is resolved, but then new jitter removal in 2.1 doesn't work anymore. Maybe there is a way to make both work.
The comment below this line reads: // Remove jitter from still.
But a layer in motion is not really a still. So maybe the solution is to extend this if statement with some sort of "&& LayerIsNotInMotion" condition, so the jitter removal only works when the layer is actually standing still.
It may show unwanted transition effects in very slow animations of interlaced footage, but an improvement it would definitely be.
I always enable ffmpeg's yadif filtering for de-interlacing when any transformation is needed, I assume this simple jitter removal is not the same thing.
Tested with build 2.1.0.3440 and okay. Thanks a lot for the quick fix.
I wonder if anybody noticed it, but this looks like a major setback in animation quality for all 2.1.0 versions.
As most broadcast people do, I run CasparCG in 1080i5000 mode. When issuing any animating mixer command with a duration >0, animation is always in frame mode (25fps) while it should be in field mode (50fps). This happens with both still images and video clips in paused mode, but NOT when the clip is playing. Then the animation is smooth 50fps, as it should be.
The effect is easy to reproduce. Load any clip in layer 1, then use a command MIXER 1-1 FILL 0 0 0.2 0.2 50 to make it smaller. Now send the command MIXER 1-1 FILL 0.8 0.8 0.2 0.2 50 to make it move to the opposite corner.
Notice the film-effect animation when the clip is paused and the smooth animation when the clip is paused.
I noticed this in all 2.1.0 versions up to beta2. My system is windows 7 x64, output on Decklink 4K pro or Bluefush Epoch Create
The issue also occurs in 1080i5994 and 1080i6000 modes. The issue does NOT occur with the 2.0.7, there all animations are correctly 50fps, still or playing.
Chris