Log in

View Full Version : Does anyone know avss.dll (ala DSS) from Haali?


Pages : [1] 2

Wilbert
29th January 2008, 22:10
According to http://forums.animesuki.com/showthread.php?t=48608, there is an AviSynth plugin called avss.dll created by Haali (which can be obtained from the Haali Media Splitter).

DSS2 is Haali's implementation of Directshowsource. It has the advantage of being frame-accurate, but only supports VFR by converting it to CFR; at least that was the case when I tried it last time, it might have changed.

The point being is whether it is based on DSS, since DSS2 is closed source. I will ask him about it.

Myrsloik
29th January 2008, 23:16
As someone who happens to be in possession of the full source for dss2 I can tell you that it uses directshow and that's where the similarities end. There are no violations and in my opinion the only thing you'll develop with this line of questioning is a bad reputation...

TheFluff
29th January 2008, 23:25
You didn't notice this plugin until now? It's been around for years.

Also I wonder how your logic behind posting this thread went, was it something like "hey it has 'directshow' in the name so it must be a derivative, I better post a thread on doom9 about it to stir up some drama while I wait for Haali to answer" or what?

Wilbert
29th January 2008, 23:30
Oh c'mon, that was never my intension. I was just curious about the plugin since i hadn't seen it before. My apologies if anyone is offended and sorry that i took your words too literally.

TheFluff
29th January 2008, 23:40
Well if this is going to be turned into a general DSS2 thread... the syntax is:
dss2(string infile, float fps)
i.e.
loadplugin("avss.dll")
dss2("X:/test.mkv",fps=23.976)

Unlike the original DSS, it does not support loading audio. It also always converts VFR to CFR; i.e. it acts like the original DSS with convertfps=true does.

cooolway
9th October 2008, 07:23
how do I load audio from my video as it doesn't with DSS2?

Myrsloik
9th October 2008, 09:35
You don't, it's not supported in DSS2. Use another method and audiodub.

halsboss
15th May 2009, 13:41
For posterity and completeness of this thread, there were some reported "challenges" with it. See near the end of this post http://forum.doom9.org/showthread.php?p=1285639#post1285639

Dogway
11th July 2011, 04:06
Do I need to have Haali installed/registered in order to use dss2? because I just took avss.dll and uninstalled haali and now it doesn't work. I'd like to use it while keeping the system as clean of Haali as possible.

LoRd_MuldeR
11th July 2011, 07:15
Do I need to have Haali installed/registered in order to use dss2? because I just took avss.dll and uninstalled haali and now it doesn't work. I'd like to use it while keeping the system as clean of Haali as possible.

Well, DSS2 uses DirectShow, obviously. So you will need the suitable DirectShow filters (splitters and decoders) installed/registered on your system. Consequently for MKV or MP4 or TS files you'll need the Haali Media Splitter or something that can do the same job.

IanB
11th July 2011, 08:57
Dss2 uses the frame grab feature of Haali's directshow renderer.

So you need that as a minimum.

It is does not normally include itself in default graphs.

Dogway
11th July 2011, 14:36
It's for a wmv source.
I use lavfilters+ffdshow(wmv9)+madvr.

Can I then take the Haali's renderer files and copy them somewhere where it is requested?

LoRd_MuldeR
11th July 2011, 14:46
It's for a wmv source.
I use lavfilters+ffdshow(wmv9)+madvr.

Can I then take the Haali's renderer files and copy them somewhere where it is requested?

You will have to register the COM interface, I think.

C:\Program Files (x86)\Haali\MatroskaSplitter>regsvr32 splitter.ax
C:\Program Files (x86)\Haali\MatroskaSplitter>regsvr32 dxr.dll

Dogway
11th July 2011, 14:51
Looks like it turns practically into a manual install, I will check. Is ffms2 a worse option than dss2 for VC-1 sources?

TheFluff
11th July 2011, 15:23
Looks like it turns practically into a manual install, I will check. Is ffms2 a worse option than dss2 for VC-1 sources?

What container? TS will probably work very badly, other containers I don't know since I haven't tried it.

