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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 14th January 2013, 09:26   #1  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,168
AviSynth 2.6.0 Alpha4 [Jan 14th, 2013]

Here is the 4th official release of Avisynth 2.6

Get AviSynth_130114.exe (4.9MiB) from SourceForge.

========================
Changelist

Additions
* Info: Audio only clip now creates its own canvas video.
* AviSource: Include packed/padded processing and -ve biHeight logic for compressed input.
* Add Script Functions :- Tau, BitLRotate, BitRRotate, BitChange, BitClear, BitSet, BitTest and their asm aliases.
* Add WeaveRows (blit cost) and WeaveColumns (slow) frame combining filters.
* Add AudioDuration() [as float seconds], IsY8(), IsYV411() & PixelType() [as a string] script functions.
* Add Echo and Preroll filters.
* Add IScriptEnvironment::GetAVSLinkage() and DLLExport AVS_linkage for host usage of avisynth.dll.
* DirectShowSource, 2.6 plugin, support pixel types "AYUV" as YV24, "Y41P" and "Y411" as YV411.
* AviSource: Add Full and Auto pseudo pixel_types. Full is all supported. Auto is YV12, YUY2, RGB32, RGB24 & Y8.
* Add "AudioLengthS" [as a string], "Ord" & "FillStr" script functions.
* Add AudioTrim(clip, float, float) audio priority trimming, args in fractional seconds.
* Add Trim(M, Length=N[, Pad=False]) and Trim(M, End=N[, Pad=False]) function overloads for explicit Trimming. Length=0 means zero frame clip. End=0 means end at frame 0.
* Add SeparateRows (zero cost) and SeparateColumns (slow) frame slashing filters.
* Add Script Functions :- Acos, Asin, Atan, Atan2, Cosh, Sinh, Tanh, Fmod, Log10, BitLShift, BitRShiftS, BitRShiftU and Hex.
* Add "ConditionalSelect","csc+[show]b" runtime filter.
* Add dither option to Levels, RGBAdjust & Tweak.
* Add BitAnd(), BitNot(), BitOr() & BitXor() script functions.
* Add StrCmp() & StrCmpI() script functions.
* Add YV24 support for Limiter show option.
* Add "Global OPT_dwChannelMask={int}"
* Add 0x0063F speaker mask for 7.1 WAVE_FORMAT_EXTENSIBLE.
* Add .dll DelayLoad exception texts to crash message formatter.
* ImageWriter, add support for printf formating of filename string, default is ("%06d.%s", n, ext);
* Add avs_get_error(AVS_ScriptEnvironment*); to avisynth_c interface.
* Catch and save AvisynthError text in more avisynth_c entry points, for kemuri-_9.
* Add ScriptName(), ScriptFile(), ScriptDir() functions (WarpEnterprises).
* Add SkewRows filter.
* Histogram, Levels mode, Improve colour of chroma legends.
* ConditionalFilter, teach about string results.
* Add some more "Add/Remove Software" registry keys to the Installer (XhmikosR).
* AviSource: Support both packed and DWORD padded raw planar input like with DSS.
* Add IScriptEnvironment::ApplyMessage()
* Add ImageSourceAnim (Wilbert)
* Support user upgrade to 178 DevIL.dll (They need to manage CRT dependancies).
* ImageSource: palette and compressed bmp images load correctly now (issue 894702) [need 178 DevIL.dll]
* ImageSource: support for other formats like: gif, exr, jp2, psd, hdr [need 178 DevIL.dll]
* Add YV24 mode to ColorBars.
* Add ColorBarsHD based on arib_std_b28.
* C-api usability enhancements from kemuri9 [Work in progress!]
* Add Undefined(), AudioLengthLo(), AudioLengthHi(), IsYV16() & IsYV24() script functions
* Allow newlines (and hence comments) before '{' -- Gavino
* Added IScriptEnvironment::DeleteScriptEnvironment()
* Added Histogram, population clamp % factor for "Levels" mode,
* Histogram, revert "Stereo" mode to YV12, Add "StereoY8" mode,
* AviSource: Support fourcc "GREY" as Y8
* Added support for argument passing and EAX return value to SoftwireHelper.
* Added "Global OPT_VDubPlanarHack=True" to flip YV24 and YV16 chroma planes for old VDub's.
* Added "Global OPT_AVIPadScanlines=True" option for DWORD aligned planar padding
* Added Matrix="AVERAGE" mode.
* Added ContinuedDenominator/ContinuedNumerator(f[]i[limit]i) script functions.
* Tweak: fix MaskPointResizing + put back Dividee ISSE code (use sse=true).
* Added ChromaInPlacement, ChromaOutPlacement and ChromaResample options to planar colour conversions.
* Added MaskHS.
* Source tweaks to get ready for VC8.
* Add Y8 for DevIL, planarize EBMP.
* Planar support for many filters.
* Added Info() time indicator on audio length and video (current frame & total). (2.5.8)
* Added UtoY8 and VtoY8.
* Added more info to Info(). (2.5.8)
* ColorYUV: Added all adjustment parameters as conditional variables "coloryuv_SETTING". Enable by setting conditional=true.
* ConditionalReader: Added support for type String.
* ConditionalReader: Added offset keyword to offset all frame numbers after the keyword.
* Added SincResize() with optional taps parameter (default is 4).
* Added Custom band setting to SuperEQ to allow all 16 bands to be set from script. Usage: SuperEQ(clip,band1, band2, band3....) values are dB in float.
* Added fast 0-1-0 kernel for YV24 to ConvertBacktoYUY2().
* Added core formats: YV24, YV16, Y8, YV411.


