Search in sources :

Example 11 with VisualTimelineClip

use of com.helospark.tactview.core.timeline.VisualTimelineClip in project tactview by helospark.

the class CommonEffectTest method testThatEffectIsGeneratingSameImageAfterCloning.

@Test
public void testThatEffectIsGeneratingSameImageAfterCloning() {
    LightDiContext lightDi = IntegrationTestUtil.startContext();
    List<EffectFactory> effectFactories = lightDi.getListOfBeans(EffectFactory.class);
    FakeUi fakeUi = lightDi.getBean(FakeUi.class);
    VisualTimelineClip clip = (VisualTimelineClip) fakeUi.dragProceduralClipToFirstChannel("singlecolor", TimelinePosition.ofZero());
    for (var effectFactory : effectFactories) {
        StatelessEffect effect = effectFactory.createEffect(new CreateEffectRequest(TimelinePosition.ofZero(), effectFactory.getEffectId(), TimelineClipType.VIDEO, clip.getInterval()));
        if (!(effect instanceof StatelessVideoEffect) || effectFactory.getEffectId().equals("lensdistort")) {
            /**
             * trello.201, check why this occasionally fails
             */
            continue;
        }
        ReadOnlyClipImage originalFrame = getFrame((StatelessVideoEffect) effect, clip);
        StatelessVideoEffect clonedEffect = (StatelessVideoEffect) effect.cloneEffect(CloneRequestMetadata.ofDefault());
        ReadOnlyClipImage clonedFrame = getFrame(clonedEffect, clip);
        IntegrationTestUtil.assertFrameEquals(originalFrame, clonedFrame, effectFactory.getEffectId() + " is generating different image after clone");
        freeFrame(originalFrame);
        freeFrame(clonedFrame);
    }
    lightDi.close();
}
Also used : LightDiContext(com.helospark.lightdi.LightDiContext) FakeUi(com.helospark.tactview.core.it.util.ui.FakeUi) StatelessEffect(com.helospark.tactview.core.timeline.StatelessEffect) ReadOnlyClipImage(com.helospark.tactview.core.timeline.image.ReadOnlyClipImage) StatelessVideoEffect(com.helospark.tactview.core.timeline.StatelessVideoEffect) VisualTimelineClip(com.helospark.tactview.core.timeline.VisualTimelineClip) EffectFactory(com.helospark.tactview.core.timeline.effect.EffectFactory) CreateEffectRequest(com.helospark.tactview.core.timeline.effect.CreateEffectRequest) Test(org.junit.jupiter.api.Test)

Aggregations

VisualTimelineClip (com.helospark.tactview.core.timeline.VisualTimelineClip)11 ReadOnlyClipImage (com.helospark.tactview.core.timeline.image.ReadOnlyClipImage)6 CreateEffectRequest (com.helospark.tactview.core.timeline.effect.CreateEffectRequest)4 GetFrameRequest (com.helospark.tactview.core.timeline.GetFrameRequest)3 StatelessVideoEffect (com.helospark.tactview.core.timeline.StatelessVideoEffect)3 TimelinePosition (com.helospark.tactview.core.timeline.TimelinePosition)3 EffectFactory (com.helospark.tactview.core.timeline.effect.EffectFactory)3 LightDiContext (com.helospark.lightdi.LightDiContext)2 VisualMediaMetadata (com.helospark.tactview.core.decoder.VisualMediaMetadata)2 FakeUi (com.helospark.tactview.core.it.util.ui.FakeUi)2 AudibleTimelineClip (com.helospark.tactview.core.timeline.AudibleTimelineClip)2 StatelessEffect (com.helospark.tactview.core.timeline.StatelessEffect)2 BigDecimal (java.math.BigDecimal)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 Bean (com.helospark.lightdi.annotation.Bean)1 ConditionalOnProperty (com.helospark.lightdi.annotation.ConditionalOnProperty)1 Configuration (com.helospark.lightdi.annotation.Configuration)1 VideoMetadata (com.helospark.tactview.core.decoder.VideoMetadata)1 LoadMetadata (com.helospark.tactview.core.save.LoadMetadata)1 SaveMetadata (com.helospark.tactview.core.save.SaveMetadata)1