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.

Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se

 

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

Closed Thread
 
Thread Tools Search this Thread Display Modes
Old 22nd April 2017, 20:00   #3281  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,560
I looked at the code of ConditionalFilter and now I understand what the fuss is about in regards to ScriptClip and MT -- with current_frame not being found.

I don't like the design of it, but then, it supports complex scripting that can't be done otherwise.

I'm working on ConditionalFilterMT, which will be a limited subset of ConditionalFilter code that won't support complex expressions but that will work with MT. It's a hack, so not a solution for the core.

Btw, does VapourSynth support ScriptClip-like evaluation of expressions at run-time? How is it designed there?
MysteryX is offline  
Old 23rd April 2017, 01:40   #3282  |  Link
TheFluff
Excessively jovial fellow
 
Join Date: Jun 2004
Location: rude
Posts: 1,100
Quote:
Originally Posted by MysteryX View Post
Btw, does VapourSynth support ScriptClip-like evaluation of expressions at run-time? How is it designed there?
Yes it does. Since you can attach metadata to frames in VS you don't need the silly "runtime functions" that inspect the state of a shared variable to figure out which frame to use.

Really, I think the fundamental issue with a lot of things tacked onto Avisynth over the years is that the people who added them didn't understand functional programming.
TheFluff is offline  
Old 23rd April 2017, 03:14   #3283  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,560
Storing the frame number in a shared variable isn't viable in a MT environment no matter how we look at it.

Since that's what VS is doing... any way to support frame metadata without breaking old code?

Wait -- frame metadata won't help if we don't know the frame number!

Last edited by MysteryX; 23rd April 2017 at 06:15.
MysteryX is offline  
Old 23rd April 2017, 17:50   #3284  |  Link
gonca
Registered User
 
Join Date: Jul 2012
Posts: 1,253
I've installed AvisynthPlus-r2455-MT x86 and x64
My x64 tool chain works as it should so far
However the x86 has not
I have two apps that require AVISynth and they report Avisynth is not installed
When I put the AVISynth.dll from version 2.60 (regular AVISynth) everything is good
I know, from other forums, that AVS+ x86 will work with these apps
Can someone check my avsinfo log and tell me if I am missing any dependencies

Code:
Log created with:           AVSMeter 2.5.4 (x86)

[OS/Hardware info]
Operating system:           Windows 10 (x64) (Build 14393)
CPU:                        Intel(R) Core(TM) i7-6900K CPU @ 3.20GHz
CPU features:               MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, FMA3


[Avisynth info]
VersionString:              AviSynth 2.60, build:Mar 31 2015 [16:38:54]
VersionNumber:              2.60
File version:               2.6.0.6
Interface Version:          6
Multi-threading support:    No
Avisynth.dll location:      C:\Windows\SysWoW64\avisynth.dll
Avisynth.dll time stamp:    2015-03-31, 06:40:57 (UTC)
PluginDir2_5 (HKLM, x86):   C:\Program Files (x86)\AviSynth\plugins


[CPP 2.5 / 32 Bit plugins]
C:\Program Files (x86)\AviSynth\plugins\Decomb.dll
C:\Program Files (x86)\AviSynth\plugins\Decomb521.dll
C:\Program Files (x86)\AviSynth\plugins\Deen.dll
C:\Program Files (x86)\AviSynth\plugins\hqdn3d.dll
C:\Program Files (x86)\AviSynth\plugins\nicaudio.dll
C:\Program Files (x86)\AviSynth\plugins\RemoveGrainSSE2.dll
C:\Program Files (x86)\AviSynth\plugins\UnDot.dll  [0.0.1.1]


[DLL dependencies (x86)]
C:\Program Files (x86)\AviSynth\plugins\Decomb.dll:
    KERNEL32.dll
    MSVCRT.dll

C:\Program Files (x86)\AviSynth\plugins\Decomb521.dll:
    KERNEL32.dll
    MSVCRT.dll

C:\Program Files (x86)\AviSynth\plugins\Deen.dll:
    KERNEL32.dll
    MSVCRT.dll

C:\Program Files (x86)\AviSynth\plugins\hqdn3d.dll:
    KERNEL32.dll

C:\Program Files (x86)\AviSynth\plugins\nicaudio.dll:
    KERNEL32.dll

C:\Program Files (x86)\AviSynth\plugins\RemoveGrainSSE2.dll:
    KERNEL32.dll

C:\Program Files (x86)\AviSynth\plugins\UnDot.dll:
    KERNEL32.dll