Bugfixes
* Fixed HexValue parsing values greater than 7FFFFFFF, now as unsigned hex.
* Fixed ConditionalReader memory overrun parsing bools.
* Fixed ResampleAudio NOP test to compare vi.num_audio_samples, not sample rate.
* Fixed YV24 -> RGB24 overrun cleanup for widths%16 == 5.
* Fixed RGB24 AddBorders with right=0.
* Fixed conditional_functions error message names (Wilbert).
* Fixed Audio cache ac_expected_next regression.
* Fixed ImageSource deal with add 1 to IL_NUM_IMAGES bug (Wilbert)
* Fixed Overlay YV24 V plane conversion.
* Fixed Overlay YV24 mode with shared input clip, needed a MakeWritable.
* Fixed ImageReader upside down TIFF in 178 DevIL. (Wilbert)
* Fixed string+string bug when total length is 4096*K-1.
* Fixed SincResize misuse of "int abs(int)" (Gavino). Fix Lanczos and Blackman sinc use of float == 0.0, use small limit "> 0.000001".
* Fixed Classic mode legend drawing for planar right limit and yuy2 centre line.
* Fixed possible MT race. Use "env->ManageCache(MC_IncVFBRefcount, ...)" in ProtectVFB.
* Fixed SwapYToUV output image size bug for 3 clip case.
* Fixed Crop limit tests for RGB.
* Fixed Overlay yellow tint on rec601 RGB import conversion.
* Fixed YtoUV() output image size bug for 3 clip case.
* Fixed ConvertToPlanar chroma alignment.
* Fixed Levels (RGB) change use of PixelClip(x) to min(max(x, 0), 255).
* Fixed SwapYtoUV yuy2 crash (StainlessS).
* Fixed Overlay saturate UV in add and subtract mode.
* Fixed Info.h range protect display characters (StainlessS).
* Fixed AviSource packed planar import chroma offsets.
* Fixed AviSource NULL GetWritePtr() failure due to premature setting of last_frame.
* Fixed Mask rounding in greyscale calcs (Wilbert), minor refactor.
* Fixed SelectRangeEvery audio snafu (Gavino).
* Fixed LoadPlugin, SaveString of result string.
* Fixed LoadPlugin, use _vsnprintf.
* Fixed LoadVirtualdubPlugin, don't add vdub filter to chain on load failure.
* Fixed rounding in RGB HResize (JoshyD) (affects all resizers)
* Fixed error message name in the filter VerticalReduceBy2
* Fixed SeparateFields() with variable parity input clip (Wilbert)
* Fixed AviSource, cannot cast__int64* to long*, it does not work!
* Fixed ConditionalReader: Don't allow out of range "Range" to overwrite edge values
* Fixed MonoToStereo with stereo sources.
* Fixed MergeChannels with only 1 input clip.
* Fixed AviSource support for negative height DIB format AVI's.
* Fixed Audio cache crashes.
* Fixed resize with YV411, missing code.
* Fixed ConditionalReader rounding with integer interpolation.
* Fixed Softwire SSE2 bugs.
* Fixed SSSE3 CPU detection.
* Fixed SSSE3, SSE4.1 & SSE4.2 detection.
* Fixed Fastwire encoding of instructions that are >2 opcodes (SSSE3+4).
* Fixed _RPT5() macro for debug builds


