Log in

View Full Version : 3.0 progress


Pages : 1 2 3 [4] 5

Bidoche
12th November 2005, 17:07
avs3 exposes scripts as VFW objects the same way avs2 does (under Windows).
Programes using it through VFW won't notice the change.
Those like VdubMod who directly use some avs features will need to be adapted.

Under Linux, avs3 links with gstreamer.


As for plugins, thx to Richard Berg's request, I finally came up with something I hope satisfactory (feedback welcome)
class Linker
{
virtual char * GetName() const = 0;

virtual PPlugin Link(LibraryHandle const& handle) const = 0;
};

class Plugin
{
//combination of those two = plugin identity
virtual char * GetName() const = 0;
virtual char * GetVersionLabel() const = 0;

virtual char * GetDescription() const = 0;
virtual char * GetFunctionDef() const = 0;

virtual bool CanUnloadNow() const = 0;

virtual VMFunction GetFunction(std::string const& logicalFunctionName) const = 0;
};

When a plugin is loaded, it will search for an exported "GetAvisynthLinkingMode" symbol (with C linkage)

If it cannot be found, the linking will be passed to the Linker named "legacy' if it is known (ie the definition of the LegacyLinker will be left to a plugin I think).
If it is found, it called to get the name of the linker to use to link the plugin.

Each linker then defines the interface it expects.

For the NativeLinker, provided by the avs3 core and named "native" :

all the methods from Plugin as exports with same prototype
+
void PluginInit(AvisynthServer& server, PPlugin& self)
//this is called after the NativeLinker created the PPlugin object, but before any function calls
//The point of passing PPlugin is allowing to declare Linker and ColorSpace to the server and have them keep the plugin alive

bond
14th November 2005, 14:04
hm, so if avisynth 3.0 is not relying anymore on vfw, will it also be able to handle variable framerate content?any news on this?

sl1pkn07
23rd November 2005, 15:49
C: core/blitter/memcopy.cpp
../../src/core/blitter/memcopy.cpp: In member function ‘virtual void avs::blitter::MemCopy::Blit(const avs::BYTE*&, int, avs::BYTE*&, int, const avs::Dimension&) const’:
../../src/core/blitter/memcopy.cpp:34: error: invalid use of undefined type ‘const struct avs::dimension<long int>’
../../src/core/blitter/../forward.h:61: error: declaration of ‘const struct avs::dimension<long int>’
../../src/core/blitter/memcopy.cpp:36: error: invalid use of undefined type ‘const struct avs::dimension<long int>’
../../src/core/blitter/../forward.h:61: error: declaration of ‘const struct avs::dimension<long int>’
../../src/core/blitter/memcopy.cpp:37: error: invalid use of undefined type ‘const struct avs::dimension<long int>’
../../src/core/blitter/../forward.h:61: error: declaration of ‘const struct avs::dimension<long int>’
../../src/core/blitter/memcopy.cpp:37: error: ‘memcpy’ no se declaró en este ámbito
make: *** [core/blitter/memcopy.o] Error 1
[sl1pkn07@SpinFlo linux]$

Avisynth CVS - 21-11-2005
STLport 5 CVS
GStreamer 0.8.11 (rpm)
Boost 1.33 (rpm)
Circular-buffer 3.7
Freetype 2.1.9 (rpm) not recognized in Configure

[sl1pkn07@SpinFlo linux]$ ./configure --enable-stlport5 --with-stl-path=/usr --with-boost-path=/usr --with-ffmpeg-path=/usr --with-freetype-config=/usr/bin/freetype-config
.....
checking for /usr/bin/freetype-config... no
ERROR:
The freetype-config development script you specified:
/usr/bin/freetype-config
was not found. Please check the path and make sure
the script exists and is executable.
configure: error: Fatal Error: no freetype-config detected.
[sl1pkn07@SpinFlo linux]$ ls /usr/bin/freetype*
/usr/bin/freetype-config
[sl1pkn07@SpinFlo linux]$

more errors:

