Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
3rd March 2024, 14:33 | #1682 | Link |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
|
Yep, TDecimate() is now populating frame properties correctly.
Another tiny step forward. At this point it's been a while since frame properties were introduced alongside the old clip properties but we're still finding those things and filters/functions not handling them correctly. I feel like the migration to frame properties in Avisynth will probably end up the same as the migration from 16bit stacked / interleaved to 16bit planar (i.e slowly lots of functions/plugins will use them, but there will forever be exceptions that will have to be handled manually with propSet()... ) |
4th March 2024, 11:34 | #1683 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,309
|
TIVTC 1.0.29 released with flossy83's additions.
Code:
(20240302) - TDecimate: allow noblend=true when hybrid=1, noblend default value is false when hybrid=1 to keep backward compatibility. (flossy83) - TDecimate to fill new frame properties. (flossy83) TDecimateCycleMetrics, TDecimateCycleMetricsPrev, TDecimateCycleMetricsNext (float arrays), TDecimateCycleFrameNums, TDecimateCycleFrameNumsPrev, TDecimateCycleFrameNumsNext (int arrays), TDecimateCycleBlendStatus See #48: https://github.com/pinterf/TIVTC/issues/48 - Fix #46: TDecimate(hybrid=3) blending with wrong frame. (flossy83) https://github.com/pinterf/TIVTC/issues/46 Code:
Frame properties set by TDecimate (since TDecimate v1.0.11, pack v1.0.29): TDecimateCycleMetrics (float array): normalised metrics for all frames in current cycle TDecimateCycleMetricsPrev and TDecimateCycleMetricsNext: same as TDecimateCycleMetrics but for previous/next cycle TDecimateCycleFrameNums (int array): frame numbers corresponding to TDecimateCycleMetrics TDecimateCycleFrameNumsPrev and TDecimateCycleFrameNumsNext: same as TDecimateCycleFrameNums but for previous/next cycle TDecimateCycleBlendStatus (integer): indicates if frames in the current cycle are blended: -20=undefined, 0=not blended, 1=blended, 2=not blended due to scenechange, 3=not blended due to 2 dup cycle workaround Example usage: ScriptClip("PrintProps(last, current_frame)", after_frame=true, local=false) function PrintProps(clip c, int current_frame){ metrics = propGetAsArray(c, "TDecimateCycleMetrics") fnums = propGetAsArray(c, "TDecimateCycleFrameNums") blendStatus = propGetAny(c, "TDecimateCycleBlendStatus") s = "" for (i=0, ArraySize(metrics)-1) { s = s + "Frame " + String(fnums[i]) + ": " + String(metrics[i], "%0.2f") + "\n" } s = s + "Blend status: " + String(blendStatus) + "\n" c.Text(s, lsp=0, align=7, size=20, bold=true) } Code:
noblend - With hybrid = 0 or 1 there is a special case when tdecimate will use blend decimation, and that is when it detects two duplicates in a cycle, cycleR=1, and neither duplicate is next to a scenechange. In such cases tdecimate will drop one of the duplicates and replace the other with a blend of its neighbors. The "noblend" parameter is used to disable this behaviour. From TDecimate v1.0.11 (pack *v1.0.29) noblend has effect for hybrid = 1, for backward compatibility its default value is different for hybrid = 0 and 1. true - no blending in the two duplicate case when hybrid = 0 or 1 false - use blending in the two duplicate case Default: true (bool) when hybrid = 0, false (bool) when hybrid = 1 Last edited by pinterf; 4th March 2024 at 11:38. |
Tags |
tdeint, tivtc |
Thread Tools | Search this Thread |
Display Modes | |
|
|