[Internal (core) functions]
    AVIFileSource
    AVISource
    AddBorders
    AlignedSplice
    Amplify
    AmplifydB
    Animate
    Apply
    ApplyRange
    Assert
    AssumeBFF
    AssumeFPS
    AssumeFieldBased
    AssumeFrameBased
    AssumeSampleRate
    AssumeScaledFPS
    AssumeTFF
    AudioDub
    AudioDubEx
    AudioTrim
    AverageChromaU
    AverageChromaV
    AverageLuma
    BicubicResize
    BilinearResize
    BlackmanResize
    Blackness
    BlankClip
    Blur
    Bob
    Cache
    ChangeFPS
    Chr
    ChromaUDifference
    ChromaVDifference
    ColorBars
    ColorBarsHD
    ColorKeyMask
    ColorYUV
    Compare
    ComplementParity
    ConditionalFilter
    ConditionalReader
    ConditionalSelect
    ContinuedDenominator
    ContinuedNumerator
    ConvertAudio
    ConvertAudioTo16bit
    ConvertAudioTo24bit
    ConvertAudioTo32bit
    ConvertAudioTo8bit
    ConvertAudioToFloat
    ConvertBackToYUY2
    ConvertFPS
    ConvertToMono
    ConvertToRGB
    ConvertToRGB24
    ConvertToRGB32
    ConvertToY8
    ConvertToYUY2
    ConvertToYV12
    ConvertToYV16
    ConvertToYV24
    ConvertToYV411
    Crop
    CropBottom
    Default
    Defined
    DelayAudio
    DeleteFrame
    DirectShowSource
    Dissolve
    DoubleWeave
    DuplicateFrame
    Echo
    EnsureVBRMP3Sync
    Eval
    Exist
    FadeIO
    FadeIO0
    FadeIO2
    FadeIn
    FadeIn0
    FadeIn2
    FadeOut
    FadeOut0
    FadeOut2
    FixBrokenChromaUpsampling
    FixLuminance
    FlipHorizontal
    FlipVertical
    FrameEvaluate
    FreezeFrame
    GaussResize
    GeneralConvolution
    GetChannel
    GetChannels
    GetLeftChannel
    GetParity
    GetRightChannel
    Grayscale
    Greyscale
    HasAudio
    HasVideo
    Hex
    Histogram
    HorizontalReduceBy2
    ImageReader
    ImageSource
    ImageSourceAnim
    ImageWriter
    Import
    Info
    Interleave
    InternalCache
    Invert
    IsAudioFloat
    IsAudioInt
    IsBool
    IsClip
    IsFieldBased
    IsFloat
    IsFrameBased
    IsInt
    IsInterleaved
    IsPlanar
    IsRGB
    IsRGB24
    IsRGB32
    IsString
    IsY8
    IsYUV
    IsYUY2
    IsYV12
    IsYV16
    IsYV24
    IsYV411
    KillAudio
    KillVideo
    Lanczos4Resize
    LanczosResize
    Layer
    Letterbox
    Levels
    Limiter
    LoadCPlugin
    LoadPlugin
    LoadVFAPIPlugin
    LoadVirtualdubPlugin
    Load_Stdcall_Plugin
    Loop
    LumaDifference
    Mask
    MaskHS
    Max
    Merge
    MergeARGB
    MergeChannels
    MergeChroma
    MergeLuma
    MergeRGB
    MessageClip
    Min
    MixAudio
    MonoToStereo
    Normalize
    Null
    OpenDMLSource
    Ord
    Overlay
    PeculiarBlend
    PixelType
    PointResize
    Preroll
    Pulldown
    RGBAdjust
    RGBDifference
    RGBDifferenceFromPrevious
    RGBDifferenceToNext
    ReduceBy2
    ResampleAudio
    ResetMask
    Reverse
    SSRC
    ScriptClip
    ScriptDir
    ScriptFile
    ScriptName
    SegmentedAVISource
    SegmentedDirectShowSource
    Select
    SelectEven
    SelectEvery
    SelectOdd
    SelectRangeEvery
    SeparateColumns
    SeparateFields
    SeparateRows
    SetMemoryMax
    SetPlanarLegacyAlignment
    SetWorkingDir
    Sharpen
    ShowAlpha
    ShowBlue
    ShowFiveVersions
    ShowFrameNumber
    ShowGreen
    ShowRed
    ShowSMPTE
    ShowTime
    SincResize
    SkewRows
    SpatialSoften
    Spline
    Spline16Resize
    Spline36Resize
    Spline64Resize
    StackHorizontal
    StackVertical
    String
    Subtitle
    Subtract
    SuperEQ
    SwapFields
    SwapUV
    TCPServer
    TCPSource
    TemporalSoften
    Time
    TimeStretch
    Tone
    Trim
    Turn180
    TurnLeft
    TurnRight
    Tweak
    UDifferenceFromPrevious
    UDifferenceToNext
    UPlaneMax
    UPlaneMedian
    UPlaneMin
    UPlaneMinMaxDifference
    UToY
    UToY8
    UnalignedSplice
    VDifferenceFromPrevious
    VDifferenceToNext
    VPlaneMax
    VPlaneMedian
    VPlaneMin
    VPlaneMinMaxDifference
    VToY
    VToY8
    Version
    VersionNumber
    VersionString
    VerticalReduceBy2
    WAVSource
    Weave
    WeaveColumns
    WeaveRows
    WriteFile
    WriteFileEnd
    WriteFileIf
    WriteFileStart
    YDifferenceFromPrevious
    YDifferenceToNext
    YPlaneMax
    YPlaneMedian
    YPlaneMin
    YPlaneMinMaxDifference
    YToUV
    abs
    acos
    asin
    atan
    atan2
    audiobits
    audiochannels
    audioduration
    audiolength
    audiolengthf
    audiolengthhi
    audiolengthlo
    audiolengths
    audiorate
    bitand
    bitchange
    bitchg
    bitclear
    bitclr
    bitlrotate
    bitlshift
    bitlshifta
    bitlshiftl
    bitlshifts
    bitlshiftu
    bitnot
    bitor
    bitrol
    bitror
    bitrrotate
    bitrshifta
    bitrshiftl
    bitrshifts
    bitrshiftu
    bitsal
    bitsar
    bitset
    bitshl
    bitshr
    bittest
    bittst
    bitxor
    ceil
    cos
    cosh
    exp
    fillstr
    findstr
    float
    floor
    fmod
    frac
    framecount
    framerate
    frameratedenominator
    frameratenumerator
    height
    hexvalue
    int
    lcase
    leftstr
    log
    log10
    midstr
    muldiv
    nop
    pi
    pow
    rand
    revstr
    rightstr
    round
    sign
    sin
    sinh
    sqrt
    strcmp
    strcmpi
    strlen
    tan
    tanh
    ucase
    undefined
    value
    width


