![]() |
New improved avi player APE
Hi !
I just made an improved AVI renderer for AVS featuring: - better stability (no more crash when changing files without disabling rendering) - better speed control, with frames skipping - pause & reset video buttons - luma & chroma keying http://goebish.free.fr/vfx/aviplayer.jpg Controls should be self explanary, Chroma keying is far from being perfect but it works pretty well for what I do with it :) Get this new APE at: http://goebish.free.fr/vfx |
nice ape.
never realy used avis in my presets or anywhere:). might i ask whats wrong with Pixelplayer ape? it seems to work fast and somewhat stable. Havent tryed to work with it myself and it prolly woldnt be a good thing to use with hotlist because they both need lots of ram. btw why doesnt playlister work with the new avs:/ |
Pixelplayer APE require ram because it decompress entire video stream into memory for fast frames access, allowing reverse playing with non/poor keyed video file and other things.
Mine doesn't, but they don't have the same application (both are for live performance anyway). Magic's Hotlist (hi mate!) doesn't take so much memory, it just preload presets's snapshots, that's not so much. Playlister works very well with newer Winamp/AVS, just use classic style instead of modern, only resizing of render window don't work. |
Quote:
Quote:
ps: i know this is a bit offtopic but since you are probably goning to read this thread again i thought i'd ask here:) |
Quote:
|
ok when i first run it after install it sais:
Quote:
|
The first error after install is normal (well, this is a bug coz the .ini isn't here yet).
I've no idea about your crash and the problem is that this is a 2 years old crappy VB program. If enough peoples get interested maybe I can try to remake it using C/C++ |
that probably will not happen, so i gues this will die just like hotlist did:/.
thx anyway:) |
I tested it on some computers (98/2K/XPsp1) while the week and I had no problem. Probably your problem is due to a dll-hell as I compiled it with a french edition of visual basic. If you have a VB6 compiler I can send you source code so that you can compile it by yourself and maybe solve your issue (pm me,I'll do my best to help you).
|
Back to the topic ;)
I just updated the .ape
http://goebish.free.fr/vfx/aviplayer.jpg ------------------------ V1.04 Changes Log ------------------------ - faster chroma keying - keys inverters - adjustable blend mode - .avi files folder selection - configurable auto stream change |
nice ape, but why an own menu for that ape? shouldnt it be in the 'Render' menu?
|
from the AVS Wishlist:
Render / AVI: Ability to provide code to define playback speed (or current frame) You could implement that in your AVI player :) setting the current frame might be hard though as you said your APE streams the AVIs instead of pre-loading them What about implementing the remaining blend modes? (by adding an option "Default renderer blend mode", like Render/Clear Screen has) I can give you fast MMX code for all of the blend modes, especially for maximum/minimum blending. |
Can I access (at least read) global registers from inside my APE ?
How do I retrieve default renderer blend mode ? Thanks :) |
yes you can
if you didnt find out how yet, you prolly have an old SDK get the new one here: http://download.nullsoft.com/winamp/.../wa502_sdk.zip you can also make codable components with it read the avs_ape.h file and you'll find out everything you need further questions: post here or pm me :) btw: don't use the blend functions in that header. they're about the slowest thing possible to do the job :) PM me if you want MMX blend functions |
I didn't know there was a new ape SDK version. I'm just looking at it, thanks :)
My code use these BLEND & BLEND_AVG functions, there're not so slow (but I use MMX asm for adjustable blend). I'll try to implement missing render modes soon, I'll ask you if i've problem with it. Don't really know when I'll have time because I start my new job tomorrow, so maybe one of those week end :) Is there an sample code for a codable component somewhere (so I can make x,y,w,h,speed & frameskip codable) ? |
i'm afraid there's no sample code anywhere...
you get a VM context handle with the "allocVM" function. you should do this once per instance, so that every instance has its own variables and things like that. the next thing you do (also once per instance) is registering variables. you might find this macro useful :) (modify to fit your variable name for the VM context) code: it registers a variable with the given name and initialises it to the given initvalue example: regvar(w, (double)w); you need to declare this variable somewhere (preferably in the class definition) double *VMV_w; after you have completed these steps, you can compile code with the "compileVMcode" function. This function takes a VM context and a piece of code as parameters and returns a VM code handle. you can then execute the code with the "executeCode" function. when you're done, don't forget to free the code, using the "freeCode" function, and the VM, using the "freeVM" function. btw about that mmx stuff: i have maximum blending in 2 MMX ops per 2 pixels and minimum blending in 3 MMX ops per 2 pixels (not including loading the mmx registers and storing the data back) |
Thank for your answer, I'll try to play with this VM.
I'm interested by your MMX routines but I need per pixel (not 2) because of keying as I don't render every pixels. I need a function like: code: |
code: don't forget "__asm emms" after you're done, or every floating point operation after that will fail (AVS code contains lots of floating point operations) |
You man are really great :)
As I said before I've not too much time now but I'll implement that one of these week end. |
btw you should really think about doing the whole filtering (including keying) in MMX asm... i'm sure there's a lot of speed to gain this way
|
would be helpful to add a version-resource to your APEs
|
| All times are GMT. The time now is 22:19. |
Copyright © 1999 - 2010 Nullsoft. All Rights Reserved.