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. |
![]() |
#3842 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
Don't assume anything, it'll break future compatibility.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
![]() |
![]() |
#3843 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,496
|
But it will be consistent for a particular clip? So if I call NewVideoFrame(vi), get the pitch, and immediately discard the frame, is it safe to assume the pitch will be the same for all future frames created?
I'm trying to be extremely efficient with something. |
![]() |
![]() |
#3844 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
I checked the Avisynth source and the stride will always be the same there too. For NewVideoFrame, not for frames returned from GetFrame obviously.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
![]() |
![]() |
#3848 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
There was no change, what happens when you call Eval with the clip as the first parameter? (not tried, I hope syntax is OK)
Code:
AVSValue eval_args[] = { clip, env->SaveString("Subtitle(\"Hello world!\")") }; AVSValue val = env->Invoke("Eval", AVSValue(eval_args, 2)); |
![]() |
![]() |
#3849 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
This other form is for OOP notation, that is clip.Eval("...."). Saves current "last", sets "last" to clip, calls Eval then restores previous "last". https://github.com/pinterf/AviSynthP...cript.cpp#L191 https://github.com/pinterf/AviSynthP...cript.cpp#L416 But I agree, this is scoping problem, similar to the earlier (still not solved) issue with conditional/runtime functions setting "current_frame" and "last" in a multithreading environment. |
|
![]() |
![]() |
#3850 | Link | |
Avisynth language lover
Join Date: Dec 2007
Location: Spain
Posts: 3,431
|
Quote:
|
|
![]() |
![]() |
#3851 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Thanks to raffriff42, who provided me a nice skeleton page, Expr got an info page.
It's still ugly, I'll format it properly when I'm fiddling out how to do that. Now I only poured some infos there. Enjoy (or not ![]() |
![]() |
![]() |
#3852 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,496
|
With a YUVA clip, IsY() and IsYUV() seem to return false. Is that intended behaviour? I've been relying on https://forum.doom9.org/showthread.php?p=1783714 as a reference on colour spaces, but it's not clear on this point.
--- Also that page makes reference to ComponentCount but the latest avisynth.h only seems to have NumComponents...? Is the latter the eventual form of the former, I guess? If anybody ever thinks of it, HasY(), HasU(), HasG(), HasA() etc would be awesome... Last edited by wonkey_monkey; 12th January 2018 at 00:23. |
![]() |
![]() |
#3853 | Link |
Retried Guesser
Join Date: Jun 2012
Posts: 1,373
|
YUV444P8 is YUV but not YUVA or Y-only
YUVA444P8 is YUVA but not YUV or Y-only Y8 is Y and YUV but not YUVA I tried to create a hierarchy (tree view) on the Avisynthplus_color_formats page. See also the Clip_properties page. HasA() exists and it's called HasAlpha. HasU() does not exist, but you can call try { ExtractU } catch { ...} Last edited by raffriff42; 12th January 2018 at 00:48. |
![]() |
![]() |
#3855 | Link |
Retried Guesser
Join Date: Jun 2012
Posts: 1,373
|
All the tests hold true regardless of bit depth.
If you want more confusion, consider that the new RGB(A) formats are planar; you can't call ConvertBits(x) on an RGB32 clip, you must call ConvertToPlanarRGBA first. I have posted a utilities script, called Utils-r41.avsi, that (among other things) hides this complexity behind To16bit and ToHibit(bits) |
![]() |
![]() |
#3856 | Link | ||
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,420
|
Quote:
There's a typo on YUVA444P claiming classic AviSynth has it. The YUV422P10 entry is showing v210's data. IMO, v210 being interleaved and VfW-only should only be mentioned in the footnotes at the bottom, not in the table itself. The notes column could read like: Code:
aka P210 (special-case: V210 output available via override§) Quote:
|
||
![]() |
![]() |
#3859 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
https://github.com/pinterf/AviSynthP...ript.cpp#L1400 |
|
![]() |
![]() |
#3860 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
https://developercommunity.visualstu...tream-loa.html |
|
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|