[External (plugin) functions]
    BackwardClense
    Clense
    Decimate
    Decomb521_Decimate
    Decomb521_FieldDeinterlace
    Decomb521_IsCombed
    Decomb521_Telecide
    Decomb_Decimate
    Decomb_FieldDeinterlace
    Decomb_IsCombed
    Decomb_Telecide
    Deen
    Deen_Deen
    FieldDeinterlace
    ForwardClense
    IsCombed
    MCClense
    NicAC3Source
    NicBufferAudio
    NicDTSSource
    NicLPCMSource
    NicMPASource
    NicMPG123Source
    NicRawPCMSource
    RemoveGrain
    RemoveGrainSSE2_BackwardClense
    RemoveGrainSSE2_Clense
    RemoveGrainSSE2_ForwardClense
    RemoveGrainSSE2_MCClense
    RemoveGrainSSE2_RemoveGrain
    Telecide
    UnDot
    UnDot_UnDot
    hqdn3d
    hqdn3d_hqdn3d
    nicaudio_NicAC3Source
    nicaudio_NicBufferAudio
    nicaudio_NicDTSSource
    nicaudio_NicLPCMSource
    nicaudio_NicMPASource
    nicaudio_NicMPG123Source
    nicaudio_NicRawPCMSource
gonca is offline  
Old 23rd April 2017, 18:02   #3285  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by gonca View Post
Can someone check my avsinfo log and tell me if I am missing any dependencies
Nothing missing. However, the log shows that you have Avisynth 2.6 in syswow64, not Avisynth+.
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline  
Old 23rd April 2017, 18:08   #3286  |  Link
gonca
Registered User
 
Join Date: Jul 2012
Posts: 1,253
That is the only way I can make X86 version work with these apps
I'll redo the log with the AVS+ dll

Here is the new log

Code:
Log created with:           AVSMeter 2.5.4 (x86)

[OS/Hardware info]
Operating system:           Windows 10 (x64) (Build 14393)
CPU:                        Intel(R) Core(TM) i7-6900K CPU @ 3.20GHz
CPU features:               MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, FMA3


[Avisynth info]
VersionString:              AviSynth+ 0.1 (r2455, MT, i386)
VersionNumber:              2.60
File version:               0.1.0.0
Interface Version:          6
Multi-threading support:    Yes
Avisynth.dll location:      C:\Windows\SysWoW64\avisynth.dll
Avisynth.dll time stamp:    2017-03-16, 16:29:52 (UTC)
PluginDir+   (HKLM, x86):   C:\Program Files (x86)\AviSynth+\plugins+
PluginDir2_5 (HKLM, x86):   C:\Program Files (x86)\AviSynth\plugins