C: text/freetype/library.cpp
../../src/text/freetype/library.cpp: In constructor ‘avs::text::freetype::Library::Library()’:
../../src/text/freetype/library.cpp:41: aviso: variable ‘error’ sin uso
../../src/text/freetype/library.cpp: In destructor ‘avs::text::freetype::Library::~Library()’:
../../src/text/freetype/library.cpp:49: aviso: variable ‘error’ sin uso
C: text/freetype/outline.cpp
../../src/text/freetype/outline.cpp: In destructor ‘avs::text::freetype::Outline::~Outline()’:
../../src/text/freetype/outline.cpp:52: aviso: variable ‘error’ sin uso
............
C: filters/levels/coloryuv/analyze.cpp
../../src/filters/levels/coloryuv/analyze.cpp: In member function ‘virtual avs::CPVideoFrame avs::filters::coloryuv::Analyze::MakeFrame(const avs::PVideoFrame&) const’:
../../src/filters/levels/coloryuv/analyze.cpp:51: aviso: variable ‘yLooseLimit’ sin uso
../../src/filters/levels/coloryuv/analyze.cpp:52: aviso: variable ‘uLooseLimit’ sin uso
../../src/filters/levels/coloryuv/analyze.cpp:53: aviso: variable ‘vLooseLimit’ sin uso
..............
C: freetype/face.cpp
../../src/freetype/face.cpp: In member function ‘avs::Vecteur avs::freetype::Face::GetKerning(unsigned int, unsigned int) const’:
../../src/freetype/face.cpp:67: aviso: variable ‘error’ sin uso
../../src/freetype/face.cpp: In member function ‘void avs::freetype::Face::SetCharSize(const avs::Dimension&, const avs::Dimension&)’:
../../src/freetype/face.cpp:77: aviso: variable ‘error’ sin uso
C: freetype/glyph.cpp
C: freetype/library.cpp
../../src/freetype/library.cpp: In constructor ‘avs::freetype::Library::Library()’:
../../src/freetype/library.cpp:40: aviso: variable ‘error’ sin uso
../../src/freetype/library.cpp: In destructor ‘avs::freetype::Library::~Library()’:
../../src/freetype/library.cpp:48: aviso: variable ‘error’ sin uso
............
C: avisynth_c/clip_c.cpp
../../src/avisynth_c/clip_c.cpp:60: aviso: se definió ‘stlp_std::string get_script(char*)’ pero no se usa
C: gstreamer/structure.cpp
../../src/gstreamer/structure.cpp: In member function ‘int avs::gstreamer::Structure::GetIntField(const char*) const’:
../../src/gstreamer/structure.cpp:44: aviso: variable ‘success’ sin uso
../../src/gstreamer/structure.cpp: In member function ‘bool avs::gstreamer::Structure::GetBoolField(const char*) const’:
../../src/gstreamer/structure.cpp:55: aviso: variable ‘success’ sin uso
../../src/gstreamer/structure.cpp: In member function ‘double avs::gstreamer::Structure::GetDoubleField(const char*) const’:
../../src/gstreamer/structure.cpp:66: aviso: variable ‘success’ sin uso
../../src/gstreamer/structure.cpp: In member function ‘long unsigned int avs::gstreamer::Structure::GetFourCCField(const char*) const’:
../../src/gstreamer/structure.cpp:77: aviso: variable ‘success’ sin uso
C: gstreamer/signalhandler.cpp
C: gstreamer/structure/audio.cpp
C: gstreamer/structure/video.cpp
../../src/gstreamer/structure/video.cpp:109:9: warning: multi-character character constant
../../src/gstreamer/structure/video.cpp:110:9: warning: multi-character character constant
../../src/gstreamer/structure/video.cpp:111:9: warning: multi-character character constant
..............
C: import/avi/streamheader.cpp
In file included from ../../src/import/avi/streamheader.cpp:25:
../../src/import/avi/streamheader.h:70:44: warning: multi-character character constant
../../src/import/avi/streamheader.h:71:44: warning: multi-character character constant
../../src/import/avi/streamheader.h:72:43: warning: multi-character character constant
C: import/avi/chunkheader.cpp
../../src/import/avi/chunkheader.cpp: In static member function ‘static boost::optional<avs::import::avi::ChunkHeader> avs::import::avi::ChunkHeader::Locate(stlp_std::istream&, long unsigned int, long int&)’:
../../src/import/avi/chunkheader.cpp:66: aviso: comparación entre expresiones enteras signed y unsigned
C: import/avi/listheader.cpp
../../src/import/avi/listheader.cpp: In static member function ‘static boost::optional<avs::import::avi::ListHeader> avs::import::avi::ListHeader::Locate(stlp_std::istream&, long unsigned int, long int&)’:
../../src/import/avi/listheader.cpp:45: aviso: comparación entre expresiones enteras signed y unsigned
............
C: parser/function/scriptfunction.cpp
../../src/parser/function/call.h: In member function ‘void avs::parser::functor::function::Call<returnVoid>::operator()(avs::parser::VMState&) const [with bool returnVoid = false]’:
../../src/parser/function/../vmoperation.h:71: instantiated from ‘void avs::parser::detail::functor_callback<void, Functor>::operator()(avs::parser::VMState&) const [with Functor = avs::parser::functor::function::Call<false>]’
../../src/parser/function/scriptfunction.cpp:66: instantiated from here
../../src/parser/function/call.h:57: aviso: variable ‘type’ sin uso
../../src/parser/function/call.h: In member function ‘void avs::parser::functor::function::Call<returnVoid>::operator()(avs::parser::VMState&) const [with bool returnVoid = true]’:
../../src/parser/function/../vmoperation.h:71: instantiated from ‘void avs::parser::detail::functor_callback<void, Functor>::operator()(avs::parser::VMState&) const [with Functor = avs::parser::functor::function::Call<true>]’
../../src/parser/function/scriptfunction.cpp:66: instantiated from here
../../src/parser/function/call.h:57: aviso: variable ‘type’ sin uso
.............
C: core/colorspace/get.cpp
../../src/core/colorspace/concrete/../../utility/valuecache.h: In member function ‘boost::shared_ptr<T> avs::utility::value_cache<T, Synchronizer, Creator>::Get() const [with T = const avs::ColorSpace, Synchronizer = avs::utility::synchronizer::None, Creator = const avs::ColorSpace* (*)()]’:
../../src/core/colorspace/concrete/map.h:75: instantiated from here
../../src/core/colorspace/concrete/../../utility/valuecache.h:63: aviso: variable ‘synchronizer’ sin uso
C: core/colorspace/concrete/map.cpp
../../src/core/colorspace/concrete/../../utility/valuecache.h: In member function ‘boost::shared_ptr<T> avs::utility::value_cache<T, Synchronizer, Creator>::Get() const [with T = const avs::ColorSpace, Synchronizer = avs::utility::synchronizer::None, Creator = const avs::ColorSpace* (*)()]’:
../../src/core/colorspace/concrete/map.h:75: instantiated from here
../../src/core/colorspace/concrete/../../utility/valuecache.h:63: aviso: variable ‘synchronizer’ sin uso
..........
C: core/colorspace/concrete/yv12.cpp
In file included from ../../src/core/colorspace/concrete/yv12.cpp:28:
../../src/core/colorspace/concrete/../../../export/vfw/exporter/yv12.h:40:41: warning: multi-character character constant
..........