Optimizations
* ConvertToPlanarGeneric explicit add Cache before chroma rescaler.
* Overlay minor refactor YV12 -> 444 chroma
* Speedup ConvertToMono(), minor refactor MixAudio().
* Change StackVertical/Horizontal to interative instead of recursive, 2^N performace increase for 3 and more clips, i.e. 1 blit total instead of blit(blit(blit(...
* RGBtoY8 Dynamic ASM code, support for RGB24.
* YV24backtoYUY2 Dynamic ASM code.
* UtoY8, VtoY8 abuse subframe, zero cost.
* YV24<->RGB Add SSE2 and SSSE3 code paths, get rid of wide_enough.
* ConvertToYUY2 Add SSE2, MMX restore full speed on platforms with poor ooox.
* ConvertAudio, manage tempbuffer and floatbuffer independantly.
* ConvertAudio, prefer SSE2 over 3DNow for super AMD cores.
* Info.h, full refactor, a good example of "Never look down", thx StainlessS
* DoubleWeaveFrames, If A not writable, try to write to B, else make new frame
* Histogram, fix GetFrame/NewVideoFrame call order
* HResizer, interleave code +4% faster
* YtoUV() Abuse Subframe to snatch the Y plane / UV planes, Derestrict destination colorformat autogeneration.
* ImageSource: Improve thread interlock code
* ConditionalReader/WriteFile: Full refactor.
* Replace _strdup with SaveString in AddFunction (Thanks Gavino)
* SuperEQ: Improve channel unpacking/packing code.
* H-Resize: Use SSE4.1 (movntdqa) loads for use once memory access.
* H-Resize: Added SSE2 horizontal unpacker.
* Resize: Use SSE3 (lddqu) loads for unaligned memory access.
* Added ultra fast vertical PointResizer (64 pixel/cycle).
* Added dynamic SSSE3 vertical resizer (16 pixel/cycle) ~ twice as fast as old MMX.
* Added dynamic SSE2 vertical resizer (16 pixel/cycle).
* Added dynamic MMX vertical resizer (8 pixel/cycle).
* Added SSSE3 version for RGB<->YV24 conversions.
* Added dynamic compiled MMX/iSSE for RGB<->YV24 conversions. Speed is approx 200% of C-code.


Changes
* BlankClip: Supply useful defaults for new Audio/Video when using a Video/Audio only template clip.
* BlankClip: Use duration from Audio only template as default length for new clip.
* Define new IClip::SetCacheHints cachehint constants.
* Force int call arguments to user script function float params to be explicit floats.
* Splice pass CacheHints through to both children in + and ++ mode.
* WriteFileStart/End save current_frame and set Last.
* ConditionalReader do not ignore syntax errors in input file.
* ImageSourceAnim Pad/Crop images to match first frame (Wilbert)
* ImageSource Add version to messages (Wilbert)
* Initial 2.6 API entry point linkage.
* Use Invoke for graph tail, enhance non-clip output error reporting.
* PopContext when inner block Asserts/throws (maxxon).
* Remove duplicate definitions (Wilbert).
* Enhance non-clip output error reporting.
* Explicitly specify calling sequence as __cdecl for Avisynth softwire routines, (was the compiler default)
* Use env->Invoke("Cache", ...) everywhere instead of Cache::Create_Cache(), allows for Cache to be overloaded by a plugin.
* ConvertToYUY2 Change from 0-1-1 kernel to 1-2-1 kernel.
* Tweak make Interp same units as minSat and maxSat.
* Check HKEY_CURRENT_USER for PluginDir first. (henktiggelaar)
* Make forced, -ve, planar alignment of chroma planes match subsampling.
* Enforce planar alignment restrictions.
* C-api: Remove func sub-struct from AVS_Library struct
* Add error code to plugin load failure message
* Make default planar AVI output packed. Control with OPT_AVIPadScanlines=True.
* WriteFile() now supports unlimited number of unlimited strings. (was 16 by 254 byte strings).
* ConvertToRGB*, make C++ code sample chroma the same as the MMX code i.e. use both pixels.
* ConvertToRGB*, use YV24 path for planar, complain when options are present for YUY2.
* ConvertToYUY2, use YV16 path for planar, complain when options are present for RGB see: http://forum.doom9.org/showthread.ph...81#post1378381
* Thread safe code, part 2.
* Correct IClip baked documentation
* Passify compilation error/warnings (XhmikosR)
* for, const, extern and ansi patches for VC2008 (SEt)
* Disable OPT_RELS_LOGGING option
* Change implicit Last parsing for argless, bracketless calls to match bracketed cases. (Gavino)
* DirectShowSource: Support last minute format renegotiation thru IPin::QueryAccept() & Validate the size of the provided directshow buffer.
* Remove non ascii chars from comments.
* Add core stubs for DirectShowSource, TCPServer & TCPSource, report when plugins are missing.
* Add note for original source downloads - SoundTouch
* Add more lineage history to Info()
* Move convertaudio, alignplanar, fillborder & MIN/MAX_INT definitions.
* Run AtExit before dismantling world.
* Change setcachehints definition from void to int. Test IClip version >= 5.
* Move PixelClip definition to avisynth.cpp
* SubTitle, etc, make X & Y options float (0.125 pixel granularity).
* ShowSMPTE() supports all integer FPS and multiplies of drop frame FPS.
* SubTitle, stop overwriting string constants (Gavino).
* SubTitle, improve pixel registration (Gavino).
* Make Info() CPU display hierarchical.
* Thread safe code, part 1.
* SoftwireHelper: explicit hardware exception handling.
* Resize: Moved GetResampleFunction into Resamplefuntion, to allow overrides.
* Resampler: Removed dead stlf code.
* Updated Soundtouch to 1.31 (2.5.8)
* Put dynamic matrix conversion into separate file.
* Moved chroma subsampling to image_type section.
* Added specific error reporting when requesting chromasubsampling with Y8.
* Split up merge and plane Swappers.
* Split up Plane transfers into separate classes.
* Added automatic destination colorspace detection on planar YtoUV.
* Took out greyscale and RGB32<->RGB24 from convert.cpp and placed them in separate files.
* All code assuming UVwidth = Ywidth/2 and similar should be gone.
IanB is offline   Reply With Quote
Old 14th January 2013, 10:03   #2  |  Link
Chikuzen
typo lover
 
Chikuzen's Avatar
 
Join Date: May 2009
Posts: 597
What is lacking in order for alpha to grow up to be beta?
__________________
my repositories
Chikuzen is offline   Reply With Quote
Old 14th January 2013, 17:57   #3  |  Link
ARDA
Registered User
 
Join Date: Nov 2001
Posts: 291
Dear IanB;
Many years without posting, but I've been following all
avisynth news, and congratulations for the great progress you have done.

I was still using v 2.58 and today I installed this new alpha
Everything was working ok, till I accidentally introduced in my script(copy&paste)
a ConvertToYV16(),using an 2.58 plugin to my suprise it was not stopped by
(except Y8 that was stopped,checked afterwards)

if (!vi.IsYV12())
env->ThrowError("only planar (YV12) input");
1) Is it suppossed to be that way ?

When working in place, with src writable, and returning source, it worked
correctly with YV16 and YV24(just checked those two).
2) Is that expected to be that way as well ?

When creating a new frame with
PVideoFrame dst = env->NewVideoFrame(vi,32);
env->MakeWritable(&dst);
and return dst, if I am not wrong , heights and rows obtained
with for instance int height = src->GetHeight(PLANAR_Y);
or int dstheight = dst->GetHeight(PLANAR_Y);
are half the value they should be.
3) Is that correct ?, or I am missing something ?