[CPP 2.5 / 32 Bit plugins]
C:\Program Files (x86)\AviSynth\plugins\Decomb.dll
C:\Program Files (x86)\AviSynth\plugins\Decomb521.dll
C:\Program Files (x86)\AviSynth\plugins\Deen.dll
C:\Program Files (x86)\AviSynth\plugins\hqdn3d.dll
C:\Program Files (x86)\AviSynth\plugins\nicaudio.dll
C:\Program Files (x86)\AviSynth\plugins\RemoveGrainSSE2.dll
C:\Program Files (x86)\AviSynth\plugins\UnDot.dll  [0.0.1.1]

[CPP 2.6 / 32 Bit plugins]
C:\Program Files (x86)\AviSynth+\plugins+\ConvertStacked.dll
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll


[DLL dependencies (x86)]
C:\Program Files (x86)\AviSynth\plugins\Decomb.dll:
    KERNEL32.dll
    MSVCRT.dll

C:\Program Files (x86)\AviSynth\plugins\Decomb521.dll:
    KERNEL32.dll
    MSVCRT.dll

C:\Program Files (x86)\AviSynth\plugins\Deen.dll:
    KERNEL32.dll
    MSVCRT.dll

C:\Program Files (x86)\AviSynth\plugins\hqdn3d.dll:
    KERNEL32.dll

C:\Program Files (x86)\AviSynth\plugins\nicaudio.dll:
    KERNEL32.dll

C:\Program Files (x86)\AviSynth\plugins\RemoveGrainSSE2.dll:
    KERNEL32.dll

C:\Program Files (x86)\AviSynth\plugins\UnDot.dll:
    KERNEL32.dll

C:\Program Files (x86)\AviSynth+\plugins+\ConvertStacked.dll:
    KERNEL32.dll
    VCRUNTIME140.dll
    api-ms-win-crt-heap-l1-1-0.dll
    api-ms-win-crt-runtime-l1-1-0.dll

C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll:
    WINMM.dll
    QUARTZ.dll
    ole32.dll
    USER32.dll
    OLEAUT32.dll
    KERNEL32.dll
    VCRUNTIME140.dll
    api-ms-win-crt-string-l1-1-0.dll
    api-ms-win-crt-stdio-l1-1-0.dll
    api-ms-win-crt-runtime-l1-1-0.dll
    api-ms-win-crt-heap-l1-1-0.dll

C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll:
    DevIL.dll
    MSVCP140.dll
    KERNEL32.dll
    VCRUNTIME140.dll
    api-ms-win-crt-runtime-l1-1-0.dll
    api-ms-win-crt-stdio-l1-1-0.dll
    api-ms-win-crt-filesystem-l1-1-0.dll
    api-ms-win-crt-heap-l1-1-0.dll

C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll:
    MSVCP140.dll
    KERNEL32.dll
    VCRUNTIME140.dll
    api-ms-win-crt-math-l1-1-0.dll
    api-ms-win-crt-heap-l1-1-0.dll
    api-ms-win-crt-runtime-l1-1-0.dll
    api-ms-win-crt-stdio-l1-1-0.dll

C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll:
    KERNEL32.dll
    VCRUNTIME140.dll
    api-ms-win-crt-math-l1-1-0.dll
    api-ms-win-crt-heap-l1-1-0.dll
    api-ms-win-crt-runtime-l1-1-0.dll

C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll:
    USER32.dll
    KERNEL32.dll
    VCRUNTIME140.dll
    api-ms-win-crt-stdio-l1-1-0.dll
    api-ms-win-crt-heap-l1-1-0.dll
    api-ms-win-crt-runtime-l1-1-0.dll