any idea?

dew

d'Oursse
23rd November 2005, 17:37
[sl1pkn07@SpinFlo linux]$ ./configure --enable-stlport5 --with-stl-path=/usr --with-boost-path=/usr --with-ffmpeg-path=/usr --with-freetype-config=/usr/bin/freetype-config
.....
checking for /usr/bin/freetype-config... no
ERROR:
The freetype-config development script you specified:
/usr/bin/freetype-config
was not found. Please check the path and make sure
the script exists and is executable.
configure: error: Fatal Error: no freetype-config detected.
[sl1pkn07@SpinFlo linux]$ ls /usr/bin/freetype*
/usr/bin/freetype-config
[sl1pkn07@SpinFlo linux]$


strange. There should be no problem. I'll check that. Nevertheless, it's useless to give the path of freetype-config if it's in the PATH (/usr/bin should be in the path, I think). Also, disable ffmpeg (--disable-ffmpeg), it's not supported anymore as it has some problems with audio.


more errors:

C: text/freetype/library.cpp
../../src/text/freetype/library.cpp: In constructor ‘avs::text::freetype::Library::Library()’:
../../src/text/freetype/library.cpp:41: aviso: variable ‘error’ sin uso
../../src/text/freetype/library.cpp: In destructor ‘avs::text::freetype::Library::~Library()’:
../../src/text/freetype/library.cpp:49: aviso: variable ‘error’ sin uso
C: text/freetype/outline.cpp
../../src/text/freetype/outline.cpp: In destructor ‘avs::text::freetype::Outline::~Outline()’:
../../src/text/freetype/outline.cpp:52: aviso: variable ‘error’ sin uso
............
C: filters/levels/coloryuv/analyze.cpp
../../src/filters/levels/coloryuv/analyze.cpp: In member function ‘virtual avs::CPVideoFrame avs::filters::coloryuv::Analyze::MakeFrame(const avs::PVideoFrame&) const’:
../../src/filters/levels/coloryuv/analyze.cpp:51: aviso: variable ‘yLooseLimit’ sin uso
../../src/filters/levels/coloryuv/analyze.cpp:52: aviso: variable ‘uLooseLimit’ sin uso
../../src/filters/levels/coloryuv/analyze.cpp:53: aviso: variable ‘vLooseLimit’ sin uso
..............
C: freetype/face.cpp
../../src/freetype/face.cpp: In member function ‘avs::Vecteur avs::freetype::Face::GetKerning(unsigned int, unsigned int) const’:
../../src/freetype/face.cpp:67: aviso: variable ‘error’ sin uso
../../src/freetype/face.cpp: In member function ‘void avs::freetype::Face::SetCharSize(const avs::Dimension&, const avs::Dimension&)’:
../../src/freetype/face.cpp:77: aviso: variable ‘error’ sin uso
C: freetype/glyph.cpp
C: freetype/library.cpp
../../src/freetype/library.cpp: In constructor ‘avs::freetype::Library::Library()’:
../../src/freetype/library.cpp:40: aviso: variable ‘error’ sin uso
../../src/freetype/library.cpp: In destructor ‘avs::freetype::Library::~Library()’:
../../src/freetype/library.cpp:48: aviso: variable ‘error’ sin uso
............
C: avisynth_c/clip_c.cpp
../../src/avisynth_c/clip_c.cpp:60: aviso: se definió ‘stlp_std::string get_script(char*)’ pero no se usa
C: gstreamer/structure.cpp
../../src/gstreamer/structure.cpp: In member function ‘int avs::gstreamer::Structure::GetIntField(const char*) const’:
../../src/gstreamer/structure.cpp:44: aviso: variable ‘success’ sin uso
../../src/gstreamer/structure.cpp: In member function ‘bool avs::gstreamer::Structure::GetBoolField(const char*) const’:
../../src/gstreamer/structure.cpp:55: aviso: variable ‘success’ sin uso
../../src/gstreamer/structure.cpp: In member function ‘double avs::gstreamer::Structure::GetDoubleField(const char*) const’:
../../src/gstreamer/structure.cpp:66: aviso: variable ‘success’ sin uso
../../src/gstreamer/structure.cpp: In member function ‘long unsigned int avs::gstreamer::Structure::GetFourCCField(const char*) const’:
../../src/gstreamer/structure.cpp:77: aviso: variable ‘success’ sin uso
C: gstreamer/signalhandler.cpp
C: gstreamer/structure/audio.cpp
C: gstreamer/structure/video.cpp
../../src/gstreamer/structure/video.cpp:109:9: warning: multi-character character constant
../../src/gstreamer/structure/video.cpp:110:9: warning: multi-character character constant
../../src/gstreamer/structure/video.cpp:111:9: warning: multi-character character constant
..............
C: import/avi/streamheader.cpp
In file included from ../../src/import/avi/streamheader.cpp:25:
../../src/import/avi/streamheader.h:70:44: warning: multi-character character constant
../../src/import/avi/streamheader.h:71:44: warning: multi-character character constant
../../src/import/avi/streamheader.h:72:43: warning: multi-character character constant
C: import/avi/chunkheader.cpp
../../src/import/avi/chunkheader.cpp: In static member function ‘static boost::optional<avs::import::avi::ChunkHeader> avs::import::avi::ChunkHeader::Locate(stlp_std::istream&, long unsigned int, long int&)’:
../../src/import/avi/chunkheader.cpp:66: aviso: comparación entre expresiones enteras signed y unsigned
C: import/avi/listheader.cpp
../../src/import/avi/listheader.cpp: In static member function ‘static boost::optional<avs::import::avi::ListHeader> avs::import::avi::ListHeader::Locate(stlp_std::istream&, long unsigned int, long int&)’:
../../src/import/avi/listheader.cpp:45: aviso: comparación entre expresiones enteras signed y unsigned
............
C: parser/function/scriptfunction.cpp
../../src/parser/function/call.h: In member function ‘void avs::parser::functor::function::Call<returnVoid>::operator()(avs::parser::VMState&) const [with bool returnVoid = false]’:
../../src/parser/function/../vmoperation.h:71: instantiated from ‘void avs::parser::detail::functor_callback<void, Functor>::operator()(avs::parser::VMState&) const [with Functor = avs::parser::functor::function::Call<false>]’
../../src/parser/function/scriptfunction.cpp:66: instantiated from here
../../src/parser/function/call.h:57: aviso: variable ‘type’ sin uso
../../src/parser/function/call.h: In member function ‘void avs::parser::functor::function::Call<returnVoid>::operator()(avs::parser::VMState&) const [with bool returnVoid = true]’:
../../src/parser/function/../vmoperation.h:71: instantiated from ‘void avs::parser::detail::functor_callback<void, Functor>::operator()(avs::parser::VMState&) const [with Functor = avs::parser::functor::function::Call<true>]’
../../src/parser/function/scriptfunction.cpp:66: instantiated from here
../../src/parser/function/call.h:57: aviso: variable ‘type’ sin uso
.............
C: core/colorspace/get.cpp
../../src/core/colorspace/concrete/../../utility/valuecache.h: In member function ‘boost::shared_ptr<T> avs::utility::value_cache<T, Synchronizer, Creator>::Get() const [with T = const avs::ColorSpace, Synchronizer = avs::utility::synchronizer::None, Creator = const avs::ColorSpace* (*)()]’:
../../src/core/colorspace/concrete/map.h:75: instantiated from here
../../src/core/colorspace/concrete/../../utility/valuecache.h:63: aviso: variable ‘synchronizer’ sin uso
C: core/colorspace/concrete/map.cpp
../../src/core/colorspace/concrete/../../utility/valuecache.h: In member function ‘boost::shared_ptr<T> avs::utility::value_cache<T, Synchronizer, Creator>::Get() const [with T = const avs::ColorSpace, Synchronizer = avs::utility::synchronizer::None, Creator = const avs::ColorSpace* (*)()]’:
../../src/core/colorspace/concrete/map.h:75: instantiated from here
../../src/core/colorspace/concrete/../../utility/valuecache.h:63: aviso: variable ‘synchronizer’ sin uso
..........
C: core/colorspace/concrete/yv12.cpp
In file included from ../../src/core/colorspace/concrete/yv12.cpp:28:
../../src/core/colorspace/concrete/../../../export/vfw/exporter/yv12.h:40:41: warning: multi-character character constant
..........


