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. |
12th November 2013, 18:10 | #1 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Avisynth.H files for MinGW builds?
Since building C++ plugins is atm quite specified for M$ Visual Studio only or C version namely avisynth_c.H.
Source GIT: mingw avisynth.H files Atm all versions are broken and in development status. For those who wonders why? It would be nice to make C++ plugins in Linux and Windows with MinGW compiler using avisynth.h c++ header. Files:
Current state:
Last edited by Jeroi; 19th November 2013 at 07:30. |
12th November 2013, 18:53 | #2 | Link | |||
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Quote:
Quote:
Quote:
You replaced variable types globally, like "long" with "qint64" which funnily turned the word "along" in the comments into "aqint64". Also, the global replace turned "ULONG" into "Uqint64" which is a non-existent data type. It seems that you have no idea what you are doing. Last edited by Groucho2004; 12th November 2013 at 19:15. |
|||
12th November 2013, 19:40 | #4 | Link | |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Quote:
|
|
12th November 2013, 21:07 | #5 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
I have added to the project now version3 and version5 avisynth.H files. It seams version 5 is quite easy to change supporting QT builds. It don't use object.h so no need to use QAtomicInt class at all. It seams we can survive only with QDataStream to provide necessary datatypes.
|
12th November 2013, 22:25 | #6 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
I found quite many bugs with orginal files. There were defined struct lists ending with "," which is not supported by normal C++ structure. Is this M$ code? Also one function declaration per file had this: "void function(nnn) {};" whis was another combiler bug where needed to remove ";" or move it to "{;}".
Anyways avisynth.H version 5 I think supports now QT so 2.6 version plugin support is for Windows QT development now. Still need to edit couble com object handlers in version 2 and 3. For AVX_support needed is to add linux spesifig calling methods because __stdcalls what I think is not supported by unix. Have to take a look about avxsynth trunk. Last edited by Jeroi; 12th November 2013 at 22:49. |
12th November 2013, 22:26 | #7 | Link |
Guest
Posts: n/a
|
Will the plugins compiled with this header even work with Avisynth? If you want an alternate compiler, why would anyone use this over just writing a C++ plugin using avisynth_c.h which will be guaranteed to work with Avisynth?
Also, Visual Studio Express is free so it's not as if it's impossible for someone to get an MSVC++ compiler for free. Which means you don't have to deal with all the likely bugs and issues this randomly modified header will cause. Also, one can do Qt development in Visual Studio... Last edited by handaimaoh; 12th November 2013 at 22:43. |
12th November 2013, 22:42 | #8 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Not to mention the unspeakable bloat that QT introduces. QT is a huge pile of code and apparently everything gets linked in, no matter how little you need from it.
Last edited by Groucho2004; 12th November 2013 at 22:47. Reason: typo |
12th November 2013, 22:44 | #9 | Link | |
Guest
Posts: n/a
|
Quote:
I would simply be more concerned with this even being ABI compatible with Avisynth. |
|
12th November 2013, 22:45 | #10 | Link | |
Guest
Join Date: Jan 2002
Posts: 21,901
|
Quote:
Class definitions however require the semicolon. Some people include it on functions for consistency. |
|
12th November 2013, 23:05 | #12 | Link |
Guest
Posts: n/a
|
Good question, since one doesn't need a questionably ABI-compatible header file when one can just use VS Express with Qt without it on Windows. And if one is doing Avxsynth development it also seems to make no sense since there is no need for it there either. And changing everything to Qt defines for integer types is also silly when one should just use the stdint.h types that have no ties to any framework.
|
12th November 2013, 23:18 | #13 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Yeah I could do that also, it's not hard to use stdint.h but did add qt for somwhat using same time MeXgui source and changing there ints to qints prolly caused the idea to have separataley these for qt enviroment. How ever I could do those stdint.h versions if you guys like also.
That was good advice all to gether to change MeXgui codebase to have stdio.h for datatypes. Only qui components using QT. Last edited by Jeroi; 12th November 2013 at 23:22. |
12th November 2013, 23:26 | #14 | Link | |
Guest
Posts: n/a
|
Quote:
|
|
12th November 2013, 23:29 | #15 | Link | |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Quote:
Afaik version 2 and more notably version 3 need QT for winapi fuctions namely "InterlockedIncrement" and "InterlockedDecrement" where Qt offers QAtmonicInt class to handle similar functions. Last edited by Jeroi; 12th November 2013 at 23:33. |
|
12th November 2013, 23:36 | #16 | Link | |
Guest
Posts: n/a
|
Quote:
Last edited by handaimaoh; 12th November 2013 at 23:40. |
|
12th November 2013, 23:41 | #17 | Link | |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Quote:
But ok I will change the codebase for stdio.h and rename the thread header files for MinGW builds. Last edited by Jeroi; 12th November 2013 at 23:48. |
|
12th November 2013, 23:44 | #18 | Link | |
Guest
Posts: n/a
|
Quote:
Last edited by handaimaoh; 12th November 2013 at 23:48. |
|
12th November 2013, 23:54 | #19 | Link | |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Quote:
Last edited by Jeroi; 12th November 2013 at 23:56. |
|
13th November 2013, 00:01 | #20 | Link | |
Guest
Posts: n/a
|
Quote:
There's a reason that to use an alternate compiler to make Avisynth plugins that everyone had to use the avisynth_c.h header. If all it took was hacking up the normal avisynth.h header and using MinGW people would have already been doing so for years now. Last edited by handaimaoh; 13th November 2013 at 00:06. |
|
|
|