[Internal (core) functions]
    AVIFileSource
    AVISource
    AddAlphaPlane
    AddAutoloadDir
    AddBorders
    AlignedSplice
    Amplify
    AmplifydB
    Animate
    Apply
    ApplyRange
    Assert
    AssumeBFF
    AssumeFPS
    AssumeFieldBased
    AssumeFrameBased
    AssumeSampleRate
    AssumeScaledFPS
    AssumeTFF
    AudioDub
    AudioDubEx
    AudioTrim
    AutoloadPlugins
    AverageB
    AverageChromaU
    AverageChromaV
    AverageG
    AverageLuma
    AverageR
    BDifference
    BDifferenceFromPrevious
    BDifferenceToNext
    BPlaneMax
    BPlaneMedian
    BPlaneMin
    BPlaneMinMaxDifference
    BicubicResize
    BilinearResize
    BitsPerComponent
    BlackmanResize
    Blackness
    BlankClip
    Blur
    Bob
    Cache
    ChangeFPS
    Chr
    ChromaUDifference
    ChromaVDifference
    ClearAutoloadDirs
    ColorBars
    ColorBarsHD
    ColorKeyMask
    ColorSpaceNameToPixelType
    ColorYUV
    CombinePlanes
    Compare
    ComplementParity
    ComponentSize
    ConditionalFilter
    ConditionalReader
    ConditionalSelect
    ContinuedDenominator
    ContinuedNumerator
    ConvertAudio
    ConvertAudioTo16bit
    ConvertAudioTo24bit
    ConvertAudioTo32bit
    ConvertAudioTo8bit
    ConvertAudioToFloat
    ConvertBackToYUY2
    ConvertBits
    ConvertFPS
    ConvertTo16bit
    ConvertTo8bit
    ConvertToFloat
    ConvertToMono
    ConvertToPlanarRGB
    ConvertToPlanarRGBA
    ConvertToRGB
    ConvertToRGB24
    ConvertToRGB32
    ConvertToRGB48
    ConvertToRGB64
    ConvertToY
    ConvertToY8
    ConvertToYUV411
    ConvertToYUV420
    ConvertToYUV422
    ConvertToYUV444
    ConvertToYUY2
    ConvertToYV12
    ConvertToYV16
    ConvertToYV24
    ConvertToYV411
    Crop
    CropBottom
    Default
    Defined
    DelayAudio
    DeleteFrame
    Dissolve
    DoubleWeave
    DuplicateFrame
    Echo
    EnsureVBRMP3Sync
    Eval
    Exist
    ExtractA
    ExtractB
    ExtractG
    ExtractR
    ExtractU
    ExtractV
    ExtractY
    FadeIO
    FadeIO0
    FadeIO2
    FadeIn
    FadeIn0
    FadeIn2
    FadeOut
    FadeOut0
    FadeOut2
    FixBrokenChromaUpsampling
    FixLuminance
    FlipHorizontal
    FlipVertical
    FrameEvaluate
    FreezeFrame
    FunctionExists
    GDifference
    GDifferenceFromPrevious
    GDifferenceToNext
    GPlaneMax
    GPlaneMedian
    GPlaneMin
    GPlaneMinMaxDifference
    GaussResize
    GeneralConvolution
    GetChannel
    GetChannels
    GetLeftChannel
    GetParity
    GetRightChannel
    Grayscale
    Greyscale
    HasAlpha
    HasAudio
    HasVideo
    Hex
    Histogram
    HorizontalReduceBy2
    Import
    Info
    Interleave
    InternalCache
    InternalFunctionExists
    Invert
    Is420
    Is422
    Is444
    IsAudioFloat
    IsAudioInt
    IsBool
    IsClip
    IsFieldBased
    IsFloat
    IsFrameBased
    IsInt
    IsInterleaved
    IsPackedRGB
    IsPlanar
    IsPlanarRGB
    IsPlanarRGBA
    IsRGB
    IsRGB24
    IsRGB32
    IsRGB48
    IsRGB64
    IsString
    IsVideoFloat
    IsY
    IsY8
    IsYUV
    IsYUVA
    IsYUY2
    IsYV12
    IsYV16
    IsYV24
    IsYV411
    KillAudio
    KillVideo
    Lanczos4Resize
    LanczosResize
    Layer
    Letterbox
    Levels
    Limiter
    LoadCPlugin
    LoadPlugin
    Load_Stdcall_Plugin
    LogMsg
    Loop
    LumaDifference
    Mask
    MaskHS
    Max
    Merge
    MergeARGB
    MergeChannels
    MergeChroma
    MergeLuma
    MergeRGB
    MessageClip
    Min
    MixAudio
    MonoToStereo
    Normalize
    Null
    NumComponents
    OpenDMLSource
    Ord
    Overlay
    PeculiarBlend
    PixelType
    PlaneToY
    PointResize
    Prefetch
    Preroll
    Pulldown
    RDifference
    RDifferenceFromPrevious
    RDifferenceToNext
    RGBAdjust
    RGBDifference
    RGBDifferenceFromPrevious
    RGBDifferenceToNext
    RPlaneMax
    RPlaneMedian
    RPlaneMin
    RPlaneMinMaxDifference
    ReduceBy2
    RemoveAlphaPlane
    ResampleAudio
    ResetMask
    Reverse
    ScriptClip
    ScriptDir
    ScriptFile
    ScriptName
    SegmentedAVISource
    SegmentedDirectShowSource
    Select
    SelectEven
    SelectEvery
    SelectOdd
    SelectRangeEvery
    SeparateColumns
    SeparateFields
    SeparateRows
    SetFilterMTMode
    SetLogParams
    SetMemoryMax
    SetPlanarLegacyAlignment
    SetWorkingDir
    Sharpen
    ShowAlpha
    ShowBlue
    ShowFiveVersions
    ShowFrameNumber
    ShowGreen
    ShowRed
    ShowSMPTE
    ShowTime
    ShowU
    ShowV
    ShowY
    SincResize
    SkewRows
    SpatialSoften
    Spline
    Spline16Resize
    Spline36Resize
    Spline64Resize
    StackHorizontal
    StackVertical
    String
    Subtitle
    Subtract
    SwapFields
    SwapUV
    TemporalSoften
    Time
    Tone
    Trim
    Turn180
    TurnLeft
    TurnRight
    Tweak
    UDifferenceFromPrevious
    UDifferenceToNext
    UPlaneMax
    UPlaneMedian
    UPlaneMin
    UPlaneMinMaxDifference
    UToY
    UToY8
    UnalignedSplice
    VDifferenceFromPrevious
    VDifferenceToNext
    VPlaneMax
    VPlaneMedian
    VPlaneMin
    VPlaneMinMaxDifference
    VToY
    VToY8
    Version
    VersionNumber
    VersionString
    VerticalReduceBy2
    WAVSource
    Weave
    WeaveColumns
    WeaveRows
    WriteFile
    WriteFileEnd
    WriteFileIf
    WriteFileStart
    YDifferenceFromPrevious
    YDifferenceToNext
    YPlaneMax
    YPlaneMedian
    YPlaneMin
    YPlaneMinMaxDifference
    YToUV
    abs
    acos
    asin
    atan
    atan2
    audiobits
    audiochannels
    audioduration
    audiolength
    audiolengthf
    audiolengthhi
    audiolengthlo
    audiolengths
    audiorate
    bitand
    bitchange
    bitchg
    bitclear
    bitclr
    bitlrotate
    bitlshift
    bitlshifta
    bitlshiftl
    bitlshifts
    bitlshiftu
    bitnot
    bitor
    bitrol
    bitror
    bitrrotate
    bitrshifta
    bitrshiftl
    bitrshifts
    bitrshiftu
    bitsal
    bitsar
    bitset
    bitshl
    bitshr
    bittest
    bittst
    bitxor
    ceil
    cos
    cosh
    exp
    fillstr
    findstr
    float
    floor
    fmod
    frac
    framecount
    framerate
    frameratedenominator
    frameratenumerator
    height
    hexvalue
    int
    lcase
    leftstr
    log
    log10
    midstr
    muldiv
    nop
    pi
    pow
    rand
    replacestr
    revstr
    rightstr
    round
    sign
    sin
    sinh
    sqrt
    strcmp
    strcmpi
    strlen
    tan
    tanh
    ucase
    undefined
    value
    width