any idea?

dew

I think that aviso means warning. It's not errors. It's not important : the compiler does not see that these variables are used

note that STLport 5.0 has been released.
I'll suppress the stlport 4.6.2 support in configuration.

for the first problem, I don't understand how it's possible to have this error. Dimension is declared. Also, memcpy should be on your computer

what is your distro ?

also, I would like to say that the test program should be a bit bigger in some days. It will be possible to compress a file with x264. The gui will look a bit like virtualdub's one

sl1pkn07
24th November 2005, 01:23
my system is Fedora Core4, use GCC 4.0.1 and Kernel 2.6.14-1.1637

esby
24th November 2005, 12:13
hm, so if avisynth 3.0 is not relying anymore on vfw, will it also be able to handle variable framerate content?

any news on this?


For having talked a bit with bidoche one week ago, I think the answer might be a 'no' for the current state.
Probably because the vfr does not bring much in term of video treatment, of course, it is useful when you want to storage video stream using different framerates, but in this case, it is not really a variable framerate, but just a video having segments of different but fixed framerate, I think mkv support that already.
Since the avi container does not support vfr, I don't personnaly expect avisynth (any version) to support it.
Now you can still simulate it with external timestamp files or maybe with an application asking the timestamp/framerate for each frame, supposing the container used can support it and supposing the corresponding interface is implemented.

esby

d'Oursse
19th December 2005, 23:52
@sl1pkn07: the errors in memcopy.cpp are fixed in cvs.

it has just compiled fine on my distro (ubuntu hoary with g++ 4.0).

tell me if there are others errors for you. Ignore the warnings.

other changes:
* STLport 4.6.2 support is removed. Only STLport 5.0 is supported now. Follow the instructions for the installation of STLport 5.0 in the docs/html directory
* ffmpeg support is removed. Only gstreamer (0.8.11) is used. When gstreamer 0.10 is usuable, i'll add support for it. It's supposed to be better than gstreamer 0.8, but it has a BIG problem with seeking, so that it's completely useless with avs3 right now.