4) every plugin should be compiled again with new api ?

5) if so, is there anywhere a simple sample, as it used to be
with invert to see how to use new api ?

My apologies if this has been answered before, but I couldn't find.

Thanks for all the effort done during all these years.
Arda
ARDA is offline   Reply With Quote
Old 14th January 2013, 21:05   #4  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 6,056
Mr B, much appreciated.

Quote:
Originally Posted by ARDA View Post
5) if so, is there anywhere a simple sample, as it used to be
with invert to see how to use new api ?
this is the nearest that I'm aware of:
http://forum.doom9.org/showthread.ph...72#post1580772
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 14th January 2013, 23:17   #5  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,168
Quote:
Originally Posted by ARDA View Post
I was still using v 2.58 and today I installed this new alpha
Everything was working ok, till I accidentally introduced in my script(copy&paste)
a ConvertToYV16(),using an 2.58 plugin to my surprise it was not stopped by
(except Y8 that was stopped,checked afterwards)

if (!vi.IsYV12())
env->ThrowError("only planar (YV12) input");
1) Is it supposed to be that way ?
Yes, all the planar formats are designed to look like YV12 to the 2.5 baked code. If we look at the 2.5 baked code, it masks most of the pixel type bits and compares what is left :-
Code:
bool IsYV12() const { return ((pixel_type & CS_YV12) == CS_YV12)||((pixel_type & CS_I420) == CS_I420); }
As Y8 is not a 3 plane format it does not have a CS_VPlaneFirst or CS_UPlaneFirst bit so the match fails.