[External (plugin) functions]
    BackwardClense
    Clense
    ConvertFromDoubleWidth
    ConvertFromStacked
    ConvertStacked_ConvertFromDoubleWidth
    ConvertStacked_ConvertFromStacked
    ConvertStacked_ConvertToDoubleWidth
    ConvertStacked_ConvertToStacked
    ConvertToDoubleWidth
    ConvertToStacked
    Decimate
    Decomb521_Decimate
    Decomb521_FieldDeinterlace
    Decomb521_IsCombed
    Decomb521_Telecide
    Decomb_Decimate
    Decomb_FieldDeinterlace
    Decomb_IsCombed
    Decomb_Telecide
    Deen
    Deen_Deen
    DirectShowSource
    DirectShowSource_DirectShowSource
    FieldDeinterlace
    ForwardClense
    ImageReader
    ImageSeq_ImageReader
    ImageSeq_ImageSource
    ImageSeq_ImageSourceAnim
    ImageSeq_ImageWriter
    ImageSource
    ImageSourceAnim
    ImageWriter
    IsCombed
    LoadVirtualdubPlugin
    MCClense
    NicAC3Source
    NicBufferAudio
    NicDTSSource
    NicLPCMSource
    NicMPASource
    NicMPG123Source
    NicRawPCMSource
    RemoveGrain
    RemoveGrainSSE2_BackwardClense
    RemoveGrainSSE2_Clense
    RemoveGrainSSE2_ForwardClense
    RemoveGrainSSE2_MCClense
    RemoveGrainSSE2_RemoveGrain
    SSRC
    Shibatch_SSRC
    Shibatch_SuperEQ
    SuperEQ
    Telecide
    TimeStretch
    TimeStretch_TimeStretch
    UnDot
    UnDot_UnDot
    VDubFilter_LoadVirtualdubPlugin
    hqdn3d
    hqdn3d_hqdn3d
    nicaudio_NicAC3Source
    nicaudio_NicBufferAudio
    nicaudio_NicDTSSource
    nicaudio_NicLPCMSource
    nicaudio_NicMPASource
    nicaudio_NicMPG123Source
    nicaudio_NicRawPCMSource

