Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions vodesfunc/rescale_ext/regular_rescale.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from jetpytools import KwargsT
from typing import Any
from vstools import vs
from vskernels import BorderHandling
from vskernels import BorderHandling, SampleGridModel
from vsscale import ScalingArgs

from .base import RescaleBase
Expand All @@ -18,6 +18,11 @@ def _scaling_args(self, **kwargs: Any) -> ScalingArgs:
kwargs = kwargs | dict(sample_grid_model=self.sample_grid_model)
return ScalingArgs.from_args(**kwargs)

def _kernel_kwargs(self, kwargs: KwargsT) -> KwargsT:
if self.sample_grid_model:
kwargs = kwargs | dict(sample_grid_model=SampleGridModel.MATCH_EDGES)
return kwargs

def _non_fieldbased_descale(
self,
clip: vs.VideoNode,
Expand All @@ -37,6 +42,8 @@ def _non_fieldbased_descale(
if isinstance(self.ignore_mask, vs.VideoNode):
args = args | dict(ignore_mask=self.ignore_mask)

args = self._kernel_kwargs(args)

self.post_crop = sc_args.kwargs(2)
self.rescale_args = sc_args.kwargs()

Expand Down Expand Up @@ -67,7 +74,9 @@ def _descale_step(workclip: vs.VideoNode, order: str) -> vs.VideoNode:

return self.kernel.descale(
workclip,
**(sc_args_direction.kwargs() | dict(border_handling=self.border_handling, ignore_mask=ignore_mask) | direction),
**self._kernel_kwargs(
sc_args_direction.kwargs() | dict(border_handling=self.border_handling, ignore_mask=ignore_mask) | direction
),
)

self.descaled = clip
Expand All @@ -79,7 +88,8 @@ def _descale_step(workclip: vs.VideoNode, order: str) -> vs.VideoNode:
self.descaled = self.kernel.descale(clip, **args)

self.rescaled = self.kernel.rescale(
self.descaled, **(self.rescale_args | dict(width=clip.width, height=clip.height, border_handling=self.border_handling))
self.descaled,
**self._kernel_kwargs(self.rescale_args | dict(width=clip.width, height=clip.height, border_handling=self.border_handling)),
)

def _raw_non_fieldbased_descale(
Expand Down