Dogway
11th July 2011, 15:26
wmv, I get eventual artifacts when frameskipping with ffms2. Not sure if its so at encoding...

forclip
28th October 2011, 15:41
Does anyone know how to contact the author of this plugin? Of course, assuming that he willing to fix (or at least take a look at) some bugs..

IanB
28th October 2011, 21:04
Does anyone know how to contact the author of this plugin?These may be a little stale but may get you started :-

Mike Matsnev (mailto:mike@haali.net), aka Haali (http://forum.doom9.org/member.php?u=38175) (Last Activity: 13th Oct 2009)

Haali Media Splitter Home (http://haali.su/mkv/) (Last updated 03/03/2011)


Report your bug, others may know the answer ....

forclip
29th October 2011, 13:12
Thanks.

The bugs:
1. This plugin can't handle a files that contains a symbols from my local CodePage. So it can't be used with (for example) C:\файл.mkv.

2. It may hangs when processing the last frames. Sure, this behavior may be related to splitters\decoders that's being used, but the same files works fine with DirectShowSource.

P.S. I don't looking for a workarounds, no need to point me to FFMS2, DGDecNV and so on.

IanB
30th October 2011, 06:19
1. Avss.cppHRESULT hr = dss2->OpenFile(CA2WEX<128>(filename, CP_OEMCP), avgframe);
DirectShowSource.cppMultiByteToWideChar(CP_ACP, 0, filename, -1, filenameW, MAX_PATH);
There is a whole thread dedicated to non-ascii characters in scripts.

2. The avss code seems predictable, I suspect the frame grab code in the renderer is getting caught. (I don't have the renderer code :( ) Sorry I can't help.

forclip
30th October 2011, 10:43
1. Avss.cpp
So you have the sources for this plugin? :)

mandarinka
30th October 2011, 16:14
Dss2 uses the frame grab feature of Haali's directshow renderer.

So you need that as a minimum.

It is does not normally include itself in default graphs.

Sorry for being paranoid, but I have to ask, since Haali's renderer only supports yuy2 and rgb32 input.

Does dss2 keep the decoded video data in yv12 colorspace, or does it in fact force a colorspace conversion? I don't think the latter is likely to be the case, but I'd like to get a confirmation, if someone can give one!

IanB
30th October 2011, 22:07
So you have the sources for this plugin? :)No, I only have some of the source.

TheRyuu
31st October 2011, 14:20
It seems the avss source package that I have contains the fix mentioned by IanB so perhaps it was updated at somepoint.

Build: avss.7z (http://warpsharp.info/avisynth/avss.7z)
Source: avss-src.7z (http://warpsharp.info/avisynth/avss-src.7z)

forclip
31st October 2011, 17:52
Build: avss.7z (http://warpsharp.info/avisynth/avss.7z)
Source: avss-src.7z (http://warpsharp.info/avisynth/avss-src.7z)
Thanks! Unfortunately, I still can`t open my "C:\файл.mkv", so I think that avss.dll that I had before was already "fixed". May be this issue is similar to this one (http://doom10.org/index.php?topic=25.msg4659#msg4659):

DirectShow probably expects Unicode strings only and FFMS2 isn't converting them before passing them to the splitter or something.

IanB
31st October 2011, 21:49
It seems the avss source package that I have contains the fix mentioned by IanB so perhaps it was updated at somepoint.

Build: avss.7z (http://warpsharp.info/avisynth/avss.7z)
Source: avss-src.7z (http://warpsharp.info/avisynth/avss-src.7z)
Huh! :confused: This source still uses CP_OEMCP (Dosbox code page) instead of CP_ACP (Windows code page).

To test this theory, create the .AVS in something using the OEM code page like Edit under Cmd.exe.



Also thanks TheRyuu for the full source code :D

forclip
1st November 2011, 18:21
This source still uses CP_OEMCP (Dosbox code page) instead of CP_ACP (Windows code page).

Replaced, and it did the trick! :)

TheRyuu
2nd November 2011, 03:51
Huh! :confused: This source still uses CP_OEMCP (Dosbox code page) instead of CP_ACP (Windows code page).

To test this theory, create the .AVS in something using the OEM code page like Edit under Cmd.exe.



Also thanks TheRyuu for the full source code :D

For some reason I thought you hilighted it because it was what changed in your original post. I didn't see the correlation between 1 and 2, brainfart.

qwerty1983
10th November 2014, 11:40
Does this source filter convert my YV12 videos to YUY2? Can i avoid that?

Ok, i found the solution (http://forum.doom9.org/showthread.php?p=1699299#post1699299)

TheFluff
10th November 2014, 14:39
Does this source filter convert my YV12 videos to YUY2?

not in and of itself, no

Can i avoid that?

depends on your dshow environment

LoRd_MuldeR
10th November 2014, 19:12
It's a DirectShow-based source filter, so it probably returns whatever color format is returned from DirectShow Filter-Graph.

What DirectShow Decoder-Filter do you use? If it's something like FFdshow or LAVFilters, you should have a look at the "Output Formats" box in the decoder configuration...

https://azurehakua.files.wordpress.com/2012/02/options-lav-video-decoder1.png

qwerty1983
10th November 2014, 22:13
On the video decoder configuration (ffdshow) 'primary output color space' is set to auto. Even if i change it to YV12 the problem persists. I don't have LAVfilters. I'm not familiar with this stuff (directshow, vfw etc).

EDIT
I found the solution.
I went to Haali media splitter settings and changed the 'used custom media type for H264' from no to yes.

forclip
10th November 2014, 22:40
I think it is never too late, so here is my modded version of DSS2. README.txt (https://xvid4psp.googlecode.com/svn-history/r331/trunk/DSS2/README.txt) - please read this first to avoid unnecessary questions.

Main changes:

1. Fixed codepage issue (see previous messages in this thread).
2. Doesn't hangs at the end of the stream (see previous messages in this thread).
3. Doesn't requires Haali Media Splitter.
4. Can load and use LAVFilters in "portable" mode with ConnectDirect-way of building the Graph.
5. Added "preroll" for more precise seeking (very nice thing for badly-seeking sources). By default preroll=0 (disabled), but I recommend you to set it to something meaningfull.
6. Added "pixel_type" (string) - allowed colorspace (YV12, YUY2, RGB24, RGB32 or RGB - only one of them; or "" for all), it seems I forgot to mention this key in README :)
7. Some other things.

Examples:

DSS2("D:\file.mkv", fps=23.976)
- works almost the same way as the original DSS2 does.

DSS2("D:\file.mkv", fps=23.976, preroll=15, lavs="L3", lavd="L3")
- uses preroll and LAVFilters with ConnectDirect. You can write whatever you want instead of "L3" (which is "l3", which is default loading mode), but not leave it empty, because only non-empty string is a "ON"-switcher for this mode.

DSS2("D:\file.mkv", fps=23.976, preroll=15, lavs="L3", lavd="L3 hm1 hc5")
- the same as above, but LAVVideo is configured to use CUDA (hm1) for H264 and MPEG2 (hc5, 5=1+4).


DSS2 mod (2.0.0.13) + LAVFilters (0.63.0) (http://ge.tt/2QzHlt02/v/0)
SVN-src (https://code.google.com/p/xvid4psp/source/browse/trunk/DSS2/?r=331)


P.S. avss_26.dll (for AviSynth 2.6) does NOT support any additional colorspaces of AviSynth 2.6! And I don't have enough skills to implement it by myself, so patches are welcome. The same for audio support :)

LoRd_MuldeR
10th November 2014, 22:40
I don't have LAVfilters. I'm not familiar with this stuff (directshow, vfw etc).

Why not simply use FFmpegSource (https://github.com/FFMS/ffms2/releases) then?

Handles pretty much everything "out of the box" and doesn't need any external decoders/splitters (i.e. no DirectShow-dependencies, no VFW-dependencies).

qwerty1983
10th November 2014, 23:25
@forclip Than you, i'll try this.

@LoRd_MuldeR Because i have some clips (like the one i posted here (http://forum.doom9.org/showthread.php?t=171351)) that only load flawlessly (with no blocks and back-and-forth movement) with dss2 (i have tried AVCsource, LWLibavVideoSource, FFVideoSource)

buchanan
11th November 2014, 00:56
@forclip : I use your modded DSS2 very often and find it very convinient, especially the preroll, thank you for that.
Could you please provide a 64 bit version of your plugin ? I intend to use it with 64bit Avisynth+

forclip
11th November 2014, 17:14
Firstly I must set up DirectShow-related build environment on my new PC, because currently I can build DSS2 only on my old PC and only as 32-bit. After that at least I can try :) And of course I don't mind if someone else will make his own build meantime.

-----

Meantime, here it is (http://ge.tt/9lZndP42/v/0) (AviSynth+ x64), for testing purposes..

manolito
11th November 2014, 18:36
I want to take the opportunity to say thank you to forclip... :thanks:

I have been using DSS2Mod for quite some time now (together with LAV Filters), and I find it very reliable - more than ffms2.

5. Added "preroll" for more precise seeking (very nice thing for badly-seeking sources). By default preroll=0 (disabled), but I recommend you to set it to something meaningfull.

What would be a "meaningful" value in your opinion? I remember reading somewhere that the value should be at least twice the frame rate of the source. I tried that, but this setting really slows down the HCenc 1-pass mode (not the actual encoding run, but the first sample run where a lot of seeking is involved).



Cheers
manolito

forclip
11th November 2014, 21:28
What would be a "meaningful" value in your opinion? I remember reading somewhere that the value should be at least twice the frame rate of the source.

I don't know how it can be related to fps, I would say it is more related to key frames interval. As long as your file+splitter+decoder can be seeked fine (without frozen frames or artifacts) you don't need to raise this value too much. In other case you must find your own "meaningful" value. Just perform some random seeks (in AvsP, for example) and see frame-by-frame what's going on after each one. Increase this value if the result is incorrect. And keep trying..

GMJCZP
13th November 2014, 03:01
Thanks for the plugin forclip, I will try it.

stax76
30th March 2015, 07:24
Audio track selection would be very useful.

manolito
30th March 2015, 13:42
DSS2 and DSS2Mod does not do audio at all...


Cheers
manolito

mariner
9th May 2015, 16:12
I think it is never too late, so here is my modded version of DSS2. README.txt (https://xvid4psp.googlecode.com/svn-history/r331/trunk/DSS2/README.txt) - please read this first to avoid unnecessary questions.

.....

Greetings forclip. Many thanks for sharing the DSS2mod.

Two questions:

1. How frame accurate is it? When using the following script to convert a mkv source with 34460 frames from 30 to 25fps,
DSS2 reported processing 27815 frames, while DS and FFVS reported 27816.

Which is correct?

TDecimate(mode=1, cycle=6)

2. Need some guidance using the filter without Haali. I registered the LAV's with a higher merit, but still could not prevent Haali from loading.

Many thanks and best regards.

filler56789
10th May 2015, 14:46
2. Need some guidance using the filter without Haali. I registered the LAV's with a higher merit, but still could not prevent Haali from loading.

Open regedit.exe, goto

HKEY_CLASSES_ROOT\Media Type\Extensions ,

and erase the entries that associate .mkv, .mka, etc. with Haali's Source Filter.

Or even better, just get rid of Haali :devil: once and for all :)

Emulgator
11th May 2015, 09:59
1. How frame accurate is it? When using the following script to convert a mkv source with 34460 frames from 30 to 25fps,
DSS2 reported processing 27815 frames, while DS and FFVS reported 27816.

You may want to reproduce which frame is missing by using ShowFrameNumber.
In my case testing anything DirectShow some years ago there was the first frame missing when running in Win7U64SP1,
but first frame delivered when running WinXP32ProSP3.
So the culprit may well be the DirectShow filter alone, not necessarily the splitter.

mariner
12th May 2015, 07:35
Open regedit.exe, goto

HKEY_CLASSES_ROOT\Media Type\Extensions ,

and erase the entries that associate .mkv, .mka, etc. with Haali's Source Filter.

Or even better, just get rid of Haali :devil: once and for all :)

Thanks for the kind reply, filler56789.

1. Deleting these keys did not prevent Haali from loading. What about the other keys? Should they be removed as well without compromising the its functionality? The OS is W7x86.

2. DSS2 would worked if Haali is uninstalled (couldn't tell which source filter was used though), but DirectShowSource stopped working. The LAV Splitter Source was registered with a merit of 60001, but it wasn't loading. Any idea?

3. Haali is required by multiAVCHD, so uninstalling it is perhaps not an option here. Is there a way to modify the registry entries to prevent it from interfering with other software?

Many thanks and best regards.

manolito
12th May 2015, 08:10
In my experience having LAV Splitter and Haali installed in parallel is not a good idea, because Haali has the nasty habit to push itself into the foreground. Changing the merit value does not help.

So I agree with filler56789: If you have LAV Splitter installed, get rid of Haali once and for all... :devil:

BTW on my machine LAV Splitter installed itself with a merit of 00800004, maybe you should change the value on your machine.

And when some software states that it requires Haali, I found that this is not true most of the time. LAV Splitter does everything Haali does and then some, and at least for BD Rebuilder and FFMpegSource who also say that Haali is required, I found that they work just fine with LAV Splitter instead of Haali. (Right now Jdobbs also endorses LAV over Haali).


Cheers
manolito

mariner
12th May 2015, 11:02
In my experience having LAV Splitter and Haali installed in parallel is not a good idea, because Haali has the nasty habit to push itself into the foreground. Changing the merit value does not help.

So I agree with filler56789: If you have LAV Splitter installed, get rid of Haali once and for all... :devil:

BTW on my machine LAV Splitter installed itself with a merit of 00800004, maybe you should change the value on your machine.

And when some software states that it requires Haali, I found that this is not true most of the time. LAV Splitter does everything Haali does and then some, and at least for BD Rebuilder and FFMpegSource who also say that Haali is required, I found that they work just fine with LAV Splitter instead of Haali. (Right now Jdobbs also endorses LAV over Haali).


Cheers
manolito

Thanks for the kind reply, manolito.

1. Bumping up the merit didn't do the trick. Missing some registry entries, perhaps?

FYI, graphedit would load file source async and LAV splitter, but not LAV splitter source.

2. multiAVCHD appears to rely on Haali to display the video in the clip properties page and the chapters menu.

Many thanks and best regards.

filler56789
12th May 2015, 13:35
@mariner:
have you rebooted the machine after altering the registry?

forclip
12th May 2015, 14:31
1. How frame accurate is it? When using the following script to convert a mkv source with 34460 frames from 30 to 25fps,
DSS2 reported processing 27815 frames, while DS and FFVS reported 27816.

Which is correct?

I don't know, but I'm sure DSS2 must be better than DSS. Also, you can try with preroll=15 or bigger values. And yes, if DSS\DSS2 for some reasons used different filters in filter graph,
the results may also be different, regardless of frameaccuracy of the DSS\DSS2 on its own.


2. Need some guidance using the filter without Haali. I registered the LAV's with a higher merit, but still could not prevent Haali from loading.

Call it like this (... - means your source file and\or other settings)

DSS2(..., lavs="L3", lavd="L3")
- to load LAV splitter and decoder from the \LAVFilters subfolder (relative to avss.dll path) using default settings. In this mode you dont need to install\register LAV Filters, you only need to put their files into \LAVFilters subfolder.
Then DSS2mod will be able to load it in portable mode without any interference with already installed version, if such exist.

DSS2(..., lavs="L0", lavd="L0")
- to load your installed LAV Filters (regardless of merit) with its settings.

I want to note about the statement "DSS2mod does not require Haali". DSS2mod, in opposite to DSS2, really doesn't require "Haali Video Sink" to be installed - a video capturing filter, that distributed with Haali package. DSS2mod have it built in. But when you not use lavs="something" and lavd="something" (i.e. by default), it will works almost like the original DSS2 does, using whatever you have installed\registered, according to its merits and all other DirectShow "magic". So, if according to those "magic" Haali Splitter must be used - it will be used.