Last edited by gonca; 23rd April 2017 at 18:12.
gonca is offline  
Old 23rd April 2017, 18:09   #3287  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by gonca View Post
That is the only way I can make X86 version work with these apps
Which apps?

Quote:
Originally Posted by gonca View Post
I'll redo the log with the AVS+ dll
OK.
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline  
Old 23rd April 2017, 18:15   #3288  |  Link
gonca
Registered User
 
Join Date: Jul 2012
Posts: 1,253
BD_RB and AVStoDVD
The x64 chain is basically my own scripts and command lines, and it works fine
gonca is offline  
Old 23rd April 2017, 18:25   #3289  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by gonca View Post
BD_RB and AVStoDVD
The new log doesn't show any problems. If there were any, there would be a section "[Plugin errors/warnings]" after "[Avisynth info]".
There is no reason why the two programs should not work with AVS+, to my knowledge it's fully backward compatible to AVS2.6 except (ancient) v2.0 C/C++ plugins which are not supported by AVS+.

You'll have to pester the authors to change/extend their detection functions. The Avisynth API provides a bunch of functions to determine the version reliably.
__________________
Groucho's Avisynth Stuff

Last edited by Groucho2004; 23rd April 2017 at 18:48.
Groucho2004 is offline  
Old 23rd April 2017, 21:33   #3290  |  Link
gonca
Registered User
 
Join Date: Jul 2012
Posts: 1,253
OK
Thanks
gonca is offline  
Old 24th April 2017, 02:11   #3291  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,560
Pinterf, I'll have to fix this for ConditionalMT, but that also needs to be fixed in Avisynth+ core since this needs to work without MT.
https://forum.doom9.org/showthread.p...74#post1804874
MysteryX is offline  
Old 24th April 2017, 04:05   #3292  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,560
I'm getting a weird performance drop with ChangeFps in the middle of FrameRateConverter.

Code:
EM = EM.ChangeFPS(NewNum, NewDen)
CPU drops from 80% to 20% if I place a "return EM" after this line than before, with Prefetch(8). My guess is that the change of frame rate is screwing up the thread pool optimizer or something.

Last edited by MysteryX; 24th April 2017 at 04:10.
MysteryX is offline  
Old 24th April 2017, 13:06   #3293  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,527
Quote:
Originally Posted by MysteryX View Post
Pinterf, I'll have to fix this for ConditionalMT, but that also needs to be fixed in Avisynth+ core since this needs to work without MT.
https://forum.doom9.org/showthread.p...74#post1804874
Answered in your other topic, copy code from the MT branch for doing statistics on non-8 bit data.
pinterf is offline  
Old 24th April 2017, 16:46   #3294  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,560
I was thinking about conditional functions. As we know, the problem is passing the current frame number, and storing it in a global var doesn't work in a multi-threaded environment -- and the code can't pass it directly to the functions within the expression because complex expressions are being handled by the Expression Evaluator.

How about passing frame_number to the Expression Evaluator, which when specified, gets passed to the filters through user_data?

It's kind of a hack but it might just work.

Edit: After looking at the code, Evaluate translates into env2->Invoke, which doesn't have user_data as parameter. For per-frame filters, it would make the most sense to take the frame_number as the first standard parameter.

So PExpression.Evaluate could have a second syntax that takes frame_count as parameter for frame-specific expressions. In that function, all function calls receive frame_count as the first parameter during invokes.

The issue isn't with MT really -- but instead of a badly designed per-frame expression evaluator that stored frame_count in a thread-specific global var as a hack.

Now that I'm at it, I might try to dig into the code myself, it doesn't look too hard. If I can't fix it, I'll let Pinterf do it Meanwhile Pinterf can look into the other issues I pointed out.