when i finish the gtk widget for the configuration of the x264 (and when it is accepted by Lauren), i'll commit an upgraded test program, which will be able to compress with x264 and put the video in a mkv. Right now, the one on my hd works :)

sl1pkn07
20th December 2005, 02:52
hi.

http://sl1pkn07.no-ip.com/Downloads/avisynth-error.log :S

Fedora Core 4
STLport 5.0.0 (compile)
Boost 1.33 (RPM)
Freetype 2.1.9 (RPM)
GStreamer 0.8.11 (RPM)
GStreamer-ffmpeg 0.8.7 (RPM)
GStreamer-plugins 0.8.11 (RPM)
Boost-Jam 3.1.11 (RPM)
GCC & G++ 4.0.2 (RPM)
GTK2 2.8.7 (RPM)

saludos

PD: revise "Installation d'Avisynth 3.0" steps in http://www.unite-video.com/phpbb/viewtopic.php?p=68206&sid=4e7fe87320bf6d8739455423c21f0b0d#68206

d'Oursse
20th December 2005, 11:29
i've also that when I use ifstream with stlport 5.0. I've fixed that by using C code. It's not a good solution, but the test program should compile, now.

What are the problems with the installation steps on Unite Video ?

edit: don't forget to set LD_LIBRARY_PATH to the correct directories if a shared library is not found

sl1pkn07
21st December 2005, 13:33
you can put the steps to do it?

------------------------------

cd avisynth/build
tar jxvf circular_buffer_v3.7.tar.bz2
cd circular_buffer
su (tapez votre mot de passe root)
cp -R boost /usr/local/include/boost-1_33/ -> cp -R * /usr/local/include/boost-1_33/
[ctrl-D] (pour revenir un mode utillisateur)

cd ../linux
./booststrap.sh -> ./boostrap.sh (chmod +x)
./configure

Kopernikus
21st March 2006, 12:18
Are there any news? Is the parser working?

d'Oursse
21st March 2006, 12:24
i'm working on the gstreamer 0.10 port, but I have 1 remaining problem :( Gstreamer 0.8 is not supported anymore, and gstreamer 0.10 is thread safe, has better seeking, lots of fixes compared to the 0.8, ...

I let Bidoche answer for the core stuff

d'Oursse
7th April 2006, 22:12
Some news :

I've ported, finally, avisynth to gstreamer 0.10 (linux version). It was harder than I thought, because of threads problems. Now I have made a specific gstreamer sink for avs3. It makes the code simpler and smaller.
i've updated the C API, and now the application test uses that api. The application can read script files.

Example of avs file:
GstreamerSource("/mnt/win_d/provi/blood.avi",0,0)

the 2 last parameters are the index of the video and audio streams. You wonder why I have added an index for the video stream. Well someone told me that mkv can have several video streams, so, I've added it.
I don't think that Bidoche has worked a lot on the parser, so I think that right now, only sources can be used, iirc.

Things that I have to work on :

audio part : I have to add the code, and maybe a specific gstreamer sink for that :) Right now, all files with audio part will not work because of this.
add more feature to the app test (save a file using x264, slider not handled yet, ...)


it compiles on my computer and the test program works on avi and ogm without sound. But it has some problems. Some come from gstreamer (mkv files), some from me (mainly, missing code of the audio part).

So I know that most of those who will try to test it will certainly have a lot of problems with using it. But, I would be glad to, at least, have some reports about difficulties while compiling it.

here are the last news ;)

thank you

edit : the anon cvs of SF is certainly not up to date with the dev one. Wait some hours after this post before doing a check out

IanB
8th April 2006, 05:55
The sync between dev and anon is still disabled after the crash. See here for details http://sourceforge.net/docs/A04/en

Zarxrax
14th April 2006, 22:17
It looks like Google's Summer of Code is up for another year. Will Avisynth 3.0 be getting in on the act this time around?

d'Oursse
18th April 2006, 08:14
it's not obvious.
1) It needs a mentor.
2) It needs a good student, who want to code on avs3
3) It needs to be accepted by the program.

Only point 2) would be easy to match, afaik :/ For example, enlightenment (which is a big project) has been rejected (point 3) )

dirio49
4th June 2006, 14:45
Any news?;)

d'Oursse
4th June 2006, 20:18
about the Summer code project : it's not in the project.

about the code itself, look at my homepage, it's the avs3 web page. There is some news on it. Especially, the installation on linux is there, now (look at the documentation link)

Bidoche is working on a new parser. I'll improve the avisynth test and i'm supporting fontconfig, so that fonts are correctly found on linux system (it can be used on windows too).

d'Oursse
25th June 2006, 12:34
i've made a small archive that contains the library and the test program (for linux. I'll try to make a windows version during the next week with mingw)

the archive can be downloaded there :

http://www.iecn.u-nancy.fr/~torri/files/avs3.tar.bz2

it contains 2 subdirs :

avs3/lib : contains the libraries for avisynth, boost, freetype fontconfig and x264
avs3/bin : contains the program avisynth_test

copy the libraries of avs3/lib that you don't have in /usr/lib (or any dir where shared lib can be found)
copy avisynth_test in a dir of your PATH

You must have gstreamer 0.10 and gtk+ 2.8 installed