There was much discussion originally about new planar formats and letting the 2.5 plugins YV12 code run. It was agreed that it was more useful to allow it. So as usual the user is in charge and must be aware.
Quote:
When working in place, with src writeable, and returning source, it worked
correctly with YV16 and YV24(just checked those two).
2) Is that expected to be that way as well ?
Yes, the beginning of the VideoFrame structure is still the same, so the 2.5 baked code correctly loads the offsetU and offsetV members. However the 2.5 code does not know about the new row_sizeUV or heightUV members so will assume the chroma planes are the shape for YV12, so only half a YV16 or quarter of a YV24 may be processed. For code that only processes the luma plane there is no problem. So as usual the user is in charge.
Code:
class VideoFrame {
   volatile long refcount;
   VideoFrameBuffer* const vfb;
   const int offset, pitch, row_size, height, offsetU, offsetV, pitchUV
   const int row_sizeUV, heightUV;
...
Quote:
When creating a new frame with
PVideoFrame dst = env->NewVideoFrame(vi,32);
env->MakeWritable(&dst);
and return dst, if I am not wrong , heights and rows obtained
with for instance int height = src->GetHeight(PLANAR_Y);
or int dstheight = dst->GetHeight(PLANAR_Y);
are half the value they should be.
3) Is that correct ?, or I am missing something ?
No, the 2.5 baked code for PLANAR_Y the VideoFrame height member is correctly returned. For PLANAR_U and PLANAR_V height/2 is returned, which will be correct for YV12 but wrong otherwise.
Code:
int GetHeight(int plane) const {
  switch (plane) {
  case PLANAR_U:
  case PLANAR_V:
    if (pitchUV)
      return height>>1; 
    return 0;}
  return height;
}
As the code for env->NewVideoFrame(vi,32); was always within Avisynth.dll the structure returned to the 2.5 plugin is correct for the rest of the 2.6 world.
Quote:
4) every plugin should be compiled again with new api ?
If they are complete with the 2.5 feature set then no. If they need something from the 2.6 feature set then yes. A correctly written planar format plugin that correctly uses GetPitch(plane), GetRowSize(plane), GetHeight(plane), etc should work correctly with all planar formats when recompiled, otherwise it may only work with YV12. Of course luma only code will work in both cases.
Quote:
5) if so, is there anywhere a simple sample, as it used to be
with invert to see how to use new api ?
The thread StainlessS pointed to is the active discussion on the subject, but yes if someone would update the API doco and examples it would be appreciated by all.
IanB is offline   Reply With Quote
Old 15th January 2013, 00:20   #6  |  Link
ARDA
Registered User
 
Join Date: Nov 2001
Posts: 291
Thanks once more IanB;

Quote:
No, the 2.5 baked code for PLANAR_Y the VideoFrame height member is correctly returned.
For PLANAR_U and PLANAR_V height/2 is returned, which will be correct for YV12 but wrong otherwise.

... otherwise it may only work with YV12. Of course luma only code will work in both cases.
I think I have understood; so those plugins that work in YV12 space and create a new frame
only will be able to work in new planar formats(except for lumas) if they are recompiled with new api.
As for example the one I was using Removegrain(mode=1) or Undot(); those that work in place
will continue working correctly recompiled or not.

I will follow the thread StainlessS (thanks) pointed and see what I can do.