Last edited by MysteryX; 24th April 2017 at 17:02.
MysteryX is offline  
Old 24th April 2017, 17:36   #3295  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,527
Quote:
Originally Posted by MysteryX View Post
Edit: After looking at the code, Evaluate translates into env2->Invoke, which doesn't have user_data as parameter. For per-frame filters, it would make the most sense to take the frame_number as the first standard parameter.
This is where the thread-local current_frame is lost, in ScriptEnvirontmentTLS.h

Code:
  virtual bool __stdcall Invoke(AVSValue *result, const char* name, const AVSValue& args, const char* const* arg_names=0)
  {
    // This is why e.g. YDifferenceFromPrevious does not see "last" and "current_frame" defined in ScriptClip's GetFrame under MT.
    // These variables are thread local to this very TLS but are not seen by core (core has a different subset of variables)
    // invoking a runtime function here is losing the TLS scope
    if (!_stricmp(name, "YDifferenceFromPrevious")) {
      int x = 0; // debug stop
    }
    return core->Invoke(result, name, args, arg_names=0);
  }
This is the "torture script"
Code:
BlankClip(width=640,height=480,length=50,pixel_type="YV24",color=$000000)
ScriptClip(last, "Subtitle(String(YDifferenceFromPrevious))")
Prefetch(2)

Last edited by pinterf; 24th April 2017 at 17:47.
pinterf is offline  
Old 24th April 2017, 23:42   #3296  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,560
Quote:
Originally Posted by pinterf View Post
This is the "torture script"
ScriptClip is working

Just a few final details and I'll submit changes

No "hack" was needed

AverageLuma still brings a value of 6653 on ColorBarsHD in 14-bit
MysteryX is offline  
Old 25th April 2017, 00:53   #3297  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,560
dammit.

I had done the changes over branch MT-pfmod instead of branch MT, and it was working.

Now I've ported the changes over to MT branch and am ready to submit.

**BUT** now there is a thread lock issue -- with something that changed since you merged the pfmod branch.

I'll submit anyway, and you can look at it from there. It *WAS* working!

Pull request submitted.

The solution was to treat per-frame functions differently. They now always take frame_number as second argument (after clip). ScriptParser now takes frame_number in its constructor, and automatically passes it to the per-frame functions as needed. It works beautifully.

Now you can also use this to write the average luma value of the 10th frame
Code:
Subtitle(string(AverageLuma(10)))

Last edited by MysteryX; 25th April 2017 at 01:06.
MysteryX is offline  
Old 25th April 2017, 01:22   #3298  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,406
Quote:
Originally Posted by MysteryX View Post
Now you can also use this to write the average luma value of the 10th frame
Code:
Subtitle(string(AverageLuma(10)))
Again I have not been following too closely, but would that be
AverageLuma(Offset=10) ie relative to current frame (whatever than may mean in this context).
__________________
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  
Old 25th April 2017, 01:36   #3299  |  Link
raffriff42
Retried Guesser
 
raffriff42's Avatar
 
Join Date: Jun 2012
Posts: 1,371
>Subtitle(string(AverageLuma(10)))
Yes, that's how it's worked since AVS 2.61.
AverageLuma(clip [, int offset = 0])
http://avisynth.nl/index.php/Internal_functions#Average

>AverageLuma still brings a value of 6653 on ColorBarsHD in 14-bit
Which is fine.
6653/2^(14-8) == 6653/2^6 == 6653/64 == 103.953
raffriff42 is offline  
Old 25th April 2017, 01:42   #3300  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,560
Quote:
Originally Posted by StainlessS View Post
Again I have not been following too closely, but would that be
AverageLuma(Offset=10) ie relative to current frame (whatever than may mean in this context).
hum.. we have to ensure there is no confusion between function versions.

Code:
ScriptClip(last, "Subtitle(String(AverageLuma(10)))")
AverageLuma will try functions in this order
- AverageLuma(10)
- AverageLuma(last, 10) # this version will be taken
- AverageLuma(last, n, 10) # we need to take this version

This will cause problems, as it will return AverageLuma of the 10th frame instead of applying an offset of 10 to the current frame.

If we reverse the order of look-up and check
- AverageLuma(last, n, 10) # we need to take this version
before
- AverageLuma(last, 10) # this version will be taken
when frame_number is specified, then it should fix the problem.

There is also the risk that some other standard function gets passed "frame_number" as its int argument when it shouldn't.

This, in contrast, should specify frame_number instead of offset. Previously, these filters couldn't be used outside of a conditional function.
Code:
Subtitle(String(AverageLuma(10)))

Last edited by MysteryX; 25th April 2017 at 01:49.
MysteryX is offline  
Closed Thread

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 10:26.


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