with the test program, you can load scripts (I'va added one in the dir avs3/ of the archive), compress with x264, go through the clip with the slider of the gui.

right now, gstreamer can't load ogm files. I've tested some mpeg, avi, mp4 and mkv files. It seems to work.

tell me if i've missed a file in the archive ;)

sl1pkn07
25th June 2006, 19:28
[sl1pkn07@SpinFlo bin]$ ./avisynth_test
accept /home/sl1pkn07/.wine/drive_c/prueba.avs
terminate called after throwing an instance of 'avs::exception::Generic'
what(): Unable to resolve function
Abortado
[sl1pkn07@SpinFlo bin]$

[sl1pkn07@SpinFlo bin]$ ./avisynth_test
accept /home/sl1pkn07/.wine/drive_c/amv.avi
terminate called after throwing an instance of 'std::bad_alloc'
what(): St9bad_alloc
Abortado
[sl1pkn07@SpinFlo bin]$

[sl1pkn07@SpinFlo bin]$ cat /home/sl1pkn07/.wine/drive_c/prueba.avs
GstreamerSource("/home/sl1pkn07/.wine/drive_c/amv.avi")

[sl1pkn07@SpinFlo bin]$

VIDEO: [DX50] 640x480 24bpp 23.980 fps 635.0 kbps (77.5 kbyte/s)

using Fedora core 5 and all dependences (freetype, x264, boost, gstreamer,STLport....)

d'Oursse
25th June 2006, 19:32
use :

GstreamerSource("/home/sl1pkn07/.wine/drive_c/amv.avi", 0, 0)

for the script.

Also, could you tell me if it works with blood.avi and blood.mkv, that you can find here : http://www.iecn.u-nancy.fr/~torri/files/gstreamer_test_seek/

thank you

sl1pkn07
25th June 2006, 19:55
oks, sorry :S

one cuestion... VSfilter (subtitle render) working on this method? or he is not compatible still with avisynth 3.0

thanks

d'Oursse
25th June 2006, 20:07
helas, no. No avs 2.5 filter will be compatible. We'll have nevertheless a good text renderer (for example : http://avisynth3.unite-video.com/avs_text.png)
A friend will make some plugin ports this summer. Maybe he'll do the vsfilter port :)

sl1pkn07
25th June 2006, 20:43
roger! ^^

whereupon it has effects karaoke, scrolls, moves, fades (the basic thing for fansubing) would be very useful, is what we needed more at this moment to be able to encoder in this platform (linux/macos).

greetings and good luck!

sory for my blablabla english :P

Mug Funky
26th June 2006, 05:31
ooh, this is exciting :)

No avs 2.5 filter will be compatible.

would it be possible to fudge it with a "loadpluginex" type plugin?

it doesn't worry me either way, but it'd be nice because a lot of old filters are no longer developed but are still useful.

Blue_MiSfit
26th June 2006, 18:28
This is excellent news. I assume that if 3.0 will run on Linux that it could theoretically be ported to Mac OS X without too much trouble. Imagine Final Cut Pro -> AviSynth -> x264 for output. I'm very excited by this possibility!

~MiSfit

d'Oursse
26th June 2006, 18:56
mug funky : i think that everything is possible :)

blue_misfit : No problem for Mac OSX : if you have a c++ compiler (g++ exists for Mac OSX, if i'm not misaken), freetype, fontconfig, gstreamer and its plugins, you can have the lib. With gtk and x264, you can have the gui.

that makes me think that maybe a small app with no gui can be usefull. And in fact, when avisynth 3.0 is stable, an x264 input will be great too (i've already made one, but pengvado didn't want to add it, as avs3 is not released yet)

danpos
27th June 2006, 01:44
@d'Oursse

I tried it you and I got this error:

danpos@WOLF:~/avs3/bin$ ./avisynth_test
./avisynth_test: symbol lookup error: ./avisynth_test: undefined symbol: _ZTIN8stlp_std8ios_baseE

Did I miss something?

TIA,

d'Oursse
27th June 2006, 07:02
danpos : do you have an amd 64 or another processor different from common x86 ?

danpos
27th June 2006, 07:43
danpos : do you have an amd 64 or another processor different from common x86 ?

I think that this isn't the case: AMD Athlon XP+ 2600. I'm running Ubuntu 'Dapper Drake' GNU/Linux ...

See you,

d'Oursse
27th June 2006, 07:59
strange. It should not use stlport iostream. And if it needs it, the error message would be different.

nevertheless, install that file :
http://www.iecn.u-nancy.fr/~torri/files/libstlport.so.5.0.0
in the same dir than the boost files, and do a symbolic link from this file to the files libstlport.so.5.0 libstlport.so.5and libstlport.so

danpos
27th June 2006, 09:15
@d'Oursse

OK, this lib fixed the pb and I got load the avisynth_test program! :)

But when I tried load the test.avs script out, avisynth_test crashes out:

danpos@WOLF:~/avs3/bin$ ./avisynth_test
accept /home/danpos/avs3/bin/test.avs
Pipeline Create
Pipeline Create
new pad video/x-raw-rgb; video/x-raw-yuv


(<unknown>:8769): GStreamer-CRITICAL **: gst_bin_add: assertion `GST_IS_ELEMENT (element)' failed

(<unknown>:8769): GStreamer-CRITICAL **: gst_element_get_pad: assertion `GST_IS_ELEMENT (element)' failed