Thanks for taking the time to answer. Arda
ARDA is offline   Reply With Quote
Old 15th January 2013, 00:26   #7  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,856
Quote:
DirectShowSource, 2.6 plugin, support pixel types "AYUV" as YV24
This behavior seems very broken. When a decoder outputs AYUV mediatype (packed 4:4:4 YUV + alpha) to DirectShowSource, Avisynth outputs pink video to madVR with a "YV24" (planar 4:4:4 YUV) mediatype. Why isn't the "YV24" pixel type being used here for DirectShowSource input, if Avisynth doesn't support the AYUV format internally?
cyberbeing is offline   Reply With Quote
Old 15th January 2013, 01:57   #8  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,168
@cyberbeing,

As far as I know Direct Show MEDIASUBTYPE_YV24 does not exist except for lavfilters LAVPixFmtConverter.cpp.

Direct Show MEDIASUBTYPE_AYUV seems to be the only compatible 8 bit YUV 4:4:4 format commonly available. Avisynth's DirectShowSource unpacks the data into the Avisynth internal YV24 planar format, discarding the alpha channel, using this code written by Sh0dan many years ago:-
Code:
for(int x=0; x<rowsize; x++) {
	dstY[x] = srcP[(x*4)+1];
	dstU[x] = srcP[(x*4)+2];
	dstV[x] = srcP[(x*4)+3];
}
I don't have any AYUV samples, so I have never tested this code path.

Pink YUV output usually means the U and/or V data values are 255. (similarly green is for U,V=0).

Conflicting information about byte order :-
1. http://www.fourcc.org/yuv.php
AYUV

This is a 4:4:4 YUV format with 8 bit samples for each component along with an 8 bit alpha blend value per pixel. Component ordering is A Y U V (as the name suggests).

2. http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
4:4:4 Formats, 32 Bits per Pixel
AYUV

A single 4:4:4 format is recommended, with the FOURCC code AYUV. This is a packed format, where each pixel is encoded as four consecutive bytes, arranged in the sequence shown in the following illustration.

Figure 2. AYUV memory layout

The bytes marked A contain values for alpha.


Looks like number 2 might be the answer.

Try this script to see if you get some half arse picture back :-
Code:
DirectShowSource(...blah..., pixel_type="AYUV")
A=VtoY8()
Y=UtoY8()
U=ConvertToY8()
UVtoY(U, U, Y) # Use U as dummy V which is lost
IanB is offline   Reply With Quote
Old 15th January 2013, 04:23   #9  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,856
Quote:
As far as I know Direct Show MEDIASUBTYPE_YV24 does not exist except for lavfilters LAVPixFmtConverter.cpp.
Considering LAV Video can output YV24, and madVR can accept YV24 (including Avisynth output), does it ultimately matter that it's not a Microsoft approved MEDIASUBTYPE?
I still believe that DirectShowSource accepting and preferring YV24 over AYUV would be a good idea, even if initial support is limited.

Quote:
Try this script to see if you get some half arse picture back
UVtoY doesn't exist as a function. Did you mean YtoUV?

Using YtoUV(U, U, Y) with your sample script produces a green & purple image.

Last edited by cyberbeing; 15th January 2013 at 04:25.
cyberbeing is offline   Reply With Quote
Old 15th January 2013, 08:01   #10  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,168
Yes YtoUV() is it, dyslexia to the rescue.

And green/purple is the 45/225 degrees hues one would expect for the U=V case. I will check in a fix for the AYUV unpacker byte order.


It seems lavfilter are declaring their own guid's and these appear to be the values they are using :-
Code:
const GUID MEDIASUBTYPE_YV24 = {'42VY', 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71};
const GUID MEDIASUBTYPE_YV16 = {'61VY', 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71};
I'll add them to the DirectShowSource wish list when someone confirms I have the correct guid's.
IanB is offline   Reply With Quote
Old 15th January 2013, 10:30   #11  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,416
Thank you, IanB!
Blue_MiSfit is offline   Reply With Quote
Old 17th January 2013, 19:25   #12  |  Link
Mystery Keeper
Beyond Kawaii
 
Mystery Keeper's Avatar
 
Join Date: Feb 2008
Location: Russia
Posts: 687
I'm getting "there is no function named..." error for all 2.58 plugins I've got. Examples work fine.

SOLVED: Had to modify registry key at HKEY_CURRENT_USER\Software\AviSynth.
__________________
...desu!