(<unknown>:8769): GStreamer-CRITICAL **: gst_pad_link_prepare: assertion `GST_IS_PAD (sinkpad)' failed
terminate called after throwing an instance of 'avs::exception::Generic'
what(): Gstreamer: can not link pads
Abortado

I tried an avi and mkv file using full path to both files:

GstreamerSource("/home/danpos/Vídeos/bla.avi",0,0)

and

GstreamerSource("/home/danpos/avs3/bin.avi",0,0)

Ideas?

Regards,

d'Oursse
27th June 2006, 11:13
hohooo, i think that i have forgotten the video and audio sinks in the archive :)

I'll make another archive this evening, with stlport and those sinks.

sl1pkn07
27th June 2006, 11:58
blabla.avi",(space)0,(space)0)

=)

d'Oursse
27th June 2006, 18:19
I've made an archive here :

http://www.iecn.u-nancy.fr/~torri/files/avs3.tar.bz2

1) in avs3/ run 'make' to have informations where the files will be intalled
2) In Makefile, change prefix, libdir, bindir and libdir_gstreamer to where you want to install the files. Check also if you need to install freetype, fontconfig or x264
3) 'make install' in order to install the files
4) 'make uninstall to remove them

I suggest that you install the files in a specific prefix (see the output of 'make'). Be sure that libdir_gstreamer is the dir where the gstreamer plugins are located

I hope that everything is in the archive, now

danpos
27th June 2006, 18:46
@d'Oursse

OK, time to boot my Ubunty GNU/Linux SO and so try this new package out. :)

I let you know about my findings soon.

See you,

danpos
28th June 2006, 04:26
@d'Oursse

Hi there! I got success to build the avisynth_test.exe following yours hints. :) I play with it a bit and so I got some success to renders some videos which were done with different container. Lets go to output from using avisynth_test.exe (again, I'm using GNU/Linux Ubuntu 'Dapper'):

#1: container MPEG (MPEG2 PS - video MPEG-2 NTSC DVD / audio AC3 2.0 - encoded from a small AVI clip with avidemuxer 2.2.0 svn 2091):

I load the .mpg file into avisynth_test.exe and got sucess to use menus (see the picture, where I used the 'info' button present on file Menu; I got success to go frames back and forth using edit Menu -> Goto), but the slider bar is buggy: avisynth_test.exe hungs up and so <ctrl>+c is the way to go ...

http://img46.imageshack.us/img46/5134/capturadatela8tx.th.png (http://img46.imageshack.us/my.php?image=capturadatela8tx.png)

Here's the stdout from avisynth_test.exe:

danpos@WOLF:~/avs3$ avisynth_test
accept /home/danpos/avs3/test.avs
Pipeline Create
Pipeline Create
new pad video/x-raw-yuv, format=(fourcc){ YV12, I420, Y42B }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001, 60/1 }

No accelerated IMDCT transform found
new pad audio/x-raw-float, endianness=(int)1234, width=(int)32, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]

new pad video/x-raw-yuv, format=(fourcc){ YV12, I420, Y42B }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001, 60/1 }

No accelerated IMDCT transform found
new pad audio/x-raw-float, endianness=(int)1234, width=(int)32, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]

size : 720x480
frame count : 2452
fps : 30000/1001
colorspace : YV12
sample count : 3927266
sample rate : 48000
channels : 2


frame count !! : 2452
we seek video... 0
Seek !
Frame number : 0
Time : 0
Timestamp : 161322222
Stream time : 161322222
seek to : 0
size (preview) : 720x480 1
FRAME : 0
we seek video... 50
Seek !
Frame number : 50
Time : 1668333333
Timestamp : 7752244444
Stream time : 7752244444
seek to : 1668333333
size (preview) : 720x480 1
we seek video... 50
Seek !
Frame number : 50
Time : 1668333333
Timestamp : 7752244444
Stream time : 7752244444
seek to : 1668333333
size (preview) : 720x480 1
we seek video... 1000
Seek !
Frame number : 1000
Time : 33366666666
Timestamp : 75319744444
Stream time : 75319744444
seek to : 33366666666
size (preview) : 720x480 1
we seek video... 1000
Seek !
Frame number : 1000
Time : 33366666666
Timestamp : 75319744444
Stream time : 75319744444
seek to : 33366666666
size (preview) : 720x480 1
we seek video... 2500
Seek !
Frame number : 2500
Time : 83416666666
Timestamp : 154899244444
Stream time : 154899244444
seek to : 83416666666
size (preview) : 720x480 1
we seek video... 2451
Seek !
Frame number : 2451
Time : 81781700000
Timestamp : 151896244444
Stream time : 151896244444
seek to : 81781700000
size (preview) : 720x480 1
temps : 81,815067
x264.cfg: Arquivo ou diretório não encontrado
Loading default configuration
Writing configuration to /home/danpos/.x264/x264.cfg
Loading configuration from /home/danpos/.x264/x264.cfg
Pipeline Create
Pipeline Create
new pad video/x-raw-yuv, format=(fourcc){ YV12, I420, Y42B }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001, 60/1 }

No accelerated IMDCT transform found
new pad audio/x-raw-float, endianness=(int)1234, width=(int)32, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]

new pad video/x-raw-yuv, format=(fourcc){ YV12, I420, Y42B }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001, 60/1 }

No accelerated IMDCT transform found
new pad audio/x-raw-float, endianness=(int)1234, width=(int)32, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]

size : 720x480
frame count : 2451
fps : 30000/1001
colorspace : YV12
sample count : 3927132
sample rate : 48000
channels : 2
avs3 [info]: 720x480 @ 1,00 fps (2451 frames)
x264 [info]: using cpu capabilities MMX MMXEXT SSE 3DNow!
we seek video... 0
Seek !
Frame number : 0
Time : 0
Timestamp : 161322222
Stream time : 161322222
seek to : 0
we seek video... 1
Seek !
Frame number : 1
Time : 33366666
we seek video... 0
Seek !
Frame number : 0
Time : 0
Timestamp : 161322222
Stream time : 161322222
seek to : 0
Falha de segmentação

#2: container AVI (video codec DIV5 / audio LPCM 48 KHz, previously edited with avidemux):

http://img263.imageshack.us/img263/6342/capturadatela14ah.th.png (http://img263.imageshack.us/my.php?image=capturadatela14ah.png)

danpos@WOLF:~/avs3$ avisynth_test
accept /home/danpos/avs3/test.avs
Pipeline Create
Pipeline Create
new pad video/x-raw-rgb; video/x-raw-yuv

new pad video/x-raw-rgb; video/x-raw-yuv

size : 512x384
frame count : 4661
fps : 2997/125
colorspace : YV12
No audio...


frame count !! : 4661
we seek video... 0
Seek !
Frame number : 0
Time : 0
Timestamp : 12595929262
Stream time : 12595929262
seek to : 0
size (preview) : 512x384 1
FRAME : 0
temps : 194,402736
temps : 194,402736
we seek video... 4660
Seek !
Frame number : 4660
Time : 194361027694
Timestamp : 194361061027
Stream time : 194361061027
seek to : 194361027694
size (preview) : 512x384 1
we seek video... 4660
Seek !
Frame number : 4660
Time : 194361027694
Timestamp : 194361061027
Stream time : 194361061027
seek to : 194361027694
size (preview) : 512x384 1
we seek video... 0
Seek !
Frame number : 0
Time : 0

With this file, avisynth_test.exe hung up when I tried go to end of video.

I don't got sucess load a MKV file (H.264 / AAC) and with some others small AVI clips with MP3 VBR audio ...

Take care,

d'Oursse
28th June 2006, 05:54
danpos: I'm not surprised about the mpeg file. Gtreamer is not that good with them. But it's strange that you have problems with the avi and mkv files. Can I download these files somewhere, please ? (i don't have many)

danpos
28th June 2006, 21:44
Can I download these files somewhere, please ? (i don't have many)

You've got a PM! :)

See you,

d'Oursse
2nd July 2006, 19:15
the main problem (exception thrown + segmentation fault) was coming from a bug in the audio part of avs3 (mp3, mainly). It's fixed. The hang up is coming from the exact seeking in gstreamer, which is not... exact. Well, not for all demuxers and decoders. I can't do much about that for now, except a bad hack. Gstreamer needs to be fixed ;)

danpos
2nd July 2006, 20:51
the main problem (exception thrown + segmentation fault) was coming from a bug in the audio part of avs3 (mp3, mainly). It's fixed. The hang up is coming from the exact seeking in gstreamer, which is not... exact. Well, not for all demuxers and decoders. I can't do much about that for now, except a bad hack. Gstreamer needs to be fixed ;)

OK, good to know that you've fixed the problem with avs3. Lets wait for a Gstreamer fix so ... ;)

Keep up the development. :)

Regards,

ChrisBensch
1st November 2006, 07:56
Is this still being working on? I can't download the files earlier in the post...

d'Oursse
1st November 2006, 16:25
yes it is, even if it has been slow down, as the new parser takes some time to be written. I've changed my server, and i've not moved the new files.
I'll try to put new files on my new server next week (i'll be far from a computer for somes days)

Spotteri
10th November 2006, 12:35
It's excellent news that avisynth is finally available for linux (without wine). Linux video editing just took major step forward.

I'm trying to compile avisynth using the guide on the avs3 homepage. Everything goes fine and no errors (well some headers and libraries had to be linked), but I was left without a GUI. For some reason ./configure doesn't find my x264 install (latest from svn). Has anyone had a similar problem? Where does the ./configure look for it?

d'Oursse
10th November 2006, 13:38
you need the gtk interface for x264
you can enable it with --enable-gtk passed to x264 configure. It's disabled by default
I should add more precise comments about the problems

Spotteri
10th November 2006, 21:11
Well that did it.

Sorry about being so vague, but that was my problem. Only thing I had was ./configure telling it can't find x264 codec(not even where it was looking for it). Good thing that you knew what was going on. And now for some testing....

d'Oursse
10th November 2006, 21:21
well, I wrote the gtk interface of x264 especially for the gui of avs3, so it was easy for me to know what the problem was :D

d'Oursse
12th March 2007, 00:05
Gstreamer developpers are allowing projects using Gstreamer to participate to the Google Summer of Code. As Avisynth 3 uses it...

Here is the SoC project page ( http://live.gnome.org/GStreamer/SoC2007) of Gstreamer.

If you are a student and are interested in that project, here is the timeline (http://code.google.com/support/bin/answer.py?answer=60325&topic=10729
).

and about the progress, well the low level parser is almost finished and the C api and the gui are a bit improved. I'm also writing a doc for the design of the parser.

liquidator87
4th March 2008, 19:00
How can I obtain the binary? the code from CVS doesn't compile, and the link return 404...

liquidator87
19th March 2008, 11:10
Anyone? Can someone send me the archive mentioned earlier?