Last edited by Mystery Keeper; 17th January 2013 at 19:29.
Mystery Keeper is offline   Reply With Quote
Old 18th January 2013, 08:08   #13  |  Link
vcmohan
Registered User
 
Join Date: Jul 2003
Location: India
Posts: 730
Quote:
Originally Posted by Chikuzen View Post
What is lacking in order for alpha to grow up to be beta?
Chikuzen's question was unanswered. If I download the alpha exe file and run it will it overwrite on the existing avisynth dll? If so what all files I need to save prior to experimenting with 2.6 alpha4 ?
__________________
mohan
my plugins are now hosted here

Last edited by vcmohan; 18th January 2013 at 10:47.
vcmohan is offline   Reply With Quote
Old 18th January 2013, 10:14   #14  |  Link
THEAST
Registered User
 
Join Date: Apr 2009
Posts: 75
Wow, just wow! When I saw this new version on VideoHelp, I couldn't believe my eyes, it has been so long! Really thanks for resuming to update Avisynth, IanB! :worship:
THEAST is offline   Reply With Quote
Old 18th January 2013, 13:25   #15  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,168
Quote:
Originally Posted by Chikuzen View Post
What is lacking in order for alpha to grow up to be beta?
Time and testing.

Quote:
Originally Posted by vcmohan View Post
If I download the alpha exe file and run it will it overwrite on the existing avisynth dll? If so what all files I need to save prior to experimenting with 2.6 alpha4 ?
The standard Avisynth*.exe installers are designed to install their current Avisynth.dll and associated files over the top of any existing standard Avisynth version. To flip back just reinstall the previous version.

For the inveterate fiddlers I guess you need to save Avisynth.dll and DirectShowSource.dll (it is now a full bird 2.6 plugin), possible the docs as well.
IanB is offline   Reply With Quote
Old 18th January 2013, 13:44   #16  |  Link
vcmohan
Registered User
 
Join Date: Jul 2003
Location: India
Posts: 730
Thanks. When I try compiling using the new avisynth.h I get errors wherever it has lines as #include &lt;windef.h&gt; and for all such calls
D:\---avisynth_2_6.h(54) : error C2006: #include expected a filename, found '&'
I am on windows XP 32 bit using MS VC 6
__________________
mohan
my plugins are now hosted here
vcmohan is offline   Reply With Quote
Old 18th January 2013, 13:55   #17  |  Link
Groucho2004
 
Groucho2004's Avatar
 
Join Date: Mar 2006
Posts: 3,921
Quote:
Originally Posted by vcmohan View Post
Thanks. When I try compiling using the new avisynth.h I get errors wherever it has lines as #include &lt;windef.h&gt; and for all such calls
D:\---avisynth_2_6.h(54) : error C2006: #include expected a filename, found '&'
I am on windows XP 32 bit using MS VC 6
The HTML Troll invaded your file and substituted HTML entities when you weren't looking.

You were probably browsing the SVN/CVS tree and screwed up when saving the file or something to that effect.
Groucho2004 is offline   Reply With Quote
Old 19th January 2013, 04:25   #18  |  Link
vcmohan
Registered User
 
Join Date: Jul 2003
Location: India
Posts: 730
Thanks. Silly of me
__________________
mohan
my plugins are now hosted here
vcmohan is offline   Reply With Quote
Old 19th January 2013, 11:55   #19  |  Link
vcmohan
Registered User
 
Join Date: Jul 2003
Location: India
Posts: 730
I am still getting compilation errors
In the avisynth.h for 2.6 which I googled for and got an official version and it does not have VSLinkage
in "IScriptEnvironment::GetAVSLinkage() and DLLExport AVS_linkage for host usage of avisynth.dll." which was mentioned at the begining of the thread. Where do I get the latest vfersion of Avisynth.h ?
__________________
mohan
my plugins are now hosted here
vcmohan is offline   Reply With Quote
Old 19th January 2013, 12:54   #20  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 6,056
vcmohan
http://forum.doom9.org/showthread.ph...69#post1385169

EDIT: perhaps try this:
http://www.tortoisecvs.org/

using:
Code:
cvs -d :pserver:anonymous@avisynth2.cvs.sourceforge.net:/cvsroot/avisynth2 checkout -P avisynth
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 19th January 2013 at 13:33.
StainlessS is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 18:05.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.